触摸按键测试方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
触摸按键测试工具Demo Board 介绍
文件编码文件编码::HA0HA0145145145s s
简介
在使用HOLTEK 触控按键系列IC (如HT45R34、HT45R36、HT45R38等)时,经常需要知道触摸按键感应量的变化值,以便调整按键的灵敏度,为了方便用户将触控程序烧入IC 之后,观察触摸按键感应量的变化值,我们特设计此DEMO BOARD 供用户使用。
此DEMO BOARD 主要功能是将用户发送的数据显示出来,为了方便用户进行通讯,我们也给出了与DEMO BOARD 相对应的发送程序。
此DEMO BOARD 用HT48R10A-1 MCU 来设计。 HT48R10A-1是HOLTEK 公司开发的8-BIT MCU ,ROM 为1K 、RAM 为64Byte 、21个I/O PORT 。
Demo Board 硬件方块图硬件方块图
方块图
硬件方块功能说明
主控芯片为HT48R10A-1
主控芯片作为SLAVE端,通过串行通讯从MASTER端获取显示数据
三个按键,用于设置工作模式以及显示值的切换
Display分为两部分。一部分由四位数码管组成,用于显示通过串行通讯所获取的数据。另一部分由四个LED组成,用于指示数码管当前显示的值的序号
电路说明
电路说明
电路图
电路设计说明
P1输入为DC 9V,经C6和C2滤波后送入7805的1脚,7805的3脚的输出为DC 5V给MCU供电;也可以通过V1和V2直接给MCU供电;还可以通过接口H2的PIN1和PIN5给MCU供电。三种供电方法任选一种即可。
C1、C3、C4、R1和R2组成MCU的RESET电路。
D1为四位数码管,用于显示通过串行通讯接收到的数据。DS0~DS3为LED,他们通过十六进制的格式来显示当前D1显示的值所对应的RC通道。
S1、S2、S3分别ADD键、DEC键、MODE键,用于设置显示的通道以及工作模式。
H2为串行通讯的接口,本项目的通讯采用CS、CLK、DATA三线通讯的方式,其中PC0对应CS、PC1对应CLK、PC2对应DATA,数据在CLK的下降沿被读取。
注意:当MCU的供电方式选择为P1输入DC9V供电或通过V1和V2直接给MCU供电时,H2的PIN1可不与被测版连接
通讯协议说明
串行通讯协议说明
本项目所采用的通讯协议为三线通讯协议,HT48R10A-1作为SLAVE端使用,其通讯格式如下: 数据总长度为24-bit,其中显示数据16-bit,显示通道8-bit。
数据传输为先传送16位需要显示的数据,再传送8位显示通道,传输方式均为低位在前(LSB)。
在8位的显示通道中,只有低四位有效,高四位要求与低四位保持一致,用于校验显示通道数据是否接收正确。
数据必须在下降沿准备好,即CLK下降沿数据有效。
通讯时序图
上图中,A 和B 之间的时间必须不小于25us ,通讯速度需低于100KHz 。
通讯中Master 发送程序用法说明
我们所设计的Demo Board 主要功能是将用户所传送的数据显示出来,为了方便用户传送数据,我们同样给出Master 部分发送程序,现将Master 部分发送程序说明如下:
通讯口定义
在使用以下Master 传送程序时,需要用到三个I/O 口,即P_CS (片选信号)、P_CLK (时钟)、P_DATA (数据),此三个口可以定义为任意I/0口。
数据入口
在调用Master 部分发送程序时,需将传送的数据放入三个RAM 中,此三个RAM 的含义说明如下:
M_DEBUG_DATAL :串行通讯中,需要传送的16位显示数据中的低8位,在调用该函数前需要先设置好数值。
M_DEBUG_DATAH :串行通讯中,需要传送的16位显示数据中的高8位,在调用该函数前需要先设置好数值。 M_DEBUG_ADDR :串行通讯中,本次通讯数据所对应的地址,只有低四位有效,高四位要求与低四位保持一致,用于校验显示通道数据是否接收正确。
例如:要发送第1通道数据,那么应将11H 放入M_DEBUG_ADDR 中。
发送第5通道数据,那么应将55H 放入M_DEBUG_ADDR 中
调用调用方法方法
应用时,只需将子程序SBR_DEBUG 插入主程序中即可使用。
注意在调用前设置好M_DEBUG_DATAL,M_DEBUG_DATAH 和M_DEBUG_ADDR 的值。
发送程序如下:
;;-----------------------------------------------
;; Function : SBR_DEBUG
;; In : M_DEBUG_DATAL,M_DEBUG_DATAH,M_DEBUG_ADDR
;; Out : NULL
;; Description: Send M_DEBUG_DATAL & M_DEBUG_DATAL & ASCR to Slave by SPI ;; Format : LSB bit0~bit15 bit16~bit23
;; Data must ready before falling
;;-----------------------------------------------
SBR_DEBUG:
CLR P_CS ;;CS = 0
MOV A,20
SDZ ACC
JMP $-1 ;;Wait
MOV A,8 ;;Load length
L_DEBUG_LP1:
RRC M_DEBUG_DATAL ;;Send M_DEBUG_DATAL
CLR P_DATA
SZ C
SET P_DATA
JMP $+1
JMP $+1
JMP $+1
JMP $+1
CLR P_CLK ;;CLK = 0,Slave will read data
JMP $+1
JMP $+1
JMP $+1
JMP $+1
JMP $+1
JMP $+1
SET P_CLK
SDZ ACC
JMP L_DEBUG_LP1
MOV A,8
L_DEBUG_LP2:
RRC M_DEBUG_DATAH ;;Send M_DEBUG_DATAH
CLR P_DATA
SZ C
SET P_DATA
JMP $+1
JMP $+1
JMP $+1
JMP $+1
CLR P_CLK ;;CLK = 0,Slave will read data
JMP $+1
JMP $+1
JMP $+1
JMP $+1
JMP $+1
JMP $+1
SET P_CLK
SDZ ACC
JMP L_DEBUG_LP2
MOV A,8
L_DEBUG_LP3:
RRC M_DEBUG_ADDR ;;Send ASCR
CLR P_DATA
SZ C