HT1621从0开始

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、HT1621

1) DATASHEET

2) 个人描述

HT1621是LCD屏幕的驱动电路芯片,负责点亮LCD屏上的灯,一个HT1621能驱动很多不同的LCD屏幕

3)容易混淆的概念:

Ps:LCD屏幕是屏幕,屏幕驱动芯片是芯片,HT1621 ≠ LCD屏幕


二、代码驱动

1.驱动代码(.c文件)

驱动代码GPIO控制理解为模拟I2C即可

.h文件只有两个API函数:
HT1621_INIT:用于初始化GPIO引脚和HT1621
ht1621write_val:用于HT1621地址初始化,一次只写一个地址的数据


#define CS_HIGH 
#define CS_LOW

#define WR_HIGH 
#define WR_LOW	

#define DATA_HIGH 
#define DATA_LOW  

#define BIAS   0x50          
#define SYS_EN 0X02         
#define LCD_ON 0X06         
#define RC256  0X30         
#define WDT_DIS 0x0a
#define TIME_DIS 0X08

static void ht1621write_data_LOW(uint8_t data,uint8_t n_bit)
{
	uint8_t current;
	for( current = 0 ; current <  n_bit ; current++)
	{
		WR_LOW;
		Delay(2);
		
		if( (data & 0x01) == 1)
			DATA_HIGH;
		else
			DATA_LOW;

		Delay(2);
		WR_HIGH;
		data >>= 1;
		Delay(2);
	}
}


static void ht1621write_data(uint8_t data,uint8_t n_bit)
{
	uint8_t current;
	for( current = 0 ; current <  n_bit ; current++)
	{
		WR_LOW;
		Delay(2);
		
		if(((data & 0x80) >> 7) == 1)
			DATA_HIGH;
		else
			DATA_LOW;

		Delay(2);
		WR_HIGH;
		data <<= 1;
		Delay(2);
	}
}


static void ht1621write_cmd(uint8_t cmd)
{
	CS_LOW;
	Delay(2);
	ht1621write_data(0x80,4);
	ht1621write_data(cmd,8);
	Delay(2);
	CS_HIGH;
}

void ht1621write_val(uint8_t addr , uint8_t data)
{
	addr <<= 2;
	CS_LOW;
	Delay(2);
	ht1621write_data(0xA0,3);
	ht1621write_data(addr,6);
	ht1621write_data_LOW(data,4);
	Delay(2);
	CS_HIGH;
}

void HT1621_INIT( void *pvParameters )
{
	CS_HIGH;
	WR_HIGH;
	DATA_HIGH;
	ht1621write_cmd(BIAS);
	ht1621write_cmd(RC256);
	ht1621write_cmd(WDT_DIS);
	ht1621write_cmd(TIME_DIS);
	ht1621write_cmd(SYS_EN);
	ht1621write_cmd(LCD_ON);
}

2.驱动LCD屏幕

这一步是关键,大部分使用LCD屏幕都是厂商私人定制,所以很大可能上厂商给的PIN脚不是对应SEG号地址,有可能是SEG号相反
给一个测试思路:
先把整个LCD屏幕的字段全亮起来,然后用for循环从0地址开始一个一个地址去清零熄灭字段

//思路程序模板举例
int i;
for(i = 0 ; i < SEG_MAX; i++)
{
	if( i >  0 )
		ht1621write_val(i-1,0xF);
	ht1621write_val(i,0x0);
	delay(5s);
}
//加个延时,就能看清每个地址对应的字段了

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Arduino HT1621 是一种常见的驱动芯片,用于控制七段数码管和液晶显示屏等输出设备。它具有高压产生器和时钟发生器等功能模块,可以方便地实现对显示设备的控制。 Arduino HT1621 被广泛应用于各种电子产品中,比如温度计、计时器、电子钟等。通过与Arduino开发板上的MCU(微控制器单元)进行通信,可以方便地实现对显示设备的控制和数据显示。 HT1621 芯片采用SPI通信协议,其通信速度较快。由于它具有多个引脚,可以与其他元器件进行连接,比如键盘矩阵、电压检测等。这样可以实现更多的功能扩展,增加了产品的灵活性和可变性。 Arduino HT1621的编程相对简单,可以使用Arduino的编程语言和开发工具进行开发。通过编写代码,可以实现各种功能,比如显示数字、字母和符号等。 总之,Arduino HT1621 是一种功能强大、使用方便的驱动芯片,广泛应用于各种产品中。通过它,可以实现对七段数码管和液晶显示屏等显示设备的控制,为电子产品的开发提供了方便和灵活性。 ### 回答2: Arduino HT1621是一种数字式时钟驱动芯片,可以用于控制7段LED数字管或液晶显示屏的显示。它通过串行通信与主控板(如Arduino)进行连接,并通过编程控制数字的显示方式。 HT1621芯片内部有多个寄存器,可以存储要显示的数字和字母的位图信息。我们可以通过设置寄存器中的位来控制每个LED的亮灭状态,从而实现数字显示。 使用Arduino HT1621时,我们首先需要将HT1621与Arduino连接起来。通过4条线(数据线、时钟线、片选线和复位线)连接,将两者进行通信。然后,通过编程来控制HT1621,发送相应的命令和位图数据,使其显示我们想要的数字。 在Arduino程序中,我们可以使用相应的库函数进行HT1621的初始化和控制。例如,可以使用“HT1621B.begin()”进行HT1621的初始化设置,然后使用“HT1621B.writeData()”来写入要显示的数字的位图信息。 除了显示数字,HT1621还可以显示字母、符号等其他信息。我们可以通过设置相应的位图信息来实现。一些常见的使用场景包括数字时钟、计时器、温度计等。在编程过程中,我们可以根据具体应用的需求来设计相应的显示方式和效果。 总之,Arduino HT1621是一种方便实用的数字显示驱动芯片,可以与Arduino等主控板进行连接,通过编程控制显示数字和其他信息。它的使用方式简单灵活,适用于各种数字显示应用。 ### 回答3: Arduino HT1621 是一种特定的集成电路(IC),它是一种用于驱动液晶显示屏的控制器。它具有多种功能,可以用于控制数字液晶显示屏的各种操作。 Arduino HT1621 IC 的引脚配置较为简单,只有8个引脚。这意味着它可以轻松地与Arduino单片机板连接,实现数字屏幕的控制。 使用Arduino HT1621,我们可以轻松实现数字液晶显示屏的各种功能。可以通过Arduino编程语言和相应的库函数来控制显示屏上的数字、字符、图标等元素的显示和更新。 例如,我们可以使用Arduino HT1621控制显示屏上的数字图案或字符的亮度和对比度。借助HT1621的控制能力,我们还可以实现液晶屏上的图标的显示和滚动效果。 此外,Arduino HT1621还具有电源管理功能,能够进行节能和电池寿命管理。我们可以通过编程设置液晶显示器的亮度和自动关闭功能,以延长电池的使用寿命。 总之,Arduino HT1621 提供了一个简单而强大的解决方案,用于控制数字液晶显示屏。通过与Arduino单片机的连接,我们可以通过编程来实现各种液晶屏上的显示效果和功能。无论是制作自己的数字时钟、温度计、电压表等项目,还是设计和制作专业应用的液晶屏驱动器,Arduino HT1621都是一个非常有用的电路控制器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值