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

📄 串口通信有返回值.lst

📁 四路仿PLC继电器控制板
💻 LST
字号:
C51 COMPILER V8.02   串口通信有返籣值                                                      10/14/2010 13:46:06 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 串口通信有返籣值
OBJECT MODULE PLACED IN 串口通信有返回值.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 串口通信有返回值.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2                                      汇诚科技
   3          
   4          实现功能:串口控制继电器程序
   5          使用芯片:AT89S52
   6          晶振:11.0592MHZ
   7          波特率:9600
   8          编译环境:Keil
   9          作者:zhangxinchunleo
  10          网站:www.ourhc.cn
  11          淘宝店:汇诚科技 http://shop36330473.taobao.com
  12          【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
  13          
  14          *********************************************************************/
  15          /********************************************************************
  16          单片机与PC机采用9针串口,MAX232通讯,波特率默认为9600.
  17          
  18          单片机接收PC机发送的十六进制码表如下:
  19          
  20          01、全开:PC发送0xFF; 单片机返回0XFF;
  21          02、全关:PC发送0X00; 单片机返回0X00;
  22          
  23          03、第一路开:PC发送0x01;单片机返回0X01;
  24          04、第二路开:PC发送0x02;单片机返回0X02;
  25          05、第三路开:PC发送0x03;单片机返回0X03;
  26          06、第四路开:PC发送0x04;单片机返回0X04;
  27          19、输入状态查询:PC发送0x55;单片机返回输出状态(返回值十六进制);
  28          20、输出状态查询:PC发送0xAA;单片机返回输出状态(返回值十六进制);
  29          21、输出取反指令:PC发送0X11;单片机返回0x11;
  30          
  31          
  32          
  33          
  34          
  35          
  36          *********************************************************************/
  37          #include<reg52.h>              //库文件
  38          #define uchar unsigned char//宏定义无符号字符型
  39          #define uint unsigned int  //宏定义无符号整型
  40          /********************************************************************
  41                                      初始定义
  42          *********************************************************************/
  43          
  44          unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
  45          /*定义八位出为单片机P2口*/
  46          sbit K1=P2^0;
  47          sbit K2=P2^1;
  48          sbit K3=P2^2;
  49          sbit K4=P2^3;
  50          
  51          /*定义八位入为单片机P1口*/
  52          sbit SB1=P1^0;
  53          sbit SB2=P1^1;
  54          sbit SB3=P1^2;
  55          sbit SB4=P1^3;
C51 COMPILER V8.02   串口通信有返籣值                                                      10/14/2010 13:46:06 PAGE 2   

  56          
  57          
  58          /********************************************************************
  59                                      延时函数
  60          *********************************************************************/
  61          void delay(uchar t)
  62          {
  63   1        uchar i,j;
  64   1         for(i=0;i<t;i++)
  65   1         {
  66   2               for(j=13;j>0;j--);
  67   2               { ;
  68   3               }
  69   2         }
  70   1      }
  71          
  72          /********************************************************************
  73                        功能:串口初始化,波特率9600,方式1
  74          *********************************************************************/
  75          void Init_Com(void)
  76          {
  77   1      TMOD = 0x20;
  78   1      PCON = 0x00;
  79   1      SCON = 0x50;
  80   1      TH1 = 0xFd;
  81   1      TL1 = 0xFd;
  82   1      TR1 = 1;
  83   1      }
  84          /********************************************************************
  85                                      主函数
  86          *********************************************************************/
  87          void main()
  88          {
  89   1      Init_Com();//串口初始化
  90   1      while(1)
  91   1      {
  92   2                            
  93   2      if ( RI ) //扫描判断是否接收到数据,
  94   2      {
  95   3      dat = SBUF; //接收数据SBUF赋与dat
  96   3      RI=0; //RI 清零。
  97   3      
  98   3      } 
  99   2      /********************************************************************
 100   2                                  接收数据判断函数
 101   2      *********************************************************************/
 102   2      switch(dat) //接收数据判断
 103   2      {
 104   3      uchar k;
 105   3      k=10;
 106   3      case 0xff: P2=0X00;delay(k);SBUF = dat;dat=0xee;break; //  全开
 107   3      case 0x00: P2=0XFF;delay(k);SBUF = dat;dat=0xee;break; //  全关
 108   3      
 109   3      
 110   3      case 0x01: K1=0;delay(k);SBUF = dat;dat=0xee;break;        //  第一路开
 111   3      case 0x02: K2=0;delay(k);SBUF = dat;dat=0xee;break;        //  第二路开
 112   3      case 0x03: K3=0;delay(k);SBUF = dat;dat=0xee;break;        //  第三路开
 113   3      case 0x04: K4=0;delay(k);SBUF = dat;dat=0xee;break;        //  第四路开
 114   3      
 115   3      
 116   3      case 0xFE: K1=1;delay(k);SBUF = dat;dat=0xee;break;        //  第一路关
 117   3      case 0xFD: K2=1;delay(k);SBUF = dat;dat=0xee;break;        //  第二路关
C51 COMPILER V8.02   串口通信有返籣值                                                      10/14/2010 13:46:06 PAGE 3   

 118   3      case 0xFC: K3=1;delay(k);SBUF = dat;dat=0xee;break;        //  第三路关
 119   3      case 0xFB: K4=1;delay(k);SBUF = dat;dat=0xee;break;        //  第四路关
 120   3      
 121   3      case 0x55: SBUF = P1;delay(k);dat=0xee;break;      //  读输入口状态
 122   3      case 0xAA: SBUF = P2;delay(k);dat=0xee;break;      //  读输出口状态
 123   3      
 124   3      case 0x11: P2=~P2;delay(k);SBUF = dat;dat=0xee;break;  //  输出口取反
 125   3      
 126   3      default:break;                                     //  跳出
 127   3      }
 128   2      
 129   2      }
 130   1      }
 131                  
 132          /********************************************************************
 133                                        结束
 134          *********************************************************************/
 135          
 136          
 137          
 138          
 139          
 140          
 141          
 142          
 143          
 144          
 145          
 146          
 147          
 148          
 149          
 150          
 151          
 152          
 153          
 154          
 155          
 156          
 157          
 158          
 159          
 160          
 161          
 162          


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