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

📄 zlg8279_1.lst

📁 单片机键盘控制程序
💻 LST
字号:
C51 COMPILER V7.06   ZLG8279_1                                                             04/12/2005 09:46:28 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ZLG8279_1
OBJECT MODULE PLACED IN ZLG8279_1.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE ZLG8279_1.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //-----------------------函数声明,变量定义--------------------------------------------------------
   2          #include <reg51.h>
   3          sbit ZLG7289_CS=P1^4; // ZLG7289_CS--P1.4
   4          sbit ZLG7289_CLK=P1^5; // ZLG7289_CLK-- P1.5
   5          sbit ZLG7289_DATA=P1^6; // ZLG7289_DATA-- P1.2
   6          sbit ZLG7289_KEY =P1^7; // ZLG7289_KEY-- P1.3
   7          #define RunKey 0x33
   8          #define StopKey 0x22
   9          //-----------------------接口定义--------------------------------------------------------
  10          #define ZLG7289_RESET 0xa4 //复位
  11          #define ZLG7289_TEST 0xbf //测试 
  12          #define ZLG7289_RLC 0xa3 //循环左移
  13          #define ZLG7289_RRC 0xa2 //循环右移
  14          #define ZLG7289_RL 0xa1 //左移
  15          #define ZLG7289_RR 0xa0 //右移 
  16          #define ZLG7289_DECODE0 0x80 //译码方式0
  17          #define ZLG7289_DECODE1 0xc8 //译码方式1
  18          #define ZLG7289_UNDECODE 0x90 //译码方式2: 不译码 
  19          #define ZLG7289_HIDE 0x98 //消隐
  20          #define ZLG7289_FLASH 0x88 //闪烁 
  21          #define ZLG7289_SEGON 0xe0 //段亮
  22          #define ZLG7289_SEGOFF 0xc0 //段灭 
  23          #define ZLG7289_READ 0x15 //读 
  24          //-------------------------------- ------------------------------------------------------------------
  25          // 函数名称: delay
  26          // 入口参数: N
  27          // 函数功能:延时子程序,实现(16*N+24)us的延时 
  28          // 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
  29          //--------------------------------------------------------------------------------------------------
  30           void delay(unsigned  int N)  
  31            {
  32   1        int i; 
  33   1        for(i=0;i<N;i++);
  34   1        }
  35          /*--------------------------------------------
  36          调用方式: void ZLG7289_LongDelay(void) 
  37          函数说明   >500ms 
  38          --------------------------------------------*/
  39          void ZLG7289_LongDelay(void)
  40          { 
  41   1      unsigned char i; 
  42   1      for (i=0;i<7;i++)
  43   1       delay(5000);         //定时80ms
  44   1      }
  45          //-----------------------------------------------------------------------
  46          //调用方式:void ZLG7289_ShortDelay(void)
  47          //函数说明:=500ms 
  48          //------------------------------------------------------------------------
  49          void ZLG7289_ShortDelay(void)
  50          {;} 
  51          //-----------------------------------------------------------------------
  52          //调用方式:ZLG7289_SendByte
  53          //入口参数: out_byte
  54          //函数说明:送指令
  55          //------------------------------------------------------------------------
C51 COMPILER V7.06   ZLG8279_1                                                             04/12/2005 09:46:28 PAGE 2   

  56          void ZLG7289_SendByte( unsigned char out_byte)
  57          { 
  58   1      unsigned char i;
  59   1      ZLG7289_CS=0; 
  60   1      ZLG7289_LongDelay(); 
  61   1      for(i=0;i<8;i++) 
  62   1      { 
  63   2      if(out_byte&0x80) { ZLG7289_DATA=1; } 
  64   2      else { ZLG7289_DATA=0; } 
  65   2      ZLG7289_CLK=1; 
  66   2      ZLG7289_ShortDelay(); 
  67   2      ZLG7289_CLK=0; 
  68   2      ZLG7289_ShortDelay(); 
  69   2      out_byte=out_byte<<1;
  70   2      } 
  71   1      ZLG7289_DATA=0;
  72   1      }
  73          //-----------------------------------------------------------------------
  74          //调用方式:void WRITE_ZLG7289(unsigned char command, unsigned char dta)
  75          //入口参数:  command,dta
  76          //函数说明:写函数
  77          //------------------------------------------------------------------------
  78          void WRITE_ZLG7289(unsigned char command, unsigned char dta)
  79          { 
  80   1      ZLG7289_SendByte( command ); 
  81   1      ZLG7289_SendByte( dta );
  82   1      }
  83          //-----------------------------------------------------------------------
  84          //调用方式:unsigned char ZLG7289_ReceiveByte(void)
  85          //返回值: 接收到的数据
  86          //函数说明:接受一个BYTE函数
  87          //------------------------------------------------------------------------
  88          unsigned char ZLG7289_ReceiveByte(void)
  89          { 
  90   1      unsigned char i, in_byte;
  91   1      ZLG7289_DATA=1; 
  92   1      ZLG7289_LongDelay(); 
  93   1      for(i=0;i<8;i++) 
  94   1      {ZLG7289_CLK=1; 
  95   2      ZLG7289_ShortDelay(); 
  96   2      in_byte=in_byte<<1; 
  97   2      if(ZLG7289_DATA) { in_byte=in_byte|0x01; } 
  98   2      ZLG7289_CLK=0; 
  99   2      ZLG7289_ShortDelay(); 
 100   2      } 
 101   1      ZLG7289_DATA=0; 
 102   1      return (in_byte);
 103   1      }
 104          //-----------------------------------------------------------------------
 105          //调用方式:unsigned char ZLG7289_GetKey()
 106          //返回值: 接收到的按键值 
 107          //函数说明:读键盘函数
 108          //------------------------------------------------------------------------
 109          unsigned char ZLG7289_GetKey()
 110          { 
 111   1      unsigned char key; 
 112   1      if(!ZLG7289_KEY) 
 113   1      { 
 114   2      ZLG7289_SendByte(ZLG7289_READ); 
 115   2      key=ZLG7289_ReceiveByte(); 
 116   2      switch( key ) 
 117   2      {
C51 COMPILER V7.06   ZLG8279_1                                                             04/12/2005 09:46:28 PAGE 3   

 118   3      case RunKey: 
 119   3      case StopKey: 
 120   3      while(!ZLG7289_KEY); 
 121   3      default: return(0xff); 
 122   3      } 
 123   2      } 
 124   1      return(0xff);
 125   1      }
 126          //-----------------------------------------------------------------------
 127          //主函数形式 
 128          //------------------------------------------------------------------------
 129          main()
 130          {
 131   1      ZLG7289_SendByte(0xa4);//复位
 132   1      WRITE_ZLG7289(0x80,0);//显示‘0’
 133   1      }


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