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

📄 chengxu.lst

📁 30路继电器双串口单片机控制板
💻 LST
字号:
C51 COMPILER V9.00   CHENGXU                                                               02/08/2012 12:35:59 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chengxu.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发送'I'; 
  21          02、全关:PC发送'i'; 
  22          
  23          03、第一路开:PC发送'A';
  24          04、第二路开:PC发送'B';
  25          05、第三路开:PC发送'C';
  26          06、第四路开:PC发送'D';
  27          07、第五路开:PC发送'E';
  28          08、第六路开:PC发送'F';
  29          09、第七路开:PC发送'G';
  30          10、第八路开:PC发送'H';
  31          
  32          11、第一路关:PC发送'a';
  33          12、第二路关:PC发送'b';
  34          13、第三路关:PC发送'c';
  35          14、第四路关:PC发送'd';
  36          15、第五路关:PC发送'e';
  37          16、第六路关:PC发送'f';
  38          17、第七路关:PC发送'g';
  39          18、第八路关:PC发送'h';
  40          
  41          *********************************************************************/
  42          #include<STC12C5A60S2.H>               //库文件
  43          #include"jdq30.h"
  44          #define uchar unsigned char//宏定义无符号字符型
  45          #define uint unsigned int  //宏定义无符号整型
  46          /********************************************************************
  47                                      初始定义
  48          *********************************************************************/
  49          
  50          unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
  51          
  52          
  53          
  54          /********************************************************************
  55                                      延时函数
C51 COMPILER V9.00   CHENGXU                                                               02/08/2012 12:35:59 PAGE 2   

  56          *********************************************************************/
  57          void delay(uchar t)
  58          {
  59   1        uchar i,j;
  60   1         for(i=0;i<t;i++)
  61   1         {
  62   2               for(j=13;j>0;j--);
  63   2               { ;
  64   3               }
  65   2         }
  66   1      }
  67          
  68          /********************************************************************
  69                        功能:串口初始化,波特率9600,方式1
  70          *********************************************************************/
  71          void init(void)
  72          {
  73   1      
  74   1              TMOD = 0x20;                             //定时器1产生波特率
  75   1      
  76   1              SCON = 0x50;                             //方式2,8位数据,波特率可变
  77   1      
  78   1              PCON = 0x00;                             //不倍增波特率
  79   1      
  80   1              AUXR = 0x00;                             //1T工作方式,不使用波特率发生器
  81   1      
  82   1              IP   = 0x00;                             //优先级默认
  83   1      
  84   1              TH1  = TL1 = 0xfd;                       //波特率 9600
  85   1              
  86   1              TR1  = 1;                                //启动定时器产生波特率
  87   1              
  88   1              EA   = 1; 
  89   1               ES = 1;                         //开总中断,开串口中断
  90   1      }
  91          
  92          
  93          /********************************************************************
  94                                      主函数
  95          *********************************************************************/
  96          void main()
  97          {  
  98   1         uchar k=10;
  99   1         P4SW|=0x20;             //配置P4.5为IO口
 100   1         P4M0|=0x10;             //配置P4.4为IO口
 101   1         P4M1|=0x10;
 102   1         P0=P1=P2=P3=0xff;
 103   1         P4|=0x30;
 104   1         init();//串口初始化
 105   1        
 106   1         while(1)
 107   1         {
 108   2                                    
 109   2              
 110   2              /********************************************************************
 111   2                                          接收数据判断函数
 112   2              *********************************************************************/
 113   2              switch(dat) //接收数据判断
 114   2              {
 115   3              
 116   3                      case 'I': 
 117   3                                P1=P0=P2=0;
C51 COMPILER V9.00   CHENGXU                                                               02/08/2012 12:35:59 PAGE 3   

 118   3                                        P3&=0x03;
 119   3                                P4&=0xcf;
 120   3                                delay(200);
 121   3                                        init();
 122   3                                    break; //  全开
 123   3                                        
 124   3                      case 'i': 
 125   3                                 P3=P1=P0=P2=0XFF;
 126   3                                 P4|=0x30;
 127   3                                         delay(k);    
 128   3                                         break; //  全关
 129   3                      
 130   3                      case 'A': OUT1=0;delay(k);break;           //  第一路开
 131   3                      case 'B': OUT2=0;delay(k);break;           //  第二路开
 132   3                      case 'C': OUT3=0;delay(k);break;           //  第三路开
 133   3                      case 'D': OUT4=0;delay(k);break;           //  第四路开
 134   3                      case 'E': OUT5=0;delay(k);break;           //  第五路开
 135   3                      case 'F': OUT6=0;delay(k);break;           //  第六路开
 136   3                      case 'G': OUT7=0;delay(k);break;           //  第七路开
 137   3                      case 'H': OUT8=0;delay(k);break;           //  第八路开
 138   3                      case 'J': OUT9=0;delay(k);break;           //  第一路开
 139   3                      case 'K': OUT10=0;delay(k);break;          //  第二路开
 140   3                      case 'L': OUT11=0;delay(k);break;          //  第三路开
 141   3                      case 'M': OUT12=0;delay(k);break;          //  第四路开
 142   3                      case 'N': OUT13=0;delay(k);break;          //  第五路开
 143   3                      case 'O': OUT14=0;delay(k);break;          //  第六路开
 144   3                      case 'P': OUT15=0;delay(k);break;          //  第七路开
 145   3                      case 'Q': OUT16=0;delay(k);break;          //  第八路开
 146   3                      case 'R': OUT17=0;delay(k);break;          //  第一路开
 147   3                      case 'S': OUT18=0;delay(k);break;          //  第二路开
 148   3                      case 'T': OUT19=0;delay(k);break;          //  第三路开
 149   3                      case 'U': OUT20=0;delay(k);break;          //  第四路开
 150   3                      case 'V': OUT21=0;delay(k);break;          //  第二路开
 151   3                      case 'W': OUT22=0;delay(k);break;          //  第三路开
 152   3                      case 'X': OUT23=0;delay(k);break;          //  第四路开
 153   3                      case 'Y': OUT24=0;delay(k);break;          //  第五路开
 154   3                      case 'Z': OUT25=0;delay(k);break;          //  第六路开
 155   3                      case '1': OUT26=0;delay(k);break;          //  第七路开
 156   3                      case '2': OUT27=0;delay(k);break;          //  第八路开
 157   3                      case '3': OUT28=0;delay(k);break;          //  第一路开
 158   3                      case '4': OUT29=0;delay(k);break;          //  第二路开
 159   3                      case '5': OUT30=0;delay(k);break;          //  第三路开
 160   3                              
 161   3                      case 'a': OUT1=1;delay(k);break;           //  第一路关
 162   3                      case 'b': OUT2=1;delay(k);break;           //  第二路关
 163   3                      case 'c': OUT3=1;delay(k);break;           //  第三路关
 164   3                      case 'd': OUT4=1;delay(k);break;           //  第四路关
 165   3                      case 'e': OUT5=1;delay(k);break;           //  第五路关
 166   3                      case 'f': OUT6=1;delay(k);break;           //  第六路关
 167   3                      case 'g': OUT7=1;delay(k);break;           //  第七路关
 168   3                      case 'h': OUT8=1;delay(k);break;           //  第八路关
 169   3                      case 'j': OUT9=1;delay(k);break;           //  第一路关
 170   3                      case 'k': OUT10=1;delay(k);break;          //  第二路关
 171   3                      case 'l': OUT11=1;delay(k);break;          //  第三路关
 172   3                      case 'm': OUT12=1;delay(k);break;          //  第四路关
 173   3                      case 'n': OUT13=1;delay(k);break;          //  第五路关
 174   3                      case 'o': OUT14=1;delay(k);break;          //  第六路关
 175   3                      case 'p': OUT15=1;delay(k);break;          //  第七路关
 176   3                      case 'q': OUT16=1;delay(k);break;          //  第八路关
 177   3                      case 'r': OUT17=1;delay(k);break;          //  第五路关
 178   3                      case 's': OUT18=1;delay(k);break;          //  第六路关
 179   3                      case 't': OUT19=1;delay(k);break;          //  第七路关
C51 COMPILER V9.00   CHENGXU                                                               02/08/2012 12:35:59 PAGE 4   

 180   3                      case 'u': OUT20=1;delay(k);break;          //  第八路关
 181   3                      case 'v': OUT21=1;delay(k);break;          //  第二路关
 182   3                      case 'w': OUT22=1;delay(k);break;          //  第三路关
 183   3                      case 'x': OUT23=1;delay(k);break;          //  第四路关
 184   3                      case 'y': OUT24=1;delay(k);break;          //  第五路关
 185   3                      case 'z': OUT25=1;delay(k);break;          //  第六路关
 186   3                      case '6': OUT26=1;delay(k);break;          //  第七路关
 187   3                      case '7': OUT27=1;delay(k);break;          //  第八路关
 188   3                      case '8': OUT28=1;delay(k);break;          //  第五路关
 189   3                      case '9': OUT29=1;delay(k);break;          //  第六路关
 190   3                  case '0': OUT30=1;delay(k);break;      //  第七路关
 191   3                 default:break;                                          //  跳出
 192   3         }
 193   2      
 194   2      }
 195   1      }
 196          
 197          
 198          void uart_isr()  interrupt 4 
 199          {
 200   1              if( RI ) 
 201   1              { RI = 0;
 202   2               dat = SBUF;
 203   2               }
 204   1      
 205   1               SBUF='K';
 206   1               while(!TI);
 207   1               TI=0;
 208   1      
 209   1      }
 210          
 211                  
 212          /********************************************************************
 213                                        结束
 214          *********************************************************************/


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