在单片机的应用中,人—机接口是非常重要的组成部分,如果要输入配置信息参数等。在这些应用中,键盘是一个不可缺少的部分。采用MSP430单片机很容易实现矩阵键盘,本片博文将给大家从软硬件两方面介绍MSP430单片机的键盘设计。
我们知道,在MSP430系列单片机中,所有I/0端口的管教都是双向的,即可以实现输入输出。设置I/O端口的相应寄存器就可以实现相应的操作(如读/写、中断等)。I/O端口相关的寄存器主要有:PxDIR、PxIN、PxOUT和PxSEL等(其中x代表1—6)。如果I/O端口具有中断功能,则还有PxIE、PxIES、PxIFG 3个寄存器,可以进行相应的中断设置。端口寄存器都是8位的寄存器,寄存器的每一位都对应一个I/O管脚,设置该位就可以设置该管脚的相应功能。如下表1所示为端口1的方向寄存器示意图:
表1 P1DIR寄存器 | |||||||
P1DIR.7 |
P1DIR.7 |
P1DIR.7 |
P1DIR.7 |
P1DIR.7 |
P1DIR.7 |
P1DIR.7 |
P1DIR.7 |
端口的其它寄存器的结构和图所示的结构相似,都是一位对应一个I/O管脚。由于端口的每个管脚可以独立设置,并且能分别设置成输入和输出方向,因此利用I/O管脚就很容易实现基于扫描方式的键盘。扫描键盘一般由行线和列线组成。有m条行线盒n条列线就可以组成m*n的矩阵式键盘。在键盘的某条行线上输出低电平,如果键盘上的某个键被按下,则某个列线就为低电平,单片机读取列线的状态就可以判断是哪个键被按下,这样就实现了键盘的输入。在检测键盘的输入时,需要不断扫描各条列线,这样就可以采用查询的方式进行软件的设计。另外,某些MSP430单片机的某个I/O端口(如MSP430F149的P1和P2端口)具有中断功能,一次可以采用中断方式进行软件设计,下面给大家详细的介绍。
一、硬件电路的设计
这个电路的硬件电路比较简单,主要有键盘电路、电源电路、复位电路和单片机电路四个部分。
1、电源电路
由于MSP430系列单片机的工作电压一般是1.8v—3.6v,并且功耗极低,因此选TI公司的TPS76033作为电源芯片。该芯片输出电压为3.3v,电流为50mA,完全可以满足要求。下图1是本系统的电源实际电路:
图1 扫描键盘电源电路
2、复位电路
在单片机系统中,为了保证系统在上电时进行初始化,同时也为了保证对电源的监视,需要采用复位芯片。如图2所示:
图2 复位电路
3、键盘电路
矩阵键盘电路主要利用MSP430单片机的一般I/O端口来进行扩展设计。矩阵键盘由行线盒列线组成。如下图3所示为键盘的设计电路:
图3 键盘电路
4、单片机电路、
单片机电路非常简单,只需要单片机的P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6和P1.7与键盘电路接口。另外,单片机必须有相应的震荡电路才能使单片机正常工作。如图4所示:
图4 单片机电路
由于所有的列线都上拉到3.3v,所以没有任何键按下的时候,所有的列线都是高电平。如果P1.7管脚上输出低电平,并且行线的其它管脚输出高电平,如果【S01】键被按下,则P1.0为低电平;如果【S02】被按下,则P1.1为低电平;如果【S03】被按下,则P1.2为低电平,其它情况依次类推可以实现。
二、软件的设计
对于一般的I/O端口来说,一般采用查询方式来实现软件,但是某些MSP430单片机的某些端口具有中断功能,因此可以采用中断方式实现软件。
用户1821067 2015-4-4 12:01
用户1707737 2012-7-24 11:48
用户403664 2012-7-24 10:42
用户419124 2012-7-19 01:01
原封不动的搬过来有啥意思http://www.61ic.com/Article/MSP430/MSP430/201104/33509.html再说 这次大赛的主题是 模拟跟电源 跑题了楼主 下次看看主题 再贴 删了吧 还一下 贴那么多
用户418586 2012-7-10 14:03
用户377235 2012-7-7 21:27
支持来了