📄 lesson9.lst
字号:
C51 COMPILER V8.08 LESSON9 03/11/2009 11:47:29 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LESSON9
OBJECT MODULE PLACED IN lesson9.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lesson9.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 sbit rs=P3^0;
5 sbit rw=P3^1;
6 sbit s1=P1^1;
7 sbit s2=P1^2;
8 sbit s3=P1^3;
9 sbit lcden=P3^2;
10 uchar count,s1num;
11 char shi,fen,miao;
12 uchar code table[]=" 2009-03-10 MON";
13 uchar code table1[]="00:00:00";
14
15 void delay (uint z)
16 {
17 1 uint x,y;
18 1 for(x=z;x>0;x--)
19 1 for(y=100;y>0;y--);
20 1 }
21
22 void write_com(uchar com)
23 {
24 1 rs=0;
25 1 rw=0;
26 1 P0=com;
27 1 delay(5);
28 1 lcden=1;
29 1 delay(5);
30 1 lcden=0;
31 1 }
32
33
34 void write_date(uchar date)
35 {
36 1 rs=1;
37 1 rw=0;
38 1 P0=date;
39 1 delay(5);
40 1 lcden=1;
41 1 delay(5);
42 1 lcden=0;
43 1 }
44
45 void write_sfm(uchar add,uchar date)
46 {
47 1 uchar shi,ge;
48 1 shi=date/10;
49 1 ge=date%10;
50 1 write_com(0x80+0x40+add);
51 1 write_date(0x30+shi);
52 1 write_date(0x30+ge);
53 1 }
54
55 void init()
C51 COMPILER V8.08 LESSON9 03/11/2009 11:47:29 PAGE 2
56 {
57 1 uchar num;
58 1 lcden=0;
59 1 write_com(0x38);
60 1 write_com(0x0c);
61 1 write_com(0x06);
62 1 write_com(0x01);
63 1 write_com(0x80);
64 1 for(num=0;num<15;num++)
65 1 {
66 2 write_date(table[num]);
67 2
68 2 }
69 1
70 1 write_com(0x80+0x40);
71 1
72 1 for(num=0;num<8;num++)
73 1 {
74 2 write_date(table1[num]);
75 2
76 2 TMOD=0x01;
77 2 TH0=(65536-50000)/256;
78 2 TL0=(65536-50000)%256;
79 2 ET0=1;
80 2 EA=1;
81 2 TR0=1;
82 2
83 2 }
84 1 }
85
86 void keyscan()
87 {
88 1 if(s1==0)
89 1 {
90 2 delay(5);
91 2 if(s1==0)
92 2 {
93 3 while (!s1);
94 3 s1num++;
95 3 }
96 2 }
97 1 if(s1num==1)
98 1 {
99 2 TR0=0;
100 2 write_com(0x0f);
101 2 write_com(0x80+0x40+7);
102 2 if(s2==0)
103 2 {
104 3 delay(5);
105 3 if(s2==0)
106 3 {
107 4 while(!s2);
108 4 miao++;
109 4 if(miao==60)
110 4 {
111 5 miao=0;
112 5 }
113 4 write_sfm(6,miao);
114 4 }
115 3 }
116 2 if(s3==0)
117 2 {
C51 COMPILER V8.08 LESSON9 03/11/2009 11:47:29 PAGE 3
118 3 delay(5);
119 3 if(s3==0)
120 3 {
121 4 while(!s3);
122 4 miao--;
123 4 if(miao==0)
124 4 {
125 5 miao=59;
126 5 }
127 4 write_sfm(6,miao);
128 4 }
129 3 }
130 2 }
131 1
132 1 if(s1num==2)
133 1 {
134 2 write_com(0x80+0x40+4);
135 2 if(s2==0)
136 2 {
137 3 delay(5);
138 3 if(s2==0)
139 3 {
140 4 while(!s2);
141 4 fen++;
142 4 if(fen==60)
143 4 {
144 5 fen=0;
145 5 }
146 4 write_sfm(3,fen);
147 4 }
148 3 }
149 2 if(s3==0)
150 2 {
151 3 delay(5);
152 3 if(s3==0)
153 3 {
154 4 while(!s3);
155 4 fen--;
156 4 if(fen==0)
157 4 {
158 5 fen=59;
159 5 }
160 4 write_sfm(3,fen);
161 4 }
162 3 }
163 2 }
164 1 if(s1num==3)
165 1 {
166 2 write_com(0x80+0x40+1);
167 2 if(s2==0)
168 2 {
169 3 delay(5);
170 3 if(s2==0)
171 3 {
172 4 while(!s2);
173 4 shi++;
174 4 if(shi==24)
175 4 {
176 5 shi=0;
177 5 }
178 4 write_sfm(0,shi);
179 4 }
C51 COMPILER V8.08 LESSON9 03/11/2009 11:47:29 PAGE 4
180 3 }
181 2 if(s3==0)
182 2 {
183 3 delay(5);
184 3 if(s3==0)
185 3 {
186 4 while(!s3);
187 4 shi--;
188 4 if(shi==0)
189 4 {
190 5 shi=23;
191 5 }
192 4 write_sfm(0,shi);
193 4 }
194 3 }
195 2 }
196 1 if(s1num==4)
197 1 {
198 2 s1num=0;
199 2 write_com(0x0c);
200 2 TR0=1;
201 2 }
202 1 }
203
204
205
206
207 void main()
208 {
209 1 init();
210 1 while(1)
211 1 {
212 2 keyscan();
213 2 }
214 1 }
215
216 void timer0() interrupt 1
217 {
218 1 TH0=(65536-50000)/256;
219 1 TL0=(65536-50000)%256;
220 1 count++;
221 1 if(count==20)
222 1 {
223 2 count=0;
224 2 miao++;
225 2 if(miao==60)
226 2 {
227 3 miao=0;
228 3 fen++;
229 3 if(fen==60)
230 3 {
231 4 fen=0;
232 4 shi++;
233 4 if(shi==24)
234 4 {
235 5 shi=0;
236 5 }
237 4 write_sfm(0,shi);
238 4 }
239 3 write_sfm(3,fen);
240 3 }
241 2 write_sfm(6,miao);
C51 COMPILER V8.08 LESSON9 03/11/2009 11:47:29 PAGE 5
242 2
243 2 }
244 1 }
245
246
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 514 ----
CONSTANT SIZE = 26 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = ---- ----
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 + -