📄 main.lst
字号:
C51 COMPILER V8.06 MAIN 12/02/2011 20:28:09 PAGE 1
C51 COMPILER V8.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**********************HL-1实验开发板例程************************
2 * 平台:HL-1 V6.2 + Keil U3 + STC89C52RD
3 * 公司:慧净电子科技有限公司
4 * 淘宝:http://shop37031453.taobao.com
5 * 网站:www.hlmcu.com
6 * 编写:慧净
7 * 日期:2008-8-08
8 * QQ : 121350852 398115088
9 * 晶振:11.0592MHZ
10 * 说明:免费开源,不提供源代码分析,有问题直接到慧净论坛交流
11 * 论坛:http://hjdz.5d6d.com
12 ******************************************************************/
13 #include<reg52.h>
14 #include<define.h>
15 void delay(uint z)
16 {
17 1 uint x,y;
18 1 for(x=z;x>0;x--)
19 1 for(y=110;y>0;y--);
20 1 }
21
22 void didi()
23 {
24 1 beep=0;
25 1 delay(50);
26 1 beep=1;
27 1 delay(100);
28 1 beep=0;
29 1 delay(50);
30 1 beep=1;
31 1 }
32 void write_com(uchar com)
33 {
34 1 rs=0;
35 1 lcden=0;
36 1 P0=com;
37 1 delay(5);
38 1 lcden=1;
39 1 delay(5);
40 1 lcden=0;
41 1 }
42
43 void write_date(uchar date)
44 {
45 1 rs=1;
46 1 lcden=0;
47 1 P0=date;
48 1 delay(5);
49 1 lcden=1;
50 1 delay(5);
51 1 lcden=0;
52 1 }
53
54 void init()
55 {//wr=0;
C51 COMPILER V8.06 MAIN 12/02/2011 20:28:09 PAGE 2
56 1
57 1 uchar num;
58 1 EA=1;
59 1 EX0=1;
60 1 IT0=1;
61 1
62 1 dula=0;
63 1 wela=0;
64 1 lcden=0;
65 1 // set_time();
66 1 set_alarm(14,13,10);
67 1 write_ds(0x0B,0x26);
68 1 read_ds(0x0c);
69 1 // fen=59;
70 1 // miao=53;
71 1 // shi=23;
72 1 write_com(0x38);
73 1 write_com(0x0c);
74 1 write_com(0x06);
75 1 write_com(0x01);
76 1 write_com(0x80);
77 1 for(num=0;num<15;num++)
78 1 {
79 2 write_date(table[num]);
80 2 delay(5);
81 2 }
82 1 write_com(0x80+0x40);
83 1 for(num=0;num<12;num++)
84 1 {
85 2 write_date(table1[num]);
86 2 delay(5);
87 2 }
88 1
89 1 }
90
91 void write_sfm(uchar add,uchar date)
92 {
93 1 uchar shi,ge;
94 1 shi=date/10;
95 1 ge=date%10;
96 1 write_com(0x80+0x40+add);
97 1 write_date(0x30+shi);
98 1 write_date(0x30+ge);
99 1 }
100
101 void keyscan()
102 {
103 1 rd=0;
104 1 if(flag1==1)
105 1 {
106 2 if(s2==0)
107 2 {
108 3 delay(5);
109 3 if(s2==0)
110 3 {
111 4 while(!s2);
112 4 flag1=0;
113 4 }
114 3
115 3 }
116 2 if(s3==0)
117 2 {
C51 COMPILER V8.06 MAIN 12/02/2011 20:28:09 PAGE 3
118 3 delay(5);
119 3 if(s3==0)
120 3 {
121 4 while(!s3);
122 4 flag1=0;
123 4 }
124 3
125 3 }
126 2 }
127 1
128 1 if(s1==0)
129 1 {
130 2 delay(5);
131 2 if(s1==0)
132 2 { s1num++;
133 3 flag=1;
134 3 flag1=0;
135 3 while(!s1);
136 3 if(s1num==1)
137 3 {
138 4 TR0=0;
139 4 write_com(0x80+0x40+10);
140 4 write_com(0x0f);
141 4 }
142 3 }
143 2 if(s1num==2)
144 2 {
145 3 write_com(0x80+0x40+7);
146 3 }
147 2 if(s1num==3)
148 2 {
149 3 write_com(0x80+0x40+4);
150 3 }
151 2 if(s1num==4)
152 2 {
153 3 s1num=0;
154 3 write_com(0x0c);
155 3 flag=0;
156 3 write_ds(0,miao);
157 3 write_ds(2,fen);
158 3 write_ds(4,shi);
159 3 }
160 2
161 2
162 2 }
163 1 if(s1num!=0)
164 1 {
165 2 if(s2==0)
166 2 {
167 3 delay(1);
168 3 if(s2==0)
169 3 {
170 4 while(!s2);
171 4 if(s1num==1)
172 4 {
173 5 miao++;
174 5 if(miao==60)
175 5 miao=0;
176 5 write_sfm(10,miao);
177 5 write_com(0x80+0x40+10);
178 5
179 5
C51 COMPILER V8.06 MAIN 12/02/2011 20:28:09 PAGE 4
180 5 }
181 4 if(s1num==2)
182 4 {
183 5 fen++;
184 5 if(fen==60)
185 5 fen=0;
186 5 write_sfm(7,fen);
187 5 write_com(0x80+0x40+7);
188 5 }
189 4 if(s1num==3)
190 4 {
191 5 shi++;
192 5 if(shi==24)
193 5 shi=0;
194 5 write_sfm(4,shi);
195 5 write_com(0x80+0x40+4);
196 5 }
197 4 }
198 3 }
199 2 if(s3==0)
200 2 {
201 3 delay(1);
202 3 if(s3==0)
203 3 {
204 4 while(!s3);
205 4 if(s1num==1)
206 4 {
207 5 /* if(miao==0)
208 5 {
209 5 miao=59;
210 5 write_sfm(10,miao);
211 5 write_com(0x80+0x40+10);
212 5 }*/
213 5 miao--;
214 5 if(miao==-1)
215 5 miao=59;
216 5 write_sfm(10,miao);
217 5 write_com(0x80+0x40+10);
218 5 }
219 4 if(s1num==2)
220 4 {
221 5 fen--;
222 5 if(fen==-1)
223 5 fen=59;
224 5 write_sfm(7,fen);
225 5 write_com(0x80+0x40+7);
226 5 }
227 4 if(s1num==3)
228 4 {
229 5 shi--;
230 5 if(shi==-1)
231 5 shi=23;
232 5 write_sfm(4,shi);
233 5 write_com(0x80+0x40+4);
234 5 }
235 4 }
236 3 }
237 2 }
238 1 }
239
240 void write_ds(uchar add,uchar date)
241 {
C51 COMPILER V8.06 MAIN 12/02/2011 20:28:09 PAGE 5
242 1 dscs=0;
243 1 dsas=1;
244 1 dsds=1;
245 1 dsrw=1;
246 1 P0=add;
247 1 dsas=0;
248 1 dsrw=0;
249 1 P0=date;
250 1 dsrw=1;
251 1 dsas=1;
252 1 dscs=1;
253 1 }
254
255 uchar read_ds(uchar add)
256 {
257 1 uchar ds_date;
258 1 dsas=1;
259 1 dsds=1;
260 1 dsrw=1;
261 1 dscs=0;
262 1 P0=add;
263 1 dsas=0;
264 1 dsds=0;
265 1 P0=0xff;
266 1 ds_date=P0;
267 1 dsds=1;
268 1 dsas=1;
269 1 dscs=1;
270 1 return ds_date;
271 1 }
272
273 void set_time()
274 {
275 1 write_ds(4,10);
276 1 write_ds(2,32);
277 1
278 1 }
279
280 void set_alarm(uchar ashi,uchar afen,uchar amiao)
281 {
282 1 write_ds(1,amiao);
283 1 write_ds(3,afen);
284 1 write_ds(5,ashi);
285 1 }
286 void main()
287 {wr=0;
288 1
289 1 init();
290 1 while(1)
291 1 {
292 2 keyscan();
293 2 if(flag1==1)
294 2 didi();
295 2 if(flag==0)
296 2 {
297 3 miao=read_ds(0);
298 3 fen=read_ds(2);
299 3 shi=read_ds(4);
300 3 write_sfm(10,miao);
301 3 write_sfm(7,fen);
302 3 write_sfm(4,shi);
303 3 }
C51 COMPILER V8.06 MAIN 12/02/2011 20:28:09 PAGE 6
304 2 }
305 1 }
306
307 void exter() interrupt 0
308 { uchar c;
309 1 flag1=1;
310 1 c=read_ds(0x0c);
311 1 }
312
313
314
315
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 721 ----
CONSTANT SIZE = 29 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 1
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 + -