在本教程中,我们将使4x2(8键)触摸式键盘与ATMEGA32A微控制器接口。众所周知,键盘是电子工程中最重要的输入设备之一。该模块没有实际的按键,但是具有经过特殊设计的电容性金属焊盘,这些焊盘非常敏感。因此,当一个人接触其中一个垫时,相应回路中将发生电容变化,并且该变化将由模块中的控制电子装置感测到。作为对触摸的响应,相应的焊盘输出引脚变高。
对于八键触摸板,我们将有八个输出。尽管此模块还具有其他功能,但我们不在此讨论。
所需组件
硬件: ATMEGA32微控制器,电源(5v),AVR-ISP编程器,JHD_162ALCD(16x2LCD),100uF电容器,100nF电容器,1KΩ电阻(2个),触摸键盘模块。
软体: Atmel Studio 6.1或Atmel studio 6.2,Progisp或Flash Magic。
电路图和工作说明
ATMEGA32的PORTB电路连接到数据端口LCD。如果要使用PORTC作为普通通信端口,则应记住通过更改熔丝字节来禁用PORTC与ATMEGA的JTAG通信。在16x2 LCD中,如果有背光,则全部有16个引脚,如果没有背光,则有14个引脚。一个人可以给背光灯供电或离开。现在,在14个引脚中,有8个数据引脚(7-14或D0-D7),2个电源引脚(1&2或VSS&VDD或gnd&+ 5v),第三个用于对比度控制的引脚(VEE控制字符的粗细)如图所示)和3个控制引脚(RS&RW&E)
在电路中,您可以观察到我只接了两个控制引脚,这为更好地理解提供了灵活性,不经常使用对比度位和READ / WRITE,因此它们可以接地。这使LCD处于最高对比度和读取模式。我们只需要控制ENABLE和RS引脚即可相应地发送字符和数据。
LCD的连接如下所示:
PIN1或VSS接地
PIN2或VDD或VCC至+ 5v电源
PIN3或VEE接地(为初学者提供最大对比度)
PIN4或RS(寄存器选择)至uC的PD6
PIN5或RW(读/写)接地(将LCD置于读模式可简化用户的通信)
PIN6或E(启用)到uC的PD5
uC的PIN7或D0至PB0
uC的PIN8或D1至PB1
uC的PIN9或D2至PB2
uC的PIN10或D3至PB3
uC的PIN11或D4至PB4
uC的PIN12或D5至PB5
uC的PIN13或D6至PB6
uC的PIN14或D7至PB7
在电路中,您可以看到我们使用了8位通信(D0-D7),但这不是强制性的,我们可以使用4位通信(D4-D7),但是使用4位通信程序会变得有些复杂。
因此,通过观察上表,我们将LCD的10引脚连接到控制器,其中8引脚为数据引脚,而2引脚为控制引脚。
在继续之前,重要的是要知道,电容模块的工作电压为2.5V。而且,触摸模块消耗的电流也不高。因此,为了从5V获得2.5V的模块电压,我们将使用分压电路。
下图显示了由电阻构成的分压器电路。
现在,分压器电路为模块和其他参考电压提供低电压。如图所示,中点的输出电压为电阻比。因此,为了从5V获得2.5v,我们将使用R1 = R2 =1KΩ,因此对于5V的电源电压,中点电压相对于地面为2.5V。来自分压器电路的该电压连接到模块。如电路图所示,电容器两端连接有一个电容器,用于过滤谐波。
触摸模块的输出端口连接到atmega控制器,因此,每当触摸焊盘时,相应的引脚输出就会变高。该逻辑改变由控制器感测。控制器根据引脚的高低在LCD上显示数字。
为了安全起见,可以将所有模块输出引脚通过10K电阻下拉至地,尽管这不是强制性的。
最好通过下面给出的C代码逐步解释TOUCH KEAYPAD INTERFACE的工作。