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

📄 remote.lst

📁 简易GPS定位信息显示系统的设计程序
💻 LST
字号:
C51 COMPILER V7.00  REMOTE                                                                 03/25/2005 11:05:54 PAGE 1   


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

stmt level    source

   1          /*********************************************************************/
   2          //                         remote.c
   3          //                       学习型遥控器
   4          //                     使用keil c51 2004.10.12      
   5          /*********************************************************************/
   6          //使用AT89C52单片机,12MHZ晶振,
   7          //
   8          //#pragma src(E:\remote.asm)
   9          #include "reg51.h"
  10          #include "intrins.h"     //_nop_();延时函数用
  11          //
  12          #define uchar unsigned char
  13          #define uint unsigned int
  14          //
  15          sbit  studylamp=P1^6;        //学习状态指示灯
  16          sbit  lamp=P1^7;             //发射指示灯
  17          sbit  studykey=P3^2;         //学习键(中断口)
  18          sbit  remotein=P3^4;         //遥控信号输入口 
  19          sbit  remoteout=P3^5;         // 遥控输出口
  20          sbit  txkey=P1^0   ;           //发射键
  21          //
  22          //
  23          uint i,j,m=255,n,k,s;
  24          uchar idata  remotedata[206];//存肪冲宽度数据用
  25          uint   head;           //存起始位用
  26          uint   remdata;
  27          //
  28          //
  29          ////
  30          /*********1毫秒延时程序**********/
  31          delay1ms(uint t)
  32          {
  33   1      for(i=0;i<t;i++)
  34   1         for(j=0;j<120;j++)
  35   1         ;
  36   1      }
  37          //
  38          //
  39          /***********初始化函数**********/
  40          clearmen()
  41          {
  42   1      studylamp=0;           //关学习灯
  43   1      lamp=0;                //关发射指示
  44   1      remoteout=0;           //关遥控输出
  45   1      remotein=1;            //
  46   1      for(i=0;i<206;i++)     //清内存
  47   1      {remotedata[i]=0x00;}
  48   1      IE=0x00;
  49   1      IP=0x01;
  50   1      TMOD=0x22;             //8位自动重装模式
  51   1      PCON=0X00;
  52   1      TH1=0xf3;              //40KHZ初值
  53   1      TL1=0xf3;
  54   1      IT0=1;
  55   1      EX0=1;                //外中断允许
C51 COMPILER V7.00  REMOTE                                                                 03/25/2005 11:05:54 PAGE 2   

  56   1      EA=1;                 //开总中断
  57   1      }
  58          //
  59          //
  60          /**********键功能函数************/
  61          keywork()
  62          {
  63   1       if(txkey==0)
  64   1       {
  65   2          while(txkey==0);     //等待键释放
  66   2          ET1=1;TR1=1;         //发起始位 
  67   2          for(i=head;i>0;i--){;}
  68   2              remoteout=0;ET1=0;TR1=0;
  69   2              n=0;
  70   2              while(1)
  71   2              {
  72   3            if(remotedata[n]==0x00){delay1ms(10);break;}//数据为0结束
  73   3                for(i=remotedata[n];i>0;i--){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
  74   3                lamp=~lamp;n++;//偶地址不发脉冲
  75   3      //
  76   3                ET1=1;TR1=1;  //奇地址发调制脉冲
  77   3            for(i=remotedata[n];i>0;i--){;}
  78   3                remoteout=0;ET1=0;TR1=0;n++;
  79   3              }
  80   2        }
  81   1      }
  82          //
  83          //
  84          /***********主函数***************/
  85          main()
  86          {
  87   1      clearmen();          //初始化 
  88   1      while(1)
  89   1       {
  90   2        keywork();       //按键扫描
  91   2        }
  92   1      }
  93          //
  94          //
  95          /*********40KHZ发生器***********/
  96          //定时中断T1
  97          void time_intt1(void) interrupt 3 
  98          {
  99   1       remoteout=~remoteout;
 100   1      }
 101          //
 102          //
 103          /***********学习函数 ***********/
 104          //外中断0
 105          void intt0(void) interrupt 0 
 106          {
 107   1      ET1=0;TR1=0;EX0=0;EA=0;
 108   1      head=0;studylamp=1;lamp=0;
 109   1      while(studykey==0);           //等待键释放
 110   1      while(remotein==1);           //等待遥控码输入
 111   1      head=0;                       //读入起始位
 112   1      while(remotein==0){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
             -;_nop_();_nop_();_nop_();_nop_();head++;}
 113   1      n=0;remdata=0x0000; 
 114   1      while(1)
 115   1               { 
 116   2             while(remotein==1){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
C51 COMPILER V7.00  REMOTE                                                                 03/25/2005 11:05:54 PAGE 3   

             -_nop_();_nop_();_nop_();_nop_();_nop_();remdata++;}
 117   2                 if(remdata>m)                  //高电平>5毫秒退出
 118   2                 {remotedata[n]=0x00;EX0=1;EA=1;goto end;}
 119   2                 remotedata[n]=remdata;n++;     //存高电平脉宽数据
 120   2             remdata=0x0000;                  //脉宽计数器清零 
 121   2                 while(remotein==0){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_no
             -p_();_nop_();_nop_();_nop_();_nop_();remdata++;}  //低电平计数
 122   2                 remotedata[n]=remdata;n++;remdata=0x00;//存低电平脉宽数据
 123   2                }
 124   1      end: lamp=1;studylamp=0;
 125   1      }
 126          //
 127          //*********************结束**************************//


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    486    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16    ----
   IDATA SIZE       =    206    ----
   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 + -