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

📄 dec.lst

📁 自己写的51接收遥控器解码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.23a  DEC                                                                   05/04/2003 23:52:50 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE DEC
OBJECT MODULE PLACED IN dec.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE dec.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "reg51.h" 
   2          typedef unsigned char  u8;
   3          
   4          sbit P0_0 = P0^0;
   5          sbit P0_1 = P0^1;
   6          sbit P0_2 = P0^2;
   7          sbit P0_3 = P0^3;
   8          sbit P0_4 = P0^4;
   9          sbit P0_5 = P0^5;
  10          sbit P0_6 = P0^6;
  11          sbit P0_7 = P0^7;
  12          
  13          sbit P1_0 = P1^0;
  14          sbit P1_1 = P1^1;
  15          sbit P1_2 = P1^2;
  16          sbit P1_3 = P1^3;
  17          sbit P1_4 = P1^4;
  18          sbit P1_5 = P1^5;
  19          sbit P1_6 = P1^6;
  20          sbit P1_7 = P0^7;
  21          
  22          
  23          /*------------------------------------------------
  24          P2 Bit Registers
  25          ------------------------------------------------*/
  26          sbit P2_0 = 0xA0;
  27          sbit P2_1 = 0xA1;
  28          sbit P2_2 = 0xA2;
  29          sbit P2_3 = 0xA3;
  30          sbit P2_4 = 0xA4;
  31          sbit P2_5 = 0xA5;
  32          sbit P2_6 = 0xA6;
  33          sbit P2_7 = 0xA7;
  34          /*------------------------------------------------
  35          P3 Bit Registers (Mnemonics & Ports)
  36          ------------------------------------------------*/
  37          sbit P3_0 = 0xB0;
  38          sbit P3_1 = 0xB1;
  39          sbit P3_2 = 0xB2;
  40          sbit P3_3 = 0xB3;
  41          sbit P3_4 = 0xB4;
  42          sbit P3_5 = 0xB5;
  43          sbit P3_6 = 0xB6;
  44          sbit P3_7 = 0xB7;
  45          
  46          
  47          void SCI_INI(void);      //sci_a init
  48          void output(void);
  49          void delay(int);
  50          void com_isr(void);
  51          
  52          u8 rec_flag=1;
  53          
  54          int time_flag;
  55          
C51 COMPILER V6.23a  DEC                                                                   05/04/2003 23:52:50 PAGE 2   

  56          u8      buf1=0xeb;
  57          u8      buf2=0x20;
  58          u8      buf3;           //address
  59          u8      buf4=0xaa;
  60          u8      buf5;           //control code
  61          u8      buf6=0x55;
  62          
  63          void main(void)
  64          {
  65   1              P3_3=0;
  66   1              delay(500);
  67   1              P3_3=1;
  68   1              delay(200);
  69   1              P3_3=0;
  70   1              delay(500);
  71   1              P3_3=1;
  72   1      
  73   1              SCI_INI();      
  74   1              while(1)
  75   1              {
  76   2                      
  77   2      
  78   2                              delay(1);
  79   2                              while (time_flag)
  80   2                                      {
  81   3                                      output();
  82   3                                      delay(10);
  83   3                                      time_flag-=1;
  84   3                                      }
  85   2                              //output off
  86   2                              P1=0xff;
  87   2                              P2=0;
  88   2                              P3_3=0;
  89   2              
  90   2                      
  91   2              }
  92   1      }
  93          
  94          void SCI_INI(void)
  95          {       
  96   1              P0=0XFF;
  97   1              P1=0Xff;
  98   1              P2=0X0;
  99   1              P3=0X0;
 100   1              P3_0=1;
 101   1      
 102   1              TMOD=0x20; //timer1  use as sci bord ,timer0 use as 16bit counter
 103   1      
 104   1              TL1=0XFd;
 105   1              TH1=0xfd; //sci bord speed=2400 when 11.052Mhz.
 106   1      
 107   1              TR1=1;     //timer1 enable
 108   1      
 109   1              PCON=0X0;
 110   1              SCON=0X50;  //工作方式 1,接收允许
 111   1      
 112   1              EA=1;
 113   1              ES=1;
 114   1      }
 115          
 116          
 117          void com_isr(void) interrupt 4 using 1
C51 COMPILER V6.23a  DEC                                                                   05/04/2003 23:52:50 PAGE 3   

 118          {
 119   1              u8 temp;
 120   1              
 121   1      
 122   1      
 123   1              if (RI)
 124   1                      {       
 125   2                              temp=SBUF;
 126   2                              if (temp==buf1) rec_flag=1;
 127   2      
 128   2                              switch (rec_flag)
 129   2                                      {
 130   3                                      case 1:
 131   3                                              if(temp==0xeb) rec_flag+=1;
 132   3                                              break;
 133   3                                      case 2:
 134   3                                              if(temp==0x20) rec_flag+=1;
 135   3                                              else rec_flag=1;
 136   3                                              break;
 137   3                                      case 3:
 138   3                                              buf3=temp;                                      //recieve address
 139   3                                              rec_flag+=1;
 140   3                                              break;
 141   3                                      case 4:
 142   3                                              if(temp==0xaa) rec_flag+=1;
 143   3                                              else rec_flag=1;
 144   3                                              break;
 145   3                                      case 5:
 146   3                                              buf5=temp;                                      //recieve contro code
 147   3                                              rec_flag+=1;
 148   3                                              break;
 149   3                                      case 6:
 150   3                                              if(temp==0x55) 
 151   3                                                      {
 152   4                                                      if(buf3==P0)    //address ok
 153   4                                                              {
 154   5                                                              //set output

⌨️ 快捷键说明

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