- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8讲自己动手学习单片机系列-键盘
第8讲 输入-----键盘 本章重点 一般键盘消抖方法 状态机的概念 键盘状态机 键盘矩阵 材料清单 +5V电源 最小系统板 液晶显示板 小按键17个(用作键盘),万能版1块 圆孔插座(2.54)若干,排线若干,焊锡若干,面包板跳线若干。 键盘连接电路 当按键少,I/O口资源不紧张时,可采用一个按键占用一个I/O口的连接方式。如图,此时只要将该口设为输入,内部上拉电阻使能(DDRXn,PORTXn)=(0,1)即可。一旦按键按下,电平被拉到低电平,按键松开的时候,引脚电平为高。所以只需读寄存器PINXn的电平可判断按键是否按下。 当按键多,例如16个按键,此时采用上述连接方式会占用16个I/O口资源。可采用矩阵方式。如图,这样只占用8个I/O口。 (2)行扫描法确定哪一个键闭合: 扫描第1行:PX7-PX4送出0b1110,拉低第一行电平,其它三行电平为高,读PX3-PX0。若第1行若无键闭合,读出的数据为0b1111。有键闭合,例如第1列闭合,读出的数据为0b1110;同样第2列有键闭合,读出的数据为0b1101;若读出的数据为0b1011;表示第三列有键闭合;0b0111表示第4列有键闭合 若要扫描第2行,PX7-PX4送出0b1101,拉低第2行电平;同样,送出0b1011和0b0111可扫描第3行和第4行。 (3)value_row高4位存储行扫描码,value_col低4位存储读取码,做运算 value_key = ~((value_row 0xF0) + (value_col 0x0F)); 在只有单键闭合的情况下, value_key的取值与键闭合 对应如图所示 扫描代码可以这样写: unsigned char key_scan() { int i; unsigned char value_key, value_row, value_col; value_key = 0x00; //缺省无键闭合 key_DDR = 0xF0; //高四位输出,低四位输入。 key_PORT = 0x0F; //高四位输出低电平,低四位上拉电阻能 _NOP(); value_col = key_PIN 0x0F; //读列 if(value_col != 0x0F) //有按键闭合 { value_row = 0xEF; for(i=0;i4;i++) { //扫描第i行 key_PORT = value_row 0xF0;//第i行电平拉低 _NOP(); value_col = key_PIN 0x0F; if((value_col) != 0x0F)//第一行各列有键按下 { ` switch(value_col) { case 0 //第一列按键 case 0 //第二列按键 case 0 //第三列按键 case 0 //第四列按键 value_key = ~((value_row 0xF0) + value_col); break; default value_key = 0; break; } } value_row = 1; //移位,扫描其余各行 } } return(value_key); } 键盘电路的焊接 按键消抖 为什么要消抖:通常键盘所用为机械弹性开关,在按下和弹起的瞬间伴随一系列抖动。为确保CPU对一次闭合仅做一次处理,必须对键盘的抖动进行消抖处理。一般来说,前沿和后沿抖动时间大约在5-10ms。 一般键盘消抖的思路:一旦检测到有键按下时,延时10ms,跳过前沿抖动,再次检测,仍然检测到该键按下,则认为是有效按键;检测到该键释放后,延时10ms,再检测,该键仍在释放状态;则认为完成了一次完整的按键。 int keyDelay_Dither(const int key_value) //key_value为key_scan() 返回值 { int tmp; if(key_value) //key_value!=0,有键按下执行以下程序; 前沿消抖 { _delay_ms(10);//延时10ms去掉抖动前沿 if(key_value == key_scan())//若两次按键相等 { msg_key.value = key_value;//返回键值 msg_key.state =
您可能关注的文档
- 第7章.物流管理信息系统实施与维护.ppt
- 第7章 测量结果评定.ppt
- 第7章 炔烃和共轭双烯 2015-09-04.ppt
- 第7章 轨迹规划.ppt
- 第7章_有限状态机的设计.ppt
- 第7章_阶跃响应.ppt
- 第7章_工程建设项目进度管理.ppt
- 第7章采购与外包战略_供应链管理.ppt
- 第7章 气体分子动理论.ppt
- 第7节Crammar法则.ppt
- 语文-广东省肇庆市2025届高三第二次模拟试卷和答案(肇庆二模).docx
- 中国通信行业运行情况月度报告(2024年1-11月).pdf
- 2024年中国新能源汽车行业全球竞争力分析与各国进口贸易法规影响白皮书-特易资讯.pdf
- 热电“三保”与碳排双控.pdf
- 数据中心行业分析报告 2025.pdf
- 【灼鼎咨询】2024年自动驾驶行业知识报告(智能驾驶、新能源汽车、NOA).pdf
- 政治-江苏省苏州市2024-2025学年2025届高三第一学期学业期末质量阳光指标调研卷试题和答案.docx
- 政治-广东省东莞市、揭阳市、韶关市2025届高三期末教学质量检查试题和答案.docx
- 自适应物理安全与信息安全系统 -智能制造的动态安全方法 2025.pdf
- 【国联证券】通信行业专题研究:Marvell AI day,算力需求推动光互联加速迭代.pdf
最近下载
- 数码相机-SONY索尼-HDR-SR1E说明书.pdf
- 数学的发展历程.pptx
- 医药销售年终总结PPT.pptx
- 多维阅读第5级SmokeJumpersHelp消防队在行动方芳-完整版PPT课件.pptx
- 日本大学2015留学.ppt
- 高标准农田假设检验批表格.doc VIP
- 2024年湖北省烟草专卖局(公司)招聘笔试真题.docx VIP
- 课题申报书:家校共育背景下儿童社会情感能力的异质性发展机制及促进研究.docx VIP
- 2025年八省联考陕西高考生物试卷真题答案详解(精校打印).pdf VIP
- Unit 1 Meeting New Friends (教学设计)-2024-2025学年闽教版英语五年级上册.docx
文档评论(0)