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