C51 COMPILER V8.08   JIESHOU                                                               08/18/2015 19:30:28 PAGE 1   


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

line level    source

   1          /*********************************************************************************
   2          * 【编写时间】： 2014年3月5日
   3          * 【作    者】： 清翔电子:03
   4          * 【版    本】： 1.0
   5          * 【网    站】： http://www.qxmcu.com/ 
   6          * 【淘宝店铺】： http://qxmcu.taobao.com/ 
   7          * 【实验平台】： QX-MCS51 单片机开发板
   8          * 【外部晶振】： 11.0592mhz     
   9          * 【主控芯片】： STC89C52
  10          * 【编译环境】： Keil μVisio3  
  11          * 【程序功能】：                                                                                    
  12          * 【使用说明】： 用串口调试助手软件通过串口向单片机发送数据。
  13                                          当发送的数据为1到8时，分别对应点亮相应的发光二极管。
  14                                          发送其他数据，蜂鸣器会响。        注意：波特率9600    发送的时候请选择文本模式
  15          *  说明：免费开源，不提供源代码分析.
  16          **********************************************************************************/
  17          
  18          #include <reg52.h>
  19                  
  20          #define uchar  unsigned char 
  21          #define uint   unsigned int
  22          
  23          uchar buf;
  24          
  25          sbit beep=P2^3;
  26          
  27          void main(void) 
  28          {
  29   1          SCON=0x50;           //设定串口工作方式
  30   1          PCON=0x00;           //波特率不倍增
  31   1                              
  32   1          TMOD=0x20;           //定时器1工作于8位自动重载模式, 用于产生波特率
  33   1          EA=1;
  34   1          ES = 1;              //允许串口中断
  35   1          TL1=0xfd;
  36   1          TH1=0xfd;             //波特率9600
  37   1          TR1=1;
  38   1          while(1);        
  39   1      }
  40          /*********************************************************
  41          
  42            串行中断服务函数
  43          
  44          *********************************************************/
  45          void  serial() interrupt 4 
  46          {
  47   1         ES = 0;                //关闭串行中断
  48   1         RI = 0;                //清除串行接受标志位
  49   1         buf = SBUF;            //从串口缓冲区取得数据
  50   1        switch(buf)
  51   1         {
  52   2            case 0x31:  P1=0xfe;beep=1;break;  //接受到1，第一个LED亮         
  53   2            case 0x32:  P1=0xfd;beep=1;break;  //接受到2，第二个LED亮        
  54   2            case 0x33:  P1=0xfb;beep=1;break;  //接受到3，第三个LED亮        
  55   2            case 0x34:  P1=0xf7;beep=1;break;  //接受到4，第四个LED亮       
C51 COMPILER V8.08   JIESHOU                                                               08/18/2015 19:30:28 PAGE 2   

  56   2            case 0x35:  P1=0xef;beep=1;break;  //接受到5，第五个LED亮            
  57   2            case 0x36:  P1=0xdf;beep=1;break;  //接受到5，第六个LED亮                   
  58   2            case 0x37:  P1=0xbf;beep=1;break;  //接受到5，第七个LED亮
  59   2                case 0x38:  P1=0x7f;beep=1;break;  //接受到5，第八个LED亮
  60   2                default:    beep=0;P1=0xff;break;  //接受到其它数据，蜂鸣器响         
  61   2         }
  62   1         ES = 1;    //允许串口中断
  63   1      }


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