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