单片机独立按键识别实验报告.doc_第1页
单片机独立按键识别实验报告.doc_第2页
单片机独立按键识别实验报告.doc_第3页
单片机独立按键识别实验报告.doc_第4页
单片机独立按键识别实验报告.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

桂林电子科技大学实验报告2016-2017 学年第一学期开 课 单 位 海洋信息工程学院 适用年级、专业 14级机械设计制造及其自动化 课 程 名 称 单片微型计算机与接口技术-课内实验 主 讲 教 师 周旋 课 程 序 号 BS1615000_03 课 程 代 码 BS1615000 实 验 名 称 独立按键识别 学 号 1416010516 - 17 姓 名 林亦鹏 卢炳荣 独立按键识别实验报告一、实验目的1、了解单片机顺序执行的工作特点。2、掌握单片机并行控制I/O口的基本方法。3、掌握C语言的编写,及对I/O口的基本操作方法。二、实验内容实验设备:计算机一台、单片机实验箱一台、Proteus软件、Keil软件。硬件原理图:电路采用无源蜂鸣器,从P1.5口形成脉冲来驱动。因为单片机开机初始化瞬间,其I/O口为高电平,会有误响动作。单片机的独立键盘使用的是P1口。当有键按下时,P1口相应位为低电平。1、查找资料说明按键抖动的原因。2、延时程序是怎么实现延时的?3、打开Keil新建工程:学号-2.uv2。4、参考实验程序,编写程序:任意Key按下后让蜂鸣器响一声。生成:学号-2.hex文件。5、打开下载软件,把学号-2.hex文件烧写到单片机,观察蜂鸣器现象。6、修改程序将按键绑定在P1.1上,并每按一次按键让蜂鸣器响三声。三、实验结果分析1、程序流程图:#include sbit Beep = P15 ;/定义蜂鸣器的连接端口/-定义要使用的IO口-/sbit K1 = P10;/对应按钮K1/-定义全局函数-/void delay(unsigned int i) ; /延时函数void beepnoise(unsigned int t); /蜂鸣器发声unsigned char Key_Scan(); /键盘扫描void main()unsigned char keyNum;while (1)keyNum = Key_Scan(); /扫描键盘if (keyNum = 1) /如果键值返回1,即1号独立按键被按下beepnoise(1); void delay(unsigned int i) char j; for(i; i 0; i-) for(j = 200; j 0; j-);void beepnoise(unsigned int t) t=t*30;while(t0)Beep= 1;delay(500);Beep= 0;delay(500);t-;unsigned char Key_Scan()unsigned char keyValue = 0 , i; /保存键值/-检测按键1-/if (K1=0)/检测按键K1是否按下delay(1000);/消除抖动if (K1=0)/再次检测按键是否按下keyValue = 1;i = 0;while (i50) & (K1=0) /检测按键是否松开delay(1000);i+;return keyValue; /将读取到键值的值返回以上程序用开发板来进行实验,程序可以实现要求。对于在进行实验的设计时,可能存在的错误,主要是C语言的一些使用规则的错误和对中断控制等代码的错误。等发生错误时,就应从代码的开始部分进行检查和分析,对于错误的地方进行修改,直到程序无错误为止。对于验证其功能时,应确认开发板没有损坏,正确连接电路等。四、思考与讨论1、单片机读写方式。答:将Nand Flash总线操作分为三类:写命令、写地址和数据操作(读数据与写数据仅仅差别在nR和nW引脚,而且这两个引脚无法进行编址,故归为一类)。根据这三类的时序要求,选出引脚在这三类中变化的进行编址,nE引脚总是要求低电平,不符合要求;AL和CL在这三类操作中有时是低电平有时是高电平,符合要求2、按键防抖动技术。答:软件防抖方法:软件的方法进行防抖。当第一次检测到有建按下时,先用软件延时(1020ms),而后再确认键电平是否依旧维持闭合状态的电平。若保持闭合状态电平,则确认此间已按下,从而消除抖动影响。3、延时程序的使用方法。答:在C51中通过预处理指令#pragma asm和#pragma endasm可以嵌套汇编语言语句。用户编写的汇编语言紧跟在#pragma asm之后,在#pragma endasm之前结束。如:#pragma asm汇编语言程序段#pragma endasm4、对蜂鸣器的操作是读还是写操作?答:对无源蜂鸣器的操作方法是写,只要给一个高电位或者低电位即可,要根据电路设计方法而定。五、小组表现评价(必填) 在本次实验中17号负责程序编写,16号负责电路连接,配合得十分好,听完老师的讲解,剩下的就是我们自己调试了,有不懂的问老师,老师也讲得十分仔细,在调程序的过程中,主要是了解c语言的命令语句的使用方法,这是第二次实验,独立按键识别程序与流水灯的程序相对来说是稍微复杂些,但是又学到了语句更深的延时方法,比如用频率和占空比来实现蜂鸣器的发声,使用循环语句来实现蜂鸣器的发声次数。我觉得老师的实验方法是非常正确的,因为编写程序对于新手来说是非常困难和损耗时间的,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论