段码屏嵌入式的一些理解-包含代码-主芯片STM8

本文详细介绍了如何使用STM8S003F3微控制器来驱动HT1621B LCD显示驱动IC。通过解析原理图和MCU规格书,明确了各引脚功能,如LCDPower、DATA、WR、RD和CS,并解释了HT1621的命令格式和工作模式。文中还提供了初始化代码和关键函数实现,如write_mode()和write_command(),帮助理解HT1621如何通过串行接口进行数据和命令传输,以及如何配置LCD显示模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

驱动IC:HT1621B

MCU:STM8S003F3

第一:

1.我们首先来看一下,原理图的连接情况:

 

 2.再来看一下,MCU规格书。

 选用:

mcu pin17连接LCDPower

        pin16连接DATA

        pin15连接WR

        pin14连接RD

        pin13连接CS

//补充:

cs:cs脚用于初始化串行接口电路和结束主控制器与HT1621之间的通讯,cs设置为1 时主控制器和HT1621之间的数据和命令无效并初始化。在产生模式命令或模式转换之前必须用一个高电平脉冲初始化HT1621的串行接口。

    SET_CS;//CS端需要有一个高电平来初始化
    SET_WR; 
    SET_DATA;
    delay_ms(1);    
    
    RST_CS;	 
    delay_ms(1);    

data:data脚是串行输入/输出的管脚,读和写数据和写命令通过DATA脚来进行。

RD:RD脚是读时钟输入管脚,在RD信号的下降沿时数据输出管脚DATA上,在RD信号上升沿与下一个下降沿之间,主控器应读取相应的数据。

WR:WR脚是写时钟输入管脚,在WR信号上升沿时,管脚DATA上的数据、地址、命令被写入HT1621.

HT1621的命令格式:

//modify: 修改; 修饰; 调整; 使更适合; 缓和; 使温和;

 HT1621的引脚定义

 其他:对于HT1621显示驱动的一些理解

RAM的数据直接映像到LCD驱动器,可以使用读写命令访问。

怎么理解?

 观察此图:

从映像图中可以看出,每一个HT1621的地址都会对应LCD,而对HT1621的地址4位操作。

这边不是很理解,我们来一起分析一个HT1621这个IC。

1.HT1621的硬件连线与LCD怎么连接?

LCD和HT1621的SEG(段电极)和COM(公共电极)对应连接。

2.HT1621B,其中的D0~D3,A0~A5各代表什么意思?

1621B带32SEG*4COM,128段(怎么去理解128段,相当于可以显示支持128段的LED)。

显示数据与显示内容是这样对应的-------一个8进制一个字节二进制数对应2根SEG线上的8个段码,1为显示,0为不显示。

例:

SEG0上的LCD连接是ABCD四个段码,SEG1上是内容是EFGH四个段码,公共电极COM,C0连接AE这两个段码,C1连接BF,C2连接CG,C3连接DH,按照此逻辑输入“01100011”,高4位对应SEG1,低电位对应SEG0,将同时显示FGAB四个段码,输入的显示数据不重新输入的话会一直显示,要同时显示2位数字和段码,只要将这些数字和段码在在逻辑表上对应的数据配置1即可同时显示。

待更新~


一些软件的分析

 HT1621的命令格式

/*
 *    LCD 模式写入
 *    入口:MODE :  0 :COM(命令模式) /  1:DAT(数据模式)
 *    出口:void
*/
void write_mode(unsigned char MODE)    //写入模式,数据or命令
{                                      
    RST_WR;	  //WR=0
    delay_us();
    SET_DATA;     //DATA=1
    delay_us();
    SET_WR;        //WR=1
    delay_us();
 
    RST_WR;       //WR = 0;
    delay_us();
    RST_DATA;     //DATA = 0;
    delay_us();
    SET_WR;       //WR = 1;
    delay_us();
 
    RST_WR;         //WR=0                        
    delay_us();
 
    if (MODE)
    {
      SET_DATA;  //DATA = 1;  写数据模式
    }
    else
    {
      RST_DATA; //DATA = 0;  写命令模式
    }
    delay_us();
    SET_WR;        //WR=1                           
    delay_us();
}

1.WR上升沿的时候写入。

2.MODE为0,DATA 100.

MCU配置HT1621

 us时间相关的函数

/***********************
函数功能:us延时
输入参数:无
输出参数:无
备    注:粗略延时
***********************/
void delay_us(void)
{ 
    asm("nop"); //一个asm("nop")函数经过示波器测试代表100ns
    asm("nop");
    asm("nop");
    asm("nop"); 
    asm("nop");
    asm("nop");
}

待测一下~

 HT1621的初始化

void ht1621_init(void)
{
    LCDPort->DDR |= LCDPin;//输出模式
    LCDPort->CR1 |= LCDPin;//推挽输出
    
  
    SET_CS;            //CS拉高
    SET_WR;            //WR拉高
    SET_DATA;           //SET拉高
    delay_ms(1);    
    
    RST_CS;	            //CS拉低
    delay_ms(1);    
    
    write_mode(0);    //命令模式
    write_command(0x01);    //Enable System//0001
    write_command(0x03);    //Enable Bias//0011
    write_command(0x04);    //Disable Timer//0100
    write_command(0x05);    //Disable WDT//0101
    write_command(0x08);    //Tone OFF//1000
    write_command(0x18);    //on-chip RC震荡//00010101
  //  write_command(0x14);    //crystal RC震荡//10100
    write_command(0x29);    //1/4Duty 1/3Bias//00101001
    write_command(0x80);    //Disable IRQ//10000000
    write_command(0x40);    //Tone Frequency 4kHZ//01000000
    write_command(0xE3);    //Normal Mode//11100011
    SET_CS;            //CS拉高
}

 

其中:

1.端口输入输出的是,推挽信号。

2.

write_command()函数

void write_command(unsigned char Cbyte)
 {
    unsigned char i = 0;
  
    for (i = 0; i < 8; i++)
    {
        RST_WR; 
        if ((Cbyte >> (7 - i)) & 0x01)
        {
          SET_DATA; 
        }
        else
        {
           RST_DATA; 
        }
        delay_us();
        SET_WR;    
        delay_us();
    }
     RST_WR; 
     delay_us();
     RST_DATA; 
     delay_us();
     SET_WR;    
     delay_us();
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值