一氧化碳报警器设计 - 软件设计(15)
东南大学成贤学院毕业设计报告
用延时程序可以同时达到去抖动。采用这种方法时,当程序检测到有键按下,便执行一个10ms的延时程序,然后再检测一次,看是否该键仍然闭合。如果仍然闭合则可以确认该按键确实被按下,从而可以消除抖动的影响,便可以执行相对应的操作。
(2)一次按键处理。手工操作需要一定的时间,大致为0.1s~2s,这相对于单片机的运行频率来说是非常慢的。当按键按下之后,有可能导致单片机程序对该按键操作响应多次。在程序中可以增加相应的识别按键松开的检测程序,来避免对一次按键输入的多次响应。
3、单片机对键盘输入的响应可以采用两种方式:查询和中断。查询方式适用于一般用途的程序,需要在程序中循环查询每一个按键的状态,因此会占用大量的CPU处理时间。中断法适用于一些对实时性要求较高的复杂单片机系统,只有按键按下的时候才向CPU申请中断进而执行相应的程序段,平时不会占用CPU处理时间。
总的来说,在单片机程序中,对键盘的处理主要包括如下几个方面。 (1)检测按键是否按下。
(2)如果按键被按下,执行延时程序,用来实现软件消除抖动的影响。 (3)扫描按键,准确判断被按下的按键的键值。
(4)转向相应的按键处理子程序。在按键处理子程序中,不能执行过于繁重的任务而延误了对下一次按键动作的响应。
本次设计单片机对键盘输入的响应采用扫描方式。程序流程图如下图5-5所示。
假设行线从上到下依次为X0~X3,列线从左到右依次为Y0~Y3,则程序执行的步骤如下: (1)判断按键是否按下。在程序中将列线(Y0~Y3)全部输出为0,此时读行线(X0~X3)的状态。如果行线全为1,则表示此时没有任何按键按下;如果行线不全为1,则表示有按键按下。进而继续执行下面的步骤。
(2)按键去抖动。当判断有按键按下之后,程序中延时10ms左右的时间,然后再次判断键盘的状态。如果仍然处于按键按下的状态,则便可以肯定有按键按下,否则将当作按键的机械抖动。
(3)扫描按键的位置,这是扫描法的主要步骤。程序中,首先先令列线Y0输出0,其余3根列线均输出1。然后读取行线的状态,如果行线(X0~X3)均为高电平,则Y0这一列上没有按键按下,如果行线(X0~X3)不全为高电平,则表示其中为低电平的行线与Y0相交的按键被按下。如果列Y0没有按键按下,然后按照同样的方法依次检查Y1、Y2和Y3列有没有按键按下。这样通过逐列扫描,便可以找到按键的坐标位置(X,Y),也就是键值。
(4)按键程序处理。根据按键的键值,执行相应的程序处理子程序。有的时候,为了保证一次按键只执行一次程序处理,可以判断按键是否释放,如果按键释放则再次开始按键扫描操作。
36
东南大学成贤学院毕业设计报告
开始 键盘扫描 是否有键按下 YES 延时10ms,去抖动 NO 是否有键按下 YES 扫描按键位置 NO 按键程序处理
返回图5-5 键盘扫描法程序流程图
37
东南大学成贤学院毕业设计报告
第六章 调试
6.1 系统调试过程
系统调试分为硬件调试和软件调试两个部分,两者一般需要配合进行调试。 6.1.1 硬件调试
首先,检查电路。任何组装好的电子电路,在通电调试之前,必须认真检查电路连线是否有错误。对照电路图,按一定的顺序逐级对应检查。特别要注意检查电源是否接错,电源与地是否有短路,二极管方向和电解电容的极性是否接反,集成电路和晶体管的引脚是否接错,轻轻拔一拔元器件,观察焊点是否牢固,等等。
然后,通电观察。一定要调试好所需要的电源电压数值,并确定电路板电源端无短路现象后,才能给电路接通电源。电源一经接通,不要急于用仪器测试,而是要观察是否有异常现象,如冒烟、异常气味、放电的声光、元器件发烫等。然后,再测量每个集成块的电源引脚电压是否正常,以确信集成电路是否已通电工作。
而后,静态调试,先不加输入信号,测量各级直流工作电压和电流是否正常。动态调试加上输入信号,观测电路输出信号是否符合要求。
最后,拷入一段简单的程序,通电。测试键盘与液晶显示器是否可以正常运行。 6.1.2 软件调试
第一步,通过仿真技术,在具有 Proteus和Keil C51软件的主机上和系统连接起来,进行调试准备。 第二步,单步运行。所谓单步运行是指在程序开发中,为了找到程序的bug,通常采用的一种调试手段,一步一步地跟踪程序执行的流程,根据变量的值,找到错误的原因。
第三步,系统调试,即进行软件和硬件联合调试。
6.2 Keil 的使用
6.2.1 概述
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展。Keil软件是目前最流行的开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 6.2.2 使用方法
Kei的使用分为以下几个步骤:
38
东南大学成贤学院毕业设计报告
1、启动keil:双击桌面上的keil uVision3图标,或单击屏幕下方的“开始→程序→keil uVision3”。 2、建立一个工程:启动Keil后,单击菜单栏上的“Projict→New→uVision Project”。
3、选择工程保存位置:单击“Projict→New→uVision Project”后紧接着会弹出一个窗口,在该窗口中新建一个文件夹,双击打开,然后在下方文件名中随便定义一个名字,然后点击保存。
4、选择单片机(MCU)型号:点击保存后又会弹出一个窗口,在Date base中找到Atmel→AT89S52,然后点击确定,接着会弹出对话框询问是否将初始化代码一起加入工程。这里我们选择“否”。这个初始化代码就类似于我们用汇编的时候初始化CPU,让它从制定地址开始运行。我们用C语言编写程序,这个是不需要的。
5、现在就建立了一个工程。但是工程是空的,里面什么都没有。接下来我们就要新建一个*.C的文件,用来编程。
6、建立编程文件:点击菜单栏上的“File→New”会立即在当前窗口新建一个“文本文件”,然后点击保存,一定要把这个文件保存成*.C文件。比如,输入文件名的时候我们输入main.C(其他名字也可以,比如XiaoMao.C),总之一定要是C文件。
7、现在我们建立了这个用来编写程序的文件,但是这个文件是不在工程中的,我们需要把它添加进去。右键点击Project Workspace中的“Target 1→Souce Groupe 1”,然后左键单击“Add Files to Groupe ? So …… 此处隐藏:1808字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




