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

📄 uart.lst

📁 1602字符液晶在89C52单片机上的应用实例和在proteus环境下的仿真实例!
💻 LST
字号:
C51 COMPILER V8.02   UART                                                                  07/20/2007 10:53:52 PAGE 1   


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

line level    source

   1          // 串口初始化C代码
   2          // 1.波特率1200bps,无奇偶校验,停止位1,数据位8
   3          // 2.定时器T1做波特率发生器
   4          
   5          
   6          
   7          #include "uart.h"
   8          
   9          code unsigned char HEX_TAB []="0123456789ABCDEF";
  10          
  11          //串口初始化
  12          void serial_init(void)
  13          {
  14   1         //ET1  = 0;     //CLR   0ABH      ;禁止T1中断
  15   1         TMOD = 0x20;  //MOV   89H,#20H  ;timer 1 mode 2: 8-Bit reload(定时器T1 模式2: 8位自动初值重装)
  16   1         TH1  = 0xE8;  //MOV   8DH,#0E8H
  17   1         TL1  = 0xE8;  //MOV   8BH,#0E8H ;1200bps, 11.059
  18   1         TR1  = 1;     //SETB  8EH       ;启动定时器1
  19   1         
  20   1         SCON = 0x50;  // mode 1: 10-bit UART, enable receiver(模式1: 10位异步发送/接收, 使能接收允许位)
  21   1         //SM1  = 1;     //                ;串行口 模式1
  22   1         //SM0  = 0;
  23   1         //REN  = 1;     //                ;允许串行中断接收
  24   1      
  25   1         SM2  = 1;     //SETB  O9DH      ;收到有效的停止位时才将RI置1
  26   1                        
  27   1         ES   = 1;     //SETB  0ACH      ;允许串行中断 
  28   1         EA   = 1;     //SETB  0AFH      ;总中断开
  29   1      }
  30          
  31          //中断方式处理串口数据
  32          
  33          /*void serial(void) interrupt 4 using 1
  34          {
  35                  if(RI)
  36                  {
  37                     // RI = 0;
  38                // 串口接收, 采用临时缓冲
  39                  }
  40          #if 0
  41             if(TI)
  42             {
  43                // TI = 0;
  44                // 串口发送, 没有必要使用中断方式
  45             }
  46          #endif
  47          
  48          } */
  49          
  50          // 查询方式接收串口数据
  51          unsigned char getchar(void)
  52          {
  53   1         while(!RI);// 没有收到串口数据则一直等待
  54   1         RI=0;
  55   1         return SBUF;
C51 COMPILER V8.02   UART                                                                  07/20/2007 10:53:52 PAGE 2   

  56   1      }
  57          // 查询方式发送串口数据
  58          void putchar(unsigned char ch)
  59          {
  60   1         SBUF=ch;
  61   1         while(!TI);
  62   1         TI=0;
  63   1      }
  64          void puthex(unsigned char ch)
  65          {
  66   1         unsigned char i,j;
  67   1         i=ch>>4;
  68   1         j=ch&0x0f;
  69   1         putchar(HEX_TAB[i]);
  70   1         putchar(HEX_TAB[j]);
  71   1      }
  72          void putstring(unsigned char *ch)
  73          {
  74   1              while(ch)
  75   1              {
  76   2                       putchar(*ch);
  77   2                       ch++;
  78   2              }       
  79   1      }


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