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

📄 ht1621-测试.lst

📁 HT1621芯片测试程序 本测试程序能够测试HT1621的每一个字段
💻 LST
字号:
C51 COMPILER V8.08   HT1621_瞋试                                                           02/14/2008 08:50:15 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE HT1621_瞋试
OBJECT MODULE PLACED IN HT1621-测试.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE HT1621-测试.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************
   2          功能描述: HT1621芯片测试程序
   3          设 计 人:ZHCE
   4          版    本:1.0
   5          说    明:本测试程序能够测试HT1621的每一个字段,依次点亮
   6                            每一个字段
   7          完成时间:2008年2月13日
   8          ********************************************************/
   9          
  10          #include <REGX51.H>
  11          #include <intrins.h>
  12          
  13          #define uchar unsigned char
  14          #define uint unsigned int
  15          #define _Nop() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
  16          
  17          #define BIAS   0x52             //0b1000 0101 0010  1/3duty 4com
  18          
  19          #define SYSDIS 0X00     //0b1000 0000 0000  关振系统荡器和LCD偏压发生器
  20          #define SYSEN  0X02     //0b1000 0000 0010 打开系统振荡器
  21          
  22          #define LCDOFF 0X04     //0b1000 0000 0100  关LCD偏压
  23          #define LCDON  0X06     //0b1000 0000 0110  打开LCD偏压
  24          
  25          #define XTAL   0x28     //0b1000 0010 1000 外部接时钟
  26          #define RC256  0X30     //0b1000 0011 0000  内部时钟
  27          
  28          #define TONEON  0X12    //0b1000 0001 0010  打开声音输出
  29          #define TONEOFF 0X10    //0b1000 0001 0000 关闭声音输出
  30          
  31          #define WDTDIS  0X0A    //0b1000 0000 1010  禁止看门狗
  32          
  33          //HT1621控制位(液晶模块接口定义,根据自已的需要更改)
  34          sbit HT1621_DAT=P3^4;           //HT1621数据引脚
  35          sbit HT1621_CS=P3^2;    //HT1621使能引脚
  36          sbit HT1621_WR=P3^3;    //HT1621时钟引脚
  37             
  38          
  39          
  40          uchar code Ht1621Tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  41          
  42          //delay us
  43          void Delay(uchar us)  //5,7,9
  44          {
  45   1       while(--us); 
  46   1      }
  47          
  48          
  49          //delay ms
  50          void DelayMS(uint iMs)
  51          {
  52   1       uint i,j;
  53   1         for(i=0;i<iMs;i++)
  54   1          for(j=0;j<65;j++) Delay(1);
  55   1            
C51 COMPILER V8.08   HT1621_瞋试                                                           02/14/2008 08:50:15 PAGE 2   

  56   1      }
  57          
  58          
  59          
  60          /******************************************************
  61          写数据函数,cnt为传送数据位数,数据传送为低位在前
  62          *******************************************************/
  63          void Ht1621Wr_Data(uchar Data,uchar cnt)
  64          {
  65   1        uchar i;
  66   1        for (i=0;i<cnt;i++)
  67   1        {  
  68   2          HT1621_WR=0;
  69   2              _Nop();
  70   2              HT1621_DAT=Data&0x80;                             
  71   2          _Nop();
  72   2          HT1621_WR=1;
  73   2          _Nop();
  74   2          Data<<=1; 
  75   2        }
  76   1      }
  77          
  78          
  79          /********************************************************
  80          函数名称:void Ht1621WrCmd(uchar Cmd)
  81          功能描述: HT1621命令写入函数
  82          全局变量:无
  83          参数说明:Cmd为写入命令数据
  84          返回说明:无
  85          设 计 人:ZHCE
  86          版    本:1.0
  87          说    明:写入命令标识位100
  88          ********************************************************/
  89          void Ht1621WrCmd(uchar Cmd)
  90          {
  91   1        HT1621_CS=0;
  92   1        _Nop();
  93   1        Ht1621Wr_Data(0x80,4);        //写入命令标志100
  94   1        Ht1621Wr_Data(Cmd,8);         //写入命令数据
  95   1        HT1621_CS=1;
  96   1        _Nop(); 
  97   1      }
  98          
  99          
 100          /********************************************************
 101          函数名称:void Ht1621WrOneData(uchar Addr,uchar Data)
 102          功能描述: HT1621在指定地址写入数据函数
 103          全局变量:无
 104          参数说明:Addr为写入初始地址,Data为写入数据
 105          返回说明:无
 106          设 计 人:ZHCE
 107          版    本:1.0
 108          说    明:因为HT1621的数据位4位,所以实际写入数据为参数的后4位
 109          ********************************************************/
 110          void Ht1621WrOneData(uchar Addr,uchar Data)
 111          {
 112   1        HT1621_CS=0;
 113   1        Ht1621Wr_Data(0xa0,3);                //写入数据标志101
 114   1        Ht1621Wr_Data(Addr<<2,6);     //写入地址数据
 115   1        Ht1621Wr_Data(Data<<4,4);     //写入数据
 116   1        HT1621_CS=1;  
 117   1        _Nop(); 
C51 COMPILER V8.08   HT1621_瞋试                                                           02/14/2008 08:50:15 PAGE 3   

 118   1      }
 119          
 120          /********************************************************
 121          函数名称:void Ht1621WrAllData(uchar Addr,uchar *p,uchar cnt)
 122          功能描述: HT1621连续写入方式函数
 123          全局变量:无
 124          参数说明:Addr为写入初始地址,*p为连续写入数据指针,
 125                                                  cnt为写入数据总数
 126          返回说明:无
 127          设 计 人:ZHCE
 128          版    本:1.0
 129          说    明:HT1621的数据位4位,此处每次数据为8位,写入数据
 130                                                  总数按8位计算
 131          ********************************************************/
 132          void Ht1621WrAllData(uchar Addr,uchar *p,uchar cnt)
 133          {
 134   1        uchar i;
 135   1        HT1621_CS=0;
 136   1        Ht1621Wr_Data(0xa0,3);        //写入数据标志101
 137   1        Ht1621Wr_Data(Addr<<2,6);     //写入地址数据
 138   1        for (i=0;i<cnt;i++)
 139   1        {
 140   2              Ht1621Wr_Data(*p,8);    //写入数据
 141   2              p++;
 142   2        }
 143   1        HT1621_CS=1;  
 144   1        _Nop(); 
 145   1      }
 146          
 147          
 148          
 149          /********************************************************
 150          函数名称:void Ht1621_Init(void)
 151          功能描述: HT1621初始化
 152          全局变量:无
 153          参数说明:无
 154          返回说明:无
 155          设 计 人:ZHCE
 156          版    本:1.0
 157          说    明:初始化后,液晶屏所有字段均显示
 158          ********************************************************/
 159          void Ht1621_Init(void)
 160          {
 161   1        HT1621_CS=1;
 162   1        HT1621_WR=1;
 163   1        HT1621_DAT=1;
 164   1        DelayMS(2000);                        //延时使LCD工作电压稳定
 165   1        Ht1621WrCmd(BIAS);
 166   1        Ht1621WrCmd(RC256);           //使用内部振荡器
 167   1        Ht1621WrCmd(SYSDIS);
 168   1        Ht1621WrCmd(WDTDIS);
 169   1        Ht1621WrCmd(SYSEN);
 170   1        Ht1621WrCmd(LCDON);
 171   1      }
 172          
 173          
 174          void main()
 175          {
 176   1        uchar i,j,t;
 177   1        Ht1621_Init();     //上电初始化LCD
 178   1      
 179   1        DelayMS(1000);        //延时一段时间
C51 COMPILER V8.08   HT1621_瞋试                                                           02/14/2008 08:50:15 PAGE 4   

 180   1         
 181   1        while(1){
 182   2      
 183   2                      Ht1621WrAllData(0,Ht1621Tab,16);//清除1621寄存器数据,暨清屏
 184   2              for (i=0;i<32;i++)
 185   2                      {
 186   3                              t=0x01;
 187   3                              for (j=0;j<4;j++)
 188   3                              {
 189   4                                      Ht1621WrOneData(i,t);
 190   4                                      t<<=1;
 191   4                                      t++;
 192   4                                      P1_5=~P1_5;                     
 193   4                              DelayMS(5000);
 194   4                              }
 195   3      
 196   3                      }       
 197   2        }
 198   1      }
 199          


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