📄 text1.lst
字号:
C51 COMPILER V7.50 TEXT1 04/18/2008 20:12:11 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51st.H>
2 #include <stdio.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 sbit DP =P1^0;//
7 sbit COM1 =P1^1;
8 sbit COM2 =P1^2;
9 sbit COM3 =P1^3;
10 sbit ACC_Detect =P1^4;//ACC Detect
11 sbit INPUT =P1^5;//voltage detect
12 sbit SW =P1^6;
13 sbit LED_COM =P1^7;
14 /********************************************/
15 //引脚P3的定义
16 sbit RedLED1 =P3^0;
17 sbit RedLED2 =P3^1;//
18 sbit GreenLED1 =P3^2;
19 sbit GreenLED2 =P3^3;//
20 sbit BlueLED1 =P3^4;//
21 sbit BlueLED2 =P3^5;//
22
23 uchar x,y,z,t,led,LedFlag,Delay;
24 uint count;
25 uchar code dig[]={0x3f,0x06,0x9B,0x8F,0xA6,0xAD,0xBD,0x47,0xBF,0xAF};
26
27 void mDelay(uchar c)//延时调用
28 {
29 1 uchar i;
30 1 for(i=0;i<c;i++);
31 1 }
32
33 void NmDelay(uchar c)
34 {
35 1 while(c--)
36 1 {
37 2 mDelay(255);
38 2 }
39 1 }
40
41 void Timer_Init()
42 {
43 1 TMOD=0x01;
44 1 TCON=0x00;
45 1 ET0=1;
46 1 // ET1=1;
47 1 EA=1;
48 1 // TR1=1;
49 1 }
50
51 void series_init()
52 {
53 1 SCON=0x50;//0xD8; //0xD0/M=3,REN=1; D0
54 1 PCON=0x00;
55 1 TI=1;
C51 COMPILER V7.50 TEXT1 04/18/2008 20:12:11 PAGE 2
56 1 }
57
58
59 void Send_Char(uchar c)
60 {
61 1 TI=0;
62 1 SBUF=c;
63 1 while(TI==0);
64 1 TI=0;
65 1 }
66
67 /*void Time1(void) interrupt 3
68 {
69 count++;
70 if(count>62)TR1=0;
71 else
72 TR1=1;
73
74 }*/
75
76
77
78 void Num_Disp(uchar a,uchar b,uchar c)
79 {
80 1 x=a;
81 1 y=b;
82 1 z=c;
83 1 TR0=1;//启动定时器
84 1 }
85
86 void Display(uint a)
87 {
88 1 uchar i;
89 1 i=((a-102)*61/70);
90 1 x=a/100;
91 1 y=i/10;
92 1 z=(i)%10;
93 1 Num_Disp(x,y,z);
94 1 }
95
96 void Time0(void) interrupt 1
97 {
98 1 TR0=0;
99 1 count++;
100 1 LED_COM=0;
101 1 P3=dig[x];
102 1 DP=0;
103 1 COM1=1;
104 1 NmDelay(8);
105 1 COM1=0;
106 1 P3=dig[y];
107 1 DP=1;
108 1 COM2=1;
109 1 NmDelay(8);
110 1 COM2=0;
111 1 P3=dig[z];
112 1 DP=0;
113 1 COM3=1;
114 1 NmDelay(8);
115 1 COM3=0;
116 1 P3=led;
117 1 LED_COM=1;
C51 COMPILER V7.50 TEXT1 04/18/2008 20:12:11 PAGE 3
118 1 TL0=0xFF;
119 1 TH0=0xE0;
120 1 TR0=1;
121 1 }
122
123 void WatchDog_Init()
124 {
125 1 WDT_CONTR=0x37;
126 1 }
127
128 void WatchDog_Clear()
129 {
130 1 WDT_CONTR=0x37;
131 1 }
132
133 void Sys_Init()
134 {
135 1 P1M0=0x30;//设置p1.4、p1.5为输入高阻
136 1 P1M1=0x00;
137 1 P1&=0x00;
138 1 Timer_Init();
139 1 ADC_CONTR=0xE5;
140 1 mDelay(100);
141 1 ADC_CONTR|=0x08;
142 1 LedFlag=0;
143 1 }
144
145 uchar Ad_Detect()
146 {
147 1 uchar i=0;
148 1 ADC_CONTR&=0xEF;
149 1 ADC_CONTR|=0x08;
150 1 while(!(ADC_CONTR&0x10))
151 1 {
152 2 i++;
153 2 if(i>5)return 0;
154 2 mDelay(10);
155 2 }
156 1 return ADC_DATA;
157 1 }
158
159 void Led_Change(uchar n)
160 {
161 1 uchar a,b;
162 1 switch(n)
163 1 {
164 2 case 1:
165 2 led>>=1;
166 2 if(led==0)led=0x20;
167 2 break;
168 2 case 2:
169 2 led<<=1;
170 2 if(led>0x20)led=0x01;
171 2 break;
172 2 case 3:
173 2 a=led<<(8-n);
174 2 b=led>>1;
175 2 led=a|b;
176 2 break;
177 2 case 4:
178 2 a=led<<(8-n);
179 2 b=led>>2;
C51 COMPILER V7.50 TEXT1 04/18/2008 20:12:11 PAGE 4
180 2 led=a|b;
181 2 break;
182 2 case 5:
183 2 a=(led&0x07)>>1;
184 2 b=(led&0x38)<<1;
185 2 led=a|b;
186 2 if(led>0x40||led<1)
187 2 led=0x0c;
188 2 break;
189 2 case 6:
190 2 if(led>0x40||led<1||led==0x0C)
191 2 {
192 3 led=0x21;
193 3 break;
194 3 }
195 2 else
196 2 {
197 3 a=(led&0x07)<<1;
198 3 b=(led&0x38)>>1;
199 3 led=a|b;
200 3 break;
201 3 }
202 2 case 7:
203 2 led=~led;
204 2 break;
205 2 default: break;
206 2
207 2 }
208 1
209 1 }
210
211 void main(void)
212 {
213 1 uchar Data,temp;
214 1 Sys_Init();
215 1 WatchDog_Init();
216 1 Send_Char('O');
217 1 Send_Char('K');
218 1 Send_Char('!');
219 1 while(1)
220 1 {
221 2 while(1)
222 2 {
223 3 WatchDog_Clear();
224 3 mDelay(10);
225 3 if(Ad_Detect()!=0) Data=Ad_Detect();
226 3 if(Data>0x65&&Data<0xA5&&ACC_Detect==1)
227 3 {
228 4 if(count>3876)
229 4 {
230 5 if((Data<(temp+3))&&(Data>(temp-3))) temp=Data;
231 5 else break;//continue;
232 5 }
233 4 else break;
234 4
235 4 }
236 3 NmDelay(255);
237 3 Send_Char(0x88);
238 3 }
239 2
240 2 count=0;
241 2 LedFlag=0;
C51 COMPILER V7.50 TEXT1 04/18/2008 20:12:11 PAGE 5
242 2 SW=1;
243 2 while(1)
244 2 {
245 3 WatchDog_Clear();
246 3 if(Ad_Detect()!=0) temp=Ad_Detect();
247 3 if(temp<0x65||temp>0xA5||ACC_Detect==0||count>3876)
248 3 {
249 4 TR0=0;
250 4 SW=0;
251 4 P3=0;
252 4 LED_COM=0;
253 4 break;
254 4 }
255 3 else if((temp>(Data+3))||(temp<(Data-3)))
256 3 {
257 4 TR0=0;
258 4 count=0;
259 4 TR0=1;
260 4 }
261 3 Data=temp;
262 3 if(temp>0x64&&temp<0x6E)
263 3 {
264 4 if(LedFlag!=1)
265 4 {
266 5 LedFlag=1;
267 5 led=0x20;
268 5 Delay=60;
269 5 }
270 4 else
271 4 Led_Change(1);
272 4 }
273 3 else if(temp>0x6D&&temp<0x77)
274 3 {
275 4 if(LedFlag!=2)
276 4 {
277 5 LedFlag=2;
278 5 led=0x01;
279 5 Delay=60;
280 5 }
281 4 else
282 4 Led_Change(2);
283 4 }
284 3 else if(temp>0x76&&temp<0x80)
285 3 {
286 4 if(LedFlag!=3)
287 4 {
288 5 LedFlag=3;
289 5 led=0x09;
290 5 Delay=130;
291 5 }
292 4 else
293 4 Led_Change(3);
294 4 }
295 3 else if(temp>0x7F&&temp<0x89)
296 3 {
297 4 if(LedFlag!=4)
298 4 {
299 5 LedFlag=4;
300 5 led=0x09;
301 5 Delay=130;
302 5 }
303 4 else
C51 COMPILER V7.50 TEXT1 04/18/2008 20:12:11 PAGE 6
304 4 Led_Change(4);
305 4 }
306 3 else if(temp>0x88&&temp<0x92)
307 3 {
308 4 if(LedFlag!=5)
309 4 {
310 5 LedFlag=5;
311 5 led=0x0C;
312 5 Delay=100;
313 5 }
314 4 else
315 4 Led_Change(5);
316 4 }
317 3 else if(temp>0x91&&temp<0x9B)
318 3 {
319 4 if(LedFlag!=6)
320 4 {
321 5 LedFlag=6;
322 5 led=0x21;
323 5 Delay=150;
324 5 }
325 4 else
326 4 Led_Change(6);
327 4 }
328 3 else
329 3 {
330 4 if(LedFlag!=7)
331 4 {
332 5 LedFlag=7;
333 5 led=0x55;
334 5 Delay=190;
335 5 }
336 4 else
337 4 Led_Change(7);
338 4 }
339 3 P3=led;
340 3 LED_COM=1;
341 3 NmDelay(Delay);
342 3 Display(temp);
343 3 //Send_Char(0x88);
344 3 }
345 2 }
346 1 }
347
*** WARNING C316 IN LINE 347 OF Text1.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 942 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -