教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

一氧化碳报警器设计 - 软件设计(15)

来源:网络收集 时间:2026-08-04
导读: 东南大学成贤学院毕业设计报告 用延时程序可以同时达到去抖动。采用这种方法时,当程序检测到有键按下,便执行一个10ms的延时程序,然后再检测一次,看是否该键仍然闭合。如果仍然闭合则可以确认该按键确实被按下,

东南大学成贤学院毕业设计报告

用延时程序可以同时达到去抖动。采用这种方法时,当程序检测到有键按下,便执行一个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字,全部文档内容请下载后查看。喜欢就下载吧 ……

一氧化碳报警器设计 - 软件设计(15).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/615363.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)