- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
项目二简易抢答器设计
独立按键识别检测任务一一位数码管显示任务二数码管动态显示任务三简易抢答器设计任务四
任务四简易抢答器设计
任务描述单片机P3口接8个按键,模拟8个选手进行知识抢答,有开始和停止键。
知识链接状态机按键检测
状态机按键检测实际上按键识别检测也可以用状态机来编程实现,使用状态机最节约系统资源,如:进行按键检测,只需要定时执行按键状态机程序即可。1.状态机的基本概念无按键0有按键1等释放20/0(消抖)1/01/0(干扰)0/1(确认)1/00/0
比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机例子。实际的按键解析程序会比这更复杂些。进一步看,击键动作本身也可以看做一个状态机。一个细小的击键动作包含了:释放、抖动、闭合、抖动和重新释放等状态。
一个键按下之后的波形是这样的(假定低有效):在有键按下后,数据线上的信号出现一段时间的抖动,然后为低,当按键释放时,信号抖动一段时间后变高。当然,在数据线为低或者为高的过程中,都有可能出现一些很窄的干扰信号。(1)空闲状态,即数据线信号为高,这里假定为S1状态,对应无按键状态;(2)确认真的有键按下的状态,这里假定为S2状态,对应有按键按下状态;(3)确认真的有键释放的状态,这里假定为S3状态,对应按键松开状态。
一般情况下,采用的时间序列可以为10-20毫秒之间。在S1状态,按键扫描的状态始终处于S1,若此时按下按键,在下一个扫描时间间隔(这个时间间隔用于消抖)后,单片机检测到有按键按下,进入状态S2,表示是一次有效的按键,然后在以后的每个时间间隔里继续检测,如果检测IO一直是低电平,说明按键没有被松开,那么状态将一直停留在S2,一旦检测到IO电平恢复为高电平说明是按键已经松开,即状态S3。2.状态切换无按键0有按键1等释放20/0(消抖)1/01/0(干扰)0/1(确认)1/00/0
任务实施1.硬件电路。2.程序设计。
1.硬件电路
2.程序设计#includereg52.h#defineucharunsignedchar #defineuintunsignedint#defineKeyPortP3sbitsmg1=P2^4; sbitsmg2=P2^5; sbitsmg3=P2^6; sbitsmg4=P2^7; sbitkeyks=P1^2; sbitkeytz=P1^1;
#definekeystate00 #definekeystate11 #definekeystate22 ucharucKeyStatus=0; unsignedcharkeyvalue=0;uintcount=0;uchartemp1;uchartemp[4]={0x3f,0x3f,0x3f,0x3f};bitflag=0; inttable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharweixuan[4]={0xef,0xdf,0xbf,0x7f};
/**********10ms延时子程序***********/voiddelay10ms(void){uchari,k;for(i=20;i0;i--)for(k=250;k0;k--);}/**********ms级延时子程序***********/voiddelayms(uintx) //x=1,约1ms延时函数,数码管用{uinty,z;for(y=x;y0;y--)for(z=111;z0;z--);}
/**********状态机按键扫描程序***********/ucharkeyscan() {switch(ucKeyStatus){casekeystate0:ucKeyStatus=keystate1;break;casekeystate1:
switch(KeyPort){case0x
您可能关注的文档
- 《单片机技术与应用》 课件 项目六任务1-串口概述.pptx
- 《单片机技术与应用》 课件 项目六任务2-用串口扩展IO口(1).pptx
- 《单片机技术与应用》 课件 项目六任务3-用串口扩展IO口(2).pptx
- 《单片机技术与应用》 课件 项目六任务4-单片机双机通信.pptx
- 《单片机技术与应用》 课件 项目六任务5- PC与单片机通信.pptx
- 《单片机技术与应用》 课件 项目六任务6- DS18B20温度采集报警系统设计.pptx
- 《单片机技术与应用》 课件 项目三任务1-认识单片机中断系统.pptx
- 《单片机技术与应用》 课件 项目三任务2-外部中断的简单实例应用.pptx
- 《单片机技术与应用》 课件 项目三任务3-外部中断的复杂实例应用.pptx
- 《单片机技术与应用》 课件 项目三任务4-中断嵌套实例应用.pptx
最近下载
- 1_东南营小学体育课教案水平一潘建元2(1)-体育1至2年级全一册教案.docx VIP
- 人教版2025秋小学数学三年级教学设计已知一个数的几倍是多少,求这个数.pdf VIP
- 人教版2025秋小学数学三年级教学设计求一个数的几倍是多少.pdf VIP
- 酒店前台UPSELL培训教学课件.pptx VIP
- 西门子变频器V20说明书SINAMICS-V20.pdf VIP
- 人教版2025秋小学数学三年级教学课件数量间的乘除关系求一个数的几倍是多少.pptx VIP
- 【水电站施组】引水式电站机电金属结构安装工程施工组织设计(最全).doc VIP
- 人教版2025秋小学数学三年级教学课件数量间的乘除关系已知一个数的几倍是多少,求这个数.pptx VIP
- MathCAD软件入门教程.pdf VIP
- 中药剂型PPT参考幻灯片.ppt VIP
文档评论(0)