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

📄 rs232.lst

📁 单片机开发板源程序适合初学者 第三部分 LCD_中文
💻 LST
字号:
C51 COMPILER V8.06   RS232                                                                 04/08/2008 13:40:56 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE RS232
OBJECT MODULE PLACED IN Rs232.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Rs232.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*实验名称:RS232通信实验
   2           功能:接收电脑送过来的数据,并且显示16进制数,并将数据回传到电脑
   3            作者:http://www.mcuprog.com
   4                  08-04-008
   5          */
   6          #include <reg51.h>
   7          //LCD的口线
   8          sbit E=P2^2;
   9          sbit RW=P2^1;
  10          sbit RS=P2^0;   
  11          
  12          
  13          unsigned char recdata;                  //RS232收到的值
  14          unsigned char bdata myflag;
  15          sbit recokbit = myflag^0;
  16          void Delay(unsigned int t);
  17          void SendCommandByte(unsigned char ch);
  18          void SendDataByte(unsigned char ch);
  19          void InitLcd(void);
  20          void disprec(void);
  21          
  22          void rs232(void);
  23          
  24          void main(void)
  25          {
  26   1      
  27   1              InitLcd();
  28   1              myflag=0x00;
  29   1              SendCommandByte(0x80);
  30   1              Delay(2);
  31   1              SendDataByte('R');
  32   1              SendDataByte('E');
  33   1              SendDataByte('C');
  34   1              SendDataByte('D');
  35   1              SendDataByte('A');
  36   1              SendDataByte('T');
  37   1              SendDataByte('A');
  38   1              SendDataByte(':');
  39   1              TMOD=0x20;
  40   1              TH1=0xfd;
  41   1              TL1=0xfd;
  42   1              SCON=0x50;
  43   1              TR1=1;
  44   1              REN=1;
  45   1              IE=0x90;
  46   1              while(1)
  47   1              {
  48   2                      if(recokbit==1)
  49   2                      {
  50   3                              recokbit=0;
  51   3                              disprec();
  52   3                      }
  53   2              }
  54   1      }
  55          
C51 COMPILER V8.06   RS232                                                                 04/08/2008 13:40:56 PAGE 2   

  56          //以下为串口中断程序
  57          void rs232(void) interrupt 4
  58          {
  59   1              if(RI==1)
  60   1              {
  61   2                      RI=0;
  62   2                      recdata=SBUF;
  63   2                      SBUF=recdata;
  64   2                      recokbit=1;
  65   2              }
  66   1              else
  67   1              {
  68   2                      TI=0;
  69   2              }
  70   1      }
  71          
  72          void Delay(unsigned int t)   // delay 40us
  73          {
  74   1       for(;t!=0;t--) ;
  75   1      }
  76          //=============================================
  77          void SendCommandByte(unsigned char ch)
  78          {
  79   1         RS=0;
  80   1         RW=0;
  81   1         P0=ch;
  82   1         E=1;
  83   1          Delay(1);
  84   1         E=0;
  85   1         Delay(100);  //delay 40us
  86   1      }
  87          //-------------------------------------------------------
  88          void SendDataByte(unsigned char ch)
  89          {  RS=1;
  90   1         RW=0;
  91   1         P0=ch;
  92   1         E=1;
  93   1             Delay(1);
  94   1         E=0;
  95   1         Delay(100); //delay 40us
  96   1      }
  97          //-------------------------------------------------
  98          void InitLcd(void)
  99          {SendCommandByte(0x30);
 100   1       SendCommandByte(0x30);
 101   1       SendCommandByte(0x30);
 102   1       SendCommandByte(0x38); //设置工作方式
 103   1       SendCommandByte(0x0c); //显示状态设置
 104   1       SendCommandByte(0x01); //清屏
 105   1       SendCommandByte(0x06); //输入方式设置
 106   1      }
 107          
 108          void disprec(void)
 109          {
 110   1              SendCommandByte(0x89);
 111   1              SendDataByte(recdata);
 112   1      }        


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    199    ----
   CONSTANT SIZE    =   ----    ----
C51 COMPILER V8.06   RS232                                                                 04/08/2008 13:40:56 PAGE 3   

   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   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 + -