
LCD不像传统的LED数码管有共阴共阳之分,LCD的引脚分为公共脚COM与驱动脚SEG,LCD的驱动较LED数码管也较为复杂,1621需要根据LCD的COM口数量,偏压等级设定相应的程序,还要根据LCD的驱动电压设计对应的外围电路。
特意按了一下HT1621芯片
你要注意看他的使用说明书
1,单片机和该IC的连接是串行通信,但是这个芯片提供了一些额外的控制功能
所以建议你把相应的引脚都连接到单片机的IO口上
2,VLCD建议你接一个电位器到3V,通过调节电位器来确定
3,这种芯片一般都是对应的驱动芯片,不知道你说的什么顺序连接更方便具体指什么
#include <pich>
#include "picc_configh"
#include "headh"
//一下C代码仅供参考。如果你连BIAS1/2/3/4都还没有搞清的话,
// 先别看下面的代码,看液晶驱动的原理和1621数据手册先
//uchar lcdi,lcdj,lcdk; //lcdi ,lcdk 循环计数 lcdj =6位地址
uchar dis[] = {0xFF,0XFF,0XFF,0xFF,0xFF,\
0xFF,0xFF,0xFF,0xFF,0xFF};
void dis_clr(void)
{
uchar dp;
uchar lcdi;
dp = dis;
for(lcdi=0;lcdi<10;lcdi++)
(dp+lcdi) = 0;
}
//发1621命令控制字
//w1=命令字
void LCD_CMD(uint w1)
{
uchar lcdi;
LCD_CS = 0;
for (lcdi=12;lcdi>0;lcdi--)
{
LCD_DA=((w1&0x8000)!=0);
LCD_CK = 0;
LCD_CK = 1;
w1 <<= 1;
}
LCD_CS = 1;
LCD_DA = 1;
}
//初始化1621
void LCD_setup(void)
{
T_CS = 0;
T_CK = 0;
T_DA = 0;
LCD_CMD(NORMAL);
LCD_CMD(IRQ_DI);
LCD_CMD(WDT_DI);
LCD_CMD(XTAL_32K); //RC_256K;
LCD_CMD(BAIS_4);
LCD_CMD(TONE_OFF);
LCD_CMD(SYS_EN);
LCD_CMD(LCD_ON);
// T_CS = 1;
// T_CK = 1;
// T_DA = 1;
}
//关闭1621
void LCD_end(void)
{
T_CS = 0;
T_CK = 0;
T_DA = 0;
LCD_CMD(LCD_OFF);
LCD_CMD(SYS_DIS);
LCD_CS = 1;
LCD_DA = 1;
LCD_CK = 1;
// T_CS = 1;
// T_CK = 1;
// T_DA = 1;
}
//发送显示数据引导
void LCD_WRITE_HEAD(void)
{
LCD_DA = 1; //1
LCD_CK = 0;
LCD_CK = 1;
LCD_DA = 0; //0
LCD_CK = 0;
LCD_CK = 1;
LCD_DA = 1; //1
LCD_CK = 0;
LCD_CK = 1;
}
/
//LCD送全部显示码
//输入: lcdk = 连续 4位
// lcdj = 0x00
void LCD_disp(void)
{
uchar dp;
uchar lcdi,lcdj,lcdk; //lcdi ,lcdk 循环计数 lcdj =6位地址
T_CS = 0;
T_CK = 0;
T_DA = 0;
LCD_CS = 0;
LCD_WRITE_HEAD();
lcdj= 0x00;
for (lcdi=6;lcdi>0;lcdi--) { //set offset address
LCD_DA=((lcdj&0x20)!=0);
LCD_CK=0;
LCD_CK=1;
lcdj<<=1;
}
dp = dis;
for (lcdk=10;lcdk>0;lcdk--){ //发10个字节
lcdj = dp;
for (lcdi=8;lcdi>0;lcdi--) { //data output
LCD_DA = ((lcdj&0x01)!=0);
LCD_CK = 0;
LCD_CK = 1;
lcdj >>= 1;
}
dp++;
}
LCD_CS = 1;
LCD_DA = 1;
LCD_CK = 1;
// T_CS = 1;
// T_CK = 1;
// T_DA = 1;
}
/
//LCD 送显示码
//输入:
// address = 偏移地址 (偶数)
// number = 字节数
void LCD_ref(uchar address,uchar number)
{
uchar dp;
uchar lcdi,lcdj,lcdk; //lcdi ,lcdk 循环计数 lcdj =6位地址
T_CS = 0;
T_CK = 0;
T_DA = 0;
LCD_CS = 0;
LCD_WRITE_HEAD();
lcdj = address; // 偏移地址
for (lcdi=6;lcdi>0;lcdi--) { //set offset address
LCD_DA=((lcdj&0x20)!=0);
LCD_CK=0;
LCD_CK=1;
lcdj<<=1;
}
dp = dis;
for (lcdk=number;lcdk>0;lcdk--){ //发 number 个字节
lcdj = (dp+(address>>1));
for (lcdi=8;lcdi>0;lcdi--) { //data output
LCD_DA = (lcdj&0x01)!=0;
LCD_CK=0;
LCD_CK=1;
lcdj >>= 1;
}
dp++;
}
LCD_CS = 1;
LCD_DA = 1;
LCD_CK = 1;
// T_CS = 1;
// T_CK = 1;
// T_DA = 1;
}
以上就是关于ht1621b的com口是什么意思第21.22.23.24引脚。接lcd屏的共阴,还是共阳引脚全部的内容,包括:ht1621b的com口是什么意思第21.22.23.24引脚。接lcd屏的共阴,还是共阳引脚、LCD驱动芯片ht1621如何使用(硬件连接)、义隆单片机78P156驱动ht1621等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)