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

📄 zlg7289.lst

📁 采用T6963显示的12864液晶C语言程序
💻 LST
字号:
C51 COMPILER V8.02   ZLG7289                                                               05/14/2009 13:43:31 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 "zlg7289.h"
   2          
   3          //定义一个全局变量,用于延时   
   4          //该变量在调用函数zlg7289_init()时被初始化   
   5          char zlg7289_delay_t; 
   6          
   7           /*
   8           *函数名:       zlg7289_spi_init
   9           *功能:初始化spi总线
  10           *参数:
  11           *   t:延时时间
  12           *说明:
  13           *    # t的取值可以参照以下公式:t>=5*f1/f2  
  14            * 其中f1表示C51的晶振频率,f2表示ZLG7289 的晶振频率 
  15           */
  16          void zlg7289_spi_init(uchar t) {
  17   1              zlg_cs=1;
  18   1              zlg_clk=0;
  19   1              zlg_dio=0;
  20   1              zlg7289_delay_t=t;
  21   1              IT0=1;
  22   1              EX0=1;
  23   1      }
  24          
  25          /*
  26           *函数名:       zlg7289_write
  27           *功能: 向总线写入一个字节
  28           *参数:
  29           *     d:要写入的一个字节
  30           */
  31          void zlg7289_write(uchar d){
  32   1          uchar i;
  33   1              for(i=0;i<8;i++){
  34   2                 if(d&0x80)
  35   2                    zlg_dio=1;
  36   2                 else
  37   2                    zlg_dio=0;
  38   2                 d<<=1;
  39   2                 zlg_clk=1;
  40   2                 zlg7289_short_delay();
  41   2                 zlg_clk=0;
  42   2                 zlg7289_short_delay();
  43   2                 
  44   2              }
  45   1      }
  46          
  47          /*
  48           *函数名:       zlg7289_read
  49           *功能: 从总线读入一个字节
  50           *返回:
  51           *  返回读取的一个字节
  52           */
  53          uchar zlg7289_read(){
  54   1              uchar i,v=0;
  55   1              zlg_dio = 1;//读取数据之前DIO引脚要置1以切换到输入状态  
C51 COMPILER V8.02   ZLG7289                                                               05/14/2009 13:43:31 PAGE 2   

  56   1              for(i=0;i<8;i++){
  57   2                  zlg_clk=1;
  58   2                      zlg7289_short_delay();
  59   2                      v<<=1;
  60   2                      if(zlg_dio)
  61   2                         v++;
  62   2                      zlg_clk=0;
  63   2                      zlg7289_short_delay();
  64   2              }
  65   1              return v;
  66   1      }
  67          
  68          
  69          /*
  70           *函数名:       zlg7289_readkey
  71           *功能: 读取键值
  72           *返回:
  73           *    返回读取的键值
  74           */
  75          uchar zlg7289_readkey(){
  76   1              uchar  key;
  77   1              zlg_cs=0;
  78   1              zlg7289_long_delay();
  79   1              zlg7289_write(0x15);
  80   1              zlg7289_short_delay();
  81   1              key=zlg7289_read();
  82   1              zlg_cs=1;
  83   1              zlg7289_long_delay();
  84   1              return key;
  85   1      }
  86          
  87          /*  
  88           *函数:zlg7289_cmd()  
  89           *功能:执行zlg7289不带数据指令  
  90           *参数:  
  91           *cmd:命令字    
  92           */   
  93           void zlg7289_cmd(uchar cmd){ 
  94   1              EX0=0;//关闭外部中断0  
  95   1              zlg_cs=0; 
  96   1              zlg7289_long_delay();
  97   1              zlg7289_write(cmd);//写命令
  98   1              zlg_cs=1;
  99   1              zlg7289_long_delay();  
 100   1              EX0 =1;//开启外部中断0
 101   1       }
 102          
 103          /*  
 104           *函数:zlg7289_cmd_with_data()  
 105           *功能:执行zlg7289 带数据指令  
 106           *参数:  
 107           *cmd:命令字  
 108           *d:数据  
 109           */   
 110          void zlg7289_cmd_with_data(uchar cmd, uchar d) {   
 111   1              EX0=0;//关闭外部中断0  
 112   1              zlg_cs=0; 
 113   1              zlg7289_long_delay();
 114   1              zlg7289_write(cmd);//写命令
 115   1              zlg7289_short_delay();;   
 116   1              zlg7289_write(d);//写数据
 117   1              zlg_cs=1;
C51 COMPILER V8.02   ZLG7289                                                               05/14/2009 13:43:31 PAGE 3   

 118   1              zlg7289_long_delay();  
 119   1              EX0 =1;//开启外部中断0
 120   1      }
 121          
 122          
 123          /*  
 124           *函数:zlg_Download()  
 125           *功能:下载数据  
 126           *参数:  
 127           *mod:
 128           *    mod=0下载数据且按方式0 译码  
 129           *    mod=1下载数据且按方式0 译码  
 130           *    mod=2下载数据但不译码 
 131           *index:
 132           *   数码管编号(横坐标),0~7  
 133           *dp:
 134           *   dp=0小数点不亮 ,dp=1小数点亮
 135           *d:
 136           *   要显示的数据    
 137           *说明:
 138           *   方式0译码:
 139           *       命令1 0 0 0 0 a2 a1 a0数据dp x x x d3 d2 d1 d0  显示0-9 - E H L P 空 
 140           *   方式1译码:
 141           *       命令1 1 0 0 1 a2 a1 a0数据dp x x x d3 d2 d1 d0  显示0-F十六进制     
 142           *   方式2译码:
 143           *       命令1 0 0 1 0 a2 a1 a0数据dp a b c d e f g  将dp-g中位值为1的点亮
 144           *   a2 a1 a0为数码管编号,d3 d2 d1 d0为数据     
 145           */   
 146          void zlg_download(uchar mod,uchar index , bit dp,uchar d){   
 147   1              code char  mode_data[3]={0x80,0xC8,0x90};  //存放在程序存储区 
 148   1              uchar cmd;     
 149   1              if(mod > 2) mod = 2;   
 150   1              cmd=mode_data[mod];   
 151   1              index&=0x07;   
 152   1              cmd|=index;   
 153   1              d=d&0x7f;   
 154   1              if(dp)d=0x80;   
 155   1              zlg7289_cmd_with_data(cmd,d);   
 156   1      }    


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