📄 text1.lst
字号:
C51 COMPILER V8.02 TEXT1 10/29/2008 18:32:58 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 sbit rs=P1^6;
7 sbit rw=P1^5;
8 sbit ep=P1^4;
9
10 uchar code rr[]={"D:"};
11 uchar code ff[]={"W:"};
12 uchar code ss[]={"Time:"};
13 uchar code table[]={"0123456789-"};
14 uchar cnt=0,id=0;
15 uint nn=2008;
16 uchar hour=23,min=59,sec=45,xx=1,yy=1,tt=1;
17 uchar qq[]={"000000000000000000"};
18 uchar flang;
19
20 void delay(uint n)
21 {
22 1 uchar i,j;
23 1 for(i=0;i<n;i++)
24 1 for(j=0;j<121;j++)
25 1 ;
26 1 }
27
28 void xmjc(void) //闲忙检测
29 {
30 1 rs=0;
31 1 rw=1;
32 1 ep=1;
33 1 while(P2&0x80)
34 1 ;
35 1 ep=0;
36 1 }
37
38
39 void xml(unsigned char comm) //写命令
40 {
41 1 xmjc();
42 1 rs=0;
43 1 rw=0;
44 1 ep=1;
45 1 P2=comm;
46 1 ep=0;
47 1 }
48
49 void xsj(unsigned char dat)
50 {
51 1 xmjc();
52 1 rs=1;
53 1 rw=0;
54 1 ep=1;
55 1 P2=dat;
C51 COMPILER V8.02 TEXT1 10/29/2008 18:32:58 PAGE 2
56 1 ep=0;
57 1 }
58 void lcd_init(void) //1602初始化
59 {
60 1 xml(0x38);
61 1 xml(0x06);//光标和显示模式设置
62 1 xml(0x0c);
63 1 xml(0x01);
64 1 }
65
66
67
68 void sjzh(void)
69 {uchar ee=10;
70 1 qq[0]=hour/10;
71 1 qq[1]=hour%10;
72 1 qq[2]=ee;
73 1 qq[3]=min/10;
74 1 qq[4]=min%10;
75 1 qq[5]=ee;
76 1 qq[6]=sec/10;
77 1 qq[7]=sec%10;
78 1 qq[8]=nn/1000;
79 1 qq[9]=nn/100%10;
80 1 qq[10]=nn%100/10;
81 1 qq[11]=nn%10;
82 1 qq[12]=ee;
83 1 qq[13]=yy/10;
84 1 qq[14]=yy%10;
85 1 qq[15]=ee;
86 1 qq[16]=tt/10;
87 1 qq[17]=tt%10;
88 1 }
89
90 void aa(uchar str,uchar lengch)
91 {
92 1 uchar i;
93 1 for(i=0;i<lengch;i++)
94 1 {
95 2 xsj(str);
96 2 }
97 1 }
98
99 uchar ajqd(void)
100 {
101 1 while(1)
102 1 {
103 2 P3=0xff;
104 2 flang=P3;
105 2 if(P3!=0xff)
106 2 {
107 3 delay(10);
108 3 if(P3!=0xff)
109 3 {while(P3!=0xff);}
110 3 }
111 2 return flang;break;
112 2 }
113 1 }
114
115 void disp(void)
116 {
117 1 uchar i,j,k,m,n;
C51 COMPILER V8.02 TEXT1 10/29/2008 18:32:58 PAGE 3
118 1 xml(0xc0);
119 1 for(i=0;i<5;i++)
120 1 {
121 2 aa(ss[i],1);
122 2 }
123 1 sjzh();
124 1 for(j=0;j<8;j++)
125 1 {
126 2 xml(0xc5+j);
127 2 aa(table[qq[j]],1);
128 2 }
129 1 xml(0x80);
130 1 for(k=0;k<2;k++)
131 1 {
132 2 aa(rr[k],1);
133 2 }
134 1 for(m=0;m<10;m++)
135 1 {
136 2 xml(0x82+m);
137 2 aa(table[qq[8+m]],1);
138 2 }
139 1 xml(0x8d);
140 1 for(n=0;n<2;n++)
141 1 {
142 2 aa(ff[n],1);
143 2 }
144 1 xml(0x8f);
145 1 aa(table[xx],1);
146 1 }
147
148
149
150
151 void main(void)
152 {
153 1 lcd_init();
154 1 EA=1;
155 1 ET0=1;
156 1 TMOD=0X01;
157 1 TH0=-50000/256;
158 1 TL0=-50000%256;
159 1 TR0=1;
160 1
161 1 while(1)
162 1 {
163 2 disp();
164 2 //flang=0xff;
165 2 ajqd();
166 2 if(flang==0xfb){id++;if(id>6)id=0;}
167 2 switch(id)
168 2 {
169 3
170 3 case 1: xml(0x0e);xml(0x85); delay(10);
171 3 if(flang==0xf7){nn++;if(nn>9999)nn=0;}
172 3 break;
173 3 case 2: xml(0x0e);xml(0x88); delay(10);
174 3 if(flang==0xf7){yy++;if(yy>12)yy=1;}
175 3 break;
176 3 case 3: xml(0x0e);xml(0x8b); delay(10);
177 3 if(flang==0xf7){tt++;if(tt>31)tt=1;}
178 3 break;
179 3 case 4: xml(0x0e);xml(0x8f); delay(10);
C51 COMPILER V8.02 TEXT1 10/29/2008 18:32:58 PAGE 4
180 3 if(flang==0xf7){xx++;if(xx>7)xx=1;}
181 3 break;
182 3 case 5: xml(0x0e);xml(0xc6); delay(10);
183 3 if(flang==0xf7){hour++;if(hour>23)hour=0;}
184 3 break;
185 3 case 6: xml(0x0e);xml(0xc9); delay(10);
186 3 if(flang==0xf7){min++;if(min>59)min=1;}
187 3 break;
188 3 default:xml(0x0c);
189 3 }
190 2 }
191 1 }
192
193
194 void zd(void) interrupt 1 using 0
195 {
196 1 TH0=-50000/256;
197 1 TL0=-50000%256;
198 1 cnt++;
199 1 if(cnt>20)
200 1 {
201 2 cnt=0;
202 2 sec++;
203 2 if(sec>59)
204 2 {
205 3 sec=0;
206 3 min++;
207 3 if(min>59)
208 3 {
209 4 min=0;
210 4 hour++;
211 4 if(hour>23)
212 4 {
213 5 hour=0;
214 5 xx++;
215 5 if(xx>7)
216 5 xx=1;
217 5 tt++;
218 5 {
219 6 if(yy==1||yy==3||yy==5||yy==7||yy==8||yy==10||yy==12)
220 6 {
221 7 if(tt>31)
222 7 {
223 8 tt=1;
224 8 yy++;
225 8 }
226 7 }
227 6 else if(yy==4||yy==6||yy==9||yy==11)
228 6 {
229 7 if(tt>30)
230 7 {
231 8 tt=1;
232 8 yy++;
233 8 }
234 7 }
235 6 else if(yy==2)
236 6 {
237 7 if((nn%400==0)||((nn%100!=0)&&(nn%4==0)))
238 7 {
239 8 if(tt>29)
240 8 {
241 9 tt=1;
C51 COMPILER V8.02 TEXT1 10/29/2008 18:32:58 PAGE 5
242 9 yy++;
243 9 }
244 8 }
245 7 else if(tt>28)
246 7 {
247 8 tt=1;
248 8 yy++;
249 8 }
250 7 }
251 6 }
252 5 if(yy>12)
253 5 {
254 6 yy=1;
255 6 nn++;
256 6 if(nn>9999)
257 6 nn=0;
258 6 }
259 5 }
260 4 }
261 3 }
262 2 }
263 1 }
264
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 996 ----
CONSTANT SIZE = 24 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 30 ----
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 + -