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

📄 chengxu.lst

📁 可编程继电器模块
💻 LST
字号:
C51 COMPILER V8.05a   CHENGXU                                                              03/08/2012 11:44:03 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chengxu.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2                                      汇诚科技
   3          
   4          实现功能:定时器T0模拟串口
   5          使用芯片:STC15F104E
   6          晶振:内部晶振  11.0592MHZ
   7          编译环境:Keil
   8          作者:zhangxinchunleo
   9          网站:www.ourhc.cn
  10          淘宝店:汇诚科技 http://shop36330473.taobao.com
  11          【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
  12          
  13          *********************************************************************/
  14          #include "reg52.h" 
  15          #include <intrins.H>
  16          #define uchar unsigned char //宏定义字符型变量
  17          #define uint  unsigned int      //宏定义整型变量
  18          /********************************************************************
  19                                      波特率设定
  20          *********************************************************************/
  21          //#define BAUD 0XF400  //1200bps@ 11.0592MHZ
  22          //#define BAUD 0XFA00  //2400bps@ 11.0592MHZ
  23          //#define BAUD 0XFD00  //4800bps@ 11.0592MHZ
  24          #define BAUD 0XFE80  //9600bps@ 11.0592MHZ
  25          //#define BAUD 0XFF40  //19200bps@ 11.0592MHZ
  26          //#define BAUD 0XFFA0  //38400bps@ 11.0592MHZ
  27          
  28          sbit  P33=P3^3;                  //定义继电器控制输出脚
  29          /********************************************************************
  30                                      定义特殊寄存器
  31          *********************************************************************/
  32          sfr AUXR  =  0x8E;   //辅助寄存器
  33          sbit RXB=P3^0;
  34          sbit TXB=P3^1;
  35          /********************************************************************
  36                                     定义数据类型
  37          *********************************************************************/
  38          uchar TBUF,RBUF;
  39          uchar TDAT,RDAT;
  40          uchar TCNT,RCNT;
  41          uchar TBIT,RBIT;
  42          uint TING,RING;
  43          uint TEND,REND;
  44          
  45          void UART_INIT(); //声明函数
  46          
  47          uchar t,r;                //定义数据类型
  48          uchar but[16];    //数据存储数组
  49          /********************************************************************
  50                                      主函数
  51          *********************************************************************/
  52          void main()
  53          {
  54   1      
  55   1      TMOD=0X00;         //定时器T0设定
C51 COMPILER V8.05a   CHENGXU                                                              03/08/2012 11:44:03 PAGE 2   

  56   1      AUXR=0X80;         //辅助寄存器
  57   1      TL0=BAUD;          //十六位寄存器
  58   1      TH0=BAUD>>8;   //十六位寄存器
  59   1      TR0=1;             //开定时器
  60   1      ET0=1;
  61   1      PT0=1;
  62   1      EA=1;              //开总中断
  63   1      UART_INIT();   //串口初始化
  64   1      while(1)           //无线循环
  65   1      {
  66   2      if(REND)
  67   2        {
  68   3         REND=0;
  69   3         but[r++&0x0f]=RBUF;
  70   3         }
  71   2         if(TEND)
  72   2         {
  73   3         if(t!=r)
  74   3           {
  75   4               TEND=0;
  76   4               TBUF=but[t++&0x0f];
  77   4               TING=1;
  78   4               }
  79   3         }
  80   2      }
  81   1      
  82   1      }
  83          /********************************************************************
  84                                      定时器T0
  85          *********************************************************************/
  86          void tm0()interrupt 1 using 1
  87          {
  88   1       if(RING)
  89   1        {
  90   2         if(--RCNT==0)
  91   2          {
  92   3               RCNT=3;
  93   3               if(--RBIT==0)
  94   3              {
  95   4                       RBUF=RDAT;
  96   4                       RING=0;
  97   4               REND=1;
  98   4                      }
  99   3                      else
 100   3                      {
 101   4                       RDAT>>=1;
 102   4                       if(RXB)RDAT|=0X80;
 103   4                      }
 104   3      
 105   3          }
 106   2        }
 107   1          else if(!RXB)
 108   1              {
 109   2               RING=1;
 110   2               RCNT=4;
 111   2               RBIT=9;
 112   2              }
 113   1          if(--TCNT==0)
 114   1              {
 115   2              TCNT=3;
 116   2              if(TING)
 117   2              {
C51 COMPILER V8.05a   CHENGXU                                                              03/08/2012 11:44:03 PAGE 3   

 118   3                if(TBIT==0)
 119   3                {
 120   4                TXB=0;
 121   4                TDAT=TBUF;
 122   4                TBIT=9;
 123   4                }
 124   3                else
 125   3                {
 126   4                TDAT>>=1;
 127   4                if(--TBIT==0)
 128   4                {
 129   5                 TXB=1;
 130   5                 TING=0;
 131   5                 TEND=1;
 132   5                }
 133   4                else
 134   4                {
 135   5                TXB=CY;
 136   5                }
 137   4                }
 138   3              }
 139   2              }
 140   1      }
 141          /********************************************************************
 142                        功能:串口初始化,波特率9600,方式1
 143          *********************************************************************/
 144          void UART_INIT()
 145          {
 146   1      TING=0;
 147   1      RING=0;
 148   1      TEND=1;
 149   1      REND=0;
 150   1      TCNT=0;
 151   1      RCNT=0;
 152   1      }
 153          
 154          /********************************************************************
 155                                      结束
 156          *********************************************************************/


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