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

📄 serial.lst

📁 232串口测试程序。// 软件模拟测试说明: // 1.这个测试采用查询方式进行串口通讯 // 2.将软件仿真环境的晶震设为11.0592 MHz // 3.软件模拟全速运行, 观察波特率是12
💻 LST
字号:
C51 COMPILER V7.50   SERIAL                                                                02/06/2005 01:26:59 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN serial.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE serial.c BROWSE DEBUG OBJECTEXTEND TABS(3)

line level    source

   1          // 题目:串口初始化C代码
   2          // 要求:
   3          // 1.波特率1200bps,无奇偶校验,停止位1,数据位8
   4          // 2.定时器T1做波特率发生器
   5          
   6          // 软件模拟测试说明:
   7          // 1.这个测试采用查询方式进行串口通讯
   8          // 2.将软件仿真环境的晶震设为11.0592 MHz
   9          // 3.软件模拟全速运行, 观察波特率是1200bps
  10          // 4.在串口1中输入数字或字母,可观察到通讯是否有误。
  11           
  12          
  13          
  14          // 本例程在查询方式下使用MCU51嵌入式专业仿真器对串口进行(单步、全速)硬件仿真
  15          
  16          #include <reg51.h>
  17          
  18          //串口初始化
  19          void serial_init(void)
  20          {
  21   1         //ET1  = 0;     //CLR   0ABH      ;禁止T1中断
  22   1         TMOD = 0x20;  //MOV   89H,#20H  ;timer 1 mode 2: 8-Bit reload(定时器T1 模式2: 8位自动初值重装)
  23   1         TH1  = 0xE8;  //MOV   8DH,#0E8H
  24   1         TL1  = 0xE8;  //MOV   8BH,#0E8H ;1200bps, 11.059
  25   1         TR1  = 1;     //SETB  8EH       ;启动定时器1
  26   1         
  27   1         SCON = 0x50;  // mode 1: 10-bit UART, enable receiver(模式1: 10位异步发送/接收, 使能接收允许位)
  28   1         //SM1  = 1;     //                ;串行口 模式1
  29   1         //SM0  = 0;
  30   1         //REN  = 1;     //                ;允许串行中断接收
  31   1      
  32   1         SM2  = 1;     //SETB  O9DH      ;收到有效的停止位时才将RI置1
  33   1                        
  34   1         //ES   = 1;     //SETB  0ACH      ;允许串行中断 
  35   1         EA   = 1;     //SETB  0AFH      ;总中断开
  36   1      }
  37          
  38          
  39          // 查询方式接收串口数据
  40          unsigned char getchar(void)
  41          {
  42   1         while(!RI);// 没有收到串口数据则一直等待
  43   1         RI=0;
  44   1         return SBUF;
  45   1      }
  46          
  47          // 查询方式发送串口数据
  48          void putchar(unsigned char ch)
  49          {
  50   1         SBUF=ch;
  51   1         while(!TI);
  52   1         TI=0;
  53   1      }
  54          
  55          code unsigned char HEX_TAB []="0123456789ABCDEF";
C51 COMPILER V7.50   SERIAL                                                                02/06/2005 01:26:59 PAGE 2   

  56          void puthex(unsigned char ch)
  57          {
  58   1         unsigned char i,j;
  59   1         i=ch>>4;
  60   1         j=ch&0x0f;
  61   1         putchar(HEX_TAB[i]);
  62   1         putchar(HEX_TAB[j]);
  63   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     59    ----
   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 + -