单片机定时器在按键消抖和键音输出中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
228 •电子技术与软件工程 Electronic Technology & Software Engineering
单片机技术
• SCM Technology
【关键词】单片机 定时器 扫描 溢出
键盘输入和键音输出是单片机系统中人机对话的常见部分。
一般情况下,按键按下时易产生抖动干扰,进而使系统误动作,程序员处理此问题时通常会在检测到有键被按下时,加入一个延时,延时过后再检测同一按键是否仍处于被按状态?若是,就判定此键确实被按下,接着就开始执行此键的功能;若不是,就判定为干扰,并忽略延时前的检测结果。
通常情况下,两次检测之间所加入的延时需要约100mS 才能达到比较理想的消抖效果,而CPU 是依用户程序从头到尾扫描执行程序代码,如果在长达100mS 的时间里,CPU 仅仅
单片机定时器在按键消抖和键音输出中的应用
文/徐连喜
完成一次延时的功能,那么此时段内其它任务都将被搁置,这对于那些实时控制要求较高的场所(例如数码管动态扫描显示)是绝对不允许的。
基于实时控制所遇到的另外一个问题就是键音输出问题,当CPU 判定某个键被按下时,通过某个IO 端口输出键音,用户就会有更加贴切的人机对话体验,要让人清晰地听到清脆的键音,声音的频率一般控制在1KHz 左右,而且时间不能太短,约100mS 较适宜,依照前述的用户程序的运行规则,此时若用常规的IO 端口取反、延时、再取反来输出键音,显然不能满足用户程序的实时控制要求。
为此,本文详述了新的思路,巧妙地利用2个定时器分别去控制按键消抖和键音输出,经实物验证,
CPU 不仅能轻松处理按键消抖和键音输出,
同时还能完成数码管的动态扫描及各个IO 端口的实时控制,取得了理想的控制效果。
1 单片机应用系统硬件框图
如图1所示。
2 键盘输入硬件电路
如图2所示。
键盘硬件电路,采用4X4矩阵键盘,用8个I/O 口就能得到16个键值,可实现
0~9
共
<<
下转229页
图
1:单片机应用系统硬件框图
图
2:键盘输入硬件电路
图
3:键音输出硬件电路
图4:矩阵键盘扫描子程序
图5:按键消抖(T0中断)子程序 图6:键音(T1中断)子程序
SCM Technology •
单片机技术
Electronic Technology & Software Engineering 电子技术与软件工程• 229
【关键词】单片机 智能电子设备 内涵 实践应用
1 单片机的内涵
20世纪90年代,单片机技术就已经得到了发展,目前该技术的应用臻于成熟,被广泛地应用到人们生产和生活的各个领域之中,并
单片机在智能电子设备中的应用
文/李菁川
且收到了良好的成效。
21世纪,人们更加重
视智能化技术的开发与应用,单片机技术的发展进入一个新的历史阶段,其在智能仪表、自动测量、通讯交流和自动控制等智能化的电子领域中有了更加广泛的应用。
电子行业是现代工程发展中的新兴行业,在实际的工程应用中,通过电子信息技术的合理运用,使其与单片机相互结合,能够提升单片机的使用效率。
一般来说,应用了单片机技术的电子产品都可以在其名称前冠以“智能”二字,以此和一般的电子产品相区分。
单片机技术作为计算机技术领域的重要分支,它的应用能够让电子产品的功能更加完备。
单片机技术的应用,在很多方面
为智能化电子设备的开发和应用提供了崭新的思路,并且进一步推动智能化电子产品的创新性发展。
单片机,又称作单片微控器,是一种
集成电路芯片。
单片机主要包括中央处理器CPU 、只读存储器ROM 、随机存储器RAM 、多种I/O 口和中断系统等,从而构成形式多样的数据采集系统和控制系统,用来执行各种复
杂运算,包括控制运算信号和下达运算指令多种功能,它能够实现计算机所具有的全部数据计算功能。
简单地说,单片机其实就是一块芯片组成了一个计算机系统,它利用先进的集成电路技术,将数据处理能力集成到一个体积比较小的微型计算机中,从而实现对数据的精准高速处理。
单片机的硬件特征主要体现在以下的四个方面:
(1)单片机的体积较小,系统结构也比较简单,但是功能齐全,使用方便,利于实现模块化。
(2)单片机的集成度很高,可靠性强,即使是长时间地工作,也不容易出现故障问题;
(3)单片机具有低能耗、低电压的特点,给人们在日常生活中的使用带来了极大的便
利;
(4)单片机的数据处理和计算功能比较强,可以适应各种环境,控制性较强。
从这些特征可以得知,单片机技术的应用范围极其的广泛,伴随着现代社会电子化技十个数字键输入和A~F 共六个功能键输入。
3 键音输出硬件电路
如图3所示。
键音的发声器件BZ1采用线圈蜂鸣器,这样可使得发声器件的体积小,声音清脆。
驱动器件由限流电阻、续流二极管、开关驱动管等部分组成。
R6、R18与Q2组成简单的开关驱动电路,为CPU 有力推动BZ1提供动力,R18是快速关断电阻,可使CPU 由低电平转高电平时快速关断Q2,避免了Q2因关断不及时而产生意想不到的杂音。
D3作为续流二极管,避免在Q2关断瞬间由BZ1线圈产生的负高压损伤Q2,电阻R7既可以调节音量大小,也可以起到限流作用(当Q2导通时)。
4 矩阵键盘扫描及其消抖和键音的软件设计
如图4、5、6所示。
键盘功能由“矩阵键盘扫描子程序”和“按键消抖(T0中断)子程序”和“键音(T1中断)子程序”完成。
按键消抖对系统可靠运行至关重要,如果仅仅用普通的延时消抖,延时时间短了起不到消抖作用,延时时间长了又会影响CPU 的实时控制功能,特别是当应用系统配有数码管动态扫描显示时,消抖延时时间长了就会使周期内的数码管动态显示时间缩
短而变暗,严重影响数码管显示效果,为此,
系统采用T0中断方式延时消抖,消抖“开中断”命令是被巧妙地安插在按键消抖子程序里,一旦有键被按,键扫描程序必定调用按键消抖子程序,于是开T0中断,进入T0中断后立即关闭键扫描100mS ,这100mS 期间CPU 只扫描数码管及其它IO 端口而不扫描键盘,从而保证了消抖期间数码管亮度不受影响。
消抖延时结束后恢复键盘扫描。
同消抖延时一样,也是缘于键音对数码管显示及对其它IO 端口实时控制的影响,为此,系统采用T1中断方式处理键音,键音中断的“开中断”命令是被巧妙地安插在按键消抖子程序里,一旦有键被按,键扫描程序必定调用按键消抖子程序,从而开启键音中断,键音频率由T1的初值决定,键音时长则由中断次数决定。
键音中断子程序完成“BZ1通电与断电切换”和“切换401次(102mS )后关闭中断”,以及“关闭中断期间CPU 驱动脚锁高电平”功能。
5 结论
古老的8051单片机有T0和T1两个定时器,若主程序有键盘输入但不需用到T0和T1,则也可以用此办法来解决消抖和键音问题;若主程序有时钟或秒脉冲计时需求,也可以由外部扩展时钟IC (例如DS1302或DS3231),利用时钟IC 的秒脉冲触发CPU 的
外部中断来引入秒脉冲计时。
加强型的STC 系列单片机一般都有3个及以上数量的定时器,随便拿其中的两个定时器来处理消抖和键音问题,其余的定时器留给主程序使用。
总之,只要主程序有键盘输入和键音输出需求,只要能腾出两个定时器,利用本文的方案就能完美解决消抖和键音问题,进而安心地处理数码管动态扫描显示及其它IO 端口的实时控制。
参考文献
[1]王振伟.51/98单片机原理及应用技术
(第一版)[M].长沙:湖南师范大学出版社,1997.
[2]陈梓城,方勤.模拟电子技术基础[M].
高等教育出版社,2003(12).
[3]秦曾煌.电工学(第七版)(下册)电子
技术[M].高等教育出版社,2009(06).
作者简介
徐连喜(1976-),男,湖南省临澧县人。
大学专科学历。
研究方向为应用电子技术。
作者单位
伟易达电子产品(深圳)有限公司 广东省深圳市 518000
<<上接228页。