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

📄 test013.lst

📁 51单片机全套学习资料 提供电路原理图 各种C语言实验程序 包括LED流水灯,数码管显示,中断,定时器,串口通信,DS18B20温度显示,液晶1602,12864显示,看门狗,按键检测,音乐播放等程序
💻 LST
字号:
C51 COMPILER V7.50   TEST013                                                               12/27/2006 16:28:55 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TEST013
OBJECT MODULE PLACED IN test013.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE test013.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************************************
   2          * 文 件 名:test013.c
   3          * 功    能:UART接收实验(中断方式)。
   4          * 硬件条件:1.CPU型号:AT89S52
   5          *           2.晶振:11.0592MHz
   6          *           3.用跳线帽短接RXD__P3.0
   7          *           4.用跳线帽短接TXD__P3.1
   8          *           5.用跳线帽短接LED11__P1.7
   9          * 上位机软件:串口调试软件(斯凯科技)
  10          * 作    者:POWER
  11          * 日    期:2006年12月12号
  12          * 斯凯科技主页:www.armsky.net
  13          * 斯凯科技论坛:www.armsky.net/bbs
  14          *********************************************************************************************/
  15          #include "reg52.h"                               // 包含头文件    
  16          
  17          /* 与编译器无关的数据类型定义 */
  18          /********************************************************************************************/
  19          typedef unsigned char      uint8;                // 无符号8位整型变量
  20          typedef signed   char      int8;                 // 有符号8位整型变量
  21          typedef unsigned short     uint16;               // 无符号16位整型变量
  22          typedef signed   short     int16;                // 有符号16位整型变量
  23          typedef unsigned int       uint32;               // 无符号32位整型变量
  24          typedef signed   int       int32;                // 有符号32位整型变量
  25          typedef float              fp32;                 // 单精度浮点数(32位长度)
  26          typedef double             fp64;                 // 双精度浮点数(64位长度)
  27          /********************************************************************************************/
  28          
  29          sbit P1_7 = P1 ^ 7;                              // 定义位变量 
  30          
  31          #define LED11_ON()   (P1_7=0)                    // 定义"LED11_ON()"为AT89S52的P1.7脚输出低电
  32                                                           // 平使LED11点亮
  33          
  34          #define LED11_OFF()  (P1_7=1)                    // 定义"LED11_OFF()"为AT89S52的P1.7脚输出高电
  35                                                           // 平使LED11熄灭
  36          
  37          /********************************************************************************************
  38          * 函数名称:UART_Init()
  39          * 功    能:UART初始化
  40          * 入口参数:无
  41          * 出口参数:无
  42          *********************************************************************************************/
  43          void UART_Init(void)
  44          {
  45   1        SCON=0x50;                                     // 串口工作方式1,即10位异步收发器(8位数据),波特率可变
  46   1      
  47   1        TMOD|=0x20;                                    // 定时器1:工作方式2(8位自动重装定时/计数器)
  48   1      
  49   1        PCON|=0x80;                                    // SMOD=1,即波特率提高一倍
  50   1      
  51   1        TH1=0xF4;                                      // 晶振频率为11.0592MHz时,波特率为4800
  52   1      
  53   1        IE=0x90;                                       // 允许UART中断
  54   1      
  55   1        TR1=1;                                         // 启动定时器/计数器1
C51 COMPILER V7.50   TEST013                                                               12/27/2006 16:28:55 PAGE 2   

  56   1      }
  57          
  58          
  59          /********************************************************************************************
  60          * 函数名称:UART_Receive_Server()
  61          * 功    能:UART接收中断服务程序.若接收到上位机发来的十六进制值0xAA,则点亮LED11;若接收到上位
  62          *           机发来的十六进制值0x55,则熄灭LED11。
  63          * 入口参数:无
  64          * 出口参数:无
  65          *********************************************************************************************/
  66          void UART_Receive_Server(void) interrupt 4
  67          {
  68   1        if(RI)                                         // 若产生UART接收中断
  69   1          {
  70   2                uint8 ReceiveData;                         // 定义接收变量
  71   2      
  72   2                RI=0;                                      // 清零UART的接收中断标记
  73   2                ReceiveData=SBUF;                          // 从接收缓冲区读出数据
  74   2                
  75   2                switch(ReceiveData)                        // 对收到的数据进行判断
  76   2                      {
  77   3                                case 0xAA:                         // 若接收到的数据为0xAA,则点亮LED11
  78   3                                          LED11_ON();
  79   3                                          break;
  80   3                                case 0x55:                         // 若接收到的数据为0x55,则熄灭LED11  
  81   3                              LED11_OFF();
  82   3                                          break;
  83   3                                default:
  84   3                                          break;
  85   3                              
  86   3                              }
  87   2          }
  88   1      }
  89          
  90          /********************************************************************************************
  91          * 函数名称:main()
  92          * 功    能:UART接收实验(中断方式)。当接收到上位机发来的十六进制值0xAA时,LED11亮;当接收到
  93          *           上位机发来的十六进制值0x55时,LED11灭。
  94          *********************************************************************************************/          
  95          void main (void)                
  96          {
  97   1        UART_Init();                                   // UART初始化
  98   1        LED11_OFF();                                   // AT89S52的P1.7脚输出高电平来熄灭LED11
  99   1      
 100   1        while(1);                                      // 死循环,等待UART接收中断
 101   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     58    ----
   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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -