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

📄 text1.lst

📁 30路继电器双串口单片机控制板
💻 LST
字号:
C51 COMPILER V9.00   TEXT1                                                                 02/09/2012 14:54:33 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*--------------------------------------
   2          芯片    :STC12C5A60S2
   3          晶振    :11.0592MHZ
   4          开发平台:KEIL
   5          功能    :串口一或者串口二都可以通过上位机控制30路继电器
   6          波特率  :9600BPS
   7          日期    :11.5.19
   8          注意    :下载完程序后请复位系统!!(切记!)
   9          --------------------------------------*/
  10          
  11          #include "STC12C5A60S2.h"
  12          #include"jdq30.h"
  13          #define  uchar unsigned char 
  14          #define  uint  unsigned int 
  15          
  16          uchar dat;
  17          
  18          
  19          void init ()
  20          {
  21   1         //串口2波特率
  22   1              TMOD = 0x20;                             //定时器1产生波特率
  23   1      
  24   1              SCON = 0x50;                             //方式1,8位数据,波特率可变
  25   1      
  26   1              TH1=TL1 = 0xfd;                  //波特率 9600
  27   1      
  28   1        //串口1波特率 
  29   1              S2CON = 0x50;                            //方式1,八位数据,可变波特率
  30   1      
  31   1              BRT=0XFD;                                //设置波特率9600
  32   1      
  33   1      
  34   1              TR1=1;                                   //启动定时器产生串口2波特率    
  35   1      
  36   1              AUXR=0x10;                               //启动串口1波特率发生器
  37   1      
  38   1              IP=0x00;                                 //优先级默认
  39   1      
  40   1              EA=1;                            //开总中断
  41   1      
  42   1              ES=1;                                    //开串口1中断
  43   1              
  44   1              IE2=0x01;                                //开串口2中断
  45   1      
  46   1      }
  47          
  48          /*
  49                 // 串口一 发送一个字符
  50          
  51          
  52          void  uart1_txd(uchar x)
  53          {
  54                  SBUF = x;
  55          }
C51 COMPILER V9.00   TEXT1                                                                 02/09/2012 14:54:33 PAGE 2   

  56          
  57          //     串口二   发送一个字符
  58          void  uart2_txd(uchar x)
  59          {
  60                  S2BUF = x;
  61          }
  62          */
  63          
  64          
  65          /*--------------------------------------
  66                    延时函数
  67          --------------------------------------*/
  68          void delay ( uint t )
  69          {
  70   1              uint i,j;
  71   1      
  72   1              for( i=0; i<t; i++)
  73   1      
  74   1              for( j=0; j<250; j++);
  75   1      }
  76          
  77          
  78          /*--------------------------------------
  79                    主函数
  80          --------------------------------------*/
  81          void main()
  82          {
  83   1        uchar k=10;
  84   1         P4SW|=0x20;             //配置P4.5为IO口
  85   1         P4M0|=0x10;             //配置P4.4为IO口
  86   1         P4M1|=0x10;
  87   1         P0=P1=P2=P3=0xff;
  88   1         P4|=0x30;
  89   1         init();//串口初始化
  90   1        
  91   1         while(1)
  92   1         {
  93   2                                    
  94   2              
  95   2              /********************************************************************
  96   2                                          接收数据判断函数
  97   2              *********************************************************************/
  98   2              switch(dat) //接收数据判断
  99   2              {
 100   3              
 101   3                      case 'I': 
 102   3                                P0=P2=0;
 103   3                                        P1&=0x0c;
 104   3                                        P3&=0x03;
 105   3                                P4&=0xcf;
 106   3                                delay(200);
 107   3                                        init();
 108   3                                    break; //  全开
 109   3                                        
 110   3                      case 'i': 
 111   3                                 P3=P1=P0=P2=0XFF;
 112   3                                 P4|=0x30;
 113   3                                         delay(k);    
 114   3                                         break; //  全关
 115   3                      
 116   3                      case 'A': OUT1=0;delay(k);break;           //  第一路开
 117   3                      case 'B': OUT2=0;delay(k);break;           //  第二路开
C51 COMPILER V9.00   TEXT1                                                                 02/09/2012 14:54:33 PAGE 3   

 118   3                      case 'C': OUT3=0;delay(k);break;           //  第三路开
 119   3                      case 'D': OUT4=0;delay(k);break;           //  第四路开
 120   3                      case 'E': OUT5=0;delay(k);break;           //  第五路开
 121   3                      case 'F': OUT6=0;delay(k);break;           //  第六路开
 122   3                      case 'G': OUT7=0;delay(k);break;           //  第七路开
 123   3                      case 'H': OUT8=0;delay(k);break;           //  第八路开
 124   3                      case 'J': OUT9=0;delay(k);break;           //  第九路开
 125   3                      case 'K': OUT10=0;delay(k);break;          //  第十路开
 126   3                      case 'L': OUT11=0;delay(k);break;          //  第十一路开
 127   3                      case 'M': OUT12=0;delay(k);break;          //  第十二路开
 128   3                      case 'N': OUT13=0;delay(k);break;          //  第十三路开
 129   3                      case 'O': OUT14=0;delay(k);break;          //  第十四路开
 130   3                      case 'P': OUT15=0;delay(k);break;          //  第十五路开
 131   3                      case 'Q': OUT16=0;delay(k);break;          //  第十六路开
 132   3                      case 'R': OUT17=0;delay(k);break;          //   ...
 133   3                      case 'S': OUT18=0;delay(k);break;          //   ...
 134   3                      case 'T': OUT19=0;delay(k);break;          //   ...
 135   3                      case 'U': OUT20=0;delay(k);break;          //   ...
 136   3                      case 'V': OUT21=0;delay(k);break;          //   ...
 137   3                      case 'W': OUT22=0;delay(k);break;          //   ...
 138   3                      case 'X': OUT23=0;delay(k);break;          //   ...
 139   3                      case 'Y': OUT24=0;delay(k);break;          //   ...
 140   3                      case 'Z': OUT25=0;delay(k);break;          //   ...
 141   3                      case '1': OUT26=0;delay(k);break;          //   ...
 142   3                      case '2': OUT27=0;delay(k);break;          //   ...
 143   3                      case '3': OUT28=0;delay(k);break;          //   ...
 144   3                      case '4': OUT29=0;delay(k);break;          //   ...
 145   3                      case '5': OUT30=0;delay(k);break;          //  第三十路开
 146   3                              
 147   3                      case 'a': OUT1=1;delay(k);break;           //  第一路关
 148   3                      case 'b': OUT2=1;delay(k);break;           //  第二路关
 149   3                      case 'c': OUT3=1;delay(k);break;           //  第三路关
 150   3                      case 'd': OUT4=1;delay(k);break;           //  第四路关
 151   3                      case 'e': OUT5=1;delay(k);break;           //  第五路关
 152   3                      case 'f': OUT6=1;delay(k);break;           //  第六路关
 153   3                      case 'g': OUT7=1;delay(k);break;           //  第七路关
 154   3                      case 'h': OUT8=1;delay(k);break;           //  第八路关
 155   3                      case 'j': OUT9=1;delay(k);break;           //  ...
 156   3                      case 'k': OUT10=1;delay(k);break;          //  ...
 157   3                      case 'l': OUT11=1;delay(k);break;          //  ...
 158   3                      case 'm': OUT12=1;delay(k);break;          //  ...
 159   3                      case 'n': OUT13=1;delay(k);break;          //  ...
 160   3                      case 'o': OUT14=1;delay(k);break;          //  ...
 161   3                      case 'p': OUT15=1;delay(k);break;          //  ...
 162   3                      case 'q': OUT16=1;delay(k);break;          //  ...
 163   3                      case 'r': OUT17=1;delay(k);break;          //  ...
 164   3                      case 's': OUT18=1;delay(k);break;          //  ...
 165   3                      case 't': OUT19=1;delay(k);break;          //  ...
 166   3                      case 'u': OUT20=1;delay(k);break;          //  ...
 167   3                      case 'v': OUT21=1;delay(k);break;          //  ...
 168   3                      case 'w': OUT22=1;delay(k);break;          //  ...
 169   3                      case 'x': OUT23=1;delay(k);break;          //  ...
 170   3                      case 'y': OUT24=1;delay(k);break;          //  ...
 171   3                      case 'z': OUT25=1;delay(k);break;          //  ...
 172   3                      case '6': OUT26=1;delay(k);break;          //  ...
 173   3                      case '7': OUT27=1;delay(k);break;          //  ...
 174   3                      case '8': OUT28=1;delay(k);break;          //  ...
 175   3                      case '9': OUT29=1;delay(k);break;          //  ...
 176   3                  case '0': OUT30=1;delay(k);break;      //  第三十路关
 177   3                 default:break;                                          //  跳出
 178   3         }
 179   2      
C51 COMPILER V9.00   TEXT1                                                                 02/09/2012 14:54:33 PAGE 4   

 180   2      }       
 181   1      
 182   1      }
 183          /*--------------------------------------
 184                   串口一 发送接收中断函数
 185          --------------------------------------*/
 186          
 187          void uart_isr()  interrupt 4 
 188          {
 189   1              if( RI ) RI = 0;
 190   1              
 191   1              dat = SBUF;
 192   1              
 193   1              if( TI ) TI = 0;
 194   1      }
 195          
 196          
 197          /*--------------------------------------
 198                串口二    发送接收中断函数
 199          --------------------------------------*/
 200          void uart2_isr()  interrupt 8
 201          {
 202   1         if( S2CON & 0x01 )
 203   1               {
 204   2                      S2CON &= ~0x01;
 205   2                      dat= S2BUF;
 206   2               }
 207   1      
 208   1              if( S2CON & 0x02 )
 209   1              {
 210   2                              S2CON &= ~0x02;
 211   2              }
 212   1      
 213   1      }
 214          
 215          
 216          
 217          
 218          
 219          
 220          
 221          
 222          
 223          
 224          
 225          
 226          
 227          
 228          
 229          
 230          
 231          
 232          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    655    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       1
   IDATA SIZE       =   ----    ----
C51 COMPILER V9.00   TEXT1                                                                 02/09/2012 14:54:33 PAGE 5   

   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 + -