2022 06月09日
作者: 显示行家
  • 浏览: 42
  • 收藏:0
  • 点赞:1
液晶显示(三)-----段码控制IC-HT1621应用

       在单色LCD显示应用中,合泰公司早在20年前就推出了HT1621段码控制IC。由于应用简单,成本低廉,非常适合对显示内容不高,段码内容固定的场合。现在已有CS1621(AIP31621)替代品出现。虽然现在是TFT彩色显示屏广泛应用的时代,但是对于一些特定产品,HT1621也是一个不错的选择。

一、基本特性

    HT1621支持4x32个显示段(4 COM电极,32 SEGMENT电极);

    工作电压2.4-5.5V;

    内置256KHZ RC振荡器;

    可外接32768HZ或256Khz晶振;

    程序可编程1/2,1/3 ,1/4DUTY;1/2,1/3Bias;

    内置时钟基准源;

    2个可选择的蜂鸣器频率(2KHZ/4KHZ);

    3线串口通讯;

    RAM地址自动增加;

二、HT1621系列产品

HT612选型.png

三、HT1621指令表(部分)

    表中红色箭头所指的是必须要用到的指令。

HT1621指令表.png

四、HT1621数据传送格式

    要使HT1621正常工作,必须按照规格书要求对1621正确配置初始化后才能正常工作。

    H1621分为读(READ)/写(WRITE)/命令(COMMAND)/读写四种模式,这里主要应用写/命令模式。

    在对HT1621操作时,必须首先写入操作模式ID:READ--110;WRITE--101;RW--101;COM--100;

    在命令模式下(COMMAND),写完100后,紧跟着写入9bit指令字,见上述指令表;

    在写数据模式下(WRITE),写完101后,紧跟着写入6bit地址(A5-A0),再写入4bit数据(D0-D3),注意这里写4bit数据时,低位在前。

HT1621模式.png

HT1621WR.png

五、HT1621显存对应关系

       实际上HT1621的4COM和32SEG输出电极,代表了最大显示段数4x32=128段,就相当于有128个显示像素点,刚好这128个像素点对应A5-A0 6位二进制数,从000000-111111;HT1621的32个SEG,代表了32个地址,4个COM代表了要显示的4BIT数据。

HT1621RAM.png

六、应用实例

    图示是常用的7段码“8”字,这是在段码屏设计中最常见的符号。要显示完整的8字,需要对应的7个笔段都显示(S13=0X0E,S14=0X0F),依此类推,若要显示“0”字,就需要对应的A/B/C/D/E/F 6个笔段显示(S13=0X0A,S14=0X0F),这样我们就可以把0-9的编码做出来。

    从逻辑表中看出,第1个“8”字是连在S13和S14电极,那么对应的显示地址就是13(0b001101)/14(0b001110),实际就是我们在显示地址13/14位置上依次写入0-9的编码,就可以在这个位置显示0-9的数字。其它类推。

HT1621-8.png

HT1621逻辑.png

七、原理图参考(参考程序不完全适用该原理图)

HT1621原理图.png

八、实例程序(程序已通过89S52编译,读者可根据自己实际情况改写)

//测试程序  AT89S5212M
//2005-3-15
//测试程序 这里用了2个HT1621   
#include 
#include 
#include 
typedef unsigned char uchar;
typedef unsigned int uint;
//依次显示出A    B    C    D    E    F    G    DP   A  B  C   D   E F  G  DP
//第2到5
 uchar code data_table1[]={0x08,0x0C,0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x08,0x0C,0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x00};//DCBA数码
 uchar code data_table2[]={0x00,0x00,0x00,0x00,0x02,0x0A,0x0E,0x0F,0x00,0x00,0x00,0x00,0x02,0x0A,0x0E,0x0F,0x00};//*EGF数码
// uchar code data_table3[]={0x06,0x06,0x02,0x06,0x06,0x04,0x04,0x06,0x06,0x00};//*BC数码
//第6到10A    A1  B   CD1 D  E   FG I  J   KH N  M   L
 uchar code data_table4[]={0x00,0x00,0x00,0x00,0x00,0x08,0x0C,0x0D,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x00};//FGED数码
 uchar code data_table5[]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x0B,0x0F,0x00};//AILM数码
 uchar code data_table6[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x0F,0x0F,0x00};//JKHN数码
 uchar code data_table7[]={0x00,0x01,0x03,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x00};//ABCD数码

//接口定义
sbit _CS1 = P2^7;  //U1
sbit _CS2 = P3^6;  //U2
sbit _RD  = P2^6;
sbit _WR  = P2^5;
sbit _DAT = P1^0;

sbit  LED1 =P3^7;
void display();
/*----------延时----------*/
DELAY(long int t) 
{
int i,j;
for (i=0;i>=1; 
}
_CS1=1;
_CS2=1;
}

/*--------写数据 U1-----------*/ 
WRITE_DAT1(uchar addr,uchar dat) 
{
uchar i,k;
_CS1 = 0;
k=0xa0;
for(i=0;i<3;i++)         // 发送写模式 code:101
{ 
_WR = 0;
_DAT=k&0x80;
_WR = 1;
k<<=1;
}

k=addr<<2;// 低六位显示地址 先高后低
for(i=0;i<6;i++)        // Write RAM address: A5~A0
{
_WR=0;
_DAT=k&0x80;
_WR=1;
k<<=1; 
}

k=dat;     // 低四位显示数据   先低后高
for(i=0;i<4;i++)      // Write Display data :D3~D0
{
_WR=0;
_DAT=k&0x01;
_WR=1;
k>>=1; 
}
_CS1=1;
LED1=~LED1;
}
/*--------写数据 U2-----------*/ 
WRITE_DAT2(uchar addr,uchar dat) 
{
uchar i,k;
_CS2 = 0;
k=0xa0;
for(i=0;i<3;i++)       
{ 
_WR = 0;
_DAT=k&0x80;
_WR = 1;
k<<=1;
}
k=addr<<2;
for(i=0;i<6;i++)        
{
_WR=0;
_DAT=k&0x80;
_WR=1;
k<<=1; 
}
k=dat;      
for(i=0;i<4;i++)       
{
_WR=0;
_DAT=k&0x01;
_WR=1;
k>>=1; 
}
_CS2=1;
}

/*--------读数据-----------*/ 
uchar Read_DAT(uchar addr) 
{
uchar i,k,dat;
_CS1 = 0;
k=0xc0;
for(i=0;i<3;i++)          // 发送读模式 code:110
{ 
_WR = 0;
_DAT=k&0x80;
_WR = 1;
k<<=1;
}
k=addr<<2;
for(i=0;i<6;i++)        
{
_WR=0;
_DAT=k&0x80;
_WR=1;
k<<=1; 
}
dat = 0x00;
_DAT = 1;      //  先给数据线赋1;读低四位
for(i=0;i<4;i++)       // Read data :D0~D3
{
dat>>=1;

_RD=0;
_nop_();_nop_();

if(_DAT == 1)
dat=dat|0x80;

_RD=1;
}
_CS1=1;
dat>>=4;
return dat;
}
/*---------写全屏数据------------*/
DIS(uchar dat)
{
uchar i;
for(i=0;i<32;i++)                                     //32x4
{WRITE_DAT(i,dat);DELAY(100);}
}

/*----------初始化LCD------------*/
Init_lcd(void)
{
WRITE_COM(0x01); // Enable system
WRITE_COM(0x18); // CLOCK SOURCE IS 256kRC ON CHIP
WRITE_COM(0x29); // BIAS=1/3 DUTY=1/4
//WRITE_COM(0x02); // Display off
WRITE_COM(0x03); // Display on
DIS(0x00);                                       // CLEAR LCD
}
/**********************************************************/
/*  ----------------- 8字显示 ------------- */
void dsplay(char c)
{
uchar i;
for(i=21;i<28;)                                                //2-5
{
WRITE_DAT1(i,data_table1[c]);
i++; 
WRITE_DAT1(i,data_table2[c]);
i++;
}

for(i=1;i<20;)//6-10 
{
WRITE_DAT1(i,data_table4[c]);
i++; 
WRITE_DAT1(i,data_table5[c]);
i++;
WRITE_DAT1(i,data_table6[c]);
i++;
WRITE_DAT1(i,data_table7[c]);
i++;
}
}
/**************************************************************************/
void segdsplay(uint t)                 //笔段测试
{
WRITE_DAT1(31,0x01);//%
DELAY(t);
WRITE_DAT1(31,0x03);//1BC
DELAY(t);
WRITE_DAT1(31,0x07);//D7
DELAY(t);
WRITE_DAT1(0 ,0x01);//D5
DELAY(t);
WRITE_DAT1(0 ,0x03);//D6
DELAY(t);
WRITE_DAT1(0 ,0x07);//SET
DELAY(t);
WRITE_DAT1(0 ,0x0F);//VAL
DELAY(t);
WRITE_DAT1(30,0x01);//A
DELAY(t);
WRITE_DAT1(30,0x09);//CM
DELAY(t);
WRITE_DAT1(31,0x0F);//PAD
DELAY(t);
WRITE_DAT1(30,0x0B);//M
DELAY(t);
WRITE_DAT1(30,0x0F);//MD
DELAY(t);
WRITE_DAT1(29,0x08);//F
DELAY(t);
WRITE_DAT1(29,0x09);//TOT
DELAY(t);
WRITE_DAT1(29,0x0B);//TAB
DELAY(t);
WRITE_DAT1(29 ,0x0F);//SQR
DELAY(t);
}

/****************************************************************************/
void main(void)
{
        uchar i;
Init_lcd();                                  //初始化LCD
while(1) 
{
DIS(0xff); //全显
DELAY(1000);         //延时显示停滞时间

DIS(0x00); //清显示
DELAY(500);

for(i=0;i<16;i++)
{
dsplay(i);   //显示8字段
DELAY(1500);
}

DELAY(1000);
segdsplay(1000);                 //段显示
        DIS(0x00); //清显示
 
} 
}



  

发表评论

评论列表


没有评论

筛选

文章分类

热门文章

投稿及奖励(必看)

2022-03-18  浏览:50405次

企业网址

2022-03-22  浏览:50366次

2021年秋招经历

2022-03-15  浏览:289次

浅谈学习单片机的前景

2022-03-15  浏览:251次

怎样才能学好单片机

2022-03-28  浏览:247次