📄 hjmcu.lst
字号:
C51 COMPILER V7.00 HJMCU 08/29/2009 23:21:22 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE HJMCU
OBJECT MODULE PLACED IN HJMCU.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE HJMCU.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /**************************************************************************************************
2 *** 慧净电子1天入门、10天学会、1年精通单片机与C语言视频教程配套程序源码 ***
3 *** 实验板:HJ-1G HJ-3G 开发板 ***
4 *** MCU: STC89C52/AT89C52 部分C源码可以直接用于项目开发、欢迎复制共享、功德无量、没有版权 ***
5 *** 收集整理:慧净助学会员 部分原源来源网络,如有伤害到你的利润请来信,我们的免费助学会员会定期给你删除**
-*
6 *** 编译器:KEIL ***
7 *** 百度交流空间:http://hi.baidu.com/HJMCU WWW.HJMCU.COM ***
8 *** 论坛交流:http://bbs.hjmcu.com 欢迎来论坛一分钱不要下载配套的仿真电路 ***
9 *** 配套的硬件学习板网址:http://shop37031453.taobao.com/ ***
10 *** 日期:2008.8.8 ***
11 *** 目标:用C语言写程序就这么简单、慧争祝你1天入门、10天学会、1年精通单片机与C语言、找个好工作 ***
12 ***************************************************************************************************/
13 //最好配合视频教程中讲解1602液晶实现时钟来看。
14 //操作方法如下:
15 //1.正确安装液晶1602,请查看使用手册目录下的液晶安装方法。
16 //2.下载本程序
17 //3.调节液晶对比度致液晶清晰显示字符,若已调节好可跳过此步。
18 //4.实验板上S3键为功能键,按下后可选择调节哪个部分。
19 //5.S13为数字增大键。
20 //6.S17为数字减小键。
21 #include<reg52.h>
22 #define uchar unsigned char
23 #define uint unsigned int
24 sbit dula=P2^6;
25 sbit wela=P2^7;
26 sbit rs=P3^5;
27 sbit lcden=P3^4;
28 sbit s1=P3^0;
29 sbit s2=P3^1;
30 sbit s3=P3^2;
31 sbit rd=P3^7;
32 sbit wr=P3^6;
33 uchar count,s1num;
34 char miao,shi,fen;
35 uchar code table[]=" 2008-8-08 MON";
36 uchar code table1[]=" 08:08:08";
37 void delay(uint z)
38 {
39 1 uint x,y;
40 1 for(x=z;x>0;x--)
41 1 for(y=110;y>0;y--);
42 1 }
43
44 void write_com(uchar com)
45 {
46 1 rs=0;
47 1 lcden=0;
48 1 P0=com;
49 1 delay(5);
50 1 lcden=1;
51 1 delay(5);
52 1 lcden=0;
53 1 }
54
C51 COMPILER V7.00 HJMCU 08/29/2009 23:21:22 PAGE 2
55 void write_date(uchar date)
56 {
57 1 rs=1;
58 1 lcden=0;
59 1 P0=date;
60 1 delay(5);
61 1 lcden=1;
62 1 delay(5);
63 1 lcden=0;
64 1 }
65
66 void init()
67 {
68 1 //wr=0;
69 1 uchar num;
70 1 dula=0;
71 1 wela=0;
72 1 lcden=0;
73 1 // fen=59;
74 1 // miao=53;
75 1 // shi=23;
76 1 write_com(0x38);
77 1 write_com(0x0c);
78 1 write_com(0x06);
79 1 write_com(0x01);
80 1 write_com(0x80);
81 1 for(num=0;num<15;num++)
82 1 {
83 2 write_date(table[num]);
84 2 delay(5);
85 2 }
86 1 write_com(0x80+0x40);
87 1 for(num=0;num<12;num++)
88 1 {
89 2 write_date(table1[num]);
90 2 delay(5);
91 2 }
92 1 TMOD=0x01;
93 1 TH0=(65536-50000)/256;
94 1 TL0=(65536-50000)%256;
95 1 EA=1;
96 1 ET0=1;
97 1 TR0=1;
98 1 }
99
100 void write_sfm(uchar add,uchar date)
101 {
102 1 uchar shi,ge;
103 1 shi=date/10;
104 1 ge=date%10;
105 1 write_com(0x80+0x40+add);
106 1 write_date(0x30+shi);
107 1 write_date(0x30+ge);
108 1 }
109
110 void keyscan()
111 {
112 1 rd=0;
113 1 if(s1==0)
114 1 {
115 2 delay(5);
116 2 if(s1==0)
C51 COMPILER V7.00 HJMCU 08/29/2009 23:21:22 PAGE 3
117 2 { s1num++;
118 3 while(!s1);
119 3 if(s1num==1)
120 3 {
121 4 TR0=0;
122 4 write_com(0x80+0x40+10);
123 4 write_com(0x0f);
124 4 }
125 3 }
126 2 if(s1num==2)
127 2 {
128 3 write_com(0x80+0x40+7);
129 3 }
130 2 if(s1num==3)
131 2 {
132 3 write_com(0x80+0x40+4);
133 3 }
134 2 if(s1num==4)
135 2 {
136 3 s1num=0;
137 3 write_com(0x0c);
138 3 TR0=1;
139 3 }
140 2
141 2
142 2 }
143 1 if(s1num!=0)
144 1 {
145 2 if(s2==0)
146 2 {
147 3 delay(5);
148 3 if(s2==0)
149 3 {
150 4 while(!s2);
151 4 if(s1num==1)
152 4 {
153 5 miao++;
154 5 if(miao==60)
155 5 miao=0;
156 5 write_sfm(10,miao);
157 5 write_com(0x80+0x40+10);
158 5
159 5
160 5 }
161 4 if(s1num==2)
162 4 {
163 5 fen++;
164 5 if(fen==60)
165 5 fen=0;
166 5 write_sfm(7,fen);
167 5 write_com(0x80+0x40+7);
168 5 }
169 4 if(s1num==3)
170 4 {
171 5 shi++;
172 5 if(shi==24)
173 5 shi=0;
174 5 write_sfm(4,shi);
175 5 write_com(0x80+0x40+4);
176 5 }
177 4 }
178 3 }
C51 COMPILER V7.00 HJMCU 08/29/2009 23:21:22 PAGE 4
179 2 if(s3==0)
180 2 {
181 3 delay(5);
182 3 if(s3==0)
183 3 {
184 4 while(!s3);
185 4 if(s1num==1)
186 4 {
187 5 /* if(miao==0)
188 5 {
189 5 miao=59;
190 5 write_sfm(10,miao);
191 5 write_com(0x80+0x40+10);
192 5 }*/
193 5 miao--;
194 5 if(miao==-1)
195 5 miao=59;
196 5 write_sfm(10,miao);
197 5 write_com(0x80+0x40+10);
198 5 }
199 4 if(s1num==2)
200 4 {
201 5 fen--;
202 5 if(fen==-1)
203 5 fen=59;
204 5 write_sfm(7,fen);
205 5 write_com(0x80+0x40+7);
206 5 }
207 4 if(s1num==3)
208 4 {
209 5 shi--;
210 5 if(shi==-1)
211 5 shi=23;
212 5 write_sfm(4,shi);
213 5 write_com(0x80+0x40+4);
214 5 }
215 4 }
216 3 }
217 2 }
218 1 }
219 void main()
220 {
221 1 wr=0;
222 1 init();
223 1 while(1)
224 1 {
225 2 keyscan();
226 2
227 2 }
228 1 // while(1);
229 1 }
230
231 void timer0() interrupt 1
232 {
233 1 TH0=(65536-50000)/256;
234 1 TL0=(65536-50000)%256;
235 1 count++;
236 1 if(count==18)
237 1 {
238 2 count=0;
239 2 miao++;
240 2 if(miao==60)
C51 COMPILER V7.00 HJMCU 08/29/2009 23:21:22 PAGE 5
241 2 {
242 3 miao=0;
243 3 fen++;
244 3 if(fen==60)
245 3 {
246 4 fen=0;
247 4 shi++;
248 4 if(shi==24)
249 4 {
250 5 shi=0;
251 5 }
252 4 write_sfm(4,shi);
253 4 }
254 3 write_sfm(7,fen);
255 3 }
256 2 write_sfm(10,miao);
257 2
258 2 }
259 1 }
260
261
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 547 ----
CONSTANT SIZE = 29 ----
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 + -