【最新】自动化毕业论文-基于AT89C52单片机的电子秒表设计02550.doc

上传人:小小飞 文档编号:3904918 上传时间:2019-10-10 格式:DOC 页数:33 大小:274.52KB
返回 下载 相关 举报
【最新】自动化毕业论文-基于AT89C52单片机的电子秒表设计02550.doc_第1页
第1页 / 共33页
【最新】自动化毕业论文-基于AT89C52单片机的电子秒表设计02550.doc_第2页
第2页 / 共33页
【最新】自动化毕业论文-基于AT89C52单片机的电子秒表设计02550.doc_第3页
第3页 / 共33页
【最新】自动化毕业论文-基于AT89C52单片机的电子秒表设计02550.doc_第4页
第4页 / 共33页
【最新】自动化毕业论文-基于AT89C52单片机的电子秒表设计02550.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《【最新】自动化毕业论文-基于AT89C52单片机的电子秒表设计02550.doc》由会员分享,可在线阅读,更多相关《【最新】自动化毕业论文-基于AT89C52单片机的电子秒表设计02550.doc(33页珍藏版)》请在三一文库上搜索。

1、本本科科毕毕业业论论文文(设设计计) 基于基于 AT89C52AT89C52 单片机的电子秒表设计单片机的电子秒表设计 所 在 学 院 信息科学技术学院 专 业 名 称 自动化 申请学士学位所属学科 工 学 摘要 I 摘摘 要要 随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带 动传统控制检测技术不断更新。单片机是指集成在一个芯片上的微型计算机,主 要包括 CPU、随机存储器、只读存储器、基本输入/输出接口电路、定时器/计数 器等部件。 本文设计的主要思路是采用 ATMEL 公司的 AT89C52 单片机作为中央处理 器,应用 LED 数码显示器,设计具有计时和倒计时功能的电

2、子秒表。论文概述 中主要介绍了本次课题的课题背景、研究意义以及要求完成的任务。正文中首先 介绍了系统硬件的设计思路以及工作原理,其次简单阐述了程序的流程、程序各 功能模块的分析和实现过程,最后简单总结了本次设计的难点、关键点以及收获 的经验。 关键词关键词:单片机,LED 数码管显示器 ,AT89C52 ABSTRACT II ABSTRACT With computer penetration in the social sphere, SCM applications are constantly deepening, and promote the traditional control

3、 detection technology update. Single chip is integrated on a chip microcomputer, including CPU, random access memory, a read- only memory, input / output interface circuit, timer / counter and other parts. In this paper the main train of thought of the design is the use of AT89C52 microcontroller as

4、 the central processor, the application of LED digital display, design has a timer and countdown function electronic stopwatch. The paper summarizes mainly introduced this topic research background, research significance and tasks. The text firstly introduces the system hardware design and working p

5、rinciple, then briefly discusses the process flow, process of each function module of the analysis and the realization of the process, finally summarizes the design difficulty, key points and gain experience. Key words:Single-Chip Microcomputer, LED figures tube display,AT89C52 目录 III 目 录 1 1 绪论绪论-1

6、 1 1.1 引言-1 1.2 单片机及其发展-1 1.3 LED 显示器概述 -4 1.4 论文章节安排-7 2 2 系统功能概述系统功能概述-7 7 3 3 系统硬件设计系统硬件设计-8 8 3.1 中央处理器设计 -8 3.2 系统电路设计-9 4 4 系统软件设计系统软件设计-1212 4.1 程序功能及主要变量的说明-12 4.2 程序流程图-14 4.3 按键消抖介绍-16 4.4 主要程序代码-17 5 5 总结总结-2222 参考文献参考文献-2424 致致 谢谢-2525 本科毕业论文(设计) 1 1 绪论 1.1 引言 单片机自问世以来,性能不断提高和完善,而且具有集成度高

7、、功能强、速 度快、体积小、功耗低、使用方便、价格低廉等特点,因此在工业控制、智能仪 表、数据采集和处理、通信系统、网络系统、汽车工业、国防工业、家用电器等 领域的应用日益广泛,并且正逐步取代现有的多片微机应用系统,单片机的潜力 越来越被人们所重视。 基于单片机的定时与控制装置在诸多行业都有广泛的应用,本文以 AT89C52 为主控制芯片,应用 LED 显示器设计电子秒表,其主要功能有单计时、连续记 8 个的计时、设定初值的倒计时。本文是一个单片机的最小系统设计,对于各种 复杂系统的开发,有一定的引导作用。 1.2 单片机及其发展 集成在一个芯片上的微型计算机即为单片机,也就是把组成微型计算机

8、的各 种功能部件,像CPU、只读存储器 ROM(Read only memory)、随机存储器 RAM(Random access memory)、基本输入/输出接口电路、定时器/计数器等部 件集成在一块芯片上,构成一个较为完整的微型计算机,从而实现一些微型计算 机所具有的功能2。 1.2.1 单片机的产生与发展 (1)单片机的产生 电子计算机的发展经历了四个阶段,分别是电子管、晶体管、集成电路大 (超大)规模集成电路阶段,即通常所说的第一代,第二代,第三代和第四代计 算机。现在广泛使用的微型计算机属于第四代计算机,是大规模集成电路技术发 展的产物,而单片机则是众多微型计算机中的一个分支3。从

9、 1971 年微型计算 机问世以来,由于实际应用的需要,微型计算机向着两个不同的方向发展;一个 是向高速度,大容量,高性能的高档微机方向发展;而另一个则是向稳定可靠、 本科毕业论文(设计) 2 体积小和价格廉价的单片机方向发展。但是两者在原理和技术上是紧密联系的4。 (2)单片机的发展 继1971年微处理器的研制成功不久,就出现了单片的微型计算机即单片机, 但最早出现的单片机是一位的。随后在1976年Intel公司推出了 8 位的 MCS-48 系列单片机,采用将8位CPU、8位并行I/O口、8位定时/计数器、RAM、ROM等 集成于一块芯片上的单片结构,能够满足一般工业控制和智能化仪器、仪表

10、等的 需求,赢得了广泛的市场,为单片机的发展奠定了坚实的基础6。到80年代末世 界各地已相继研制出大约50个系列300多个品种的单片机产品,其中包括Rockwell 公司的 6501,6502 , Motorola 公司的 6801,6802,Zilog 公司的 Z-8 系列等。 此外,日本的日立公司,NEC公司等也相继推出了各自的单片机品种。尽管目前 市面上单片机的种类很多,但我国使用最为普遍的是 Intel 公司的MCS-51单片机 系列。20世纪80年代初,MCS-51 系列在 MCS-48 的基础上迅速发展起来,尽管 它是8位的单片机,但是相对于MCS-48,它的功能有很大的改善。此外

11、,它还具 有兼容性强,品种全,软硬件资料丰富等特点,因此应用非常广泛,成为非常重 要的单片机品种。直到现在,单片机的主流系列仍然包含MCS-51系列。1983年 Intel公司推出的 MCS-96 系列单片机是16位单片机中的典型代表,它是在8位单 片机基础上发展而来的。MCS-96相对于MCS-51,不但字长增加一倍,而且在其 他性能方面也有很大的提高,特别是芯片内还增加了一个10位数模转换器,使其 具有数模转换的功能7。纵观单片机近些年来的发展历程,今后单片机将在集成 度、功能、性能、速度、功耗、价格、可靠性、应用领域等全方位地向更高水平 发展。尽管现在已经有了32位单片机,但单片机位数不

12、一定会继续增加,并且目 前32位单片机使用的并不多。由此可以推测,今后的单片机将具有更强的功能, 更高的可靠性,更高的集成度,更低的功耗、更简单的外围电路等特点。除此之 外,单片机的另一个发展方向是专业化,针对单一用途的专用单片机将会越来越 多。 本科毕业论文(设计) 3 1.2.2 单片机的分类 根据控制应用的需要,可以将单片机分成为通用型和专用型两种类型。通用 型单片机是一种基本芯片,内部资源比较丰富,性能全面且适用性强,能覆盖多 种应用需要。用户可以根据需要设计成各种不同应用的控制系统,即通用单片机 有一个在设计的过程,通过用户的进一步设计,才能组建成一个以通用单片机芯 片为核心再配以其

13、它外围电路的应用控制系统。然而在单片机的控制应用中,有 许多时候是专门针对某个特定产品的,例如电度表和 IC 卡 读写器上的单片机 等。这种应用的最大特点是针对性强而且数量巨大,为此厂家常与芯片制造商合 作,设计和生产专用的单片机芯片。由于专用单片机芯片是针对一种产品或一种 控制应用而专门设计的,设计时已经对系统结构的最简化,软硬件资源利用的最 优化8。 1.2.3 单片机应用领域 由于单片机具有显著的有点,它已经成为科技领域的有力工具,人们生活的 得力助手,其应用遍及各个领域,主要体现在一下几个方面: (1)测控系统中的应用 测控系统特别是工业控制系统的工作环境恶劣,各种干扰也强,而且往往要

14、 求实时控制,故要求控制系统工作稳定、可靠、抗干扰能力强。由单片机的特点 可以看出,单片机很适合用于测控领域。例如,炉温控制等2。 (2)智能仪表中的应用 用单片机制作的测量、控制仪表,能使仪表向数字化、智能化、多功能化发 展,并使检测、处理、控制等功能一体化,使仪表重量大大减轻,便于携带和使 用,同时降低了成本,提高了性价比。如智能转速表、计时器等。 (3)家用电器方面 当前,不断提高其智能化程度是家用电器产品的一个重要发展趋势,而单片 机的参与是进一步提高家电智能化的需要,因此许多生产厂家经常标榜“电脑控 制”以提高产品的档次,例如微波炉、空调机、洗衣机、电视机和热水器等,这 本科毕业论文

15、(设计) 4 里厂家所说的“电脑”实际上就是单片机。智能化家用电器将给我们带来更大的 舒适和方便,进一步改善我们的生活质量。 (4)在智能计算机外设中的应用 在计算机应用系统中,出通用外部设备外,还有许多用于外部通信、数据采 集、驱动控制等接口。采用单片机专门对接口进行控制盒管理,则主机和单片机 就能并行工作,这不仅大大提高了系统的运算速度,而且单片机还可以对接口信 息进行预处理,以减少主机和接口之间的通信密度、提高接口控制管理的水平。 如绘图仪控制器、打印机的控制器等。 1.2.4 单片机的生产厂家和型号 Intel(美国英特尔) 公司:MCS-48,MCS-51 系列; Microchip

16、(美国微晶)公司:PICI6XX,PIC54CXX 系列; Motorola(美国摩托罗拉)公司:6801 系列和 6805 系列; Rockwell(美国洛克威尔)公司:6500/1 系列; NS(美国国家半导体)公司:NS8070; RCA(美国无线电)公司:CDP1800 系列; Panasonic(日本松下)公司:MN101C 系列; NEC(日本电气)公司:Ucom87,uPD7800 系列; Hitachi(日本日立)公司:HD6301,HD6305,HD63L05 系列; ATMEL 公司:AT89C51 系列; PHILIPS:87LPC 系列 。 1.3 LED 显示器概述

17、1.3.1 LED 显示器的结构及分类 发光二极管芯片的适当连接和适当的光学结构,可构成发光显示器的发光段 本科毕业论文(设计) 5 和发光点,由这些发光段或发光点可以组成数码管、符号管、米字管、矩阵管等。 通常把数码管、符号管、米字管共称为笔画显示器;而把笔画显示器和矩阵管统 称为字符显示器1。 按照各发光段的连接方式分,数码管可分为共阳极和共阴极两种。所谓的共 阳方式就是笔画显示器各段发光管的阳极是公共的,而阴极是互相隔离的。所谓 的共阴方式就是笔画显示器各段发光管的阴极是公共的,而阳极是互相隔离的。 按发光颜色分,发光二极管可分为橙色、红色、蓝色、绿色(又细分黄绿、 标准绿和纯绿)等。另

18、外,有的发光管中包含两种或两种以上的颜色的芯片。 根据出光处掺或不掺散射剂、有色还是无色,上述各种颜色的发光二极管还 可以分成有色散射和无色散射、有色透明和无色透明四种类型。散射型发光二极 管适用于做指示灯。 除上述分类方法外,还有按芯片材料分类及按功能分类的方法。 1.3.2 LED 显示的原理 如图所示为七段 LED 数码管的原理图,通过该图可以很容易的看出共阳极和 共阴极的七段 LED 管的工作原理的不同点。对于共阴极的数码管,所有发光二极 管的阴极共连后接地,而阳极引出脚用于控制 LED 是否发亮。若阳极引出脚接地, 则 LED 被熄灭;若阳极引脚接高电平,则 LED 被点亮。 本科毕

19、业论文(设计) 6 图 1-1 LED 原理图 共阳极的LED正好相反,所有发光二极管的阳极共连后接高电平,而阳极引 出脚用于控制LED是否点亮。若阴极引脚接高电平,则LED被熄灭;若阴极引脚接 地,则LED被点亮。 单片机对LED管的显示可以分为静态和动态两种。静态显示的特点是各LED管 能同时稳定地显示各自字符;动态显示是指各LED轮流一遍一遍显示各自字符, 但由于显示的切换较快,在人的视觉看来是各LED管同时显示不同字符。 1.3.3 LED 数码显示器的接口方法与电路 (1)LED 数码显示的接口方法。 单片机与 LED 数码显示器有以硬件为主和以软件为主的两种接口方法。 以硬件为主的

20、接口方法,这种接口方法的电路如图所示。 本科毕业论文(设计) 7 图1-2 LED接口方法电路图 (2)LED 数码显示器的接口电路。 PB0 实际使用的LED数码显示器位数较多。为降低成本,大部分以软件为主 的接口方法对于多位LED数码管显示器,通常采用动态扫描显示方法,即逐个循 环点亮各位显示器。这样虽然在任一时期只有一位显示器被点亮,但是由于人眼 有视觉残留效应,看起来与全部显示持续点亮的效果基本一样(在亮度上要有差 别)。 1.3.4 驱动器 LED 显示是单片机控制产品中常见的应用。使用LED模块,这种模块中带有 LED显示管和LED 驱动电路,用起来较方便。一般用户直接采用单片机+

21、LED 驱 动器+LED显示管的方式,一种经常使用的LED驱动器8550,它作为共阳数码管的 驱动器,而共阴数码管的驱动器则是 A1015,它们都是三极管。 1.4 论文章节安排 本文以单片机的研发工程项目作为应用背景,对应用单片机设计电子秒表技 术进行了研究。全文共分为五章,各章的主要内容如下: 第一章简明扼要地介绍了单片机、LED 特点、分类及应用; 第二章扼要介绍了系统功能,各个按键的作用; 本科毕业论文(设计) 8 第三章对电子秒表系统的总方案进行了研究,给出了电子秒表硬件的实现方 法及设计思路; 第四章列出了各模块流程图,完成控制系统中的软件设定,给出了程序源代 码; 第五章论文总结

22、,设计中的重要问题,以及个人感想。 2 系统功能概述 毕业设计总体方案是以 AT89C52 单片机作为控制核心,设计具有计时、倒 计时等功能的电子秒表。一个完整的电子秒表电路就是一个单片机的最小系统, 主要由键盘输入电路、单片机、晶振、复位电路和 LED 显示电路构成。本毕业 设计中电子秒表可以实现以下的功能: (1)用开关控制两种计时模式的选择。分别是单计时模式和连续计 8 个的计 时模式。 (2)用开关控制电子秒表的启动、停止、复位,七段数码管的高 2 位显示秒 表的秒值,低 2 位显示秒表的百分秒值。 (3)可实现设定初值的倒计时功能。其中涉及了三种初值调整方式,分别是 增 1(减 1)

23、 、连续增(连续减)和快速增(快速减) 。 上述的功能主要是为了讲述单片机定时器、键盘和 LED 显示器的使用方法。 本次毕业设计中所涉及的内容主要包括: (1)定时器的使用:本设计通过秒表的计时详细说明了定时器的使用方法。 (2)键盘的使用:本设计通过秒表的启动、停止、复位、计时模式的选择, 以及倒计时初值的设定,讲述了独立式键盘的设计方法和关键技术。 (3)LED 的使用:本设计比较详细的介绍了 LED 的原理和方法,并对其编程 方法做了一般性的总结。 外部指令对单片机的输入一般是通过按键、键盘等输入器件来实现的,本次 本科毕业论文(设计) 9 毕业设计是利用键盘来实现秒表的启停控制及功能

24、选择: (1)按键 K1。按键 K1 有两个功能,第一个是在单计时状态下控制秒表的启 停;第二个是在倒计时初值设定的时候用于增加初值。 (2)按键 K2。按键 K2 同样有两个功能,第一个是在连续计 8 个的计时模式 下控制秒表的启停;第二个是在倒计时初值设定的时候用于减少初值。 (3)按键 K3。按键 K3 的功能是设定秒表的工作方式。在默认的状态下,秒 表始终处于准备计时的状态,按下 K3 后秒表进入倒计时的状态,这时通过按键 K1 和 K2 可以进行倒计时初值的调整,再按下 K3 则进入倒计时。 (4)按键 RESET。起程序复位作用1。 3 系统硬件设计 3.1 中央处理器设计 3.1

25、.1 单片机选择 在微型单片机选择上,我们应该考虑存储器容量,时钟频率,I/O 口线等基 本参数。对于本设计,由于电子秒表系统在数据的处理和存储方面要求不高,所 以选取片内带 RAM 和 ROM 的单片机即可,在本设计中选取的是 ATMEL 公司 的 AT89C52 单片机。 3.1.2 AT89C52 单片机的介绍 在众多的单片机系列中,AT89C52 是一种低功耗、高性能 CMOS8 位微控 制器,具有 8K 在系列可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储 器技术制造,与工业 80C51 产品指令和引脚完全兼容。 AT89C52 具有以下标准功能:8K 字节 F

26、lash,256 字节 RAM,32 位 I/O 口 线,3 个 16 位定时器/计数器,一个响亮 2 级中断结构,全双工串行口,片内晶 振及时钟电路。另外,AT89C52 可降至 0HZ 静态逻辑操作,支持 2 种软件可选 择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、 中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一 本科毕业论文(设计) 10 切工作停止,直到下一个中断或硬件复位为止。 AT89C52 单片机的内部结构与 MCS-51 系列单片机的构成基本相同。CPU 是 由运算器和控制器所构成的。运算器主要用来对操作数进行算术、逻

27、辑运算和位 操作的。控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的 性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。 AT89C52 单片机的指令系统和引脚功能与 MCS-51 的完全兼容。AT89C52 的引 脚排列如图 3-1 所示。 图 3-1 AT89C52 引脚排列图 3.2 系统电路设计 如图 3-2 所示为单片机电子秒表的电路图,下面对其中某些部分做出解释。 本科毕业论文(设计) 11 图 3-2 电子秒表原理图 3.2.1 复位电路 复位电路在单片机系统中是必不可少的。所谓的复位就是讲单片机重新启动, 这是单片机内部的都有寄存器都回到初始状态。

28、本设计电路中对应的复位电路如 图 3-3 所示。 图 3-3 复位电路图 对于 AT89C52 单片机来说,它是高电平复位,也就是说只要将单片机的 RESET 引脚接高电平并保持一定的时间就可以实现单片机的复位(而对于一些低 本科毕业论文(设计) 12 电平复位的单片机来说就刚好相反,要使其 RESET 引脚置为低电平并保持一定 时间以实现单片机的复位) 。从上面的电路可以看出实现的是上电复位和按键复 位两个复位功能。上电的一瞬间,单片机的 RESET 引脚接到高电平,同时电容 C1 开始充电,经过一定的时间后电容充电饱和,10K 的下拉电阻把 RESET 引脚 拉回到低电平状态,实现了单片机

29、的复位。同样道理,在单片机工作的时候按下 复位按钮,单片机的 RESET 引脚接到高电平,电容 C1 马上放电完毕;松开该按 钮后电容 C1 开始充电,经过一定的时间后电容充电饱和,10K 的下拉电阻把 RESET 引脚拉回到低电平状态,实现了单片机的复位9。 3.2.2 电路元件 AT89C52:单片机,控制 LED 显示。 LED1LED4:七段码 LED,用于显示秒表数据。 SS9012:由于数码管需要较大电流驱动,单靠 AT89C52 的 I/O 口直接驱动 效果不好,需要加放大电路。本设计中,所用的数码管为共阴极的,所以三极管 选用了 SS9012.NPN 型三极管。 按键 K1:在

30、正常情况下,用于控制单一计时模式下秒表的启动、停止。在 倒计时初值设定的情况下为倒计时初值的增加按键,按一下 K1,倒计时初值增 加 1;按住 K1 不放,倒计时初值连续增加;快速连按两下 K1 然后不放,则倒计 时初值快速增加,增加的速度是连续增加的 10 倍。 按键 K2:在正常情况下,用于控制连续计时 8 个的计时模式下秒表的启动、 停止。在倒计时初值设定的情况下为倒计时初值的减少按键,按一下 K2,倒计 时初值减少 1;按住 K2 不放,倒计时初值连续减少;快速连按两下 K2 然后不放, 则倒计时初值快速减少,减少的速度是连续减少的 10 倍。 按键 K3:用于秒表的功能的选择,在默认

31、的情况下,为秒表的计时准备模 式;按下 K3 后秒表进入倒计时的状态,这是通过按键 K1 和 K2 可以进行倒计时 初值的调整,再按下 K3 则进入倒计时。 按键 RESET:在复位电路中,对于单片机起复位作用。 LED5:用于显示单片机的工作状态,在准备计时的时候,LED5 点亮;在计 本科毕业论文(设计) 13 时的时候,LED5 闪烁;在倒计时初值设定和倒计时工作的时候,LED5 熄灭。 LED6:用于显示单片机的工作状态,在准备计时和计时工作的时候,LED6 熄灭;在倒计时初值设定的时候,LED6 点亮;在倒计时工作的时候,LED6 闪烁 1。 3.2.3 I/O 口线连接 P1.0P

32、1.7:与数码管的各个位相连,用于传送数码管的段位吗。 P3.0P3.3:与数码管 LED1LED4 相连,通过单片机的 P3.0P3.3 可以控制 LED 的显示。 P2.1:和按钮 K1 相连,用于决定单一计时模式下的秒表启动、停止和倒计 时初值的增加。 P2.0:和按钮 K2 相连,用于决定连续计 8 个的计时模式下秒表启动、停止 和倒计时初值的减少。 P2.2:和按钮 K3 相连,用于单片机工作模式的选择。 P2.6:和 LED6 相连,用于显示单片机的工作状态。 P2.7:和 LED5 相连,用于显示单片机的工作状态。 4 系统软件设计 系统硬件设计好之后,接下来就要进行软件设计。电

33、子秒表的软件设计主要 有三个方面:第一是利用定时器来完成秒表的定时周期;第二是利用定时中断来 实现键盘的扫描,确定单片机的工作状态;第三是利用单片机控制 LED 的输出 显示。 4.1 程序功能及主要变量的说明 4.1.1 程序功能 电子秒表程序主要完成如下功能 : (1)两种计时模式的启动、停止、复位功能的秒表。 (2)可设定初值的倒计时定时器。 本科毕业论文(设计) 14 4.1.2 主要变量说明 程序中用到的关键变量说明如下 。 表 4-1 主要变量定义 变量变量说明说明 m整型变量,用于存储要显示的数 ms字符型变量,用于 10ms 的累加 LED0LED3整型变量,用于存储要显示的各

34、个位的数字 start位变量,用于控制秒表单一计时模式的计时开始 stop位变量,用于控制秒表单一计时模式的计时停止 eight_start位变量,用于控制秒表连续计时 8 次模式的计时开始 eight_stop位变量,用于控制秒表连续计时 8 次模式的计时停止 count_down位变量,用于控制倒计时开始 scankey位变量,用于控制键盘扫描 cheak位变量,按键的消抖标志位 keydown位变量,K1 的按下标志位 K2_keydown位变量,K2 的按下标志位 K3_keydown位变量,K3 的按下标志位 K3_keyup位变量,K3 的弹起标志 mm字符型变量,用于 0.2 秒

35、的累加 add位变量,倒计时初值加 1 标志位 sub位变量,倒计时初值减 1 标志位 bit_add1位变量,K1 完成一次按键动作的标志位 bit_sub位变量,K2 完成一次按键动作的标志位 fast_add位变量,倒计时初值连续增标志位 double_key位变量,倒计时初值快速增标志位 fast_sub位变量,倒计时初值连续减标志位 double_sub位变量,倒计时初值快速减标志位 tab8整型变量,存储连续计时 8 次模式的 8 的时间值 本科毕业论文(设计) 15 4.2 程序流程图 主程序完成的工作是检测各个标志位的状态,以确定单片机的工作情况。键 盘查询和数据显示的部分在定

36、时中段服务子程序中完成。由于程序较大,所以将 程序的各个功能模块的流程图分别给出。 4.2.1 计时功能流程图 图 4-1 计时功能流程图 4.2.2 倒计时初值设定流程图 图 4-2 倒计时初值增加流程图 本科毕业论文(设计) 16 图 4-3 倒计时初值减少流程图 4.2.3 倒计时功能流程图 图 4-4 倒计时开始流程图 4.3 按键消抖介绍 按键消抖作为本设计的关键技术之一,在此做简要介绍。 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机 械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也 本科毕业论文(设计) 17 不会一下子断开。因而在闭合及断开

37、的瞬间均伴随有一连串的抖动,为了不产 生这种现象而作的措施就是按键消抖。 按键的消抖,可用硬件或软件两种方法。 在键数较少时可用硬件方法消除键抖动。下图所示的RS 触发器为常用的 硬件去抖。 图 4-5 硬件消抖电路图 图中两个“与非”门构成一个 RS 触发器。当按键未按下是,输出为1; 当按键按下时,输出为 0。此时即使用按键的机械性能,使按键因弹性抖动而 产生瞬时断开(抖动跳开 B) ,只要按键不返回原始状态 A,双稳态电路的状 态不改变,输出保持为 0,不会产生抖动的波形。也就是说,即使B 点的电 压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过 分析 RS 触发器的

38、工作过程很容易得到验证。 如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序, 5ms10ms 的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合 状态电平,则确认为真正有键按下。当检测到按键释放后,也要给 5ms10ms 的延时,待后沿抖动消失后才能转入该键的处理程序。 本设计中采用软件消抖方法,按键扫描过程子程序如下: 本科毕业论文(设计) 18 bit start=0; /start 为 P1_2 按下标志位 void scan(void) P2=0xff; /每次读 I/O 口输入数据是需要先拉高电平 if (P2_1=0) for(delay=0;delay0)

39、m-; P2_7=1; if(mm=0)P2_6=!P2_6; (2)定时器中断子程序 这里的秒表的计时、键盘的扫描及数值显示灯都是利用定时中断来完成的。 定时的时间设为 1ms,用于数值显示;同时利用累加的方法实现 10ms 和 200ms 的 定时,用于键盘的扫描及控制显示灯的闪烁。 本科毕业论文(设计) 20 void time0(void) TL0=0x18; TH0=0xfc; ms+; if(ms=10) ms=0; mm+; if(mm=20)mm=0; scankey=1; display(); (3)显示子程序 显示子程序其实包括了 display()和 add1(time)

40、两个子程序。add1(time)是 用来计算数码管各个位要显示的数值的子程序,display()是查段位码表及进行 动态扫描的子程序1。 void add1(time) uint time; uint n,a; a=time/1000; LED0=a; /计算十秒位数值 n=time LED1=(n/100); /计算秒位数值 n=n%100; LED2=(n/10); /计算十分一秒位数值 LED3=n%10; /计算百分一秒位数值 void display(void) switch(ms%4) case o: P3=0xfe; P1=tableLED3; P1_7=1; Break; ca

41、se 1: P3=0xfd; P1=tableLED2; P1_7=1; Break; case 2: P3=0xfb; P1=tableLED1; P1_7=1; Break; case o: P3=0xf7; P1=tableLED0; 本科毕业论文(设计) 21 P1_7=1; Break; default:return; (4)键盘扫描 键盘扫描的子程序完成的任务是每 10ms 进行一次键盘的查询,根据查询的结 果对相应的标志位进行赋值10。 void scan(void) char a; P2=0x0f; if (count_down=0 /若 cheak 为 0,则按键没消抖 el

42、se K3_keydown=1;cheak=0; P2=0x0f; if(K3_keydown=1 K3_keydown=0; if(K3_keyup=1) if(mm=0) if(bit_add1=1 elsebit_add1=0; if(mm=0) if(bit_sub=1 elsebit_sub=0; if(mm=0 if(mm=0 if(P2_1=0) if(cheak=0)cheak=1;mm=0; else keydown=1; if(P2_0=0) if(cheak=0)cheak=1;mm=0; else K2_keydown=1; if(P2_1= add=1; bit_ad

43、d1=1; if(double_key=1) 本科毕业论文(设计) 22 bit_add1=0; cheak=0; fast_add=0; double_key=0; mm=0; if(P2_0= sub=1; bit_sub=1; if(double_sub=1) bit_sub=0; cheak=0; fast_sub=0; double_sub=0; mm=0; if(P2_2=0) if(cheak=0)cheak=1; else count_down=1; P2=0x0f; if(P2_1=0) /计时模式的时候按 K1 if(cheak=0)cheak=1; else keydown=1; cheak=0; if(P2_1=1) if(keydown=1) keydown=0; if(start=0)start=1;stop=0; /若没有开始计时,则开始计时 elsestart=0;stop=1; /若开始计时,则计时停止 if(P2_0=1) if(K2_keydown=1) if(eight_start=0 eight_start=1; if(eight_start=1) K2_down=0; 本科毕业论文(设计)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1