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

📄 uartcom1.lst

📁 此代码实现功能为:在philips P89LPC935单片机上实现红外遥(对应红外发送芯片为:HT6222)控解码接收
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   UARTCOM1                                                              12/05/2005 10:23:19 PAGE 1   


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

line level    source

   1          
   2          /*********************************************************************/
   3          /* 模 块 名:单片机(C51)             文件名:uart_com1.c                     */
   4          /* 提交日期:2005年11月16日          作  者:金雨和                  */
   5          /* 版    本:V1.0 --Copyright(c) 2005-2006中太视讯技术有限公司       */
   6          /* 描    述:单片机(C51)串口1处理程序                                                            */
   7          /* 修改记录:                                                                                                         */
   8          /*        日  期        版本      修改人     修改内容                            */
   9          /*         1.                                                                                                                    */     
  10          /*********************************************************************/
  11          
  12          #include <Reg935.h>
  13          #include "uart.h"
  14          #include "string.h"
  15          
  16          #define PLEEN   PLLEN
  17          
  18          extern unsigned char xdata g_ucI2CSendBuf[MAX_I2CDATALEN];     //IIC数据缓存
  19          extern unsigned char xdata g_ucI2CSendBuf_Len;     //IIC数据缓存内容长度
  20          extern unsigned char xdata g_ucI2CSendBuf_offset;  //IIC缓存数据读取当前位移
  21          
  22          /*******************************************************************
  23          ** 函 数 名: main()
  24          ** 输    入: 无
  25          ** 输    出: 无
  26          ** 描    述: C51主循环函数,红外接收检测及串口收发相应处理。
  27          ** 全局变量: 
  28          **           g_workFlag                 -- 工作灯状态
  29          ** 调用模块: 
  30          **                       timer1_Init            -- 定时器1初始化
  31          **                       SendDataToBsp          -- IIC发送中断给BSP15
  32          ** 被调模块: 无
  33          ** 作    者: 
  34          ** 创建日期: 2005年11月16日
  35          ** 修    改:
  36          **        日  期        版本      修改人     修改内容                            
  37          **         1.
  38          ********************************************************************/
  39          void main()
  40          {
  41   1              //使能中断
  42   1              EA = 1;
  43   1          TMOD = 0;
  44   1          TAMOD = 0;
  45   1              
  46   1              IICInit();
  47   1      //      timer0_Init();
  48   1              timer1_Init();
  49   1              IRRecvInit();           //红外接收初始化
  50   1      
  51   1       //   P0M1=P0M2=0;
  52   1       //   P1M1=P1M2=0;                    //P0,P1口设置为准双向
  53   1              P1M1 &= 0xfc;
  54   1              P1M2 &= 0xfc;
  55   1       //P2M1=P2M2=0xc0;                 //P2.6,P2.7设置为开漏
C51 COMPILER V7.09   UARTCOM1                                                              12/05/2005 10:23:19 PAGE 2   

  56   1      //    CCU_Init();                      //CCU模块初始化,用以产生38KHz调制信号
  57   1          UART1_Init();
  58   1              UART2_Init();
  59   1      
  60   1          while(1)
  61   1          {   
  62   2                      OnIRRecv();             //检测到正确的红外接收码后,通过IIC发送?
  63   2                      Delay(10);
  64   2          }   
  65   1      }
  66          
  67          
  68          /*******************************************************************
  69          ** 函 数 名: UART1SendData()
  70          ** 输    入: 
  71          **                       pbuf           -- 发送数据缓冲
  72          **                       len            -- 发送数据长度
  73          ** 输    出: 无
  74          ** 描    述: 通过UART连续发送字节数据
  75          **                       注意:此程序采用查询方式发送。
  76          ** 全局变量: 无
  77          ** 调用模块: 无
  78          ** 被调模块: 
  79          **                       main           -- 主循环处理函数
  80          ** 作    者: 金雨和
  81          ** 创建日期: 2005年11月16日
  82          ** 修    改:
  83          **        日  期        版本      修改人     修改内容                            
  84          **         1.
  85          ********************************************************************/
  86          void UART1SendData(uchar *pbuf, uchar len)
  87          {   
  88   1          uchar i;
  89   1          TI=0;
  90   1          for(i=0; i<len; i++)
  91   1          {   
  92   2              SBUF=pbuf[i];
  93   2              while(!TI);
  94   2              TI=0;
  95   2          }    
  96   1      }
  97          
  98          
  99          /*******************************************************************
 100          ** 函 数 名: CCU_Init()
 101          ** 输    入: 
 102          **                       pbuf           -- 用于接收数据的缓冲区首地址
 103          ** 输    出: 无
 104          ** 描    述: 通过UART连续接收字节数据
 105          **                       注意:此程序采用查询方式进行接收。由于采取半双工通信,所以接收
 106          **           数据之前要打开接收允许,接收完毕之后要关闭接收允许。
 107          ** 全局变量: 无
 108          ** 调用模块: 无
 109          ** 被调模块: 
 110          **                       main           -- 主循环处理函数
 111          ** 作    者: 金雨和
 112          ** 创建日期: 2005年11月16日
 113          ** 修    改:
 114          **        日  期        版本      修改人     修改内容                            
 115          **         1.
 116          ********************************************************************/
 117          void UART1RcvData(uchar *pbuf)
C51 COMPILER V7.09   UARTCOM1                                                              12/05/2005 10:23:19 PAGE 3   

 118          {   
 119   1          uchar i=0;
 120   1          REN=1;
 121   1          FE=0;
 122   1          RI=0;
 123   1          //for(i=0;i<16;i++)
 124   1          {   
 125   2              while(!RI);
 126   2              RI=0;
 127   2              pbuf[i]=SBUF;
 128   2          }
 129   1          REN=0;
 130   1      }
 131          
 132          
 133          /*******************************************************************
 134          ** 函 数 名: CCU_Init()
 135          ** 输    入: 无
 136          ** 输    出: 无
 137          ** 描    述: CCU模块初始化,使OCA(P2.7)输出38KHz,50%占空比的PWM波,
 138          **           作为红外线的载波
 139          **           使用6MHz晶振时,CCU频率=((6000000/2)/6)*32=16MHz
 140          **           定时器重装值=CCU频率/红外线载频=16000000/38000=421=0x1a5
 141          ** 全局变量: 无
 142          ** 调用模块: 无
 143          ** 被调模块: 
 144          **                       main           -- 主循环处理函数
 145          ** 作    者: 金雨和
 146          ** 创建日期: 2005年11月16日
 147          ** 修    改:
 148          **        日  期        版本      修改人     修改内容                            
 149          **         1.
 150          ********************************************************************/
 151          void CCU_Init()
 152          {   
 153   1          //TOR2H=0x01;                     //定时器重装值
 154   1          //TOR2L=0xa5;

⌨️ 快捷键说明

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