📄 ext1.lst
字号:
C51 COMPILER V8.08 EXT1 10/17/2008 09:11:31 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE EXT1
OBJECT MODULE PLACED IN EXT1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE EXT1.C DEBUG OBJECTEXTEND
line level source
1 #include "stdio.h"
2 #include "config.h"
3
4 sbit EN=P3^2;
5 sbit RW=P3^3;
6 sbit RS=P3^4;
7 sbit VO=P3^5;
8
9 void InitLcd(void);
10 void WriteData(unsigned char ch);
11 void WriteCmd(unsigned char ch);
12 void DelayS(void);
13 void wait_5ms( void );
14 void Disp_Char(unsigned char pos,unsigned char ch);
15 void Disp_Str(unsigned char line,char* str);
16
17 unsigned char sec,min,hour,i;
18 char buffer[21];
19
20 void main(void)
21 {
22 1 TMOD = (TMOD & 0XF0) | 0X01;
23 1 TL0 = 0x0;
24 1 TH0 = 0x0;
25 1 TR0 = 1;
26 1 ET0 = 1;
27 1
28 1 SCON = 0x52; /* mode 1: 8-bit UART, enable receiver */
29 1 TMOD |= 0x20; /* timer 1 mode 2: 8-Bit reload */
30 1 TH1 = 0xfd; /* reload value 9600 baud */
31 1 TR1 = 1; /* timer 1 run */
32 1 wait_5ms();
33 1 InitLcd();
34 1 wait_5ms();
35 1 VO = 0;
36 1
37 1 Disp_Str(0," Small RTOS51 V1.20 ");
38 1 Disp_Str(1," Current Time is: ");
39 1 wait_5ms();
40 1 Disp_Str(2," ");
41 1 Disp_Str(3," Created by ArcDevil");
42 1
43 1
44 1 OSStart();
45 1 }
46
47 void TaskA(void)
48 {
49 1 while (1)
50 1 {
51 2 if (++sec == 60)
52 2 {
53 3 sec = 0;
54 3 if (++min == 60)
55 3 {
C51 COMPILER V8.08 EXT1 10/17/2008 09:11:31 PAGE 2
56 4 min = 0;
57 4 if (++hour == 24)
58 4 {
59 5 hour = 0;
60 5 }
61 4 }
62 3 }
63 2 sprintf(buffer, " %02bd:%02bd:%02bd ",
64 2 hour,
65 2 min,
66 2 sec);
67 2 Disp_Str(2,buffer);
68 2 OSWait(K_TMO,10);
69 2 }
70 1 }
71
72 void TaskB(void)
73 {
74 1 while (1)
75 1 {
76 2 Disp_Str(3,"Written @20041022||");
77 2 OSWait(K_TMO,50);
78 2 }
79 1 }
80
81 void TaskC(void)
82 {
83 1 while (1)
84 1 {
85 2 Disp_Str(3,"TaskC is Running! ");
86 2 OSWait(K_TMO,100);
87 2 }
88 1 }
89
90 void InitLcd(void)
91 {
92 1 wait_5ms();
93 1 wait_5ms();
94 1 wait_5ms();
95 1 WriteCmd(0x38);
96 1 wait_5ms();
97 1 WriteCmd(0x38);
98 1 wait_5ms();
99 1 WriteCmd(0x38);
100 1 wait_5ms();
101 1 WriteCmd(0x38);
102 1 WriteCmd(0x06);
103 1 WriteCmd(0x0c);
104 1 WriteCmd(0x01);
105 1 WriteCmd(0x80);
106 1 }
107
108 void WriteData(unsigned char ch)
109 {
110 1 DelayS();
111 1 EN = 0;
112 1 RS = 1;
113 1 RW = 0;
114 1 _nop_();
115 1 EN = 1;
116 1 P1 = ch;
117 1 EN = 0;
C51 COMPILER V8.08 EXT1 10/17/2008 09:11:31 PAGE 3
118 1 RS = 0;
119 1 }
120
121 void WriteCmd(unsigned char ch)
122 {
123 1 DelayS();
124 1 EN = 0;
125 1 RS = 0;
126 1 RW = 0;
127 1 _nop_();
128 1 EN = 1;
129 1 P1 = ch;
130 1 EN = 0;
131 1 }
132
133 void DelayS(void)
134 {
135 1 unsigned char i;
136 1 i = 0x1f;
137 1 while(i--);
138 1 }
139
140 void wait_5ms( void )
141 {
142 1 register int i ;
143 1 for ( i=0 ; i<1000 ; i++ )
144 1 ;
145 1 }
146
147 void Disp_Char(unsigned char pos,unsigned char ch)
148 {
149 1 unsigned char p,x,y;
150 1 y = pos/20;
151 1 x = pos%20;
152 1 switch(y)
153 1 {
154 2 case 0: p = x + 0x80; break;
155 2 case 1: p = x + 0xc0; break;
156 2 case 2: p = x + 0x94; break;
157 2 case 3: p = x + 0xd4; break;
158 2 default:break;
159 2 }
160 1 WriteCmd(p);
161 1 WriteData(ch);
162 1 }
163
164 void Disp_Str(unsigned char line,char* str)
165 {
166 1 unsigned char l,i;
167 1 l = line*20;
168 1 for(i = 0 ; i < 20 ; i++)
169 1 Disp_Char(l++,*(str+i));
170 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 440 ----
CONSTANT SIZE = 156 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 25 9
IDATA SIZE = ---- ----
C51 COMPILER V8.08 EXT1 10/17/2008 09:11:31 PAGE 4
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -