📄 1_2.lst
字号:
C51 COMPILER V7.07 1_2 12/01/2008 21:24:44 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE 1_2
OBJECT MODULE PLACED IN 1_2.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE 1_2.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #define uint unsigned int
3 #define uchar unsigned char
4 #define LEDPORT P0
5
6 uchar numdu,tt,temp01,temp02,shiwan,wan,qian,bai,shi,ge;
7 uint temp;
8 sbit dula=P2^7;
9 sbit wela=P2^6;
10 sbit keyfen=P2^3;
11 sbit keyshi=P2^1;
12 sbit dian=P2^4;
13 sbit SCLK=P3^2;
14 sbit IO=P3^3;
15 sbit RST=P3^4;
16
17 sbit ACC7=ACC^7;
18 sbit ACC0=ACC^0;
19
20 uchar times[7]={25,33,23,6,11,2,0x07};//用来存放时间???
21 uchar KEY=0;
22 void write_1302_byte(uchar d);//向1302定入一字节数据D
23 uchar read_1302_byte(void);//从1302读出一字节数据并返回
24 void write_1302_reg(uchar add,uchar d);//向1302地址ADD处写入数据D
25 uchar read_1302_reg(uchar add);//向1302地址ADD处读出数据并返回
26 void write_1302_time(uchar*time);//设置时间
27 void read_1302_time(uchar time[]);//读出时间
28
29 uchar code table[]={
30 0xc0,0xf9,0xa4,0xb0,
31 0x99,0x92,0x82,0xf8,
32 0x80,0x90,0x88,0x83,
33 0xc6,0xa1,0x86,0x8e};
34 //uchar code tablewe[]={
35 //0x01,0x02,0x04,0x08,0x10,0x20};
36 //00000001,00000010,00000100
37 //00001000,00010000,00100000
38 void display(uchar shi,uchar ge);
39 void display01(uchar qian,uchar bai);
40 void display02(uchar shiwan,uchar wan);
41 void delay(uint z);
42 void main()
43 {
44 1
45 1 temp=read_1302_time();//《256
*** WARNING C209 IN LINE 45 OF 1_2.C: '_read_1302_time': too few actual parameters
*** ERROR C193 IN LINE 45 OF 1_2.C: '=': illegal type conversion from/to 'void'
46 1 temp01=59;
47 1 temp02=19;
48 1 numdu=0;
49 1 while(1)
50 1 {
51 2
52 2
53 2 display02(shiwan,wan);
C51 COMPILER V7.07 1_2 12/01/2008 21:24:44 PAGE 2
54 2 display01(qian,bai);
55 2 display(shi,ge);
56 2
57 2
58 2 }
59 1
60 1 }
61
62 void delay(uint z)
63 {
64 1 uint x,y;
65 1 for(x=z;x>0;x--)
66 1 for(y=110;y>0;y--);
67 1 }
68 void display(uchar shi,uchar ge)
69 {
70 1 shi=temp/10;
71 1 ge=temp%10;
72 1
73 1 dula=1;
74 1 P0=table[shi];
75 1 dula=0;
76 1
77 1 wela=1;
78 1 P0=0x10;
79 1 delay(1);
80 1
81 1 dula=1;
82 1 P0=table[ge];
83 1 dula=0;
84 1
85 1 wela=1;
86 1 P0=0x20;
87 1 delay(1);
88 1
89 1 }
90 void display01(uchar qian,uchar bai)
91 {
92 1 qian=temp01/10;
93 1 bai=temp01%10;
94 1
95 1 dula=1;
96 1 P0=table[qian];
97 1 dula=0;
98 1
99 1 wela=1;
100 1 P0=0x04;
101 1 delay(1);
102 1
103 1 dula=1;
104 1 P0=table[bai];
105 1 dula=0;
106 1
107 1 wela=1;
108 1 P0=0x08;
109 1 delay(1);
110 1 }
111 void display02(uchar shiwan,uchar wan)
112 {
113 1 shiwan=temp02/10;
114 1 wan=temp02%10;
115 1 dula=1;
C51 COMPILER V7.07 1_2 12/01/2008 21:24:44 PAGE 3
116 1 P0=table[shiwan];
117 1 dula=0;
118 1
119 1 wela=1;
120 1 P0=0x01;
121 1 delay(1);
122 1
123 1 dula=1;
124 1 P0=table[wan];
125 1 dula=0;
126 1
127 1 wela=1;
128 1 P0=0x02;
129 1 delay(1);
130 1 }
131
132 /*===================================*/
133 /* 向1302当前地址处写入1字节数据 */
134 /*===================================*/
135 void write_1302_byte(uchar d)
136 {
137 1 uchar i;
138 1 ACC=d;
139 1 for(i=8;i>0;i--)
140 1 {
141 2 IO=ACC0;
142 2 SCLK=1;
143 2 SCLK=0;
144 2 ACC=ACC>>1;
145 2 }
146 1 }
147
148 /*===================================*/
149 /* 向1302当前地址处读出1字节数据 */
150 /*===================================*/
151
152 uchar read_1302_byte(void)
153 {
154 1 uchar i;
155 1 for(i=8;i>0;i--)
156 1 {
157 2 ACC=ACC>>1;
158 2 ACC7=IO;
159 2 SCLK=1;
160 2 SCLK=0;
161 2 }
162 1 return (ACC);
163 1 }
164 /*===================================*/
165 /* 把数据DATA写入1302寄存器ADD处 */
166 /*===================================*/
167 void write_1302_reg(uchar add,uchar d)
168 {
169 1 RST=0;
170 1 SCLK=0;
171 1 RST=1;
172 1 write_1302_byte(add);
173 1 write_1302_byte(d);
174 1 SCLK=1;
175 1 RST=0;
176 1 }
177 /*===================================*/
C51 COMPILER V7.07 1_2 12/01/2008 21:24:44 PAGE 4
178 /* 读取寄存器ADD处的值 */
179 /*===================================*/
180 uchar read_1302_reg(uchar add)
181 {
182 1 uchar d;
183 1 RST=0;
184 1 SCLK=0;
185 1 RST=1;
186 1 write_1302_byte(add);
187 1 d=read_1302_byte();
188 1 SCLK=1;
189 1 RST=0;
190 1 return (d);
191 1 }
192 /*===================================*/
193 /* 设置时间,TIME[0]-time[6]数据存放为:秒,分,时,日,月,星期,年 */
194 /*===================================*/
195 void write_1302_time(uchar *time)
196 {
197 1 uchar add=0x80;
198 1 uchar i;
199 1 uchar timeBCD[7];
200 1 bdata uchar l,h;
201 1 for(i=0;i<7;i++)
202 1 {
203 2 l=time[i]%10;
204 2 h=time[i]/10;
205 2 timeBCD[i]=h*16+l;
206 2 }
207 1 write_1302_reg(0x8e,0x00);
208 1 for(i=0;i<7;i++)
209 1 {
210 2 write_1302_reg(add,timeBCD[i]);
211 2 add+=2;
212 2 }
213 1 write_1302_reg(0x8e,0x80);
214 1 }
215 /*===================================*/
216 /* 读取当前时间 */
217 /*===================================*/
218 void read_1302_time(uchar time[])
219 {
220 1 uchar i;
221 1 uchar add=0x81;
222 1 bdata uchar l,h;
223 1 write_1302_reg(0x8e,0x00);
224 1 for(i=0;i<7;i++)
225 1 {
226 2 time[i]=read_1302_reg(add);
227 2 l=time[i]&0x0f;
228 2 h=(time[i]>>4)&0x0f;
229 2 time[i]=h*10+l;
230 2 add+=2;
231 2 }
232 1 }
233
C51 COMPILATION COMPLETE. 1 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -