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

📄 send.lst

📁 使用AT89C52单片机
💻 LST
字号:
C51 COMPILER V7.09   SEND                                                                  12/02/2004 18:29:10 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE SEND
OBJECT MODULE PLACED IN send.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE send.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*********************************************************************/
   2          //                     send.c
   3          //                    遥控发射器
   4          //                    LRM 2004.10.22      
   5          /*********************************************************************/
   6          //使用AT89C52单片机,12MHZ晶振,
   7          //
   8          //#pragma src(E:\remote.asm)
   9          #include "reg51.h"
  10          #include "intrins.h"     //_nop_();延时函数用
  11          //
  12          #define char unsigned char
  13          #define int unsigned int
  14          #define key0 P0              //键列线
  15          #define key1 P1              //键行线
  16          //
  17          sbit  remoteout=P3^5;         // 遥控输出口
  18          //
  19          //
  20          int i,j,m,n,k,s;
  21          char keyvol;               //键值存放
  22          char  code keyv[8]={1,2,4,8,16,32,64,128};
  23          //
  24          ////
  25          /*********1毫秒延时程序**********/
  26          delay1ms(int t)
  27          {
  28   1      for(i=0;i<t;i++)
  29   1         for(j=0;j<120;j++)
  30   1         ;
  31   1      }
  32          //
  33          //
  34          /***********初始化函数**********/
  35          clearmen()
  36          {
  37   1      remoteout=0;           //关遥控输出
  38   1      IE=0x00;
  39   1      IP=0x01;
  40   1      TMOD=0x22;             //8位自动重装模式
  41   1      TH1=0xf3;              //40KHZ初值
  42   1      TL1=0xf3;
  43   1      EA=1;                 //开总中断
  44   1      }
  45          //
  46          //
  47          
  48          //
  49          /**********发射函数************/
  50          sed()
  51          {
  52   1      ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;//40KHZ发3毫秒
  53   1      for(m=keyvol;m>0;m--)
  54   1        {
  55   2         delay1ms(1);                                    //停1毫秒
C51 COMPILER V7.09   SEND                                                                  12/02/2004 18:29:10 PAGE 2   

  56   2         ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0;//40KHZ发1毫秒
  57   2        }
  58   1      delay1ms(10);
  59   1      }
  60          //
  61          tx()
  62          {
  63   1      switch(keyvol)
  64   1       {
  65   2        case 0:keyvol=keyvol+1;sed();break;
  66   2        case 1:keyvol=keyvol+1;sed();break;
  67   2        case 2:keyvol=keyvol+1;sed();break;
  68   2        case 3:keyvol=keyvol+1;sed();break;
  69   2        case 4:keyvol=keyvol+1;sed();break;
  70   2        case 5:keyvol=keyvol+1;sed();break;
  71   2        case 6:keyvol=keyvol+1;sed();break;
  72   2        case 7:keyvol=keyvol+1;sed();break;
  73   2        case 8:keyvol=keyvol+1;sed();break;
  74   2        case 9:keyvol=keyvol+1;sed();break;
  75   2        case 10:keyvol=keyvol+1;sed();break;
  76   2        case 11:keyvol=keyvol+1;sed();break;
  77   2        case 12:keyvol=keyvol+1;sed();break;
  78   2        case 13:keyvol=keyvol+1;sed();break;
  79   2        case 14:keyvol=keyvol+1;sed();break;
  80   2        case 15:keyvol=keyvol+1;sed();break;
  81   2        default:break;
  82   2       }
  83   1      }
  84          //
  85          //
  86          /**********键功能函数************/
  87          keywork()
  88          {
  89   1       keyvol=0x00;key1=0xf0;if(key0!=0xff)
  90   1       {delay1ms(20);if(key0!=0xff)
  91   2       {while(key0!=0xff);
  92   3        key1=0xfe;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i;tx();}}   }
  93   3        else{key1=0xfd;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+8;tx();}}   }}
  94   3       // key1=0xfb;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+16;tx();}}   }
  95   3       // key1=0xf7;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+24;tx();}}   }
  96   3        }
  97   2       }
  98   1      }
  99          //
 100          //
 101          /***********主函数***************/
 102          main()
 103          {
 104   1      clearmen();          //初始化 
 105   1      while(1)
 106   1       {
 107   2        keywork();       //按键扫描
 108   2        }
 109   1      }
 110          //
 111          //
 112          /*********40KHZ发生器***********/
 113          //定时中断T1
 114          void time_intt1(void) interrupt 3 
 115          {
 116   1       remoteout=~remoteout;
 117   1      }
C51 COMPILER V7.09   SEND                                                                  12/02/2004 18:29:10 PAGE 3   

 118          //
 119          //
 120          //*********************结束**************************//


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    346    ----
   CONSTANT SIZE    =      8    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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