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

📄 发射.lst

📁 毕业设计—红外遥控电子密码锁
💻 LST
字号:
C51 COMPILER V9.00   发蒧                                                                  05/18/2012 11:40:23 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE 发蒧
OBJECT MODULE PLACED IN 发射.OBJ
COMPILER INVOKED BY: D:\专业软件\Qc\C51\BIN\C51.EXE 发射.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <stc89.h>
   2          
   3          //13.37589
   4          
   5          #define uchar unsigned char
   6          #define uint unsigned int
   7          sbit led=P3^7;
   8          sbit out=P3^6;
   9          #define port P2
  10          
  11          //定义地址码
  12          #define addr0  0x01
  13          #define addr1  0x02
  14          
  15          
  16          bit key_bit;  //按键重复标记
  17          bit hw;
  18          bit over;
  19          bit ss;
  20          
  21          uchar time;
  22          
  23          
  24          void delay();
  25          void InitTimer0(void);
  26          void InitUART(void);
  27          void send(uchar c);
  28          uchar key();
  29          void send_star();
  30          void send_char(uchar c);
  31          void send_hw(uchar c);
  32          
  33          void delay1s(void)   //误差 -0.000000000003us
  34          {
  35   1          unsigned char a,b,c;
  36   1          for(c=45;c>0;c--)
  37   1              for(b=132;b>0;b--)
  38   1                  for(a=167;a>0;a--);
  39   1      }
  40          
  41          
  42          void delay()   //1ms 误差 -0.651041666667us
  43          {
  44   1          unsigned char a,b;
  45   1      
  46   1          for(b=102;b>0;b--)
  47   1              for(a=3;a>0;a--);
  48   1      }
  49          
  50          void InitTimer0(void)
  51          {
  52   1          TMOD = 0x22;
  53   1          TH0 = 0xe6;
  54   1          TL0 = 0xe6;
  55   1          EA = 1;
C51 COMPILER V9.00   发蒧                                                                  05/18/2012 11:40:23 PAGE 2   

  56   1          ET0 = 1;
  57   1          TR0 = 1;
  58   1      }                   //13us
  59          
  60          void InitUART(void)     //4800
  61          {
  62   1      //    TMOD = 0x20;
  63   1          SCON = 0x50;
  64   1          TH1 = 0xF3;
  65   1          TL1 = TH1;
  66   1          PCON = 0x00;
  67   1          ES = 1;
  68   1              TR1 = 1;
  69   1      }
  70          void send(uchar c)
  71          {
  72   1          SBUF = c;
  73   1          while(!TI);
  74   1          TI = 0;
  75   1      }
  76          
  77          
  78          uchar key()
  79          {
  80   1       uchar a;
  81   1       a=0;
  82   1       port=0x0f;
  83   1       a=port;
  84   1       
  85   1       if(a==0x0f) 
  86   1         {
  87   2           key_bit=1; 
  88   2               delay();
  89   2               return 0;
  90   2         }
  91   1       if(!key_bit) return 0;
  92   1       delay();
  93   1       if(port==a)
  94   1       {      
  95   2        port=0xf0;
  96   2        a|=port;
  97   2        a=~a;
  98   2       }
  99   1       else return 0;
 100   1       if(a)
 101   1       {
 102   2        key_bit=0;
 103   2        switch(a)
 104   2        {
 105   3         case 0x11:  return 1;
 106   3         case 0x12:  return 2;
 107   3         case 0x14:  return 3;
 108   3         case 0x18:  return 4;
 109   3         case 0x21:  return 5;
 110   3         case 0x22:  return 6;
 111   3         case 0x24:  return 7;
 112   3         case 0x28:  return 8;
 113   3         case 0x41:  return 9;
 114   3         case 0x42:  return 10;
 115   3         case 0x44:  return 11;
 116   3         case 0x48:  return 12;
 117   3         case 0x81:  return 13;
C51 COMPILER V9.00   发蒧                                                                  05/18/2012 11:40:23 PAGE 3   

 118   3         case 0x82:  return 14;
 119   3         case 0x84:  return 15;
 120   3         case 0x88:  return 16;
 121   3         default: return 0;
 122   3        }
 123   2       }// if(a)
 124   1      }
 125          
 126          void main(void)
 127          {
 128   1          uchar c;
 129   1              InitTimer0();
 130   1              InitUART();
 131   1              led=0;
 132   1              send(0xaa);
 133   1      while(1)
 134   1      {
 135   2       c=key();
 136   2       if(c)
 137   2        {
 138   3          send(c);
 139   3              send_hw(c);
 140   3        }
 141   2       
 142   2      
 143   2      }
 144   1      }
 145          
 146          void send_star()
 147          {
 148   1       uchar i;
 149   1       i=8;
 150   1       while(i--)
 151   1       {
 152   2        time=173;              //9ms
 153   2        hw=1;                  //发射
 154   2        while(!over);
 155   2       }
 156   1      
 157   1       i=4;
 158   1       while(i--)              //4.5ms
 159   1       {       
 160   2        time=173;
 161   2        hw=0;
 162   2        while(!over);  
 163   2       }
 164   1      }
 165          
 166          void send_char(uchar c)
 167          {
 168   1       uchar i;
 169   1       for(i=0;i<8;i++)
 170   1       {
 171   2        time=45;
 172   2        hw=1;
 173   2        while(!over);
 174   2        
 175   2        if(c&0x80) time=126;
 176   2        else time=45;
 177   2        hw=0;
 178   2        c=c<<1; 
 179   2        while(!over);
C51 COMPILER V9.00   发蒧                                                                  05/18/2012 11:40:23 PAGE 4   

 180   2        time=45;
 181   2        hw=1;
 182   2         
 183   2       }
 184   1      }
 185          
 186          void send_hw(uchar c)
 187          {
 188   1       key_bit=0;
 189   1       send_star();
 190   1       send_char(addr0);
 191   1       send_char(addr1);
 192   1       send_char(c);
 193   1       send_char(~c);
 194   1      
 195   1      }
 196          
 197          void Timer0Interrupt(void) interrupt 1
 198          {
 199   1       if(time) time--,over=0;
 200   1       else over=1,hw=0;
 201   1       if(hw) out=~out;
 202   1       else out=1;
 203   1      }
 204          
 205          void UARTInterrupt(void) interrupt 4
 206          {
 207   1       uchar c;
 208   1          if(RI)
 209   1          {
 210   2              RI = 0;
 211   2           /*   c=SBUF;
 212   2                      if(c==0xaa) ya
 213   2                      {
 214   2                        delay1s();
 215   2                        ISP_CONTR=0x60;
 216   2                      } 为了方便下载*/ 
 217   2          }
 218   1          else
 219   1              TI = 0;
 220   1      }
*** WARNING C280 IN LINE 207 OF 发射.C: 'c': unreferenced local variable
 221          
*** WARNING C291 IN LINE 124 OF 发射.C: not every exit path returns a value


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    394    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  2 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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