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

📄 prot30.lst

📁 15入15出继电器控制板
💻 LST
字号:
C51 COMPILER V9.00   PROT30                                                                01/01/2002 02:02:36 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE PROT30
OBJECT MODULE PLACED IN prot30.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE cmain\prot30.c BROWSE DEBUG OBJECTEXTEND PRINT(.\prot30.lst) OBJECT(prot30.
                    -obj)

line level    source

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

  55   1       unsigned char j;
  56   1               ES=0;
  57   1       for(j=0;j<=5;j++)
  58   1        {  
  59   2         SBUF=bite[j];
  60   2              while(!TI);
  61   2              TI=0; 
  62   2      
  63   2        }      
  64   1              ES=1; 
  65   1      }
  66          
  67          /*--------------------------------------
  68                    主函数
  69          --------------------------------------*/
  70          void main()
  71          {
  72   1         uchar k=10;
  73   1         P4SW|=0x20;             //配置P4.5为IO口
  74   1         P4M0|=0x10;             //配置P4.4为IO口
  75   1         P4M1|=0x10;
  76   1         P0=P1=P2=P3=0xff;
  77   1         P4|=0x30;
  78   1         init();             // 定时器初始化
  79   1         add=0X00;
  80   1         while(1)
  81   1         {
  82   2          if(receive==1&&bite[1]==add)
  83   2               {
  84   3              /*0=握手 1=地址 2=继电器开关 3=继电器1-8路 4=继电器9-16路 5=继电器17=24路
  85   3               *6=继电器25-30路*/
  86   3                      receive=0;
  87   3                      if(bite[2]==0x11)          //打开
  88   3                        open_X1(bite[3],0);
  89   3                      if(bite[2]==0x01)          //关闭
  90   3                        open_X1(bite[3],1);
  91   3      
  92   3                      if(bite[4]==0x12)          //打开
  93   3                        open_X2(bite[5],0);
  94   3                      if(bite[4]==0x02)          //关闭
  95   3                        open_X2(bite[5],1);
  96   3                        sender ();
  97   3      
  98   3                //  IapEraseSector(0);
  99   3                //  IapProgramByte(1,bite[3]);
 100   3            // IapProgramByte(2,bite[5]);
 101   3                // IapProgramByte(3,bite[7]);
 102   3                // IapProgramByte(4,bite[9]);
 103   3                        
 104   3      
 105   3               }                   
 106   2          }   
 107   1      
 108   1      }
 109          /*--------------------------------------
 110                   串口一 接收中断函数
 111          --------------------------------------*/
 112          
 113          void uart_isr()  interrupt 4 using 2
 114          {
 115   1        
 116   1        ES=0;
C51 COMPILER V9.00   PROT30                                                                01/01/2002 02:02:36 PAGE 3   

 117   1        if( RI ) 
 118   1         {
 119   2           RI=0;
 120   2           bite[r] = SBUF;
 121   2               if(bite[0]==0XAA || bite[0]==0XAB || bite[0]==0XAC || bite[0]==0XAD)
 122   2                r++;
 123   2               if(r>=6)
 124   2               {
 125   3                receive=1;
 126   3                r=0;
 127   3               }
 128   2         }
 129   1         ES=1;
 130   1              
 131   1      }
 132          
 133          void uart2_isr()  interrupt 8 using 1
 134          {
 135   1         if( S2CON & 0x01 )
 136   1               {
 137   2                      S2CON &= ~0x01;
 138   2                      bite[r] = S2BUF;
 139   2                 if(bite[0]==0XAA || bite[0]==0XAB || bite[0]==0XAC || bite[0]==0XAD)
 140   2                    r++;
 141   2                 if(r>=6)
 142   2                 {
 143   3                   receive=1;
 144   3                   r=0;
 145   3                 }
 146   2               }
 147   1      
 148   1              if( S2CON & 0x02 )
 149   1              {
 150   2                              S2CON &= ~0x02;
 151   2              }
 152   1      
 153   1      }
 154          
 155          
 156          
 157          
 158          
 159          
 160          
 161          
 162          
 163          
 164          
 165          
 166          
 167          
 168          
 169          
 170          
 171          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    322    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V9.00   PROT30                                                                01/01/2002 02:02:36 PAGE 4   

   DATA SIZE        =     16       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -