MSP430按键输入和led点阵显示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case 0x05:
P1OUT=table[2];
break;
case 0x03:
P1OUT=table[3];
break;
}
}
}
第4章 MSP430
7
第4章 MSP430
实例4-2 矩阵键盘编号显示 任务要求:将4×4矩阵式键盘编号,如果其中一个按键按下时,
则在LED数码管上显示相应的按键编号。
28 29 30 31 32 33 34 35
10k 10k 10k
K2
K3
10 7
11 8 9
64 62
VEREF+ VREF+ VREF-/VEREFXIN XOUT AVCC AVSS
XT2OUT XT2IN
RST/NMI TCK
TDI/TCLK TDO/TDI
TMS
52 53 58 57 55 54 56
P3.0/UCB0STE/UCA0CLK P3.1/UCB0SIMO/UCB0SDA P3.2/UCB0SOMI/UCB0SCL
P3.3/UCB0CLK/UCA0STE P3.4/UCA0TXD/UCA0SIMO P3.5/UCA0RXD/UCA0SOMI P3.6/UCA1TXD/UCA1SIMO P3.7/UCA1RXD/UCA1SOMI
MSP430按键输入和led点阵显示
第4章 MSP430
第4章 键盘和显示器的应用
键盘用于实现单片机应用系统中的数据信息和控制命令
的输入,按结构可分为编码键盘和非编码键盘。编码键盘上
闭合键的识别由专用的硬件编码器实现,并产生相应的键码
值,如计算机键盘。非编码键盘是通过软件的方法产生键码,
不需要专用的硬件电路。为了减少电路的复杂程度,节省单
P5.0/UCB1STE/UCA1CLK
P2.0/ACLK/CA2
P5.1/UCB1SIMO/UCB1SDA P2.1/TAINCLK/CA3
P5.2/UCB1SOMI/UCB1SCL P2.2/CAOUT/TA0/CA4
P5.3/UCB1CLK/UCA1STE
P2.3/CA0/TA1
P5.4/MCLK
12 13 14 15 16 17 18 19
R1 R2
R3 R4
R5 R6 R7
330
330 330 330
P2.4/CA1/TA2
P5.5/SMCLK
P2.5/ROSC/CA5
PFra Baidu bibliotek.6/ACLK
P2.6/ADC12CLK/CA6
P5.7/TBOUTH/SVSOUT
P2.7/TA0/CA7
20 21 22 23 24 25 26 27
330
R1 R2 R3
K1
59 60 61
2 3 4 5 6
P6.0/A0 P6.1/A1 P6.2/A2 P6.3/A3 P6.4/A4 P6.5/A5 P6.6/A6 P6.7/A7/SVSIN
void delayus(unsigned int t)
{
unsigned int i;
while(t--)
for(i=1330;i>0;i--);
}
unsigned char ReadKey(void)
{
unsigned char temp;
temp= P3IN&0x07;
if(temp!= 0x07)
RN1
P1.0/TACLK/CAOUT P1.1/TA0 P1.2/TA1 P1.3/TA2
P1.4/SMCLK P1.5/TA0 P1.6/TA1 P1.7/TA2
12 13 14 15 16 17 18 19
1 2 3 4 5 6 7 8
16 15 14 13 12 11 10 9
44 45 46 47 48 49 50 51
MSP430F249
4
第4章 MSP430
#include "MSP430f249.h"
unsigned char const table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管段选码表, 无小数点
5
{ delayus(10); //等待按键抖动时间 if(temp == (P3IN&0x07 )) { return temp; } else return 0xFF;
} else return 0xFF; }
第4章 MSP430
6
void main(void)
{
unsigned char key,i;
WDTCTL=WDTPW + WDTHOLD; // 关闭看门狗
P1DIR=0xFF;
// 设置方向
P1OUT=0x00;
P3DIR = 0x00; //P3口作为键盘输入
while(1)
{
key = ReadKey();
switch(key)
{
case 0x06:
P1OUT=table[1];
break;
片机的I/O口,在单片机应用系统中广泛使用非编码键盘,主
要对象是各种按键或开关。这些按键或开关可以独立使用
(称之为独立键盘),也可以组合使用(称之为矩阵式键
盘)。
2
第4章 MSP430
由于按键的闭合与断开都是利用其机械弹性实现的, 当机械触点断开、闭合时,会产生抖动,这种抖动操作用 户感觉不到,但对CPU来说,其输出波形则明显发生变 化 .按键按下和释放时的抖动时间一般为 10~20ms ,按键 的稳定闭合期由操作用户的按键动作决定,一般为几百毫 秒到几秒,而单片机CPU的处理速度在微秒极,因此,按 键的一次闭合,有可能导致CPU的多次响应。
3
第4章 MSP430
实例4-1 独立按键编号显示 任务要求:单片机端口连接3个按键,从1~3进行编号,如果其中
一个按键按下时,则在LED数码管上显示相应的按键编号。
U1
36 37 38 39 40 41 42 43
P4.0/TB0 P4.1/TB1 P4.2/TB2 P4.3/TB3 P4.4/TB4 P4.5/TB5 P4.6/TB6 P4.7/TBCLK
U1
36 37 38 39 40 41 42 43
P4.0/TB0 P4.1/TB1 P4.2/TB2 P4.3/TB3 P4.4/TB4 P4.5/TB5 P4.6/TB6 P4.7/TBCLK
P1.0/TACLK/CAOUT P1.1/TA0 P1.2/TA1 P1.3/TA2
P1.4/SMCLK P1.5/TA0 P1.6/TA1 P1.7/TA2