版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三基于MCS-51单片机的独立按键和矩阵按键检测实验一、支撑课程目标目标1:掌握微机和单片机的基本原理、编程技术、中断技术、系统扩展、定时器、串行接口和其他输入/输出接口技术,并且了解典型的单片机应用系统的设计思想和实现方法。目标2:初步具备自行拟定实验步骤、检查和故障排除、分析和综合实验结果以及撰写实验报告的能力。目标4:掌握MCS-51单片机/STM32F103单片机系统仿真工具和仿真流程,了解常用实验仪器、设备的基本工作原理,了解其正确使用方法,具备利用电子仪器设备和专业仿真软件对复杂工程问题进行分析和设计的能力。二、实验类型:验证型()、设计型(V)、研究创新型()三、预期学生学习
2、的成果1、具有典型按键检测电路原理及消除抖动的必要性的认知。2、理解程序设计消除抖动的实现过程。3、掌握独立按键的程序查询检测编程实现。4、掌握独立按键的中断检测编程实现。5、理解矩阵键盘的行列扫描检测原理,具有矩阵键盘软硬件设计综合能力。四、实验原理1、典型按键检测电路典型的按键检测电路具备检测按键的条件:检测引脚处在键按下前和后,要有电平变化,否则按键无法检测。电路组成包括电源、上拉电阻、按键、接地组成,按下前,检测引脚高电平,按下后检测引脚低电平。图1按键典型电路及对应检测电压2、按键抖动及消除如图1(b),理想条件下,按键未按下,在检测I/O端口是高电平,按下以后,检测I/O端口是低电
3、平,手松后,按键弹起,检测I/O端口是高电平。整个按键过程出现高电平到低电平又到高电平,有下降沿,也有上升沿。实际过程中,由于人手的抖动,检测端电压如图1(C),检测电压出现“毛刺”抖动,假设单片机检测高电平阈值为VH,低电平阈值为VL,次按键就会出现多次高电平到低电平变化,存在按键误检测可能。常用消除办法之一:一旦检测到低电平,延迟u毫秒,u选择大于20,再次判断检测端是否是低电平,如果是,就判定为1次按键。通过延时来避开跳变过程。3、矩阵按键的行列扫描法原理4*4矩阵键盘,Y0Y3为行线,Y4Y7为列线,如图2所示。图2矩阵键盘原理图行扫描法键盘扫描过程:由于MCS-51单片机I/O引脚(
4、除P0口)都会配置成上拉形式,所以在矩阵键盘部分不需要上拉电阻。判断键盘中有无键按下及按下键所在列的位置:将全部行线Y0-Y3置高电平,列线Y4-Y7置低电平,然后检测列线的状态。若所有行线均为高电平,则键盘中无键按下。只要有一行的电平为低,则表示键盘该行有一个或多个键被按下。判断闭合键所在列的位置:在确认有键按下后,即可进入确定具体闭合键的位置在哪行。其方法是:将全部行线Y0-Y3置高电平、列线Y4-Y7逐行置低电平、然后检测行线的状态,只要有一行的电平为低,则表示键盘该行与对应置低列交叉键被按下。五、实验内容及步骤(一)实验内容1、利用Proteus软件绘制MCS-51单片机最小系统,1位
5、数码管控制电路,2个按键检测电路(1个中断按键,1个查询按键)。2、编写程序,利用程序查询和中断形式分别对按键次数进行计数,按键需要消除抖动,利用1位数码管显示按键次数。3、利用Proteus软件绘制MCS-51单片机最小系统,1位数码管控制电路,4*4矩阵按键电路。4、编写程序,利用矩阵按键的行列扫描原理,实现按键的检测,数码管显示键值。5、扩展利用其它方法对矩阵键盘按键键值进行检测。(二)实验步骤(1)独立按键检测及键数数码管显示、典型按键电路可以连接在一般I/O端口上,也可以连接在具有外部中断的1/0引脚上。当采用程序查询方式检测时,都可以。在采用外部中断检测时,只能连接在P3.2或P3
6、.3引脚上。利用Proteus软件绘制电路原理图,参考如图3所示,单片机最小系统,由于I/O口(非P0口)内置有上拉电阻,所以按键不再添加上拉电阻和外置电源,利用数码管显示键值。两个检测按键分别接在P1.2和P3.3分别测试程序查询和外部中断检测按键。搭建好硬件电路,以备测试软件。、在Keil软件下,建立工程,编写源文件,对于P1.2引脚采用程序查询方式检测按键,P3.3引脚按键采用中断方式检测。、程序编译,生成Hex文件,嵌入到Proteus软件单片机里,晶体振荡器12M,运行软件仿真,观察仿真现象。(2)矩阵按键检测及键值数码管显示、在Proteus软件下绘制电路原理图,利用数码管显示键值
7、。4*4矩阵键盘连接在P1端口的8个引脚上。由于P1端口内部每个引脚都有上拉电路,所以检测引脚可以不配置上拉电路。如果连接在P0端口上,需要连接上拉电路。、在Keil软件下,建立工程,编写源文件,矩阵键盘采用程序查询方式检测按键,键值依次0-9,A,B,C,D,E,F。、程序编译,生成Hex文件,嵌入到Proteus软件单片机里,晶体振荡器12M,运行软件仿真,观察仿真现象。不同的按键对应的键值可以根据个人需要设定对应键值。注意程序中需要消除按键的抖动。六、扩展实验1、2个按键同时连接,分别在一个程序里采用查询和中断方式检测按键,比较按键检测的响应灵敏度。2、矩阵按键检测,采用线翻转等其他方式
8、检测。七、实验结果(1)独立按键检测及键数数码管显示、典型按键电路可以连接在一般I/O端口上,也可以连接在具有外部中断的I/O引脚上。当采用程序查询方式检测时,都可以。在采用外部中断检测时,只能连接在P3.2或P3.3引脚上。利用Proteus软件绘制电路原理图,参考如图3所示,单片机最小系统,由于I/O口(非P0口)内置有上拉电阻,所以按键不再添加上拉电阻和外置电源,利用数码管显示键值。两个检测按键分别接在P1.2和P3.3分别测试程序查询和外部中断检测按键。搭建好硬件电路,以备测试软件。、在Keil软件下,建立工程,编写源文件,对于P1.2引脚采用程序查询方式检测按键,P3.3引脚按键采用
9、中断方式检测。、程序编译,生成Hex文件,嵌入到Proteus软件单片机里,晶体振荡器12M,运行软件仿真,观察仿真现象。Keil#include#defineucharunsignedcharucharseg=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e;uchari=0;sbitKEY=P1人2;/voiddelayms(intms)intm;while(ms-)for(m=0;m9)i=0;returni;voidmain(void)EA=1;
10、/开中断总开关EXl=l;/外部中断请求lITl=l;/下降沿触发P2=seg0;while(l)inta;a=keyscan();P2=sega;voidintl(void)interrupt2using0IEi-0;4vr?idnaiDEfi-U幵申皆总开芙EX1-.ZLJ-严就啦呼阐求1m-s儿下隆洁蚩whaleClliQtK出嘗*,刑|:JZ-aegirsvciidiBClcvold)lri.t-c:rrup9)i=0;P2=segi;ProteusSWF)塢删打祖nigxarriELtiiwimtn?!n(ii悴撤卅?無垢w幣耿册DAHfr划5eHQg1jOi“中于国曰題9人匕惶X(
11、5X叭览直工丄士QMO-son(2)矩阵按键检测及键值数码管显示、在Proteus软件下绘制电路原理图,利用数码管显示键值。4*4矩阵键盘连接在P1端口的8个引脚上。由于P1端口内部每个引脚都有上拉电路,所以检测引脚可以不配置上拉电路。如果连接在P0端口上,需要连接上拉电路。、在Keil软件下,建立工程,编写源文件,矩阵键盘采用程序查询方式检测按键,键值依次0-9,A,B,C,D,E,F。、程序编译,生成Hex文件,嵌入到Proteus软件单片机里,晶体振荡器12M,运行软件仿真,观察仿真现象。不同的按键对应的键值可以根据个人需要设定对应键值。注意程序中需要消除按键的抖动。Keil#inclu
12、de#defineucharunsignedchar#defineuintunsignedintunsignedcharseg=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e;voiddelayms(unsignedintz);ucharkeyscan(void);voidmain(void)ucharkey;while(1)key=keyscan()-1;P0=segkey;voiddelayms(unsignedintms)inti;while(m
13、s-)for(i=123;i0;i-);ucharkeyscan(void)ucharscode,scode1,scode2,k;P1=0 xf0;scode1=P1&0 xf0;if(scode1!=0 xf0)delayms(10);scode1=P1&0 xf0;if(scode1!=0 xf0)/列号/行号/键值scodel=Pl人OxfO;P1=0 x0f;scode2=Pl人OxOf;scode=scodel|scode2;switch(scode)case0 xll:k=l;break;case0 x12:k=2;break;case0 x14:k=3;break;case0 x
14、18:k=4;break;case0 x21:k=5;break;case0 x22:k=6;break;case0 x24:k=7;break;case0 x28:k=8;break;case0 x41:k=9;break;case0 x42:k=10;break;case0 x44:k=11;break;case0 x48:k=12;break;case0 x81:k=13;break;case0 x82:k=14;break;case0 x84:k=15;break;case0 x88:k=16;break;default:k=0;break;returnk;ProteusIK?;itd
15、i|岂丈ode*jcase0 x11;Qxl-2;UArT;CASE111t-3rbTMJ5.1IBsk-4rbif&akiMac戈丄=k-rlrwJin?-I箪rbrtWhJ5C3dt2-PlK0Ki3fJfltiiide-scocLtl|*SJ-Prcnws.6F0W5iCiMl脈1團旣站宜井农ffKEflUHigLH(raniNiawfoonm耳垢wsratH:!QOorwirrs*laj心一*3吕.-格mjiiTcm阿皎rrop和$t尺HESIIIQ加滋mom艸知用-1帥QHp在远里输丸硬啟索胸内容O口13电各網*:八、实验分析(1)独立按键检测及键数数码管显示Int1(p3.3口)选为下降沿触发方式,由于每个机器周期采样中断请求信号一次,所以,中断请求信号的高电平和低电平的持续时间必须保持一个机器周期以上。扫描函数ucharkeyscan(void)-开始delayms(10),出现数码管混乱,中断检测正常,之后延长延时时间delayms(78);两种方式都正常计数.(2)矩阵按键检测及键值数码管显示P0口数码管采用共阳极接法,对0”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于宾馆管理制度的规定(3篇)
- 安全改造项目管理制度范本(3篇)
- 2026广东广州生物医药与健康研究院数字生物医学研究中心招聘科研助理1人笔试参考题库及答案解析
- 2026重庆市铜梁区巴川街道福利院工作人员招聘2人(第二次)考试参考题库及答案解析
- 2026年吉安市青原区两山人力资源服务有限公司面向社会公开招聘2名超市店员参考考试题库及答案解析
- 2026年上半年云南省科学技术厅直属事业单位公开招聘人员(8人)参考考试题库及答案解析
- 2026春季江西赣州石城县西外公立幼儿园教职工招聘备考考试题库及答案解析
- 2026年临沂市市直部分事业单位公开招聘综合类岗位工作人员(21名)参考考试题库及答案解析
- 2026年度济南市章丘区所属事业单位公开招聘初级综合类岗位人员备考考试题库及答案解析
- 2026山东事业单位统考滨州市阳信县招聘30人备考考试题库及答案解析
- 2026中国数字化口腔医疗设备市场渗透率与增长动力研究报告
- 2025中证信息技术服务有限责任公司招聘16人笔试参考题库附答案
- 建筑工程决算编制标准及实例
- 安徽省江淮十校2025年高二数学第一学期期末质量检测试题含解析
- 电力工程项目预算审核流程
- GB/T 14748-2025儿童呵护用品安全儿童推车
- 蒸汽管道-应急预案
- 叠合板专项施工方案(完整版)
- 造价咨询沟通和协调方案(3篇)
- 耐蚀衬胶工专项考核试卷及答案
- 水利工程单元工程施工质量验收常用表格(建筑工程)单元工程施工质量验收表
评论
0/150
提交评论