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

📄 irc_tran.lst

📁 以C语言和Java语言、嵌入式开发、算法实现为主
💻 LST
字号:
C51 COMPILER V7.06   IRC_TRAN                                                              07/01/2005 06:08:19 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE IRC_TRAN
OBJECT MODULE PLACED IN Irc_tran.OBJ
COMPILER INVOKED BY: G:\开发工具\Keil\C51\BIN\C51.EXE Irc_tran.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /**********************************Copyright (c)*********************************
   2          ;**                            西南科技大学计算机学院
   3          ;**                            http://cs.swust.edu.cn
   4          ;**          
   5          ;**    日期:      2005.5.10
   6          ;**    描述:      红外数据通信实验,本程序也通过调试,仅供参考。
   7          ;**    实验内容:   利用红外线传输数据
   8          ;**    适用机型:  AT89S52
   9          *********************************************************************************/
  10          #include <at89x52.h>                     //定义芯片特殊功能寄存器的头文件
  11          #define uchar unsigned char
  12          uchar Send_data[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07
  13                             ,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  14          uchar count=0x00;                        //计时变量
  15          uchar ptr=0x00;                          //取数指针
  16          uchar Receive_data;                      //接收到的数据
  17          /*******************************************************
  18           名称:   初始化运行环境   
  19           功能:  初始化各寄存器与端口状态
  20                   设置串口工作方式,波特率 3138
  21           参数:  无
  22           返回值:无
  23          *******************************************************/          
  24          void DeviceInit(void)
  25          {
  26   1         TL0=0xC0;                              //置定时器处置,设置中断时间为20ms
  27   1         TH0=0x63;
  28   1         TMOD=0x01;                             //设定定时器/计数器0工作方式为1
  29   1         IE=0x92;                               //允许全局中断,允许定时器/计数器0溢出中断,允许串口接收终端
  30   1         T2CON = 0x39;                          //设置定时器2的工作模式为波特率发生器方式,
  31   1         RCAP2H = 0xFF;                         //设置波特率为3138Hz
  32   1         RCAP2L = 0x11;
  33   1         SCON = 0x50;                           //设置串口工作方式为方式1
  34   1         TR2 = 0x01;                            //启动定时器2*/
  35   1         TR0=0x01;                              //启动定时器/计数器0
  36   1         P1=0xFE;
  37   1      }
  38          /*******************************************************
  39           名称:   发送模块   
  40           功能:  利用串口发送1个字符
  41           参数:  无
  42           返回值:无
  43          *******************************************************/
  44          void SendChar(uchar dat)  
  45          {
  46   1          SBUF=dat;                             //发送数据送发送缓冲区
  47   1          while(TI==0);                         //等待发送完成
  48   1          TI=0;                                 //置发送完成标志
  49   1      }
  50          /*******************************************************
  51           名称:   接收中断模块   
  52           功能:  将接收到的数据保送数码管显示
  53           参数:  无
  54           返回值:无
  55          *******************************************************/
C51 COMPILER V7.06   IRC_TRAN                                                              07/01/2005 06:08:19 PAGE 2   

  56          void Receive (void) interrupt 4
  57          {
  58   1          if(RI)                                //当接收终端标志设立时,开始读取接收到的数据
  59   1          {
  60   2              RI = 0;                           //清除接收终端标志
  61   2                      Receive_data=SBUF;                //将接收到的数据送缓冲区保存
  62   2              P0=Receive_data;                  //显示接收到的数据
  63   2          }
  64   1      }
  65          /*******************************************************
  66           名称:   定时器中断模块
  67           功能:  每隔一秒发送一个数据
  68           参数:  无
  69           返回值:无
  70          *******************************************************/
  71          void Timer0Over(void) interrupt 1  
  72          { 
  73   1         count++;
  74   1         if(count==0x32)                        //每隔相同时间发送一个数据
  75   1         { 
  76   2            if(ptr<=15)
  77   2                {
  78   3               SendChar(Send_data[ptr]);
  79   3                       ptr++;
  80   3                }
  81   2                else
  82   2                {
  83   3                   SendChar(Send_data[0]);
  84   3                       ptr=0x01;
  85   3                }
  86   2               count=0x00;                          //计时清零
  87   2         }
  88   1         TL0=0xC0;                              //中断时间20ms
  89   1         TH0=0x63;
  90   1      }
  91          /*******************************************************
  92           名称:   主函数
  93           功能:  应用程序入口
  94           参数:  无
  95           返回值:无
  96          *******************************************************/
  97          void main()                       
  98          {
  99   1         DeviceInit();                            //初始化定时器0与串口
 100   1         while(1);
 101   1      }


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