📄 szz1.lst
字号:
C51 COMPILER V6.12 SZZ1 03/26/2008 19:18:16 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE SZZ1
OBJECT MODULE PLACED IN .\szz1.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE .\szz1.c DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89x51.H>
2 #include <intrins.h>
3 #define uchar unsigned char
4 #define begin 1
5 sbit RS=P0^2;
6 sbit RW=P0^3;
7 sbit E=P0^4;
8 void lcd_initial();
9 void write_s(uchar *s);
10 void write_data(uchar);
11 void write_code(uchar);
12 void check_busy();
13 void display();
14 void delay(uchar);
15 uchar s,m,h,n;
16 void main()
17 {
18 1 TMOD=0x01;
19 1 EA=1;
20 1 ET0=1;
21 1 TL0=50000%256;
22 1 TH0=50000/256;
23 1 TR0=1;
24 1 lcd_initial();
25 1
26 1 write_code(0x86+begin);//显示:
27 1 delay(2);
28 1 write_s(":");
29 1 delay(2);
30 1 write_code(0x89+begin);//显示:
31 1 delay(2);
32 1 write_s(":");
33 1 display();
34 1 delay(20);
35 1 write_code(0x80);
36 1 write_s("TIME");
37 1 while(1)
38 1 {
39 2 display();
40 2 delay(20);
41 2 }
42 1 }
43 void lcd_initial()
44 {
45 1 write_code(0x01);
46 1 delay(5);
47 1 write_code(0x38);
48 1 delay(5);
49 1 write_code(0x0c);
50 1 delay(5);
51 1 write_code(0x06);
52 1 }
53 void check_busy()
54 {
55 1 RS=0;
C51 COMPILER V6.12 SZZ1 03/26/2008 19:18:16 PAGE 2
56 1 RW=1;
57 1 E=1;
58 1 while(0x80&P2);
59 1 E=0;
60 1 }
61 void write_s(uchar *s)
62 {
63 1 while(*s>0)
64 1 {
65 2 write_data(*s);
66 2 s++;
67 2 }
68 1 }
69
70 void write_data(uchar dat)
71 {
72 1 check_busy();
73 1 P2=dat;
74 1 _nop_();
75 1 _nop_();
76 1 RS=1;
77 1 RW=0;
78 1 E=1;
79 1 _nop_();
80 1 _nop_();
81 1 E=0;
82 1 delay(2);
83 1 }
84 void write_code(uchar command)
85 {
86 1 check_busy();
87 1 P2=command;
88 1 _nop_();
89 1 _nop_();
90 1 RS=0;
91 1 RW=0;
92 1 E=1;
93 1 _nop_();
94 1 _nop_();
95 1 E=0;
96 1 delay(2);
97 1 }
98 void display()
99 {
100 1 write_code(0x84+begin);//显示小时
101 1 delay(2);
102 1 write_data(h/10+0x30);
103 1 delay(2);
104 1 write_data(h%10+0x30);
105 1 delay(2);
106 1 write_code(0x87+begin);//显示分钟
107 1 delay(2);
108 1 write_data(m/10+0x30);
109 1 delay(2);
110 1 write_data(m%10+0x30);
111 1 delay(2);
112 1 write_code(0x8a+begin);//显示秒钟
113 1 delay(2);
114 1 write_data(s/10+0x30);
115 1 delay(2);
116 1 write_data(s%10+0x30);
117 1 }
C51 COMPILER V6.12 SZZ1 03/26/2008 19:18:16 PAGE 3
118 void delay(uchar i)
119 {
120 1 uchar j=250;
121 1 for(;i>0;i--,j=250)
122 1 {while(--j);}
123 1 }
124 void timer( ) interrupt 1
125 {
126 1 TL0=50000%256;
127 1 TH0=50000/256;
128 1 n++;
129 1 if(!(n%40))
130 1 {
131 2 s++;
132 2 if(s==60)
133 2 {
134 3 s=0;
135 3 m++;
136 3 if(m==60)
137 3 {
138 4 m=0;
139 4 h++;
140 4 if(h==24)
141 4 h=0;
142 4 }
143 3 }
144 2 }
145 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 410 ----
CONSTANT SIZE = 7 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 3
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 + -