12864five.lst
来自「就是想下载一些东西啊」· LST 代码 · 共 824 行 · 第 1/3 页
LST
824 行
C51 COMPILER V7.06 12864FIVE 04/20/2009 14:14:32 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 12864FIVE
OBJECT MODULE PLACED IN 12864five.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864five.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[]={"2009-04-13"};
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 12864FIVE 04/20/2009 14:14:32 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(int nian,uchar yue,uchar ri)
112 {
113 1 wadnian(1,0,nian);
C51 COMPILER V7.06 12864FIVE 04/20/2009 14:14:32 PAGE 3
114 1 wadda(1,3,yue);
115 1 wadda(1,5,ri);
116 1 pos(1,6);
117 1 wdata(0x20);
118 1 for(i=0;i<3;i++)
119 1 {
120 2 wdata(table3[i+3*day]);
121 2 }
122 1
123 1 }
124 void writeds(uchar date)
125 {
126 1 uchar i;
127 1 ACC=date;
128 1 for(i=8;i>0;i--)
129 1 {
130 2 IO=ACC0;
131 2 dscl=1;
132 2 dscl=0;
133 2 ACC=ACC>>1;
134 2
135 2 }
136 1
137 1 }
138 uchar readds()
139 {
140 1 uchar i;
141 1 for(i=8;i>0;i--)
142 1 {
143 2 ACC=ACC>>1;
144 2 ACC7=IO;
145 2 dscl=1;
146 2 dscl=0;
147 2 }
148 1 return(ACC);
149 1 }
150 void write1302(uchar add,uchar date)
151 {
152 1 dsrs=0;
153 1 dscl=0;
154 1 dsrs=1;
155 1 writeds(add);
156 1 writeds(date);
157 1 dscl=1;
158 1 dsrs=0;
159 1 }
160 uchar read1302(uchar add)
161 {
162 1 uchar date;
163 1 dsrs=0;
164 1 dscl=0;
165 1 dsrs=1;
166 1 add++;
167 1 writeds(add);
168 1 date=readds();
169 1 dscl=1;
170 1 dsrs=0;
171 1 return (date);
172 1 }
173 void settime(uchar add,uchar date)
174 {
175 1 write1302(0x8e,0x00);
C51 COMPILER V7.06 12864FIVE 04/20/2009 14:14:32 PAGE 4
176 1 write1302(add,(date/10)<<4|(date%10));
177 1 write1302(0x8e,0x80);
178 1
179 1 }
180 void gettime()
181 {
182 1 uchar time;
183 1 time=read1302(0x80);
184 1 gege=time&0x0f;
185 1 shsh=(time&0x70)>>4;
186 1 miao=shsh*10+gege;
187 1 time=read1302(0x82);
188 1 fs=(time&0x70)>>4;
189 1 fg=time&0x0f;
190 1 fen=fs*10+fg;
191 1 time=read1302(0x84);
192 1 ss=(time&0x70)>>4;
193 1 sg=time&0x0f;
194 1 shi=ss*10+sg;
195 1 time=read1302(0x8a);
196 1 day=(time&0x07);
197 1 time=read1302(0x86);
198 1 rqs=(time&0x30)>>4;
199 1 rqg=(time&0x0f);
200 1 ri=rqs*10+rqg;
201 1 time=read1302(0x88);
202 1 ys=(time&0x10)>>4;
203 1 ye=(time&0x0f);
204 1 yue=ys*10+ye;
205 1 time=read1302(0x8c);
206 1 ns=(time&0xf0)>>4;
207 1 ng=(time&0x0f);
208 1 nsg=ns*10+ng;
209 1 nian=nsg+nqb*100;
210 1 }
211 void initds()
212 {
213 1 uchar second=read1302(0x80);
214 1 if(second&0x80)
215 1 settime(0x80,0);//设定几秒
216 1 settime(0x82,4);//设定几分
217 1 settime(0x84,8);//设定几时
218 1 settime(0x86,19);//设定几号
219 1 settime(0x88,4);//设定几月
220 1 nian=0;
221 1 settime(0x8c,88);//设定几年
222 1 settime(0x8a,6);//设定星期几
223 1 }
224 void init()
225 {
226 1 wcom(0x30);//基本指令操作
227 1 delay(5);
228 1 wcom(0x0c);//显示开关坐标
229 1 delay(5);
230 1 wcom(0x01);//清屏
231 1 delay(5);
232 1 }
233 void keyscan()
234 {
235 1 if(flag==0)
236 1 {
237 2 if(key2==0)
C51 COMPILER V7.06 12864FIVE 04/20/2009 14:14:32 PAGE 5
238 2 {
239 3 delay(10);
240 3 if(key2==0)
241 3 while(!key2);
242 3 flag1=0;
243 3 pos(4,0);
244 3 for(num=0;num<16;num++)
245 3 {
246 4 wdata(table4[num]);
247 4 }
248 3 }
249 2 if(key3==0)
250 2 {
251 3 delay(10);
252 3 if(key3==0)
253 3 while(!key3);
254 3 flag1=0;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?