STM32F103学习笔记(4) |
您所在的位置:网站首页 › 8位数码管引脚图怎么看 › STM32F103学习笔记(4) |
一、简介
HT1621 是 128 点 内存映象和多功能的 LCD 驱动器 HT1621 的软件配置特性使它适用于多种 LCD 应用场合包括 LCD 模块和显示子系统。用于连接主控制器和 HT1621 的管脚只有 4 或 5 条 HT1621,还有一个节电命令用于降低系统功耗。
液晶管点亮和熄灭原理分别为在对应的RAM地址中写1和写0。 首先需要清楚所驱动控制的液晶的COM-SEG对应关系,然后需要了解HT1621的32×4RAM地址映射。 例如要控制的液晶的装脚成品图部分如下: 液晶的显示字符的部分COM公共端输出口和SEG段输出口的分布如下表所示,同理我们可以看到例如:2D对应(SEG5,COM0),2E对应(SEG5,COM1),2F对应(SEG5,COM2),2A对应(SEG5,COM3),2C对应(SEG4,COM1),2G对应(SEG4,COM2),2B对应(SEG4,COM3)。 例如我们在图3的第二个液晶数码管上显示数字,首先我们根据图3得到地址映射关系,先写入地址SEG4中的四位数据(COM3,COM2,COM1,COM0),再写如地址SEG5中的四位数据(COM3,COM2,COM1,COM0),对应关系如下: HT1621 可以用软件设置 两种模式的命令可以配置 HT1621 和传送 LCD 所显示的数据。HT1621 的配置模式称为命令模式,命令模式类型码为 100。命令模式包括一个系统配置命令,一个系统频率选择命令,一个 LCD 配置命令,一个声音频率选择命令,一个定时器/WDT设置命令和一个操作命令。数据模式包括 READ,WRITE 和 READ-MODIFY-WRITE 操作,下表是数据和命令模式类型码表。 操作模式类型码READ数据110WRITE数据101READ-MODIFY-RITE数据101COMMAND命令100模式命令应在数据或命令传送前运行。如果执行连续的命令,命令模式代码即 100,将被忽略。当系统在不连续命令模式或不连续地址数据模式下,管脚/CS 应设为 “1” 而且先前的操作模式将复位。当管脚/CS 返回 “0” 时,新的操作模式类型码应先运行。 四、时序图及程序流程
注意:延时函数使用了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 |