📄 5.lst
字号:
C51 COMPILER V8.02 5 01/04/2007 13:48:40 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 5
OBJECT MODULE PLACED IN 5.OBJ
COMPILER INVOKED BY: d:\Keil 8\C51\BIN\C51.EXE 5.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X51.H>
2
3 unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
4 0x66,0x6d,0x7d,0x07,
5 0x7f,0x6f,0x77,0x7c,
6 0x39,0x5e,0x79,0x71,0x40,0x00};
7 unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
8 0xef,0xdf,0xbf,0x7f};
9 unsigned char dispbuf[8]={0,0,16,0,0,16,0,0};
10 unsigned char dispcun[10][8];
11
12 unsigned char dispbitcnt;
13 unsigned char second;
14 unsigned char minite;
15 unsigned char hour;
16 unsigned int tcnt;
17 unsigned char mstcnt;
18 unsigned int key;
19 unsigned char cun=0,b,a;
20
21 delay(int t)
22 {
23 1 int i,j;
24 1 for(i=0;i<t;i++)
25 1 for(j=0;j<100;j++);
26 1 }
27
28 char scan_key()
29 {
30 1 char i,j,find;
31 1 int ini,inj;
32 1 char in;
33 1 find=0;
34 1 for(i=0;i<4;i++)
35 1 {
36 2 P0=dispbitcode[i] ;
37 2 delay(30);
38 2 in=P0;
39 2 in=in>>4;
40 2 in=in|0xf0;
41 2 for(j=0;j<4;j++)
42 2 if(dispbitcode[j]==in)
43 2 {
44 3 find=1;
45 3 inj=j,ini=i;
46 3 }
47 2 }
48 1 if(find==0) return 0;
49 1 key=ini*4+inj;
50 1 return find;
51 1 }
52
53 void main()
54 {
55 1 char m,n;
C51 COMPILER V8.02 5 01/04/2007 13:48:40 PAGE 2
56 1 for(m=0;m<10;m++)
57 1 {
58 2 for(n=0;n<8;n++)
59 2 {
60 3 if(n==2|n==5) dispcun[m][n]=16;
61 3 else dispcun[m][n]=1;
62 3 }
63 2 }
64 1 TMOD=0x02;
65 1 TH0=0x06;
66 1 TL0=0x06;
67 1 TR0=1;
68 1 ET0=1;
69 1 EA=1;
70 1 P3_7=0;
71 1 P2=dispbitcode[dispbitcnt] ;
72 1 while(1)
73 1 {
74 2 if(scan_key()==1&key==12)
75 2 {
76 3 tiaoshi();
*** WARNING C206 IN LINE 76 OF 5.C: 'tiaoshi': missing function-prototype
77 3 }
78 2 if(scan_key()==1&key==13)
79 2 {
80 3 cunshi();
*** WARNING C206 IN LINE 80 OF 5.C: 'cunshi': missing function-prototype
81 3 }
82 2 if(a==1)
83 2 {
84 3 for(m=0;m<=9;m++)
85 3 {
86 4 for(n=7;n>2;n--)
87 4 {
88 5 if(n==5) continue ;
89 5 if(dispcun[m][n]!=dispbuf[n]) break;
90 5 }
91 4 if(n==2) dadian();
*** WARNING C206 IN LINE 91 OF 5.C: 'dadian': missing function-prototype
92 4 }
93 3 }
94 2 }
95 1 }
96
97 get_key()
98 {
99 1 while(1) if(scan_key()!=0) break;
100 1 }
101
102 fan_key()
103 {
104 1 while(1) if(scan_key()==0) break;
105 1 }
106
107 void t0(void) interrupt 1 using 0
108 {
109 1 mstcnt++;
110 1 if(mstcnt==8)
111 1 {
112 2 mstcnt=0;
113 2 if(cun==0)
114 2 {
C51 COMPILER V8.02 5 01/04/2007 13:48:40 PAGE 3
115 3 /* if(i!=0&i==dispbitcnt)
116 3 {
117 3 a++;
118 3 if(a=100)
119 3 {
120 3 a=0;f=~f;
121 3 }
122 3 if(f==0) P1=dispcode[16];
123 3 else P1=dispcode[dispbuf[dispbitcnt]] ;
124 3
125 3 }
126 3 else
127 3 */
128 3 P1=dispcode[dispbuf[dispbitcnt]] ;
129 3 }
130 2 else
131 2 {
132 3 P1=dispcode[dispcun[b][dispbitcnt]] ;
133 3 }
134 2 P2=dispbitcode[dispbitcnt] ;
135 2 dispbitcnt++;
136 2 if(dispbitcnt==8)
137 2 {
138 3 dispbitcnt=0;
139 3 }
140 2 }
141 1 tcnt++;
142 1 if(tcnt==3700)
143 1 {
144 2 tcnt=0;
145 2 second++;
146 2 if(second>=60)
147 2 {
148 3 second=0;
149 3 minite++;
150 3 if(minite>=60)
151 3 {
152 4 minite=0;
153 4 hour++;
154 4 if(hour>=24)
155 4 {
156 5 hour=0;
157 5 }
158 4 }
159 3 }
160 2 dispbuf[0]=second%10;
161 2 dispbuf[1]=second/10;
162 2 dispbuf[3]=minite%10;
163 2 dispbuf[4]=minite/10;
164 2 dispbuf[6]=hour%10;
165 2 dispbuf[7]=hour/10;
166 2 }
167 1 }
168
169 tiaoshi()
170 {
171 1 char i;
172 1 P3_0=0;
173 1 fan_key();
174 1 for(i=7;i>=0;i--)
175 1 {
176 2 switch(i)
C51 COMPILER V8.02 5 01/04/2007 13:48:40 PAGE 4
177 2 {
178 3 case 7: get_key(); if(key>2) {key=2;} hour=key*10; break;
179 3 case 6: get_key(); if(key>9) {key=9;} hour=hour+key;
180 3 if(hour>24) {hour=23;} break;
181 3 case 4: get_key(); if(key>5) {key=5;} minite=key*10; break;
182 3 case 3: get_key(); if(key>9) {key=9;} minite=minite+key; break;
183 3 case 1: get_key(); if(key>5) {key=5;} second=key*10; break;
184 3 case 0: get_key(); if(key>9) {key=9;} second=second+key; break;
185 3 }
186 2 fan_key();
187 2 }
188 1 P3_0=1;
189 1 }
190
191 cunshi()
192 {
193 1 char i;
194 1 P3_1=0;
195 1 fan_key() ;
196 1 cun=1;
197 1 a=1;
198 1 for(b=0;b<10;b++)
199 1 {
200 2 for(i=7;i>=0;i--)
201 2 {
202 3 switch(i)
203 3 {
204 4 case 7: get_key(); if(key==15) {fan_key(); goto loop;}
205 4 else /*if(key>2){key=2;} */ dispcun[b][i]=key; break;
206 4 case 6: get_key();/* if(key>3&dispcun[b][i+1]>1) dispcun[b][i]=3;// break;
207 4 else if(key>9&dispcun[b][i+1]<2) dispcun[b][i]=9;// break;
208 4 else */ dispcun[b][i]=key; break;
209 4 case 4: get_key(); /*if(key>5){key=5;} */dispcun[b][i]=key; break;
210 4 case 3: get_key(); /*if(key>9){key=9;} */dispcun[b][i]=key; break;
211 4 case 1: if(b==9) dispcun[b][i]=1;
212 4 else dispcun[b][i]=0; break;
213 4 case 0: if(b==9) dispcun[b][i]=0;
214 4 else dispcun[b][i]=b+1; break;
215 4 }
216 3 fan_key();
217 3 }
218 2 loop: 1;
*** WARNING C275 IN LINE 218 OF 5.C: expression with possibly no effect
219 2 }
220 1 b=9 ;
221 1 while(1)
222 1 if(scan_key()==1&key==14)
223 1 {
224 2 cun=0; P3_1=1;break;
225 2 }
226 1 }
227
228 dadian()
229 {
230 1 P3_7=1;
231 1 P3_6=0;
232 1 delay(8000);
233 1 P3_7=0;
234 1 P3_6=1;
235 1 }
236
C51 COMPILER V8.02 5 01/04/2007 13:48:40 PAGE 5
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1022 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 108 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -