STM32F103学习笔记(4)

您所在的位置:网站首页 8位数码管引脚图怎么看 STM32F103学习笔记(4)

STM32F103学习笔记(4)

2024-07-10 09:29| 来源: 网络整理| 查看: 265

一、简介

HT1621 是 128 点 内存映象和多功能的 LCD 驱动器 HT1621 的软件配置特性使它适用于多种 LCD 应用场合包括 LCD 模块和显示子系统。用于连接主控制器和 HT1621 的管脚只有 4 或 5 条 HT1621,还有一个节电命令用于降低系统功耗。

二、字符显示原理

液晶管点亮和熄灭原理分别为在对应的RAM地址中写1和写0。 首先需要清楚所驱动控制的液晶的COM-SEG对应关系,然后需要了解HT1621的32×4RAM地址映射。

例如要控制的液晶的装脚成品图部分如下: 着重看一个液晶数码管,我们了解原理就行。可以看到图3中是第2个液晶数码管,有7段,分别为A,B,C,D,E,F,G。也就分别为下面COM\SEG地址对应关系图中的2A,2B,2C,2D,2E,2F,2G。

液晶的显示字符的部分COM公共端输出口和SEG段输出口的分布如下表所示,同理我们可以看到例如:2D对应(SEG5,COM0),2E对应(SEG5,COM1),2F对应(SEG5,COM2),2A对应(SEG5,COM3),2C对应(SEG4,COM1),2G对应(SEG4,COM2),2B对应(SEG4,COM3)。 HT1621的RAM 地址映射如下图所示: 可以清楚的看到要控制液晶段对应SEG号作为6位地址,COM号对应作为4位数据写入,此时注意4位数据的高低位。写数据到RAM命令格式为:101+6位RAM地址+4位数据,其中RAM地址为SEG序号。

例如我们在图3的第二个液晶数码管上显示数字,首先我们根据图3得到地址映射关系,先写入地址SEG4中的四位数据(COM3,COM2,COM1,COM0),再写如地址SEG5中的四位数据(COM3,COM2,COM1,COM0),对应关系如下: 所以如果在图3中显示“5”,则在显示的液晶段对应地址上写1,不显示写0,如下图所示。所以SEG4地址应写入的数据为0110 ,SEG5地址应写入数据1101。

三、命令格式

HT1621 可以用软件设置 两种模式的命令可以配置 HT1621 和传送 LCD 所显示的数据。HT1621 的配置模式称为命令模式,命令模式类型码为 100。命令模式包括一个系统配置命令,一个系统频率选择命令,一个 LCD 配置命令,一个声音频率选择命令,一个定时器/WDT设置命令和一个操作命令。数据模式包括 READ,WRITE 和 READ-MODIFY-WRITE 操作,下表是数据和命令模式类型码表。

操作模式类型码READ数据110WRITE数据101READ-MODIFY-RITE数据101COMMAND命令100

模式命令应在数据或命令传送前运行。如果执行连续的命令,命令模式代码即 100,将被忽略。当系统在不连续命令模式或不连续地址数据模式下,管脚/CS 应设为 “1” 而且先前的操作模式将复位。当管脚/CS 返回 “0” 时,新的操作模式类型码应先运行。

四、时序图及程序流程

五、硬件连接 功能口引脚CSPB.12DATAPB.14WRPB.13 六、移植文件

注意:延时函数使用了FreeRTOS的vTaskDelay任务延时函数 链接:https://pan.baidu.com/s/1lXWqJIr9Q07al4H3FwNb6Q 提取码:dsuy 将 board_ht1621.c、board_ht1621.h 两个文件加入到工程

6.1 board_ht1621.c /********************************************************************* * INCLUDES */ #include "FreeRTOS.h" #include "task.h" #include "board_ht1621.h" static void gpioConfig(void); /********************************************************************* * PUBLIC FUNCTIONS */ /** @brief 初始化LCD屏,HT1621芯片 @param 无 @return 无 */ void HT1621_Init(void) { gpioConfig(); vTaskDelay(10); LCD_CS_1(); LCD_DATA_1(); LCD_WR_1(); vTaskDelay(100); // 延时使LCD工作电压稳定 HT1621_WriteCommand(HT1621_SYS_EN); // 打开系统振荡器 HT1621_WriteCommand(HT1621_BIAS); // BIAS 13 4个公共口 HT1621_WriteCommand(HT1621_RC256); // 使用RC_256K系统时钟源,片内RC振荡器 HT1621_WriteCommand(HT1621_WDT_DIS); HT1621_WriteCommand(HT1621_LCD_ON); } /** @brief 写入命令,命令标志100 @param cmd -[in] 命令数据 @return 无 */ void HT1621_WriteCommand(uint8_t cmd) { uint8_t i; LCD_CS_0(); // CS = 0 vTaskDelay(1); // 写入命令标志,DATA:100 LCD_WR_0(); // WR = 0 vTaskDelay(1); LCD_DATA_1(); // DATA = 1 vTaskDelay(1); LCD_WR_1(); // WR = 1 vTaskDelay(1); LCD_WR_0(); // WR = 0 vTaskDelay(1); LCD_DATA_0(); // DATA = 0 vTaskDelay(1); LCD_WR_1(); // WR = 1 vTaskDelay(1); LCD_WR_0(); // WR = 0 vTaskDelay(1); LCD_DATA_0(); // DATA = 0 vTaskDelay(1); LCD_WR_1(); // WR = 1 vTaskDelay(1); // Datasheet中命令后的C8为0 LCD_WR_0(); // WR = 0 vTaskDelay(1); LCD_DATA_0(); // DATA = 0 vTaskDelay(1); LCD_WR_1(); // WR = 1 vTaskDelay(1); // Datasheet中命令后的C7~C0 for(i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3