触摸按键测试方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档