📄 cc.lst
字号:
C51 COMPILER V7.06 CC 12/23/2008 10:16:27 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CC
OBJECT MODULE PLACED IN cc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE cc.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <absacc.h>
3 #include "intrins.h"
4 #define uchar unsigned char
5 #define uint unsigned int
6 unsigned char code Tab[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0x00};
7 unsigned char code Tabc[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
8 sbit Dat=P1^3;
9 sbit G=P1^1;
10 sbit SCK=P1^2;
11 sbit rck=P1^4;
12 sbit readkey=P1^0;
13 sbit scs= P1^5;
14 //sbit beer=P2^0;
15 #define REG_A XBYTE[0x030A]
16 #define REG_B XBYTE[0x030B]
17 #define REG_C XBYTE[0x030C]
18 #define REG_D XBYTE[0x030D]
19 uchar xdata *DS12887=0x0300;
20 uchar code PIAN_YI[6]={0,2,4,7,8,9, };/*-- 年、月、日、时、分、秒-- */
21 uchar idata DS12887_time[6],dao_time[3];
22 uchar c,v,k,key,k1,k2,k3,k4,dao[8],key_count;
23 uchar idata Time[10];/*-----提取时间各个位数据-----*/
24 void key_wait();
25 void delay()
26 {
27 1 uchar i,j,h;
28 1 for(i=2;i>0;i--)
29 1 for(j=3;j>0;j--)
30 1 for(h=100;h>0;h--);
31 1 }
32 void delay10(void)
33 {
34 1 unsigned char i,j,k;
35 1 for(i=30;i>0;i--)
36 1 for(j=40;j>0;j--)
37 1 for(k=240;k>0;k--);
38 1 }
39 ///void delayms(unsigned char a)
40 //{while(--a); }
41 void out(void)
42 {
43 1 rck=0;
44 1 _nop_();
45 1 rck=1;
46 1 }
47 void send_num(uchar num)
48 {
49 1 uchar j;
50 1 for(j=0;j<8;j++)
51 1 {
52 2 SCK=0;
53 2 Dat=num&0x80;
54 2 SCK=1;
55 2 num=num<<1;
C51 COMPILER V7.06 CC 12/23/2008 10:16:27 PAGE 2
56 2 }
57 1 SCK=0;
58 1 }
59 void seat0(uchar j,uchar i,uchar h)
60 {
61 1 uchar num,a;
62 1 G=1;
63 1 num=Tab[j];
64 1 send_num(Tab[h]);
65 1 send_num(num);
66 1 a=Tabc[i];
67 1 send_num(a);
68 1 G=0;
69 1 out();
70 1 }
71 uchar seat(uchar j,uchar i,uchar h)
72 {
73 1 uchar num,a,x0,x1,x2,x3;
74 1 G=1;
75 1 num=Tab[j];
76 1 send_num(Tab[h]);
77 1 send_num(num);
78 1 a=Tabc[i];
79 1 send_num(a);
80 1 G=0;
81 1 out();
82 1 delay();
83 1
84 1 if(readkey==0&&a==Tabc[0])
85 1 {
86 2 x0++;
87 2
88 2 if(x0==20)
89 2 {
90 3 x0=0;
91 3 return 1;
92 3 }
93 2 }
94 1 if(readkey==0&&a==Tabc[1])
95 1 {
96 2 x1++;
97 2 if(x1==20)
98 2 {
99 3 x1=0;
100 3 return 2;
101 3 }
102 2 }
103 1 if(readkey==0&&a==Tabc[2])
104 1 {
105 2 x2++;
106 2 if(x2==20)
107 2 {
108 3 x2=0;
109 3 return 3;
110 3 }
111 2 }
112 1 if(readkey==0&&a==Tabc[3])
113 1 {
114 2 x3++;
115 2 if(x3==20)
116 2 {
117 3 x3=0;
C51 COMPILER V7.06 CC 12/23/2008 10:16:27 PAGE 3
118 3 return 4;
119 3 }
120 2 }
121 1
122 1 }
123 void DS12887_Read(void) // 读取实时时间
124 {
125 1 uchar idata h,i;
126 1
127 1 do
128 1
129 1 {
130 2
131 2 h=REG_A;
132 2
133 2 }while(h&0x80);
134 1
135 1 for(i=0;i<6;i++)
136 1
137 1 {
138 2
139 2 DS12887_time[i]=*(DS12887+PIAN_YI[i]);
140 2
141 2 }
142 1
143 1 }
144 void set_p(uchar a,uchar j)
145 {
146 1 if( *(DS12887+a)+1>=0&&*(DS12887+a)+1<j)
147 1 {
148 2 *(DS12887+a)=*(DS12887+a)+1;
149 2
150 2 }
151 1 }
152 void set_m(uchar a,uchar j)
153 {
154 1 if( *(DS12887+a)-1>=0&&*(DS12887+a)-1<j)
155 1 {
156 2 *(DS12887+a)=*(DS12887+a)-1;
157 2
158 2 }
159 1 }
160 void read_timebit(uchar a)
161 {
162 1 DS12887_Read();
163 1 Time[0]=DS12887_time[0]%10;//秒个位0~9
164 1 Time[1]=DS12887_time[0]/10;//秒十位0~5
165 1 Time[3]=DS12887_time[1]%10;//分个位0~9
166 1 Time[4]=DS12887_time[1]/10;//分十位0~5
167 1 Time[6]=DS12887_time[2]%10;//时个位0~9
168 1 Time[7]=DS12887_time[2]/10;//时十位0~2
169 1 // Time[6]=DS12887_time[3]%10;//日个位0~9
170 1 // Time[7]=DS12887_time[3]/10;//日十位0~3
171 1 // Time[8]=DS12887_time[4]%10;//月个位0~9
172 1 // Time[9]=DS12887_time[4]/10;//月十位0~1
173 1 // Time[10]=DS12887_time[5]%10;//年个位0~9
174 1 // Time[11]=DS12887_time[5]/10;//年十位0~9
175 1 if(a==1)
176 1 {
177 2 dao[0]=dao_time[0]%10;
178 2 dao[1]=dao_time[0]/10;
179 2 dao[3]=dao_time[1]%10;
C51 COMPILER V7.06 CC 12/23/2008 10:16:27 PAGE 4
180 2 dao[4]=dao_time[1]/10;
181 2 dao[6]=dao_time[2]%10;
182 2 dao[7]=dao_time[2]/10;
183 2 }
184 1 }
185 void key_wait()
186 {
187 1 uchar m,i;
188 1 do
189 1 {
190 2
191 2 for(m=0;m<8;m++)
192 2 {
193 3 key=seat(Time[m],m,dao[m]);
194 3 }
195 2 }while(key==1);
196 1
197 1 }
*** WARNING C280 IN LINE 187 OF CC.C: 'i': unreferenced local variable
198 void change_0()
199 {
200 1 uchar i,j,m,add=2,key;
201 1 REG_A=0;
202 1 for(i=0;i<3;i++)
203 1 {
204 2 dao_time[i]=0;
205 2 }
206 1 for(i=80;i>0;i--)
207 1 {
208 2 for(m=0;m<8;m++)
209 2 {
210 3 key=seat(Time[m],m,dao[m]);
211 3
212 3 if(key==1)
213 3 {
214 4 //if(key_count==1)
215 4 k++;
216 4 key_wait();
217 4
218 4 }
219 3
220 3 if(key==2)
221 3 {
222 4 set_p(add,60);
223 4 }
224 3 if(key==3)
225 3 set_m(add,60);
226 3 if(key==4)
227 3 {
228 4 REG_A=0x20;
229 4 REG_B=0x06;
230 4 c=0;
231 4 }
232 3 if(k==0)
233 3 add=0;
234 3 if(k==1)
235 3 add=2;
236 3 if(k==2)
237 3 add=4;
238 3 if(k==3)
239 3 {
240 4 c=0;
C51 COMPILER V7.06 CC 12/23/2008 10:16:27 PAGE 5
241 4 REG_A=0x20;
242 4 REG_B=0x26;
243 4 }
244 3
245 3 }
246 2 }
247 1 for(j=80;j>0;j--)
248 1 {
249 2 for(m=0;m<8;m++)
250 2 {
251 3 switch(k)
252 3 {
253 4 case 0 :if(m==0||m==1)
254 4 {
255 5 key=seat(11,m,dao[m]);
256 5 }
257 4 else
258 4 key=seat(Time[m],m,dao[m]);break;
259 4 case 1:if(m==3||m==4)
260 4 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -