serial port.lst

来自「ME500——51单片机的几个中断程序」· LST 代码 · 共 118 行

LST
118
字号
C51 COMPILER V8.02   SERIAL_PORT                                                           12/18/2006 09:09:27 PAGE 1   


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

line level    source

   1          /******************************************************************
   2          *                                                                 *
   3          * ME500单片机开发系统演示程序 - 串行通迅                          *
   4          *                                                                 *
   5          * P0口 LED 显示                                                   *
   6          *                                                                 *
   7          * 工作芯片:AT89S52      晶振频率:11.0592MHz                     *
   8          *                                                                 *
   9          * 版本: V1.0 (2006/11/20)                                        *
  10          * 作者: gguoqing (Email: gguoqing@willar.com)                    *
  11          * 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界) *
  12          * 时间: 2006/12/15                                               *
  13          *                                                                 *
  14          *【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved *
  15          *【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!       *
  16          *                                                                 *
  17          *******************************************************************
  18          *                                                                 *
  19          * 描述:                                                          *
  20          *                                                                 *
  21          *   主机发送数据给单片机,单片机接收到数据后,再发送给主机。      *
  22          *                                                                 *
  23          *   P0口LED显示接收数据的ASCII码。                                *
  24          *                                                                 *
  25          ******************************************************************/
  26          
  27          #include <reg52.h>
  28          #include <intrins.h>
  29                  
  30          #define uchar  unsigned char 
  31          #define uint   unsigned int
  32          
  33          uchar buf;
  34          
  35          /*********************************************************
  36          
  37            发送数据函数
  38          
  39          *********************************************************/
  40          void senddata(uchar dat)
  41          {
  42   1           SBUF =dat;
  43   1           while(!TI);
  44   1           TI = 0;
  45   1      }
  46          
  47          /*********************************************************
  48          
  49            串行中断服务函数
  50          
  51          *********************************************************/
  52          void  serial() interrupt 4 
  53          {
  54   1         ES = 0;                //关闭串行中断
  55   1         RI = 0;                //清除串行接受标志位
C51 COMPILER V8.02   SERIAL_PORT                                                           12/18/2006 09:09:27 PAGE 2   

  56   1         buf = SBUF;            //从串口缓冲区取得数据
  57   1       
  58   1         if(buf!=0x0D)
  59   1         {   
  60   2           if(buf!=0x0A)
  61   2           senddata(buf);
  62   2           P0=~buf;
  63   2         }
  64   1      
  65   1         ES = 1;               //允许串口中断
  66   1      }
  67          
  68          /*********************************************************
  69          
  70            主函数
  71          
  72          *********************************************************/
  73          void main(void) 
  74          {
  75   1          P0 = 0xff;
  76   1          P2 = 0xff;         
  77   1          
  78   1          SCON=0x50;        //设定串口工作方式
  79   1          PCON=0x00;        //波特率不倍增
  80   1                              
  81   1          TMOD=0x20;        //定时器1工作于8位自动重载模式, 用于产生波特率
  82   1          EA=1;
  83   1          ES = 1;           //允许串口中断
  84   1          TL1=0xfd;
  85   1          TH1=0xfd;         //波特率9600
  86   1          TR1=1;            
  87   1       
  88   1          while(1);         //等待串行中断
  89   1      
  90   1      }
  91          
  92          /*********************************************************/ 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     84    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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