⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 红外6.lst

📁 本程序用于单片机的串口调试
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   红蚠6                                                                 12/11/2008 17:42:20 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE 红蚠6
OBJECT MODULE PLACED IN 红外6.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 红外6.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<AT89X52.H>
   2          
   3          void    yinxiuf_INT();
   4          void    yinxiuf_t0();
   5          void    yinxiuf_q();                                    //停止函数
   6          void    yinxiuf_q0();                                   //前进函数
   7          void    yinxiuf_q1();                                   //后退函数
   8          void    yinxiuf_r();                                    //右转函数
   9          void    yinxiuf_l();                                    //左转函数
  10          void    yinxiuf_q2();                                   // 前进1米函数
  11          void    yinxiuf_q3();                                   //前进10厘米函数
  12          void    yinxiuf_q4();                                   //前进1毫米函数
  13          void    yinxiuf_r1();                                   //右转90度函数
  14          void    yinxiuf_r2();                                   //右转1度函数
  15          void    yinxiuf_r3();                                   // 两轮转
  16          void    yinxiuf_l3();
  17          void    delay(unsigned int);
  18          
  19          bit     b=0,a0=0,a1=0,a2=0,a3=0,a4=0,a5=0,a6=0,a7=0,a8=0,a9=0,a10=0,a12=0;
  20          
  21          
  22          
  23          
  24          unsigned        char k=0;
  25          unsigned        long j=0;
  26          unsigned        long code a[12]={0xE240,0xE244,0xE254,0xE248,0xE250,0xE280,0xE204,0xE200,0xE208,0xE218,0xE24c,0xE
             -298};
  27          unsigned        int code a11[]={0x7b,0xed,0xb7,0xde},a00[]={0xde,0xb7,0xed,0x7b};
  28          unsigned char i;
  29          unsigned int m=0;
  30          int c5=0,c6=0,c7=0,c8=0,c9=0;   
  31          
  32          void    main(){
  33   1                                
  34   1                                 yinxiuf_INT();                                                       //初始化两外部中断,均下降沿触发
  35   1                                 yinxiuf_t0();                                                        //初始化T0
  36   1                         dog:while(EA);
  37   1                                 for(i=0;i<12;i++)
  38   1                                       if(a[i]==j)break;
  39   1                                 switch(i){
  40   2                                                      case 0:a0=1;yinxiuf_q();break;
  41   2                                                      case 1:a1=1;yinxiuf_q0();break;
  42   2                                                      case 2:a2=1;yinxiuf_q1();break;
  43   2                                                      case 3:a3=1;yinxiuf_r();break;
  44   2                                                      case 4:a4=1;yinxiuf_l();break;
  45   2                                                      case 5:a5=1;yinxiuf_q2();c5=0;break;
  46   2                                                      case 6:a6=1;yinxiuf_q3();c6=0;break;
  47   2                                                      case 7:a7=1;yinxiuf_q4();c7=0;break;
  48   2                                                      case 8:a8=1;yinxiuf_r1();c8=0;break;
  49   2                                                      case 9:a9=1;yinxiuf_r2();c9=0;break;
  50   2                                                      case 10:a10=1;yinxiuf_r3();break;
  51   2                                                      case 11:a12=1;yinxiuf_l3();break;
  52   2                                                      default:break;
  53   2                                                      }
  54   1                                  EA=1;
C51 COMPILER V8.08   红蚠6                                                                 12/11/2008 17:42:20 PAGE 2   

  55   1                                      m=0;
  56   1                                      j=0;
  57   1                                      b=0;
  58   1                                      P1=P2=0xff;
  59   1                                      goto dog;
  60   1                                      }
  61          void yinxiuf_INT0(void) interrupt 0{
  62   1                                                                                TR0=1;
  63   1                                                                                      }
  64          void yinxiuf_INT1(void) interrupt 2{
  65   1                                                                           TR0=0;
  66   1                                                                           if(b){
  67   2                                                                                        if((TH0>0x04)&&(TH0<=0x09))j=(j<<=1)+1;
  68   2                                                                                              else if((TH0>=0x01)&&(TH0<=0x04))j=(j<<=1)+0;
  69   2                                                                                                   else{
  70   3                                                                                                                      j=0;
  71   3                                                                                                                      b=0;
  72   3                                                                                                                      goto apple;
  73   3                                                                                                                      }
  74   2                                                                                  k++;
  75   2                                                                                              if(k==16){
  76   3                                                                                                    EA=0;                                     //接受完毕,返回主函数进行处理
  77   3                                                                                                            k=0;                                      //清空帧信息完毕信号
  78   3                                                                                                        a0=a1=a2=a3=a4=a5=a6=a7=a8=a9=a10=a12=0;
  79   3                                                                                                                }
  80   2                                                                                                }
  81   1                                                                        if(!b){if(TH0>0x09)b=1;}
  82   1                                                              apple:TH0=0;
  83   1                                                                        TL0=0;
  84   1                                                                        }
  85          void    yinxiuf_INT(void){
  86   1                                                              EA=1;
  87   1                                                              EX0=1;
  88   1                                                              EX1=1;
  89   1                                                              IT0=1;
  90   1                                                              IT1=1;
  91   1                                                              }
  92          void    yinxiuf_t0(void){
  93   1                                                        TMOD=0x01;
  94   1                                                              }
  95          void    yinxiuf_q(void){}
  96          void    yinxiuf_q0(void){
  97   1                                while(a1){
  98   2                                                                                                              for(i=0;i<4;i++){
  99   3                                                                                                                                                              P1=a11[i];
 100   3                                                                                                                                                              P2=a11[i];
 101   3                                                                                                                                                              delay(3);
 102   3                                                                                                                                                              }
 103   2                                                                                                               
 104   2                                                                              if(m++==40)EA=1;        }
 105   1                                                      }
 106          void    yinxiuf_q1(void){
 107   1                                                              while(a2){
 108   2                                                                                                      for(i=0;i<4;i++){       
 109   3                                                                                                                                              P1=a00[i];
 110   3                                                                                                                                              P2=a00[i];
 111   3                                                                                                                                              delay(3);
 112   3                                                                                                                                              }
 113   2                                                                              if(m++==40)EA=1;         }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -