原创 单片机应用中的实用技巧(三)

2008-9-22 11:23 2404 9 9 分类: MCU/ 嵌入式
单片机应用中的实用技巧(三)
作者:Azhu  E-mail:circuit51@tom.com
7、用2个I/O口实现多按键扫描及键盘唤醒
在一些低功耗的单片机应用场合中,常常需要让单片机平时工作于睡眠状态,而在有键盘输入时唤醒单片机以做相应控制。单个按键唤醒单片机容易实现,但多个按键都能唤醒单片机有一定的困难,本文提供一种解决该问题的思路。
电路如下图所示。

1144044748.jpg

其工作过程说明如下:
1.单片机的GP1口具有电平变化唤醒单片机功能,单片机在进入睡眠前将GP1口设置为输入状态,GP2设置为输出高电平状态。
2.当任一键被按下时,GP1口将变为高电平,使单片机唤醒。此时将GP2口设置为输出低电平,短延时,使C1电容放电。
3.将GP1设置为输出高电平,GP2设置为输入状态,定时器开始记时。
4.当GP2由低电平变为高电平的瞬间,记录定时器时间。由于不同的按键按下时,分压器电路改变了RC电路的电压上升速度,因此根据测得的定时器值的大小通过查表法可判断出是哪个键被按下。
以上方法只适用于单键判断,当多键同时按下时是无法判断的。该方法需要占用单片机的定时器资源。
8、单片机的自动关机功能及开机按键兼做功能按键。
在许多电池供电的应用场合,要求电路平时处于关机状态以节省电能,而当开机键按下后单片机才开始工作,工作完后又能自动关机。

1144044770.jpg


上图所示电路即可完成此种功能。在上电后,由于V1处于关断状态,单片机并不耗电,整个电路所消耗电流只有不到10μA。
当S1按下后,V1导通,78L05获得电源,输出稳定的5V使单片机开始工作,同时单片机的GP0送出高电平,使V2导通,这使V1保持在导通状态,单片机获得持续的电源进行工作,当单片机任务处理完成后,单片机的GP0输出低电平,将V2关断,使V1也处于关断状态,单片机的电源又被关断,电路又恢复到低功耗状态,其消耗电流小于10μA。
在单片机获电工作后,原作为电源开关按键的S1也可以作为功能按键来使用,当S1未按下时,GP1口为高电平,而当S1按下后,GP1变为低电平,因此单片机可以检测该按键,并做相应的功能控制。例如可将S1定义为开关机按键或其它功能按键。


http://azhu.blog.dianyuan.com/blog_comment_list.php?blar_id=812

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /3 下一条