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

📄 8位数据编码.lst

📁 基于51单片机的控制的红外线通信
💻 LST
字号:
C51 COMPILER V7.08   8位数据盻码                                                           08/22/2007 21:29:48 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE 8位数据盻码
OBJECT MODULE PLACED IN 8位数据编码.OBJ
COMPILER INVOKED BY: D:\单片机~1\C51\Bin\c51.exe 8位数据编码.c DB OE SMALL ROM(LARGE)

line level    source

*** WARNING C500 IN LINE 1 OF 8位数据编码.C: MISSING DEVICE (SECURITY KEY NOT FOUND)
   1          #include<reg52.h>
   2                          
   3          sbit flag=P3^4;        //发射输出端
   4          unsigned int count;    //延时计数器
   5          unsigned int endcount; //终止延时计数
   6          
   7          unsigned char iraddr1;          //十六位地址的第一个字节
   8          unsigned char iraddr2;          //十六位地址的第二个字节
   9          
  10          void SendIRdata(unsigned char p_irdata);
  11          void delay();
  12          
  13          void main(void) 
  14          {
  15   1        count=0;
  16   1        flag=1;
  17   1        
  18   1        EA=1; //允许CPU中断 
  19   1        TMOD=0x11; //设定时器0和1为16位模式1 
  20   1        ET0=1; //定时器0中断允许 
  21   1      
  22   1      
  23   1        TH0=0xFF; 
  24   1        TL0=0xE6; //设定时值0为38K 也就是每隔26us中断一次  
  25   1        TR0=1;//开始计数
  26   1      
  27   1        iraddr1=3;
  28   1        iraddr2=252;
  29   1      
  30   1      
  31   1        do{
  32   2            delay();
  33   2            SendIRdata(0x0f);
  34   2        }while(1);
  35   1      } 
  36          
  37          //定时器0中断处理 
  38          void timeint(void) interrupt 1 using 2
  39          { 
  40   1        TH0=0xFF; 
  41   1        TL0=0xE6; //设定时值为38K也就是每隔26us中断一次
  42   1        count++;
  43   1      } 
  44          
  45          
  46          void SendIRdata(char p_irdata)
  47          {
  48   1        int i;
  49   1        char irdata=p_irdata;
  50   1      
  51   1        //发送9ms的起始码
  52   1        endcount=223;
  53   1        flag=0;
  54   1        count=0;
C51 COMPILER V7.08   8位数据盻码                                                           08/22/2007 21:29:48 PAGE 2   

  55   1        do{}while(count<endcount);
  56   1      
  57   1        //发送4.5ms的结果码
  58   1        endcount=117;
  59   1        flag=1;
  60   1        count=0;
  61   1        do{}while(count<endcount);
  62   1      
  63   1        //发送十六位地址的前八位
  64   1        irdata=iraddr1;
  65   1        for(i=0;i<8;i++)
  66   1        {
  67   2      
  68   2           //先发送0.56ms的38KHZ红外波(即编码中0.56ms的低电平)
  69   2           endcount=10;
  70   2           flag=0;
  71   2           count=0;
  72   2           do{}while(count<endcount);
  73   2      
  74   2          //停止发送红外信号(即编码中的高电平)
  75   2           if(irdata-(irdata/2)*2)  //判断二进制数个位为1还是0
  76   2           {
  77   3             endcount=41;  //1为宽的高电平
  78   3           }
  79   2          else
  80   2           {
  81   3           endcount=15;   //0为窄的高电平
  82   3           }
  83   2          flag=1;
  84   2          count=0;
  85   2          do{}while(count<endcount);
  86   2      
  87   2          irdata=irdata>>1;
  88   2        }
  89   1      
  90   1        //发送十六位地址的后八位
  91   1        irdata=iraddr2;
  92   1        for(i=0;i<8;i++)
  93   1        {
  94   2           endcount=10;
  95   2           flag=0;
  96   2           count=0;
  97   2           do{}while(count<endcount);
  98   2      
  99   2           if(irdata-(irdata/2)*2)
 100   2           {
 101   3              endcount=41;
 102   3           }
 103   2           else
 104   2           {
 105   3             endcount=15;
 106   3           }
 107   2           flag=1;
 108   2           count=0;
 109   2           do{}while(count<endcount);
 110   2      
 111   2           irdata=irdata>>1;
 112   2        }
 113   1      
 114   1        //发送八位数据
 115   1        irdata=p_irdata;
 116   1        for(i=0;i<8;i++)
C51 COMPILER V7.08   8位数据盻码                                                           08/22/2007 21:29:48 PAGE 3   

 117   1        {
 118   2           endcount=10;
 119   2           flag=0;
 120   2           count=0;
 121   2           do{}while(count<endcount);
 122   2      
 123   2           if(irdata-(irdata/2)*2)
 124   2           {
 125   3               endcount=41;
 126   3           }
 127   2           else
 128   2           {
 129   3             endcount=15;
 130   3           }
 131   2           flag=1;
 132   2           count=0;
 133   2           do{}while(count<endcount);
 134   2      
 135   2           irdata=irdata>>1;
 136   2        }
 137   1      
 138   1        //发送八位数据的反码
 139   1        irdata=~p_irdata;
 140   1        for(i=0;i<8;i++)
 141   1        {
 142   2           endcount=10;
 143   2           flag=0;
 144   2           count=0;
 145   2           do{}while(count<endcount);
 146   2      
 147   2           if(irdata-(irdata/2)*2)
 148   2           {
 149   3               endcount=41;
 150   3           }
 151   2           else
 152   2           {
 153   3             endcount=15;
 154   3           }
 155   2           flag=1;
 156   2           count=0;
 157   2           do{}while(count<endcount);
 158   2      
 159   2           irdata=irdata>>1;
 160   2        }
 161   1      
 162   1        endcount=10;
 163   1        flag=0;
 164   1        count=0;
 165   1        do{}while(count<endcount);
 166   1        flag=1;
 167   1      }
 168          
 169          void delay()
 170          {
 171   1        int i,j;
 172   1        for(i=0;i<400;i++)
 173   1        {
 174   2          for(j=0;j<100;j++)
 175   2          {
 176   3          }
 177   2        }
 178   1      }
C51 COMPILER V7.08   8位数据盻码                                                           08/22/2007 21:29:48 PAGE 4   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    520    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6    ----
   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 + -