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

📄 红外.lst

📁 我自己编码的一个空调红外编码程序,使用的是C语言的精确定时
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   红外                                                                  05/03/2007 18:27:29 PAGE 1   


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

line level    source

   1          #include<at89x51.h>
   2          #include<absacc.h>
   3          #include<INTRINS.H>
   4          #define SEGMENT P0
   5          #define BIT_LED P2
   6          #define fosc 12
   7          #define time0 2600         //26us
   8          
   9          unsigned char data display_bit,display_buffer[8];
  10          unsigned char data time0_h,time0_l;
  11          unsigned int idata time0_times;
  12          unsigned char data send_data[6]={0xc1,0x60,0x11,0x22,0x33,0x55};
  13          
  14          unsigned int showdata;
  15          unsigned char data TEMP;
  16          int *point;
  17          unsigned int shdata;
  18          unsigned int keyin;
  19          unsigned int kbempty;
  20           
  21          sbit C =0xA0;
  22          sbit ACC_0=0xE0;
  23          sbit ACC_1=0XE1;
  24          sbit ACC_2=0XE2;
  25          sbit ACC_3=0XE3;
  26          sbit ACC_4=0XE4;
  27          sbit ACC_5=0XE5;
  28          sbit ACC_6=0XE6;
  29          sbit ACC_7=0XE7;
  30          sbit dataout=0xB7;//P3.7
  31          
  32          unsigned char get_code(unsigned char i); 
  33          void display(void);
  34          void  breakdata(void);
  35          void unitial(void);
  36          void delay13us(void);
  37          void send(void);
  38          void  getkeyin(void);
  39          
  40          /**************************主程序*****************************/
  41          main()
  42             {
  43   1           
  44   1              unitial();
  45   1              _nop_();
  46   1              delay13us();
  47   1              ACC_0=1;
  48   1              ACC_1=0;
  49   1              ACC_2=1;
  50   1              keyin=ACC;
  51   1              send();
  52   1              while(1) 
  53   1              {
  54   2              getkeyin();
  55   2              display();
C51 COMPILER V8.02   红外                                                                  05/03/2007 18:27:29 PAGE 2   

  56   2              
  57   2              }
  58   1              
  59   1              }
  60          /**************初始化******************************/
  61          void unitial(void)
  62               {
  63   1                //point=&display_buffer[0];
  64   1                display_bit=0x01;
  65   1                BIT_LED=0;
  66   1                TMOD=0X02;
  67   1               // time0_times=65536-time0*fosc/12;
  68   1               // time0_h=(time0_times/256);
  69   1               // time0_l=(time0_times%256);
  70   1            //TH0=time0_h;
  71   1                //TL0=time0_l;
  72   1                TH0=0X00;
  73   1                TL0=0XC0;
  74   1                TR0=1; 
  75   1                EA=1;
  76   1                //ET0=1;  
  77   1                dataout=1;
  78   1                P3_2=1;
  79   1                P3_7=1;
  80   1                shdata=keyin;
  81   1              }
  82          /*********************************************/
  83          void time0_int(void) interrupt 1
  84              {
  85   1               //TH0=time0_h;
  86   1               //TL0=time0_l;
  87   1               P1=~P1;
  88   1               }
  89          /***********************************************/
  90          unsigned char get_code (unsigned char i)
  91               {
  92   1                unsigned char p;
  93   1                switch(i)
  94   1                  { 
  95   2                      case  0:        p=0x3F; break;  /*0*/
  96   2              case  1:    p=0x06;     break;  /*1*/
  97   2              case  2:    p=0x5B;     break;  /*2*/ 
  98   2              case  3:    p=0x4F;     break;  /*3*/
  99   2              case  4:    p=0x66;     break;  /*4*/
 100   2              case  5:    p=0x6D;     break;  /*5*/
 101   2              case  6:    p=0x7D;     break;  /*6*/
 102   2              case  7:    p=0x07;     break;  /*7*/
 103   2              case  8:    p=0x7F;     break;  /*8*/
 104   2              case  9:    p=0x67;     break;  /*9*/
 105   2              case 10:    p=0x77;     break;  /*A*/
 106   2              case 11:    p=0x7C;     break;  /*B*/
 107   2              case 12:    p=0x39;     break;  /*C*/
 108   2              case 13:    p=0x5E;     break;  /*D*/
 109   2              case 14:    p=0x79;     break;  /*E*/
 110   2              case 15:    p=0x71;     break;  /*F*/
 111   2              case 16:    p=0x00;     break;  /*灭灯*/
 112   2              default:            break;
 113   2                  }   
 114   1                return ((~p) & 0x7F);
 115   1                }
 116                      
 117          /**************************************************/     
C51 COMPILER V8.02   红外                                                                  05/03/2007 18:27:29 PAGE 3   

 118          void display(void)
 119               {
 120   1                int f;
 121   1                showdata=keyin;
 122   1                breakdata();
 123   1                for(f=0;f<6;f++) 
 124   1                    {unsigned char i;
 125   2                          switch(display_bit)
 126   2                    {
 127   3                                case 1:i=0;break;
 128   3                                case 2:i=1;break;
 129   3                                case 4:i=2;break;
 130   3                                case 8:i=3;break;
 131   3                                case 16:i=4;break;
 132   3                               // case 32:i=5;break;
 133   3                               // case 64:i=6;break;
 134   3                               // case 128:i=7;break;
 135   3                                default:break;
 136   3                                }
 137   2                   BIT_LED=0;
 138   2                       SEGMENT=get_code(display_buffer[i]);
 139   2                       TEMP=SEGMENT;
 140   2                       BIT_LED=display_bit;
 141   2                       if(display_bit<0x32)
 142   2                           {display_bit=display_bit*2;}
 143   2                   else display_bit=0x01;
 144   2                       }
 145   1                }              
 146                                   
 147          /******************数据拆分**********************/
 148          void  breakdata(void)
 149               { int j;
 150   1                 for(j=0;j<6;j++)
 151   1                  {
 152   2                   display_buffer[j]=showdata%10;
 153   2                   showdata=showdata/10;
 154   2                       //*(point+1);
 155   2                   }
 156   1                
 157   1           }
 158          /*******************************延时13us*********************************/
 159          void delay13us(void)
 160               { _nop_();
 161   1                 _nop_();
 162   1                 _nop_();
 163   1                 _nop_();
 164   1                 _nop_();
 165   1                 _nop_();
 166   1                 _nop_();
 167   1                }
 168          /**************************数据发送程序********************************/        
 169          void send (void)
 170                  { int n;
 171   1                unsigned p;
 172   1                int q;

⌨️ 快捷键说明

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