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

📄 zlg7289.lst

📁 电梯控制。电梯间竖井模型部分可由有机玻璃粘成无上盖板的六面体ABCDEFGH
💻 LST
字号:
C51 COMPILER V8.02   ZLG7289                                                               09/22/2008 12:21:20 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE ZLG7289
OBJECT MODULE PLACED IN zlg7289.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE zlg7289.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include"zlg7289.h"
   3          
   4          
   5          //函数:ZLG7289_Delay()
   6          //功能:短延时
   7          //说明:延时长度由Delay_T决定
   8          void ZLG7289_Delay(uchar Delay_T)
   9          {
  10   1              uchar i;
  11   1              for(i=0;i<Delay_T;i++);
  12   1              }
  13          
  14          
  15          //函数:SPI_WriteOneByte()
  16          //功能:向SPI总线写数据
  17          //说明:写入的数据长度为1字节
  18          void SPI_WriteOneByte(uchar Wdata)
  19          {
  20   1              uchar i;
  21   1              for(i=0;i<8;i++)
  22   1              {
  23   2                      ZLG7289_DIO = (bit)(Wdata&0x80);//高位先移出
  24   2                      ZLG7289_CLK = 1;
  25   2                      Wdata <<= 1;
  26   2                      ZLG7289_Delay(1);
  27   2                      ZLG7289_CLK     = 0;
  28   2                      ZLG7289_Delay(1);
  29   2                      
  30   2                      }
  31   1              }
  32          
  33          
  34          //函数:SPI_ReadOneByte()
  35          //功能:从SPI总线读数据
  36          //说明:返回1字节数据
  37          uchar SPI_ReadOneByte()
  38          {
  39   1              uchar i,temp;
  40   1              ZLG7289_DIO = 1;                        //将I/O切换到输入状态
  41   1              for(i=0;i<8;i++)
  42   1              {
  43   2                      ZLG7289_CLK = 1;
  44   2                      ZLG7289_Delay(5);
  45   2                      temp <<= 1;
  46   2                      if(ZLG7289_DIO) 
  47   2                      temp++;
  48   2                      ZLG7289_CLK     =       0;
  49   2                      ZLG7289_Delay(5);
  50   2                      }
  51   1              return temp;  //返回所读得的数据
  52   1              }
  53          
  54          //函数:ZLG7289_Instruc()
  55          //功能:执行ZLG7289纯指令
C51 COMPILER V8.02   ZLG7289                                                               09/22/2008 12:21:20 PAGE 2   

  56          //说明:指令长度为1字节
  57          void ZLG7289_Instruc(uchar Instruc)     //Instruc为指令
  58          {
  59   1              uchar i;
  60   1              i = IE;
  61   1              IE &= 0xfa;                                                     // Disable external interrupt;
  62   1              ZLG7289_CS = 0;
  63   1              ZLG7289_Delay(5);
  64   1              SPI_WriteOneByte(Instruc);
  65   1              ZLG7289_CS = 1;
  66   1              ZLG7289_Delay(5);
  67   1              IE = i;                                                         
  68   1              }
  69          
  70          
  71          //函数:ZLG7289_Instruc_Data
  72          //功能:执行ZLG7289带数据指令
  73          //说明:指令长度以及数据长度均为1字节
  74          void ZLG7289_Instruc_Data(uchar Instruc,uchar Data)//Instruc为指令,Data为数据
  75          {
  76   1              uchar i;
  77   1              i = IE;
  78   1              IE &= 0xfa;
  79   1              ZLG7289_CS = 0;
  80   1              ZLG7289_Delay(5);
  81   1              SPI_WriteOneByte(Instruc);
  82   1              ZLG7289_Delay(5);
  83   1              SPI_WriteOneByte(Data);
  84   1              ZLG7289_CS = 1;
  85   1              ZLG7289_Delay(5);
  86   1              IE = i;
  87   1              }
  88          
  89          
  90          
  91          //函数:ZLG7289_ReadKey()
  92          //功能:执行ZLG7289读键盘指令
  93          //说明:返回1字节的按键号
  94          //                      按键号的范围为:0 ~ 63(即0x0 ~ 0x3f)
  95          //                      若没有按按键被按下了,返回255(即0xff)
  96          uchar ZLG7289_ReadKey()
  97          {
  98   1              uchar Key;
  99   1              ZLG7289_CS = 0;
 100   1              ZLG7289_Delay(10);
 101   1              SPI_WriteOneByte(0x15);
 102   1              ZLG7289_Delay(5);
 103   1              Key = SPI_ReadOneByte();
 104   1              ZLG7289_Delay(1);
 105   1              ZLG7289_CS = 1;
 106   1              ZLG7289_Delay(5);
 107   1              return Key;      //        Key为返回的按键号
 108   1              }
 109          
 110          
 111          //函数:ZLG7289_Init()
 112          //功能:初始化ZLG7289
 113          //说明:主要是对I/O进行初始化
 114          void ZLG7289_Init()
 115          {
 116   1              ZLG7289_CS = 1;
 117   1              ZLG7289_CLK = 0;
C51 COMPILER V8.02   ZLG7289                                                               09/22/2008 12:21:20 PAGE 3   

 118   1              ZLG7289_DIO = 1;
 119   1              ZLG7289_INT = 1;
 120   1              }
 121          
 122          
 123          //函数:ZLG7289_Reset()
 124          //功能:ZLG7289复位指令
 125          #define ZLG7289_Reset()         ZLG7289_Instruc(0xa4)
 126          
 127          
 128          //函数:ZLG7289_Test()
 129          //功能:ZLG7289测试指令
 130          #define ZLG7289_Test()          ZLG7289_Instruc(0xbf)
 131          
 132          
 133          //函数:ZLG7289_SHL()
 134          //功能:ZLG7289左移指令
 135          #define ZLG7289_SHL()                   ZLG7289_Instruc(0xa0)
 136          
 137          
 138          //函数:ZLG7289_SHR()
 139          //功能:ZLG7289右移指令
 140          #define ZLG7289_SHR()                   ZLG7289_Instruc(0xa1)
 141          
 142          
 143          //函数:ZLG7289_ROL()
 144          //功能:ZLG7289循环左移指令
 145          #define ZLG7289_ROL()                   ZLG7289_Instruc(0xa2)
 146          
 147          
 148          //函数:ZLG7289_ROR()
 149          //功能:ZLG7289循环右移指令
 150          #define ZLG7289_ROR()                   ZLG7289_Instruc(0xa3)
 151          
 152          
 153          //函数:ZLG7289_Down_Data()
 154          //功能:ZLG7289下载数据
 155          //说明:形参Decode_mod:模式选择(取值范围:1 ~ 3):1--模式0译码;2--模式1译码;3--不译码
 156          //                      Disp_addr:                     数码管显示数据的位地址(取值范围:0 ~ 7)
 157          //                      Disp_dp:                               小数点控制:0--小数点被点亮,1--小数点被熄灭
 158          //                      Disp_data:                     显示的数据
 159          void ZLG7289_Down_Data(uchar Decode_mod,uchar Disp_addr,bit Disp_dp,uchar Disp_data)
 160          {
 161   1              uchar Mode[] = {0x80,0xc8,0x90};
 162   1              uchar temp,temp1;
 163   1              if(Decode_mod==0x01) 
 164   1                      temp = Mode[0];
 165   1              else if(Decode_mod==0x02)
 166   1                      temp = Mode[1];
 167   1              else if(Decode_mod==0x03)
 168   1                      temp = Mode[2];
 169   1              if(Disp_dp==1)
 170   1                      temp1 = 0x80;
 171   1              else
 172   1                      temp1 = 0x00;
 173   1              Disp_addr=((0x07-Disp_addr)&0x07);
 174   1              ZLG7289_Instruc_Data((temp | Disp_addr),(temp1 | (Disp_data&0x7f)));            
 175   1              }
 176          
 177          
 178          //函数:ZLG7289_Glint
 179          //功能:ZLG7289闪烁控制
C51 COMPILER V8.02   ZLG7289                                                               09/22/2008 12:21:20 PAGE 4   

 180          //说明:形参temp为8bits数据,
 181          //      从temp的最高位置(MSB)到最低位(LSB)分别代表数码管的第7到第0位
 182          //                      0--闪烁,1--不闪烁
 183          #define ZLG7289_Glint(temp)                     ZLG7289_Instruc_Data(0x88,(temp))
 184          
 185          
 186          //函数:ZLG7289_Hide
 187          //功能:ZLG7289消隐控制
 188          //说明:形参temp为8bits数据,
 189          //                      从temp的最高位置(MSB)到最低位(LSB)分别代表数码管的第0到第7位
 190          //                      0--消隐,1--显示;复位后所有位都不消隐
 191          #define ZLG7289_Hide(temp)                      ZLG7289_Instruc_Data(0x98,(temp))
 192          
 193          
 194          //函数:ZLG7289_Seg_On
 195          //功能:ZLG7289段点亮指令
 196          //说明:形参seg的最高位置(MSB)到最低位(LSB)的格式为“XXd5d4d3d2d1d0”
 197          //                      其中“XX”为无关位,d5d4d3d2d1d0为6位段地址。
 198          //                      点亮顺序为g、f、e、d、c、b、a、dp
 199          #define ZLG7289_Seg_On(seg)                     ZLG7289_Instruc_Data(0xe0,(seg))
 200          
 201          
 202          //函数:ZLG7289_Seg_Off
 203          //功能:ZLG7289段关闭指令
 204          //说明:形参seg的最高位置(MSB)到最低位(LSB)的格式为“XXd5d4d3d2d1d0”
 205          //                      其中“XX”为无关位,d5d4d3d2d1d0为6位段地址。
 206          //                      关闭顺序为g、f、e、d、c、b、a、dp
 207          #define ZLG7289_Seg_Off(seg)            ZLG7289_Instruc_Data(0xc0,(seg))


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    251    ----
   CONSTANT SIZE    =      3    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       8
   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 + -