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

📄 zlg7289a.lst

📁 关于单片机开发的一个实例
💻 LST
字号:
C51 COMPILER V8.06   ZLG7289A                                                              03/15/2008 14:51:26 PAGE 1   


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

line level    source

   1          #include <REG52.H>                        
   2          #include <main.h>
   3          #include <zlg7289A.h>
   4          
   5          
   6          //键值号 输入键 ENTER | 测量键 MEASURE | 右移键 -> | 减少键  - | 增加键  + | 设置键 OPTION
   7          //              7                               15                              23                      31                      39                              47
   8          //数码管位地址  通道号     数据(千位)   数据(百位)   数据(十位)    数据(个位)    四个发光管
   9          //                        7                             6                               5                               4                       3                               2
  10          
  11          // 按方式0译码时:对应显示0-9数字和"-,E,H,L,P,空(无显示)"
  12          // 按方式1译码时:对应显示0-9数字和A-F字符
  13          
  14          
  15          //键值变量
  16          uchar symble=0xFF;   //初始态设为无键值按下的返回值   
  17          
  18          //延时子程序   参数×10us=延时数
  19          //参数:10us的倍数
  20          
  21          void delayus(uchar us)
  22          {
  23   1        uchar i;
  24   1        us=us*3;
  25   1        for(i=0;i<us;i++);
  26   1      
  27   1        }
  28          
  29          
  30          
  31          //纯指令操作函数
  32          //参数:纯指令关键字
  33          
  34          void SingleCommand(uchar command)
  35          {
  36   1         uchar i;
  37   1         CS_ZLG7289A=LOW;
  38   1         CLK_ZLG7289A=0;
  39   1         delayus(3);
  40   1          for(i=8;i>=1;i--)    //发送八位数据
  41   1          {
  42   2                DIO_ZLG7289A=command&0x08;
  43   2                command=command<<1;
  44   2                CLK_ZLG7289A=HIGH;
  45   2                delayus(1);
  46   2                CLK_ZLG7289A=LOW;
  47   2                delayus(1);
  48   2            }
  49   1         CS_ZLG7289A=HIGH;
  50   1          delayus(1);
  51   1      }
  52          
  53          
  54          //带参数指令操作函数
  55          //参数:带参数指令关键字command; 数码管位置position(如无位置参数则设为0); 参数data_8bit
C51 COMPILER V8.06   ZLG7289A                                                              03/15/2008 14:51:26 PAGE 2   

  56          
  57          void BiCommand(uchar command,uchar positoin,uchar data_8bit)
  58          {
  59   1         uchar i;
  60   1         command=command+positoin;
  61   1         CS_ZLG7289A=LOW;
  62   1         CLK_ZLG7289A=0;
  63   1         delayus(3);
  64   1          for(i=8;i>=1;i--)    //发送八位数据
  65   1          {
  66   2                DIO_ZLG7289A=command&0x08;
  67   2                command=command<<1;
  68   2                CLK_ZLG7289A=HIGH;
  69   2                delayus(1);
  70   2                CLK_ZLG7289A=LOW;
  71   2                delayus(1);
  72   2            }
  73   1         delayus(2);
  74   1         for(i=8;i>=1;i--)     //发送八位数据
  75   1          {
  76   2                DIO_ZLG7289A=data_8bit&0x08;
  77   2                data_8bit=data_8bit<<1;
  78   2                CLK_ZLG7289A=HIGH;
  79   2                delayus(1);
  80   2                CLK_ZLG7289A=LOW;
  81   2                delayus(1);
  82   2            }
  83   1         CS_ZLG7289A=HIGH;
  84   1          delayus(1);
  85   1      }
  86          
  87          //读键盘操作函数
  88          //参数:无
  89          //返回值:键值
  90          
  91          uchar ReadKey()
  92          {
  93   1         uchar i;
  94   1         uchar data_in=0; //接收数据存储单元
  95   1         uchar command=ReadKeyCom;   //读键盘命令
  96   1          CS_ZLG7289A=LOW;
  97   1         CLK_ZLG7289A=0;
  98   1         delayus(3);
  99   1          for(i=8;i>=1;i--)    //发送八位数据
 100   1          {
 101   2                DIO_ZLG7289A=command&0x08;
 102   2                command=command<<1;
 103   2                CLK_ZLG7289A=HIGH;
 104   2                delayus(1);
 105   2                CLK_ZLG7289A=LOW;
 106   2                delayus(1);
 107   2            }
 108   1         DIO_ZLG7289A=HIGH;   //端口置为接收状态
 109   1         delayus(2);
 110   1         for(i=8;i>=1;i--)     //接收八位数据
 111   1         {
 112   2               CLK_ZLG7289A=HIGH;
 113   2               delayus(1);
 114   2               data_in=data_in<<1;
 115   2               data_in=DIO_ZLG7289A|data_in;
 116   2               CLK_ZLG7289A=LOW;
 117   2               delayus(1);
C51 COMPILER V8.06   ZLG7289A                                                              03/15/2008 14:51:26 PAGE 3   

 118   2              }
 119   1          CS_ZLG7289A=HIGH;
 120   1               delayus(1);
 121   1         return(data_in);
 122   1      }
 123          
 124          
 125          //数码管显示
 126          //参数:数码管位置地址 position  显示方式:dfuction (DownDataCom_0; DownDataCom_1; DownDataCom等)
 127          //                                               
 128          //显示数据:ddata
 129          void LedShow(uchar position,uchar dfuction,uchar ddata,uchar dp)
 130          {
 131   1       uchar data_high,data_low;
 132   1       if(dfuction==DownDataCom_0||dfuction==DownDataCom_1||DownDataCom)  //下载数据
 133   1         {
 134   2           data_high=position+2;
 135   2               data_low=ddata+dp;
 136   2               BiCommand(dfuction,data_high,data_low);
 137   2          }
 138   1       if(dfuction==TwinkleCom)          //闪烁控制
 139   1         {
 140   2           data_high=position+2;
 141   2               BiCommand(dfuction,data_high,0);
 142   2          }
 143   1      }


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