单片机按键功能

单片机按键功能,第1张

按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。

2.输入原理

在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。

对于一组键或一个键盘,总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无将键输入,并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序

主要就是按键检测,防抖呗。

首先给出检测按键代码:(我这个事4*4键盘。具体你要根据实际情况编写)

uchar TestKey()

{

uchar cord_h,cord_l

P6=0x0f

cord_h=P6&0x0f

if(cord_h!=0x0f)

{

Delay_Xms(1)

if(cord_h!=0x0f)

{

cord_h=P6&0x0f

P6=cord_h|0xf0

cord_l=P6&0xf0

return(cord_h+cord_l)

}

}return(0xff)

}

--------------------------------------

然后你在Main函数里编写循环,检测按键然后做你想做的事情。。。

while(1)

{

key=TestKey()//调用键盘扫描,

switch(key)

{

case 0x7e:P4=0xa1break//0 按下相应的键显示相对应的码值

case 0x7d:Show1Menu()break//1

case 0x7b:P4=0x83break//2

case 0x77:P4=0x88break//3

case 0xbe:P4=0x99break//4

case 0xbd:P4=0x90break//5

case 0xbb:P4=0x82break//6

case 0xb7:P4=0xb0break//7

case 0xde:P4=0xc0break//8

case 0xdd:P4=0x80break//9

case 0xdb:P4=0x92break//a

case 0xd7:P4=0xa4break//b

case 0xee:P4=0xc6break//c

case 0xed:P4=0xf8break//d

case 0xeb:P4=0x99break//e

case 0xe7:P4=0xf9break//f

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11285433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存