📄 main.lst
字号:
219 1 FeedWD = 0; //喂狗引脚
220 1 LED1 = 0; //指示UART是否正在发送数据
221 1 LED2 = 0; //单片机指示灯,由TIMER0定时控制
222 1 LED3 = 0; //暂无定义
223 1 }
224
225
226 void Timer0_Int(void) interrupt 1 using 1 //TIMER0中断函数
227 {
228 1 uchar i;
229 1 EA =0;
230 1 TF0 = 0;
231 1 TH0 = 0X04; //初始化定时器0高8位
232 1 TL0 = 0X06; //初始化定时器0低8位
233 1 if(time_u>0) time_u--;
234 1 i++;
235 1 if(i ==3)
236 1 {
237 2 i =0;
238 2 Timer_Int_ID = 1;
239 2 LED2 = !LED2; //指示单片机的状态
240 2 }
241 1
C51 COMPILER V7.10 MAIN 08/04/2006 15:38:10 PAGE 5
242 1
243 1 TR0 = 1;
244 1 EA =1;
245 1 }
246
247
248 void main ()
249 {
250 1 uchar i;
251 1 uchar k;
252 1 Timer0_Init();
253 1 CPU_IO_Int();
254 1 Uart_Init();
255 1 Interrupt_Init();
256 1 len=0;
257 1 Delay();
258 1 COM = 0XD1;
259 1 do
260 1 {
261 2 ACC=COM;
262 2 }while(clflag ==1);
263 1 COM = 0X04;
264 1 COM = 0X2C;
265 1 state=0;
266 1
267 1 while(1)
268 1 {
269 2
270 2 //------------ad---转换-----------------------------------------
271 2 if(Timer_Int_ID == 1)
272 2 {
273 3
274 3 if((P3&0x20)==1) { Table[5] = Table[5]&0xFD; }
275 3 else { Table[5] |=0x02; }
276 3 if((P3&0x40)==1) { Table[5] = Table[5]&0xFE; }
277 3 else { Table[5] |=0x01; }
278 3
279 3 }
280 2
281 2 //---------------------------//
282 2 if(KeyBoard_Int_ID==1)
283 2 {
284 3 uchar i;
285 3 KeyBoard_Int_ID = 0;
286 3 for(i=0;i<4;i++)//接收按键值
287 3 {
288 4 COM = 0X40 +i;
289 4 ab[i] = DAT;
290 4 }
291 3 for(i=0;i<7;i++){ Tbak[i]=Table[i];} //bak
292 3
293 3
294 3 if((state&0x80)==0x80) // .7=1有暗盒状态
295 3 {
296 4 if( All_p ==1) //全片
297 4 { ; }
298 4 else { ; }
299 4 if( Out_p ==1) //出片
300 4 { ; }
301 4 else { ; }
302 4 if( H_2 ==1) { ; } //横向2分隔
303 4 else { }
C51 COMPILER V7.10 MAIN 08/04/2006 15:38:10 PAGE 6
304 4 if( V_2 ==1) { ; } //纵向2分隔
305 4 else { ;}
306 4 if( Cp_3 ==1) { ; } //3分隔
307 4 else { }
308 4 if( Cp_4 ==1) { ; } //4分隔
309 4 else { ; }
310 4 if( Cp_S ==1) { ; } //分隔选定
311 4 else { ; }
312 4 }
313 3 else //无暗盒
314 3 {
315 4 Table[4]|=0x80;
316 4 Table[5]|=0x3f;
317 4 }
318 3 for(i=2;i<7;i++)
319 3 {
320 4 if(Table[i]!=Tbak[i]) Table[6]=1;
321 4 }
322 3
323 3 // Check=0;
324 3 // for(i = 0;i<4;i++)
325 3 // {
326 3 // ComOutChar(ab[i]);
327 3 // }
328 3 // for(k = 0; k<6; k++)
329 3 // {
330 3 // Check+=Table[k];
331 3 // ComOutChar(Table[k]);
332 3 // }//将数据发给中控板
333 3 // ComOutChar(' ');
334 3
335 3 }
336 2
337 2 //--------------------led 控制----------------------------------------
338 2 for(i =0;i<3;i++)//对应位置灯点亮
339 2 {
340 3 COM = 0X80+i;
341 3 DAT =Led[i];
342 3 }
343 2
344 2 //-----通信-------------------------------------------------------
345 2 if((len>0)&&(time_u==0))
346 2 {
347 3 len=0;
348 3 TIflag=0;
349 3 inTxBuf=TxBuf,outTxBuf=TxBuf;
350 3 head_pt=START_PT;
351 3 tail_pt=START_PT;
352 3 }
353 2 if(tail_pt!=head_pt)
354 2 {
355 3 time_u=0x30;
356 3 i=ComGetChar(); //接受串口0消息
357 3 switch(len)
358 3 {
359 4 case 0:
360 4 if(i==3) {len=1;}
361 4 break;
362 4 case 1:
363 4 if(i==2)
364 4 {
365 5 len=0;
C51 COMPILER V7.10 MAIN 08/04/2006 15:38:10 PAGE 7
366 5 if(Table[6]>0)
367 5 {
368 6 Table[6]=0;
369 6 ComOutChar(0x03);
370 6 ComOutChar(0xe0);
371 6 Check=0;
372 6 for(k = 0; k<6; k++)
373 6 {
374 7 Check+=Table[k];
375 7 ComOutChar(Table[k]);
376 7 }//将数据发给中控板
377 6 ComOutChar(Check);
378 6 }
379 5 else
380 5 {
381 6 ComOutChar(0x03);
382 6 ComOutChar(0xe1);
383 6 }
384 5 }
385 4 else if(i==1) { len=2;Check=0;}
386 4 break;
387 4 case 2:
388 4 default:
389 4 Rx_data[len]=i;
390 4 Check+=i;
391 4 len++;
392 4 if(len>4)
393 4 {
394 5 len=0;
395 5 if(Check==0)
396 5 {
397 6 Led_Display();
398 6 if(Table[6]>0)
399 6 {
400 7 Table[6]=0;
401 7 ComOutChar(0x03);
402 7 ComOutChar(0xe0);
403 7 Check=0;
404 7 for(k = 0; k<6; k++) { Check+=Table[k];ComOutChar(Table[k]); }//将数据发给中控板
405 7 ComOutChar(Check);
406 7 }
407 6 else
408 6 {
409 7 ComOutChar(0x03);
410 7 ComOutChar(0xe1);
411 7 }
412 6 }
413 5 else
414 5 {
415 6 ComOutChar(0x03);
416 6 ComOutChar(0xee);
417 6 }
418 5 }
419 4 break;
420 4
421 4 }
422 3
423 3 }
424 2
425 2 }
426 1
427 1 }
C51 COMPILER V7.10 MAIN 08/04/2006 15:38:10 PAGE 8
428
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 775 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 27 4
IDATA SIZE = 7 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -