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

📄 lzk.lst

📁 基于MST-G240128点阵液晶的 状态机机制 人机界面四级滚屏菜单 源代码 ,带时间片机制模拟操作系统
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.20   LZK                                                                   01/31/2007 10:20:42 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE LZK
OBJECT MODULE PLACED IN LZK.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\c51.exe LZK.c DB OE

line level    source

   1          #include "LZK.H"
   2          
   3          
   4          /***********************************************************************
   5           ***  系统全局常量、变量、和位定义 .
   6           ***********************************************************************/
   7          uint8  data  ucP5DATA = 0x7f;    // Panel Latch Buffer.
   8          uint8  data  ucP4DATA = 0xC0;    // P4    Latch Buffer.
   9          /**************************************************************************/
  10          
  11          uint8  xdata DmsCNT = 0;
  12          
  13          uint8  xdata DmsFlag = 0;
  14          uint16 xdata DmsNum = 0;
  15          
  16          uint8  xdata Dms2Flag = 0;
  17          uint16 xdata Dms2_1Num = 0;
  18          uint16 xdata Dms2_2Num = 0;
  19          uint16 xdata Dms2_3Num = 0;
  20          /**************************************************************************/
  21          bit MenuKeyEvt = 0;
  22          bit EnterKeyEvt = 0;
  23          bit CancelKeyEvt = 0;
  24          bit UpKeyEvt = 0;
  25          bit DownKeyEvt = 0;
  26          bit LeftKeyEvt = 0;
  27          bit RightKeyEvt = 0;
  28          bit PressKeyEvt = 0;
  29          
  30          uint16 xdata MenuKeyCNT   = 0;
  31          uint16 xdata EnterKeyCNT  = 0;  
  32          uint16 xdata CancelKeyCNT = 0;
  33          uint16 xdata UpKeyCNT     = 0;
  34          uint16 xdata DownKeyCNT   = 0; 
  35          uint16 xdata LeftKeyCNT   = 0;
  36          uint16 xdata RightKeyCNT  = 0; 
  37          
  38          uint16  xdata temp = 0;
  39          uint8   xdata Flash[128];
  40          uint8   xdata CFlash[100];
  41          
  42          uint8 xdata seek = 0;   //一级菜单页(主菜单选项)
  43          uint8 xdata hunt = 0;   //二级菜单页(一级菜单子菜单页及其选项)
  44          uint8 xdata page = 0;   //三级菜单页(二级菜单子菜单页 如:故障页,静态参数页)
  45          uint8 xdata Data_Num = 0;//运行页六项滚动显示
  46          
  47          uint8 xdata Mov1Up = 0; //动画运动量1
  48          uint8 xdata Mov2Up = 0; //动画运动量2
  49          uint8 xdata head = 0;   //动画运动方向
  50          uint8 xdata Shf1UP = 0; //上位机动画及热备图标
  51          uint8 xdata Shf2UP = 0; //上位机动画及热备图标
  52          /***********************************************************************
  53           ***  DI、DO开关量定义
  54           **********************************************************************/
  55          
C51 COMPILER V7.20   LZK                                                                   01/31/2007 10:20:42 PAGE 2   

  56          /***********************************************************************
  57           *** DO开关量(控制输出继电器)功能说明:
  58          (1)KQJ:KQ可控硅开通控制继电器(常闭).
  59          (2)LZJ:励磁状态继电器(常开),LZJ决定是否进行RF检测.
  60          (3)LCJ:失步保护继电器(常开),控制主电源开关或输出给PLC.
  61          (4)SZJ:跳闸停机继电器(常开),后备保护用,输出给PLC.
  62          (5)BXJ:报警输出继电器(常开),用于接通声光报警或输出至PLC.
  63          (6)TYJ:降压起动继电器(常开),控制输出.
  64          (7)YKJ:遥控继电器(常开)
  65          (8)N/A:
  66          ***********************************************************************/
  67          uint8 bdata RelayOUT = 0xff;  // Output Relay STATUS.
  68          sbit ZJJ_OUT = RelayOUT^7;    // N/A.
  69          sbit YKJ_OUT = RelayOUT^6;    // YKJ Output Relay No.6.遥控状态输出
  70          sbit TYJ_OUT = RelayOUT^5;    // TYJ Output Relay No.5.降压启动控制输出
  71          sbit BXJ_OUT = RelayOUT^4;    // BXJ Output Relay No.4.报警输出
  72          sbit SZJ_OUT = RelayOUT^3;    // SZJ Output Relay No.3.失步再整步失败状态输出
  73          sbit LCJ_OUT = RelayOUT^2;    // LCJ Output Relay No.2.失步状态输出
  74          sbit LZJ_OUT = RelayOUT^1;    // LZJ Output Relay No.1.KQ误导通检测使能控制
  75          sbit KQJ_OUT = RelayOUT^0;    // KQJ Output Relay No.0.KQ控制继电器
  76          
  77          
  78          /***********************************************************************
  79           *** DI开关量(状态输入继电器)功能说明:
  80          (1)DLJ:电机加电状态输入(常开),由PLC输入.
  81          (2)RFJ:KQ导通检测(常开),RFJ闭合表示KQ导通.
  82          (3)FCJ:断电保护输入(常开),由PLC输入,防止对电机的冲击.
  83          (4)JYJ:降压起动输入(常开),由PLC输入.
  84          (5)ZCJ:增值(常开),遥控增值.
  85          (6)JCJ:减值(常开),遥控减值.
  86          (7)YCJ:遥控状态继电器,由PLC输入.
  87          (8)DYJ:低压状态输入.
  88          ***********************************************************************/
  89          uint8 bdata RelayIN = 0xff;  // Digital Input STATUS.
  90          sbit DYJ_IN = RelayIN^7;     // DYJ Input Relay No.7.低电压强励控制输入
  91          sbit YCJ_IN = RelayIN^6;     // YCJ Input Relay No.6.遥控状态控制输入
  92          sbit JCJ_IN = RelayIN^5;     // JCJ Input Relay No.5.减值
  93          sbit ZCJ_IN = RelayIN^4;     // ZCJ Input Relay No.4.增值
  94          sbit JYJ_IN = RelayIN^3;     // JYJ Input Relay No.3.降压启动控制输入
  95          sbit FCJ_IN = RelayIN^2;     // FCJ Input Relay No.2.防冲击输入<DSJ断电失步保护继电器>
  96          sbit RFJ_IN = RelayIN^1;     // RFJ Input Relay No.1.RF误导通信号输入
  97          sbit DLJ_IN = RelayIN^0;     // DLJ Input Relay No.0.电机启动控制信号输入
  98          
  99          
 100          
 101          
 102           
 103          /************************温度************************/
 104          uint8  xdata Temper_EN = 0;
 105          uint16 xdata KTemper = 0;
 106          float  xdata CTemper = 0;
 107          uint8  xdata OutTemper = 0;
 108          /***********************录波与显波*******************/
 109          float xdata EM_k1 = 0;
 110          float xdata EM_k2 = 0;
 111          uint8 xdata EM_b1 = 0;
 112          uint8 xdata EM_b2 = 0;
 113          uint8 xdata EM_speed = 0;
 114          
 115          
 116          uint8  idata AD_Switch = 0;
 117          uint8  idata AD_DataBuff[4];
C51 COMPILER V7.20   LZK                                                                   01/31/2007 10:20:42 PAGE 3   

 118          
 119          char  idata ExSramWrRdPag = 0;
 120          char  xdata ExSramStarPag = 0;
 121          char  xdata ExSramEndPag = 0;
 122          
 123          uint16 idata ExSramWrRdAdr = 0x0000;
 124          uint16 xdata ExSramTempAdr = 0x0000;
 125          uint8  xdata *ExSramWrRdAdrPt;
 126          
 127          uint8 xdata CH1[200];
 128          uint8 xdata CH2[200];
 129          uint8 xdata Em_PtData = 0;
 130          
 131          uint8 xdata Em_Pace = 0;
 132          uint8 xdata Em_Slot = 0;
 133          /*****************************************************************/
 134          uint8 xdata Star_EN = 0;                 //与DLJ对应锁存
 135          uint8 xdata Wave_EN = 0;                 //与WaveEn对应锁
 136          uint8 xdata DisWave_EN = 0;              //显波使能
 137          uint8 xdata Com_EN = 1;                  //上位机通信使能
 138          
 139          uint16 xdata  ErrorRege = 0;             //故障类型
 140          uint16 xdata  ErrorTemp = 0;             //故障锁存
 141          
 142          uint8  xdata  PictrRege = 0;             //图片状态
 143          uint8  xdata  PictrTemp = 0;             //图片锁存
 144          
 145          uint8 xdata RecType = 0;                 //录波类型
 146          uint8 xdata RecTemp = 0;                 //录波锁存
 147          
 148          uint8 xdata AcctimeTemp = 0;             //累计运行时间锁存
 149          /*******************************************************************
 150          0x00  不录波
 151          0x01  手动录波
 152          0x02  启动录波
 153          0x03  缺相
 154          0x04  投励失败
 155          0x05  失控
 156          0x06  失步
 157          0x07  PT断线
 158          ***************************/
 159          
 160          
 161          
 162          
 163          /****************************************************************************
 164          ** 函数名称: T2_ISR()
 165          ** 功能描述: T2定时器中断处理,中断间隔125uS
 166                       (1)125uS时间基准:分为5个相位;
 167                                      (2)WDT清除;
 168                                      (3)A/D采样:UF,IF,DU,DI,CurrRingEY,CurrRingEI;
 169                                      (4)DI读入: UFCO,IFCO,SYNCx,RelayIN;
 170                                      (5)DO输出: RelayOUT,PulseOUT;
 171                       (6)功率因数相差法TIMER1测量结果读入; 
 172          ** 入口参数: 无
 173          ** 出口参数: 无
 174          ** 全局变量: 无
 175          ** 调用模块: 无
 176          ** 说明: 
 177          ****************************************************************************/
 178          void T2_ISR(void) interrupt 5
 179          {
C51 COMPILER V7.20   LZK                                                                   01/31/2007 10:20:42 PAGE 4   

 180   1         
 181   1         
 182   1              SFRPAGE = TMR2_PAGE   ;        // Change to TIMER2 PAGE.
 183   1         TF2 = 0;
 184   1         WDTCN = 0xA5;                  // Enable WDT or Reload the WDT.
 185   1      
 186   1      
 187   1         /************************************
 188   1              ***外部DI读入
 189   1              ************************************/
 190   1          RelayIN = RelayInPut();
 191   1      
 192   1         /************************************
 193   1              ***继电器输出
 194   1         ************************************/
 195   1          RelayOutPut(RelayOUT);
 196   1      
 197   1         /****************************************************************/
 198   1              if(Temper_EN==0)
 199   1              {
 200   2                      ADC0_CH_Setting(0x08);
 201   2                      AD0INT = 0;
 202   2                      AD0BUSY = 1;
 203   2                      while( AD0INT == 0 );
 204   2            KTemper=ADC0H;
 205   2                      KTemper=KTemper<<8;
 206   2                      KTemper=KTemper+ADC0L;  
 207   2                      Temper_EN=1;
 208   2              }
 209   1              
 210   1              /****************************************************************/
 211   1              Em_Slot++;
 212   1      
 213   1         if(Wave_EN && Em_Slot >= EN_RecMode)
 214   1         {
 215   2                    Em_Slot = 0;
 216   2      
 217   2                              for(AD_Switch=0;AD_Switch<4;AD_Switch++)
 218   2                              {
 219   3                                      ADC0_CH_Setting(AD_Switch);
 220   3                       AD0INT = 0;
 221   3                       AD0BUSY = 1;
 222   3                       while( AD0INT == 0 );
 223   3                       AD_DataBuff[AD_Switch] = (ADC0H<<3)+(ADC0L>>5);
 224   3                              }
 225   2      
 226   2               ExSRAM_PageSetting(ExSramWrRdPag);
 227   2                              for(AD_Switch=0;AD_Switch<4;AD_Switch++)
 228   2                              {
 229   3                       ExSramWrRdAdrPt = ExSramWrRdAdr;
 230   3                      *ExSramWrRdAdrPt = AD_DataBuff[AD_Switch];
 231   3                       ExSramWrRdAdr++;
 232   3                              }

⌨️ 快捷键说明

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