📄 shizhong.lst
字号:
C51 COMPILER V6.12 SHIZHONG 06/07/2010 16:00:45 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE SHIZHONG
OBJECT MODULE PLACED IN .\shizhong.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\shizhong.c DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #define uint unsigned int
3 #define uchar unsigned char
4 uchar hour,minute,second,hour2,minute2,second2,count,num,num1,a,b,c,d,e,f,i,k,nao,date,month,nian,lowsec1,
-second1,higsec1;
5 uchar code xian[]="WELCOME TO CQUPT";
6 uchar code xingqi[]="MONTUEWEDTHUFRISATSUN";
7 uchar code table[]="2000-01-01 MON";
8 uchar code table1[]="00:00:00";
9 sbit lcdrs=P2^7;
10 sbit lcdrw=P2^6;
11 sbit lcde=P2^5;
12 sbit mod=P1^0; /*********设置键*******/
13 sbit add=P1^1; /*********调整键*******/
14 sbit swi=P1^2; /*********12/24模式转换键*****/
15 sbit sec=P1^3; /*********秒表键*******/
16 sbit buz=P1^5; /*********闹钟IO口定义******/
17 sbit clo=P1^4; /*********闹钟键********/
18 void xianshi(uchar i);
19 void lcd_com(uchar com);
20 void lcd_dat(uchar dat);
21 void display(uchar add,uchar dat);
22 void display1(uchar add,uchar dat);
23 void keyscan();
24 void delay(uint z);
25 void startlcd();
26 void starttimer();
27 void start();
28 void main()
29 {
30 1 start();
31 1 startlcd();
32 1 starttimer();
33 1 while(1)
34 1 {
35 2 keyscan();
36 2 }
37 1 }
38
39 void xianshi(uchar i)
40 {
41 1 k=3*i;
42 1 lcd_com(0x80+12);
43 1 lcd_dat(xingqi[k]);
44 1 lcd_dat(xingqi[k+1]);
45 1 lcd_dat(xingqi[k+2]);
46 1 }
47
48 void startlcd()
49 {
50 1 lcd_com(0x01);
51 1 lcd_com(0x38);
52 1 lcd_com(0x0c);
53 1 lcd_com(0x06);
54 1 lcd_com(0x80);
C51 COMPILER V6.12 SHIZHONG 06/07/2010 16:00:45 PAGE 2
55 1 for(num=0;num<16;num++)
56 1 {
57 2 lcd_dat(xian[num]);
58 2 }
59 1 delay(3000);
60 1 lcd_com(0x01);
61 1 lcd_com(0x80);
62 1 for(num=0;num<15;num++)
63 1 {
64 2 lcd_dat(table[num]);
65 2 }
66 1 lcd_com(0x80+0x43);
67 1 for(num1=0;num1<8;num1++)
68 1 {
69 2 lcd_dat(table1[num1]);
70 2 }
71 1 }
72
73 void starttimer()
74 {
75 1 TMOD=0x11;
76 1 TH0=(65536-10000)/256;
77 1 TL0=(65536-10000)%256;
78 1 TH1=(65536-50000)/256;
79 1 TL1=(65536-50000)%256;
80 1 EA=1;
81 1 ET0=1;
82 1 ET1=1;
83 1 TR0=0;
84 1 TR1=1;
85 1 }
86
87 void start()
88 {
89 1 buz=1;
90 1 count=0;
91 1 second=0;
92 1 minute=0;
93 1 hour=0;
94 1 date=1;
95 1 month=1;
96 1 nian=0;
97 1 lowsec1=0;
98 1 second1=0;
99 1 higsec1=0;
100 1 second2=0;
101 1 minute2=0;
102 1 hour2=0;
103 1 a=0;
104 1 b=0;
105 1 c=0;
106 1 d=0;
107 1 e=0;
108 1 f=0;
109 1 i=0;
110 1 k=0;
111 1 nao=0;
112 1 }
113
114 void lcd_com(uchar com)
115 {
116 1 lcdrs=0;
C51 COMPILER V6.12 SHIZHONG 06/07/2010 16:00:45 PAGE 3
117 1 lcdrw=0;
118 1 lcde=0;
119 1 P0=com;
120 1 lcde=1;
121 1 lcde=0;
122 1 delay(1);
123 1 }
124
125 void lcd_dat(uchar dat)
126 {
127 1 lcdrs=1;
128 1 lcdrw=0;
129 1 P0=dat;
130 1 lcde=1;
131 1 lcde=0;
132 1 lcdrs=0;
133 1 delay(1);
134 1 }
135
136 /**********************1602第二排显示****************/
137 void display(uchar add,uchar dat)
138 {
139 1 uchar shi,ge;
140 1 shi=dat/10;
141 1 ge=dat%10;
142 1 lcd_com(0x80+0x40+add);
143 1 lcd_dat(0x30+shi);
144 1 lcd_dat(0x30+ge);
145 1 }
146
147 /********************1602第一排显示*****************/
148 void display1(uchar add,uchar dat)
149 {
150 1 uchar shi,ge;
151 1 shi=dat/10;
152 1 ge=dat%10;
153 1 lcd_com(0x80+add);
154 1 lcd_dat(0x30+shi);
155 1 lcd_dat(0x30+ge);
156 1 }
157
158
159 void delay(uint z)
160 {
161 1 uint x,y;
162 1 for(x=0;x<z;x++)
163 1 for(y=0;y<123;y++);
164 1 }
165
166 /***********中断1为秒表的中断************/
167 void timer0() interrupt 1
168 {
169 1 TH0=(65536-10000)/256;
170 1 TL0=(65536-10000)%256;
171 1 lowsec1++;
172 1 if(lowsec1==100)
173 1 {
174 2 lowsec1=0;
175 2 second1++;
176 2 if(second1==60)
177 2 {
178 3 second1=0;
C51 COMPILER V6.12 SHIZHONG 06/07/2010 16:00:45 PAGE 4
179 3 higsec1++;
180 3 if(higsec1==60)
181 3 {
182 4 higsec1=0;
183 4 }
184 3 display1(0,higsec1);
185 3 }
186 2 display1(3,second1);
187 2 }
188 1 display1(6,lowsec1);
189 1 }
190
191 /*******************中断2为时钟运行************/
192 void timer1() interrupt 3
193 {
194 1 TH0=(65536-50000)/256;
195 1 TL0=(65536-50000)%256;
196 1 count++;
197 1 if(count==20)
198 1 {
199 2 count=0;
200 2 second++;
201 2 if(b==1)
202 2 {
203 3 if(hour>12)
204 3 {
205 4 hour=hour-12;
206 4 display(3,hour);
207 4 }
208 3 }
209 2 if(hour==hour2)
210 2 f=1;
211 2 if((minute==minute2)&&(f==1))
212 2 f=2;
213 2 if((second==second2)&&(f==2))
214 2 {
215 3 buz=0;
216 3 if(second>55)
217 3 nao=second-55;
218 3 nao=second+5;
219 3 }
220 2 if(nao==second)
221 2 {
222 3 buz=1;
223 3 f=0;
224 3 }
225 2 if(second==60)
226 2 {
227 3 second=0;
228 3 minute++;
229 3 if(minute==60)
230 3 {
231 4 buz=0;
232 4 nao=2;
233 4 minute=0;
234 4 hour++;
235 4 if(b==1)
236 4 {
237 5 if(hour==12)
238 5 {
239 6 c++;
240 6 if(c%2==0)
C51 COMPILER V6.12 SHIZHONG 06/07/2010 16:00:45 PAGE 5
241 6 {
242 7 c=0;
243 7 date++;
244 7 i++;
245 7 if(date==30&&month==2)
246 7 {
247 8 date=1;
248 8 month++;
249 8 if(month==13)
250 8 {
251 9 month=1;
252 9 nian++;
253 9 if(nian==100)
254 9 nian=0;
255 9 display1(2,nian);
256 9 }
257 8 if(e==0)
258 8 display1(5,month);
259 8 }
260 7 if(date==31&&(month==4||month==6||month==9||month==11))
261 7 {
262 8 date=1;
263 8 month++;
264 8 if(month==13)
265 8 {
266 9 month=1;
267 9 nian++;
268 9 if(nian==100)
269 9 nian=0;
270 9 display1(2,nian);
271 9 }
272 8 if(e==0)
273 8 display1(5,month);
274 8 }
275 7 if(date==32)
276 7 {
277 8 date=1;
278 8 month++;
279 8 if(month==13)
280 8 {
281 9 month=1;
282 9 nian++;
283 9 if(nian==100)
284 9 nian=0;
285 9 display1(2,nian);
286 9 }
287 8 if(e==0)
288 8 display1(5,month);
289 8 }
290 7 if(e==0)
291 7 {
292 8 display1(8,date);
293 8 xianshi(i);
294 8 }
295 7 }
296 6 }
297 5 if(hour==13)
298 5 hour=1;
299 5 }
300 4 else
301 4 {
302 5 if(hour==24)
C51 COMPILER V6.12 SHIZHONG 06/07/2010 16:00:45 PAGE 6
303 5 {
304 6 hour=0;
305 6 date++;
306 6 i++;
307 6 if(date==30&&month==2)
308 6 {
309 7 date=1;
310 7 month++;
311 7 if(month==13)
312 7 {
313 8 month=1;
314 8 nian++;
315 8 if(nian==100)
316 8 nian=0;
317 8 display1(2,nian);
318 8 }
319 7 if(e==0)
320 7 display1(5,month);
321 7 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -