合泰单片机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HT16K23带Key Input LCD驱动
文件编码:A N0276S
简介
HT16K23是一款带按键扫描功能的LCD驱动芯片,内建存储器及RC振荡电路,可同时驱
动20×1 Key与20×4 LCD,支持I2C标准接口,只需两条信号线便可完成与MCU的通信功
能。本文以HT68F30为主控MCU,通过I2C通信协议控制HT16K23读取按键Data以及控
制LCD显示,目的在于让用户更清楚地掌握HT16K23的特性和应用。
工作原理
方框图
图1 HT16K23内部框图
表1 HT16K23 RAM Mapping of 20×4
表2:HT16K23 RAM Mapping of 16×8
由图1可知:HT16K23是一款具有按键扫描功能的LCD驱动芯片,基本特性如下:•HT16K23工作电压:2.4V~5.5V
•内建RC振荡器
•多种显示方式
若选16 SEG & 8 COM显示方式,显示RAM为16×8-bit。
若选20 SEG & 4 COM显示方式,显示RAM为10×8-bit。
•两线I2C通信接口(HT16K23工作在从机方式,MCU工作在主机方式)
•按键扫描功能
若选16 SEG & 8 COM显示方式,最多提供16×1按键扫描。
若选20 SEG & 4 COM显示方式,最多提供20×1按键扫描。
•LCD Bias Circuit:可设定为1/3 bias、1/4 duty或1/4 bias、1/8 duty
•可选硬件中断功能
表1和表2分别为20 SEG & 4 COM 的RAM Mapping 和16 SEG&8COM 的RAM Mapping : • HT16K23 RAM 内部有个地址指针,当往某个地址写入或读取数据后,地址指针自动加1,指向下一个要写入或读取的地址 • 如表1所示,在20 SEG×4 COM 显示方式下,内存地址达到0x0AH 后,再次写入或读取数据时,地址将自动复位为00H • 如表2所示,在16 SEG×8 COM 显示方式下,内存地址达到0x0FH 后,再次写入或读取数据时,地址将自动复位为00H • 用户可以根据自己的需要,在RAM 内写入或读取相应的数据 其他: • 若选16 SEG & 8 COM 显示方式,LCD bias Circuit 设定为1/4 bias 、1/8 duty ,最多可选16个按键 • 若选20 SEG & 4 COM 显示方式,LCD bias Circuit 设定为1/3 bias 、1/4 duty ,最多可选20个按键 • SEG 脚与按键输入脚共用,按键RAM 地址为0x20~0x22,为只读寄存器,如表3所示 表3:按键按键寄存器寄存器
操作操作说明说明
主控MCU 通过I 2C 通信方式实现对HT16K23进行配置及数据传输 (传输方式为MSB 方式即高位先传)。
HT16K23写入操作
写入命令
图2 写入命令控制时序
主机给HT16K23发送一个START 命令,紧接着发高7位从机地址 (E6H 即HT16K23的地址),其中第八位设定为0 (写入命令),此后,HT16K23将应答一个ACK 信号 (ACK 为"1"表示数据传输成功,否则为失败,用户可根据此位做相应的处理),主机接收到ACK 信号后,继续发送8-bit 的控制命令码 (命令码在下文会介绍),HT16K23又一次应答ACK 信号,主机接收到ACK 信号后,发送STOP 命令,写入命令操作结束。
写入单笔写入单笔数据数据
图3 写入单个8-bit 数据数据时序时序
主机给HT16K23发送一个START 命令,紧接着发送HT16K23的地址及写入命令,接收到HT16K23应答的ACK 信号后,继续发送8-bit 寄存器地址,接收到HT16K23应答的ACK 信号后,发送8-bit 的Data 数据,接收到HT16K23应答的ACK 信号后,发送STOP 命令,单笔数据写入操作结束!
写入多笔写入多笔数据数据
图4 写入多个字节数据的控制时序
写入多笔数据的方式与上面的单笔数据方式相似,不同之处在于写完第一个数据收到ACK 之后,不发送STOP 命令而是继续发送数据 (在写入下一个数据时内部寄存器地址指针会自动加1指向下一个地址,即地址+1),直到数据发送结束收到应答的ACK 之后,再发送STOP 命令,多笔数据写入结束。
HT16K23读取操作
图5 写入多个字节数据的控制时序
如图,读取操作如下:
首先,主机给HT16K23写入欲访问的寄存器地址。
然后,主机给HT16K23发送START 命令,紧接发送E7H (HT16K23的地址及读取命令(=1)),主机接收到HT16K23反馈的ACK 信号后,读取8-bit 的数据,若欲读取下一个连续的地址里面的Data ,则主机给从机 (HT16K23) 发送ACK 信号,HT16K23在接受
到ACK信号后,地址自动加1,主机可继续读取8-bit的数据,反之,主机可发送NACK 信号后发送STOP信号,读取操作结束!
注意:若读取地址为0x00 ~ 0x0FH,地址达到0x0FH后,继续读取8-bit的数据,地址指针将复位为0x00H;若读取地址为0x20 ~ 0x22H,地址达到0x22H后,继续读取8-bit的数据,地址指针将复位为0x20H。
HT16K23读写命令
下表为操作HT16K23的控制命令,具体功能描述请参见表中的Description显示:
表4 HT16K23的控制命令表
H/W 方框图
硬件硬件方框方框方框图图
图6 硬件方框图 硬件硬件方框方框方框图图功能说明 整个系统由电源模块、MCU 控制模块、HT16K23驱动模块、LCD 显示模块和按键模块组成。 • 电源模块 提供MCU 控制模块和HT16K23驱动模块,所需的工作电源。 • MCU 模块 负责与HT16K23驱动模块通信。 • 驱动模块 完成按键扫描与LCD 驱动显示。 • 按键模块 人机交互的输入设备。 • LCD 显示模块 人机交互的显示设备。
功能功能描述描述 应用范例按键功能说明
图7 硬件实物图