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

📄 dio.lst

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


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

line level    source

   1          /****************************************************************************
   2           **
   3           ** 文件名:  DIO.c
   4           ** 功能:    C8051Fxxx在LZK中的DI、DO应用;
   5           ** 创建时间:2005.08.05
   6           ** 作者:    李立学
   7           ** 版权申明:可以拷贝,可以修改,但必须保留修改时间和作者信息
   8          
   9          
  10           ** 修改说明:2006.09.30  沈卢斌  
  11                        修改了
  12          
  13           ** 修改说明:2006.09.30  薛佳元
  14                        修改了
  15          
  16           ** 
  17           ****************************************************************************/
  18          
  19          #include "LZK.H"         
  20          
  21          /****************************************************************************
  22          ** 函数名称: DIO_CS()
  23          ** 功能描述: DIO地址片选
  24          ** 入口参数: 无
  25          ** 出口参数: 无
  26          ** 全局变量: 无
  27          ** 调用模块: 无
  28          ** 说明:
  29          ****************************************************************************/
  30          void DIO_CS(void)
  31          {
  32   1         uint8 data ucTMP;
  33   1      
  34   1         /*******************************
  35   1               *** Switch to ExSRAM ***
  36   1               *******************************/ 
  37   1         SFRPAGE = 0x00;
  38   1         EMI0CF = 0x25;      // 0010_0101,  ALE: 2SYSCLK. SRAM Split Mode.     
  39   1         EMI0TC = 0x49;      // 01_0010_01: AST:1,nWR/nRd:3SYSCLK,AHT:1. 
  40   1      
  41   1         SFRPAGE = 0x0f;
  42   1         ucTMP = ucP4DATA & 0xC0 | 16;  // ExSRAM Page 16; 
  43   1         P4 = ucTMP;                    // ExSRAM Page Setting.
  44   1         SFRPAGE = 0x00;
  45   1      }
  46          
  47          
  48          /****************************************************************************
  49          ** 函数名称: RelayOutPut_Init()
  50          ** 功能描述: 继电器输出初始化.
  51          ** 入口参数: 无
  52          ** 出口参数: 无
  53          ** 全局变量: 无
  54          ** 调用模块: 无
  55          ** 说明:
C51 COMPILER V7.20   DIO                                                                   01/31/2007 10:20:44 PAGE 2   

  56          ****************************************************************************/
  57          void RelayOutPut_Init(void)
  58          {
  59   1         DIO_CS();                 // ExSRAM Page 16.
  60   1      
  61   1         RelayOutDATA = 0xff;      // Relay Reset to 0x00.
  62   1         RelayOutOE   = 0xff;      // Relay Output Enabled. 
  63   1         ExInSRAM_Select(0);       //  
  64   1      }
  65          
  66          
  67          /****************************************************************************
  68          ** 函数名称: RelayOutPut()
  69          ** 功能描述: 继电器控制输出
  70          ** 入口参数: RelayOutCMD,RelayOutCMD^n = 1对应位的继电器动作,否则为默认值;
  71          ** 出口参数: 无
  72          ** 全局变量: RelayOUT
  73          ** 调用模块: 无
  74          ** 说明:
  75          ****************************************************************************/
  76          void RelayOutPut(uint8 ucDATA)
  77          {
  78   1         DIO_CS();                 // ExSRAM Page 16.
  79   1      
  80   1         RelayOutDATA = ucDATA;    // 
  81   1         ExInSRAM_Select(0);       //  
  82   1      }  
  83          
  84          
  85          /****************************************************************************
  86          ** 函数名称: RelayInPut()
  87          ** 功能描述: 外部开关量I/O输入,遥信
  88          ** 入口参数: 无;
  89          ** 出口参数: RelayIN,外部开关量
  90          ** 全局变量: RelayIN
  91          ** 调用模块: 无
  92          ** 说明:
  93          ****************************************************************************/
  94          uint8 RelayInPut(void)
  95          {
  96   1         uint8 data ucTMP;
  97   1         
  98   1         SFRPAGE = 0x00;
  99   1         EMI0CF = 0x25;        // 0010_0101,  ALE: 2SYSCLK. SRAM Split Mode.     
 100   1         EMI0TC = 0x49;        // 01_0010_01: AST:1,nWR/nRd:3SYSCLK,AHT:1. 
 101   1      
 102   1      
 103   1         SFRPAGE = 0x0f;       // P4,P7 SFR PAGE.
 104   1         P4 = 0xd0;            // 1___1___0___10000;
 105   1                                    // nWR_nRD_ALE_A[20..A16]. 
 106   1         ucTMP = RelayInDATA;  // RelayInDATA Valid.  
 107   1                               // A[4..0] be Saved. 
 108   1         P7MDOUT = 0x00;       // P7口设置为输入方式. 
 109   1         P4 = 0xd0 & 0xbf;     // nRD ='0';
 110   1         P4 = 0xd0 & 0xbf;     // nRD ='0';
 111   1         P4 = 0xd0 & 0xbf;     // nRD ='0';
 112   1         P4 = 0xd0 & 0xbf;     // nRD ='0';
 113   1      
 114   1              ucTMP = P7; 
 115   1      
 116   1         P4 = 0xd0;            // nRD ='1';
 117   1         P7MDOUT = 0xff;       // P7口设置为推挽方式. 
C51 COMPILER V7.20   DIO                                                                   01/31/2007 10:20:44 PAGE 3   

 118   1      
 119   1         ExInSRAM_Select(0);   //  
 120   1         
 121   1         return ucTMP;
 122   1      }
 123          
 124          
 125          /****************************************************************************
 126          ** 函数名称: PulseOutPut()
 127          ** 功能描述: 可控硅触发变压器输出
 128          ** 入口参数: PulseOutCMD,PulseOutCMD^n = 1对应位的脉冲触发变压器输出;
 129          ** 出口参数: 无
 130          ** 全局变量: PulseOUT
 131          ** 调用模块: 无
 132          ** 说明:
 133          ****************************************************************************/
 134          void PulseOutPut(uint8 ucDATA)
 135          {       
 136   1         SFRPAGE = 0x0f;              // P5 SFR PAGE.
 137   1         ucP5DATA = ucDATA & 0x7f;
 138   1              P5 = ucP5DATA;  
 139   1         SFRPAGE = 0x00;        
 140   1      }
 141          
 142          /****************************************************************************
 143          ** 函数名称: RelayOut_SelfTest()
 144          ** 功能描述: 继电器输出自检测试
 145          ** 入口参数: 无
 146          ** 出口参数: 无
 147          ** 全局变量: 无
 148          ** 调用模块: 无
 149          ** 说明:
 150          ****************************************************************************/
 151          void RelayOut_SelfTest(void)
 152          {
 153   1         uint8 idata i, ucTMP;
 154   1      
 155   1              for(i=0; i<8; i++)
 156   1              {
 157   2                 ucTMP = 0x01 << i;     // 0000 0001.
 158   2            ucTMP = ~ucTMP;        // 1111 1110.
 159   2                      RelayOutPut(ucTMP);
 160   2            D1S(1);
 161   2              }
 162   1      
 163   1         RelayOutPut(0xff);        // Disabled all Relays.      
 164   1      }
 165          
 166          /****************************************************************************
 167          ** 函数名称: PulseOut_SelfTest()
 168          ** 功能描述: 继电器输出自检测试
 169          ** 入口参数: 无
 170          ** 出口参数: 无
 171          ** 全局变量: 无
 172          ** 调用模块: 无
 173          ** 说明:
 174          ****************************************************************************/
 175          void PulseOut_SelfTest(void)
 176          {
 177   1         uint8 xdata i, ucTMP;
 178   1      
 179   1              for(i=0; i<7; i++)
C51 COMPILER V7.20   DIO                                                                   01/31/2007 10:20:44 PAGE 4   

 180   1              {
 181   2                 ucTMP = 0x01 << i;     // 0000 0001.
 182   2            ucTMP = ~ucTMP;        // 1111 1110.
 183   2            ucTMP = ucTMP & 0x7f;  // 0111 1110.
 184   2      
 185   2                      PulseOutPut(ucTMP);
 186   2            DmS(3);
 187   2              }
 188   1      
 189   1         PulseOutPut(0xff);        // Disabled all PulseOUT.      
 190   1      }
 191          
 192          


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