📄 12864eight.lst
字号:
C51 COMPILER V7.06 12864EIGHT 04/20/2009 16:29:20 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 12864EIGHT
OBJECT MODULE PLACED IN 12864eight.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864eight.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 sbit sda=P1^0;
5 sbit scl=P1^1;
6 sbit RS=P2^7;
7 sbit RW=P2^6;
8 sbit EN=P2^5;
9 sbit key1=P3^3;
10 sbit key2=P3^4;
11 sbit key3=P3^5;
12 sbit key4=P1^3;
13 sbit ACC0=ACC^0;
14 sbit ACC7=ACC^7;
15 sbit dsrs=P2^4;
16 sbit dscl=P3^7;
17 sbit IO=P3^2;
18 sbit feng=P3^6;
19 sbit kaiguan=P1^4;
20 int nian;
21 char shi,fen,miao,day,ri,yue,qian,bai,nqb,nsg,nshi,nfen,nmiao;
22 uchar num,sh,ge,shu,flag,i,shsh,gege,fs,fg,ss,sg,ys,ye,rqs,rqg,ns,ng,flag1,k;
23 uchar code table[]={"-"};
24 uchar code table1[]={"2009-04-13"};
25 uchar code table2[]={"0123456789"};
26 uchar code table3[]={"MONTUEWEDTHUFRISATSUN"};
27 uchar code table4[]={"闹钟 "};
28 //sbit PSB=P2^4;
29 void delay(uint x)
30 {
31 1 uint i,j;
32 1 for(j=0;j<x;j++)
33 1 for(i=0;i<110;i++);
34 1 }
35 void wcom(uchar com)
36 {
37 1 RS=0;
38 1 RW=0;
39 1 EN=0;
40 1 P0=com;
41 1 delay(5);
42 1 EN=1;
43 1 delay(5);
44 1 EN=0;
45 1 }
46 void wdata(uchar dat)
47 {
48 1 RS=1;
49 1 RW=0;
50 1 EN=0;
51 1 P0=dat;
52 1 delay(5);
53 1 EN=1;
54 1 delay(5);
55 1 EN=0;
C51 COMPILER V7.06 12864EIGHT 04/20/2009 16:29:20 PAGE 2
56 1 }
57 void pos(uchar x,uchar y)
58 {
59 1 uchar pos;
60 1 if(x==1)
61 1 {x=0x80;}
62 1 else if(x==2)
63 1 {x=0x90;}
64 1 else if(x==3)
65 1 {x=0x88;}
66 1 else if(x==4)
67 1 {x=0x98;}
68 1 pos=x+y;
69 1 wcom(pos);
70 1
71 1 }
72 void wadda(uchar x,uchar y,uchar date)
73 {
74 1 sh=date/10;
75 1 ge=date%10;
76 1 pos(x,y);
77 1 wdata(table2[sh]);
78 1 wdata(table2[ge]);
79 1 pos(x,y);
80 1 }
81 void wfen(uchar x,uchar y,uchar date)
82 {
83 1 sh=date/10;
84 1 ge=date%10;
85 1 pos(x,y);
86 1 wdata(':');
87 1 wdata(table2[sh]);
88 1 wdata(table2[ge]);
89 1 pos(x,y+1);
90 1 }
91 void wadnian(uchar x,uchar y,int date)
92 {
93 1 uchar qian,bai,sh,ge;
94 1 qian=date/1000;
95 1 bai=date%1000/100;
96 1 sh=date%100/10;
97 1 ge=date%10;
98 1 pos(x,y);
99 1 wdata(table2[qian]);
100 1 wdata(table2[bai]);
101 1 wdata(table2[sh]);
102 1 wdata(table2[ge]);
103 1 }
104 void wsfm(uchar x,uchar y,uchar shi,uchar fen,uchar miao)
105 {
106 1 uchar ss,sg,fs,fg,ms,mg;
107 1 pos(x,y);
108 1 ss=shi/10;
109 1 sg=shi%10;
110 1 fs=fen/10;
111 1 fg=fen%10;
112 1 ms=miao/10;
-
-
-
-
113 1 mg=miao%10;
C51 COMPILER V7.06 12864EIGHT 04/20/2009 16:29:20 PAGE 3
114 1 wdata(table2[ss]);
115 1 wdata(table2[sg]);
116 1 wdata(':');
117 1 wdata(table2[fs]);
118 1 wdata(table2[fg]);
119 1 wdata(':');
120 1 wdata(table2[ms]);
121 1 wdata(table2[mg]);
122 1 }
123 void wnyr(int nian,uchar yue,uchar ri)
124 {
125 1 uchar num;
126 1 wadnian(1,0,nian);
127 1 pos(1,2);
128 1 while(table[num]!='\0')
129 1 {
130 2 wdata(table[num]);
131 2 num++;
132 2 }
133 1 wadda(1,3,yue);
134 1 num=0;
135 1 pos(1,4);
136 1 while(table[num]!='\0')
137 1 {
138 2 wdata(table[num]);
139 2 num++;
140 2 }
141 1 wadda(1,5,ri);
142 1 pos(1,6);
143 1 wdata(0x20);
144 1 for(i=0;i<3;i++)
145 1 {
146 2 wdata(table3[i+3*day]);
147 2 }
148 1
149 1 }
150 void writeds(uchar date)
151 {
152 1 uchar i;
153 1 ACC=date;
154 1 for(i=8;i>0;i--)
155 1 {
156 2 IO=ACC0;
157 2 dscl=1;
158 2 dscl=0;
159 2 ACC=ACC>>1;
160 2
161 2 }
162 1
163 1 }
164 uchar readds()
165 {
166 1 uchar i;
167 1 for(i=8;i>0;i--)
168 1 {
169 2 ACC=ACC>>1;
170 2 ACC7=IO;
171 2 dscl=1;
172 2 dscl=0;
173 2 }
174 1 return(ACC);
175 1 }
C51 COMPILER V7.06 12864EIGHT 04/20/2009 16:29:20 PAGE 4
176 void write1302(uchar add,uchar date)
177 {
178 1 dsrs=0;
179 1 dscl=0;
180 1 dsrs=1;
181 1 writeds(add);
182 1 writeds(date);
183 1 dscl=1;
184 1 dsrs=0;
185 1 }
186 uchar read1302(uchar add)
187 {
188 1 uchar date;
189 1 dsrs=0;
190 1 dscl=0;
191 1 dsrs=1;
192 1 add++;
193 1 writeds(add);
194 1 date=readds();
195 1 dscl=1;
196 1 dsrs=0;
197 1 return (date);
198 1 }
199 void settime(uchar add,uchar date)
200 {
201 1 write1302(0x8e,0x00);
202 1 write1302(add,(date/10)<<4|(date%10));
203 1 write1302(0x8e,0x80);
204 1
205 1 }
206 void gettime()
207 {
208 1 uchar time;
209 1 time=read1302(0x80);
210 1 gege=time&0x0f;
211 1 shsh=(time&0x70)>>4;
212 1 miao=shsh*10+gege;
213 1 time=read1302(0x82);
214 1 fs=(time&0x70)>>4;
215 1 fg=time&0x0f;
216 1 fen=fs*10+fg;
217 1 time=read1302(0x84);
218 1 ss=(time&0x70)>>4;
219 1 sg=time&0x0f;
220 1 shi=ss*10+sg;
221 1 time=read1302(0x8a);
222 1 day=(time&0x07);
223 1 time=read1302(0x86);
224 1 rqs=(time&0x30)>>4;
225 1 rqg=(time&0x0f);
226 1 ri=rqs*10+rqg;
227 1 time=read1302(0x88);
228 1 ys=(time&0x10)>>4;
229 1 ye=(time&0x0f);
230 1 yue=ys*10+ye;
231 1 time=read1302(0x8c);
232 1 ns=(time&0xf0)>>4;
233 1 ng=(time&0x0f);
234 1 nsg=ns*10+ng;
235 1 nian=nsg+nqb*100;
236 1 }
237 void initds()
C51 COMPILER V7.06 12864EIGHT 04/20/2009 16:29:20 PAGE 5
238 {
239 1 uchar second=read1302(0x80);
240 1 if(second&0x80)
241 1 settime(0x80,0);//设定几秒
242 1 settime(0x82,4);//设定几分
243 1 settime(0x84,8);//设定几时
244 1 settime(0x86,19);//设定几号
245 1 settime(0x88,4);//设定几月
246 1 nian=0;
247 1 settime(0x8c,88);//设定几年
248 1 settime(0x8a,6);//设定星期几
249 1 }
250 void init()
251 {
252 1 wcom(0x30);//基本指令操作
253 1 delay(5);
254 1 wcom(0x0c);//显示开关坐标
255 1 delay(5);
256 1 wcom(0x01);//清屏
257 1 delay(5);
258 1 }
259 void delay2()
260 {;;}
261 void delay1(uchar x)
262 {
263 1 uchar a,b;
264 1 for(a=x;a>0;a--)
265 1 for(b=100;b>0;b--);
266 1 }
267 void in()
268 {
269 1 sda=1;
270 1 // delay();
271 1 scl=1;
272 1 // delay();
273 1 }
274 void start()
275 {
276 1 sda=1;
277 1 delay2();
278 1 scl=1;
279 1 delay2();
280 1 sda=0;
281 1 delay2();
282 1 }
283 void stop()
284 {
285 1 sda=0;
286 1 delay2();
287 1 scl=1;
288 1 delay2();
289 1 sda=1;
290 1 delay2();
291 1 }
292 void respond()
293 {
294 1 uchar i;
295 1 scl=1;
296 1 delay2();
297 1 while((sda==1)&&(i<250))i++;
298 1 scl=0;
299 1 delay2();
C51 COMPILER V7.06 12864EIGHT 04/20/2009 16:29:20 PAGE 6
300 1 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -