毕业设计(论文)基于单片机控制的9999秒倒计时设计.doc

上传人:仙人指路1688 文档编号:3980287 上传时间:2023-03-30 格式:DOC 页数:27 大小:291KB
返回 下载 相关 举报
毕业设计(论文)基于单片机控制的9999秒倒计时设计.doc_第1页
第1页 / 共27页
毕业设计(论文)基于单片机控制的9999秒倒计时设计.doc_第2页
第2页 / 共27页
毕业设计(论文)基于单片机控制的9999秒倒计时设计.doc_第3页
第3页 / 共27页
毕业设计(论文)基于单片机控制的9999秒倒计时设计.doc_第4页
第4页 / 共27页
毕业设计(论文)基于单片机控制的9999秒倒计时设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机控制的9999秒倒计时设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机控制的9999秒倒计时设计.doc(27页珍藏版)》请在三一办公上搜索。

1、1 绪论1.1 单片机的概述现代社会中,尽管PC机的应用已经相当普遍,但是,在控制领域日益追求小而精、轻而薄的自动化控制器、自动化仪器仪表、家电产品等方面,PC机仍有所不相适宜的地方。而工业控制、仪器仪表、家电产品等市场广阔,要求PC机技术与之相适应。在这种情况下,单片机应运而生了(也称作微型计算机)。微型计算机的基本机构是由中央处理器、储存器、和I/O设备构成的。所谓的单片机是指将微型计算机3个单元的多个分体中的主要功能用1个集成电路芯片来实现,该芯片具有一个微型计算机的基本功能。这种超大规模集成电路芯片即称为单片微型计算机,通常简称单片机。单片机具有以下特点:受集成度限制,片内存储容量较小

2、,一般8位单片机的ROM小于8/16K字节,RAM小于256字节,但可在外部扩展,通常ROM、RAM可分别扩展至64K字节。可靠性好。芯片本身是按工业测控环境要求设计的,其抗工业噪声干扰优于一般通用CPU;程序指令及常数、表格固化在ROM中不易破坏;许多信号通道均在一个芯片内,故可靠性高。易扩展。片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。控制功能强。为了满足工业控制要求,一般单片机的指令系统中具有极丰富的条件分支转移指令、I/O口的逻辑操作以及位处理功能。一般说来,单片机的逻辑控制功能及运行速度均高于同一档

3、次的微处理器。一般单片机内无监控程序或系统通用管理软件,只放置有用户调试好的应用程序。但近年来也开始出现了在片内固化有BASIC解释程序的单片机。电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片机微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。单片机由硬件系统与软件系统组成。硬件系统是指构成微机系统的实体与装

4、置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。其中运算器和控制器一般做在一个集成芯片上,统称中央处理单元(Central Processing Unit),简称CPU,是微机的核心部件。CPU配上存放程序和数据的存储器、输入/输出(Input/Output,简称I/O)接口电路以及外部设备即构成单片机的硬件系统。软件系统是微机系统所使用的各种程序的总称,人们通过它对微机进行控制并与微机系统进行信息交换,使微机按照人的意图完成预定的任务。软件系统与硬件系统共同构成完整的单片微型计算机系统,两者相辅相成,缺一不可。1.2 倒计时的意义和价值倒计时运用在生活

5、军事工业的各个方面。生活上:如运动比赛时需要的计时。还有北京奥运会的倒计时等等。军事上:科学家运用倒计时来控制火箭的发射,运用倒计时来接受卫星都可以。工业上:运用倒计时来控制产品的保质期,运用倒计时来控制机器的运作。假如说没有倒计时在我们的生活之中那么会为我么的生活带来许多的不便。如我们还要每天去计算还有好久是一个重要的日子。我们在衡量到底用时多久方面也需要计时原理。我们也不知道这个产品过期没有。也不会知道机器应该是否停止工作。科学家也不会知道火箭还有多久才是预期的发射,还有多久卫星才是精确的升空。倒计时的价值是我们无法估计的,在我们的生活之中不可以缺少的一部分。在此我借毕业设计来控制简单的倒

6、计时,希望对我们周边的生活有所帮助。1.3 本设计的优缺点优点:通过实际的仿真,我发现本电路具有以下优点。首先,该电路工作十分稳定。由于本电路设计原理明确,所采用的元件合理,电路布线尽可能简洁,美观。同时所用材料价格便宜,设计出的控制电路在成本方面较低。当然还有体积小的优点,方便携带。其次,该电路操作简单。由于该电路设计的要求的功能不多,在该电路之中运用了一个启动暂停按钮,一个复位按键,一个电源开关。再次,该电路具有数码显示供能,读取结果十分容易。缺点:在仿真过程中我也发现了一些问题。如显示的结果不是很精准,存在一点误差。但是这几乎是控制电路在所难免的情况,是不能避免的。当然我将会把误差降到最

7、低值。同时,焊接板无任何包装,在遇到水之后整个电路将出现短路的现象,造成无法控制的局面。2 方案论证与选择2.1 控制芯片方案论证AT89C51单片机是美国ATMEL公司生产的一款低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,但其内存资源较小,可能无法完成程序编写要求。AT89S52单片机也是美国ATMEL公司生产的一款低电压、高性能的CMOS 8位单片

8、机,片内含8k bytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理和Flash程序存储器单元,此单片机上手容易,操作方便且内部资源能够满足本设计程序的编写。经比较,本设计选用了方案二中的AT89S52单片机作为控制芯片。 2.2 数码管控制电路设计方案论证静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用

9、I/O端口多,如驱动4个数码管静态显示则需要4832根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出

10、字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。经比较,本设计选用了动态显示的方案。2.3 键盘电路设计方案论证 独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入

11、线的电平状态可以很容易判断哪个按键被按下了。优点:电路配置灵活,方便操作,软件结构简单。 矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上,节省I/O口。矩阵键盘工作原理:行线通过上拉电阻接到+5V上。无按键,行线处于高电平状态,有键按下,行线电平状态将由与此行线相连的列线电平决定。列线电平为低,则行线电平为低;列线电平为高,则行线电平为高。但是电路复杂,软件结构复杂会造成工艺效果低,操作琐碎,不宜操作。 在单片机应用系统中,为简化硬件线路,缩小整个系统的规模,总希望设置最少的按键,获得最多的控制功能。矩阵键盘与独立式按键键盘相比,硬件电路大大节省。可通过软件的方法

12、让一键具有多功能。但是它有操作变得复杂,操作时间变长等缺点。 经比较,本设计选用了独立式按键控制电路的方案。3 硬件结构3.1 单片机系统的设计3.1.1系统组成 它将数据通过相应的程序输入锁存器,再控制锁存器的闭合导通来时下数字的输出.,然后显示到数码管上,根据锁存器的段位来控制显示的数字。如9999的显示就是段位开千位马上又关闭,打开锁存器的位,根据程序的要求千位是9。关闭锁存器的位,简短的延时。同理的控制使各位都显示9从而实现9999秒的显示。当然要实现其它的显示也可以,只是需要不同的控制程序。 根据键盘输入调用相应键处理子程序,实现倒计时的运作和暂停设定。当电源接在220V电源上时,通

13、过转换成5V的电压输入单片机的小系统。发光二极管亮,闭合电源的开关,电源经过一个1K的电阻,然后经过S3开关来控制系统的开始和暂停。当然这里也有一个1K的电阻来保护电路。通过按键的开始,从单片机的系统里面调出程序来实现相对应的功能。为了使控制的更加方便和完美,我在设计的时候设计了一个复位的按键。也就是说当按下复位键的情况下,单片机的系统就停止运行,数码管显示的数字就是9999。 本设计的单片机系统分1.晶振部分2.复位部分3.锁存器 单片机晶振电路的作用:单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率

14、越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。 在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。 单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。晶振通常与锁存器电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个

15、晶振相连的不同锁相环来提供。 图3-1 单片机系统 设计中运用了2个30pF的电阻分别以C1和C2作为称为,还有一个11.0592MHZ的晶振备注为Y1(当然设计中为了方便称为12MHZ)晶振电路的两端和单片机系统的18端口和19端口连接分别备注为X1和X2端口。图3-2 晶振电路3.1.2复位电路单片机复位电路主要有三种类型: (1)微分型复位电路(2)积分型复位电路(3)比较器型复位电路 复位的作用:当程序在运行的过程之中需要重新开始运作时,就可以按下S1复位开关来实现数码管显示9999来重新运作。这样可以方便操作者和观看者更加醒目的看清倒计时的显示情况。(2)复位电路的设计:该电路的组成

16、是由S1开关和一个10uf称为C3的电阻、一个10K的R1和一个1K的R2组成。一端接的是VCC一端接的是RST。RST于单片机系统的第9端口控制。 (3)复位开关:当程序在运行的过程之中需要重新开始运作时,就可以按下S1复位开关来实现数码管显示9999来重新运作。该电路的组成是由S1开关和一个10uf称为C3的电阻、一个10K的R1和一个1K的R2组成。一端接的是VCC一端接的是RST。图3-3 复位电路3.1.3锁存器 锁存器的作用:在LED和数码管显示方面,要维持一个数据的显示,往往要持续的快速的刷新。尤其是在四段八位数码管等这些要选通的显示设备上。在人类能够接受的刷新频率之内,大概每三

17、十毫秒就要刷新一次。(本锁存器设置的是二十毫秒刷新一次。经计算完成9999倒计时需要三个多小时。)这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗。 锁存器的使用可以大大的缓解处理器在这方面的压力。当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止。这样在数码管的显示内容不变之前,处理器的处理时间和IO引脚便可以释放。可以看出,处理器处理的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分。而处理器在处理完后可以有更多的时间来执行其他的任务。这就是锁存器在数码管显示方面的作用:节省了宝贵的MC

18、U时间。(2)本设计的锁存器:本设计的运用的是74HC573型号的锁存器。共有20个端口,它的第1和第10端口都是连接的电平,第20端口连接的是VCC端。一个锁存器的11端口连接的是DUAN一个连接的是WEI的11端口。锁存器的段是为了显示第几位,而位是为了显示位的数值。当然段是接在数码管的控制发亮口上的。位是连接在数码管的C0、C1、C2、C3上的。只有当段和位一起工作时才能实现数码管的显示。图3-4 锁存器单片机晶振锁存器按键电源复位数码管图3-5 控制系统3.2 电源电路部分设计 (1) 电源电路部分介绍在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能量来源,它的设

19、计思路是根据我们以前学过的模电电子技术,要想得到我们所要的+5V输出电压,就需将交流220V的电压经过变压器、整流电路、滤波电路和稳压电路四个部分。得到5V的输出电压时,发光二极管就会亮。假如电压过大,那么将会烧坏电阻,电路不能导通,就不能实现控制。当电压低于5V的情况下,系统运行起来会存在电压不够,甚至会无法启动程序实现控制的显示。当输出的是5V电压的情况下,按开始按钮电源开关就闭合,电路导通,数码管上显示9999。如需开始控制,就按开始按钮,系统就会自己运行已添加的程序来实现控制。(2)电源电路的组成:电源电路由外界提供220V的电压,220V的电压经过数据线的整合成5V的电压输入焊板。当

20、电压输入的时候发光二极管亮。其中会经过一个为1K的R3电阻。我把开关备注的是S2。当然VCC端会为电路提供高电平。电源开关:运用的是S2为按键开关,当电源受外部的电压的情况下,经过整合变成5V的电压的时候。发光二极管亮,再经过R3这个1K的电阻,把供系统的电压完全的输出。当然其中还接了一个VCC端。当奇数次按下S2时,开关闭合,LED亮,电路导通。当偶数次按下S2时,开关断开,LED不亮,电路不能形成回路。(3)电源电路工作原理:中的power是为单片机提供一个5V的电源,备注为J2。S2起到总开关的作用。当奇数次按下S2时,开关闭合,LED亮,电路导通。当偶数次按下S2时,开关断开,LED不

21、亮,电路不能导通。图3-6 电源电路3.3 显示部分设计 (1)显示部分的介绍:显示部分是整个倒计时最为重要的部分,采用动态显示方式,所谓动态显示方式是数字在数码管上一个一个逐个显示,它是通过位选端控制在哪个数码管上显示个位的数字,由于这些数字显示之间的时间非常的短,使的人眼看来它们是一起显示时间数字的,并且动态显示方式所用的接口少,节省了CPU的管脚。由于端口的问题以及动态显示方式的优越性,在此设计的连接方式上采用共阴级接法。显示器有段选和位选两个端口,首先说段选端,它由十二个端口构成,通过对这十二个端口输入的不同的二进制数据使得它的数字显示也不同,从而可以得到我们所要的倒计时。(2)显示部

22、分工作原理:本设计采用的是四位共阴极数码管,型号是SM420364。它一共有12个端口,最上边的四个端口是用来接位的端口。从左到右分别接的是12接C3、9接的是C2、8接的是C1、6接的是C0。下端分别接的是ABCDEFG(按右到左的接法)ABCDEFG与锁存器的段相连接。这样的连接及使电路简化,也更好排版,在对整个图看起来更加美观。只有当锁存器的段和位的同时输入方可实现数码管显示数字来实现倒计时的控制系统。图3-7 数码管 3.4 键盘部分的设计 根据功能要求,设计了一个开始运作、暂停运作功能键。开始、暂停功能键的介绍:当电源开关导通的情况下。当奇数次按下S3时,开关闭合,数码管显示的数字根

23、据程序改变。当偶数次按下S3时,开关断开,程序停止更新显示的数值将是上段程序的内容。控制部分用一个S3开关和一个R4的1K电阻。一端接的是VCC一端接的是P3.2口。它是由一个开关S3控制,一端和单片机系统的P3.2连接(也就是第12端口)来实现多单片机的控制。另一端和VCC连接,在两者之间夹了一个电阻R4。当按下开关按钮,S3导通,则有单片机系统开始按预先设计好的程序开始运行。当再次按下的时候,通过端口控制的单片机程序停止运行,直到再次按下S3时系统又开始工作。即是当奇数次按下S3的时候系统是运行的状态,偶数次按下时是暂停状态。此控制相当的简便易懂,且满足设计的要求。图3-8 按键电路4 软

24、件部分设计4.1 系统流程图流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。本设计的流程图如图4-1。当接通外部电源至焊接板时,LED发光二极管亮。四个二极管显示9999。当按下开关按钮P3.2时,倒计时开始运动。在运动过程中操作者不不要求暂停的情况下,倒计时将会不停止的运行。至到四个数码管显示0000的时候,系统程序自动跳转至9999又继续开始倒计时的运动。至到操作者要求停止运动为止。假如在运行中出现需要暂停的情况时,操作者按下按键P3.2,倒计时停止在上一步程序要求的位置。至到操作者再一次按下按键P3.2时,倒计时方

25、可从刚才暂停的位置继续开始运动,至到完成要求为止。按下启动、暂停按键?开始开始初始化N按下启动、暂停按键?YN启动?Y倒计时运行Y暂停?NYYN运行至0?图4-1 系统流程图4.2 显示子程序在本设计中显示子程序是一个重要的环节。只有当系统在完成显示子程序的情况下,才能实现倒计时的显示。显示子程序是通过锁存器段和锁存器位的开、关来实现数码管的每一位显示。显示子程序如图4-2。void display(uchar qian,uchar bai,uchar shi,uchar ge)/每位显示值 dula=1;/打开锁存器段P0=tableqian;/第一位显示dula=0;/关闭锁存器段P0=0

26、xff;/打开P0口wela=1;/打开锁存器位P0=0xfe;/数码管第一位显示wela=0;/关闭锁存器位delay(2);/简短延时dula=1;/打开锁存器段P0=tablebai;/第二位显示dula=0;/关闭锁存器段P0=0xff;/打开P0口wela=1;/打开锁存器位P0=0xfd;/数码管第二位显示wela=0;/关闭锁存器位delay(2);/简短延时dula=1;/打开锁存器段P0=tableshi;/第三位显示dula=0;/关闭锁存器段P0=0xff;/打开P0口wela=1;/打开锁存器位P0=0xef;/第三位数码管显示wela=0;/关闭锁存器位delay(2

27、);/简短延时dula=1;/打开锁存器段位P0=tablege;/第四位显示dula=0;/打开锁存器段位P0=0xff;/打开P0口wela=1;/打开锁存器位P0=0xf7;/第四位数码管显示wela=0;/关闭锁存器段位delay(2);/简短延时 开始锁存器段显千位值锁存器段有效选中第一位数码管短暂延时锁存器位有效锁存器段显百位值锁存器段有效选中第二位数码管锁存器位有效短暂延时锁存器段显十位值锁存器段有效选中第三位数码管锁存器位有效短暂延时锁存器段显个位值锁存器段有效选中第四位数码管锁存器位有效短暂延时完成子程序显示 图4-2 显示子程序流程图 4.3 系统仿真当接通外部电源至焊接板

28、时,LED发光二极管亮,说明电路导通。打开锁存器段第一位显示,第一位显示完成后关闭锁存器段,打开P0口,开锁存器位,数码管第一位显示。同理,就能实现四个数码管的显示。在本设计中要求初始化每位显示的是9,所以初始化时四个数码管显示的是9999。如下图所示图4-3 倒计时初始化倒计时的初始化完成之后,操作者按下开始按键P3.2,倒计时开始运行。在运行的过程中,不要求停止的情况下,倒计时将会自动运行到数码管显示0000时再跳转到9999等待下一次操作运行时在运行。下图显示的是倒计时在运行到9998时操作者按下停止按键时的画面。 图4-4 倒计时运行结论在本设计过程中,首先碰到的问题是对单片机系统的选

29、择。在对各种单片机系统的功能特性深入了解以后,结合应用场合,性价比综合考虑,进行比较,最后确定最优方案。经过一个多月的反复理论分析和实践设计,完全实现了当初预期制作所要完成的功能!将编好的程序存入控制系统AT89S52中,通过对锁存器的段和位的开、关实现数码管的显示。本设计中设计了开始、暂停、复位按键,方便控制的多功能化。当按下开始按键时,系统自动实施自减至运行一个周期为止。假如在运行中需要停止,可按下暂停按键实现停止。待需要再次继续运行的时候可按下开始按键。复位按键主要是方便在操作过程中重新开始运行。本次毕业设计的重点是对程序的设计,尽管本次的设计任务适量,但还是遇到了很多的问题。刚选定毕业

30、设计题目的时候,自己对整个毕业设计有模糊的思路,盲目的查了不少资料,可以说是找到了很多没有多大帮助的资料。在导师的指导和自己的努力下,短短的一个月多时间里我完成了基于单片机控制的倒计时系统。通过对元器件的选择、电路原理图的设计、板图的设计、程序的设计,知道了自己知识的欠缺,也同时让我学会了反向思维的方法,应该先做哪一步,后做哪一步,应该如何查找自己所需的资料。并且最终实现了毕业设计的功能。但是由于自己的知识水平还很有限,设计中难免会出现错误和不足之处,欢迎老师及同学们帮我指出,自己一定会认真改正。致谢 此次毕业设计虽经历时间很短,但是完成了毕业设计,也就意味着快要毕业了。想想两年的大学生活,感

31、想实在是太多,感谢的人当然也很多。有自己的老师、同学、宿舍室友以及一些不知道姓名却始终在帮助我的人!这次毕业设计,首先是得到了导师覃智广老师的悉心指导。在我学习期间传授做学问的秘诀的同时还传授了我做人的准则。这些都将使我受益终生。无论是在理论知识的学习,还是在论文的选题、资料查询、开题、研究和撰写的每一个环节,无不得到导师的悉心指导和帮助。我愿借此机会向尊敬的导师表示衷心的感谢!其次要感谢所有教育过我的老师,您们传授给我的专业知识好比源泉,使我不断成长,也是完成本此次论文的基础。我还要向关心和支持我学习的朋友们表示真挚的谢意!感谢他们对我的关心!参考文献1 王幸之,钟爱琴.等AT89系列单片机

32、原理与接口技术【M】北京:北京航空航天大学出版社2005:2 孙涵芳,徐爱卿.单片机原理及应用【M】北京:北京航空航天大学出版社1996:3 胡汉才.单片机原理及接口技术【M】清华大学出版社1996:4 周航慈.单片机应用程序设计【M】北京航空航天大学出版社1991:5 李广弟.单片机基础【M】北京:北京航空航天大学出版社2001:6 覃智广.单片机及其应用技术【M】宜宾职业技术学院出版社7 张靖武,周领彬.单片机系统的PROTEUS设计与仿真(第一版)【M】.电子工业出版社,2007:8 清源科技.PROTEL DXP电路设计及应用教程(第一版)【M】.机械工业出版社,2003:9 杨志忠.

33、数字电子技术(第二版)【M】.高等教育出版社,2003:10 何立民.AT89S52系列单片机应用系统设计.北京:北京航空航天大学出版社,1990:11 张友德.单片微型机原理、应用与实验【M】.上海:复旦大学出版社,2000:12 何立民.单片机应用技术选编(1)【M】.北京:北京航空航天大学出版社,1992:附录附录A#include/52系列单片机头文件#define uchar unsigned char/宏定义#define uint unsigned int/宏定义sbit dula=P26;/段定义sbit wela=P27;/位定义void display(uchar qian

34、,uchar bai,uchar shi,uchar ge);/显示函数定义unsigned long int temp=9999,aa=0;/显示倒计时值 uchar qian,bai,shi,ge; /每位显示定义uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴数码管0-9数组void delay(uint z)/延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display(uchar qian,uchar bai,uchar shi,uchar

35、ge)/每位显示值 dula=1;/打开锁存器段P0=tableqian;/第一位显示dula=0;/关闭锁存器段P0=0xff;/打开P0口wela=1;/打开锁存器位P0=0xfe;/数码管第一位显示wela=0;/关闭锁存器位delay(2);/简短延时dula=1;/打开锁存器段P0=tablebai;/第二位显示dula=0;/关闭锁存器段P0=0xff;/打开P0口wela=1;/打开锁存器位P0=0xfd;/数码管第二位显示wela=0;/关闭锁存器位delay(2);/简短延时dula=1;/打开锁存器段P0=tableshi;/第三位显示dula=0;/关闭锁存器段P0=0x

36、ff;/打开P0口wela=1;/打开锁存器位P0=0xef;/第三位数码管显示wela=0;/关闭锁存器位delay(2);/简短延时 dula=1;/打开锁存器段位P0=tablege;/第四位显示dula=0;/打开锁存器段位P0=0xff;/打开P0口wela=1;/打开锁存器位P0=0xf7;/第四位数码管显示wela=0;/关闭锁存器段位delay(2);/简短延时 void init()/中断初始化 TMOD=0X01; /*开定时器T0,工作于方式1*/ TH0=(65536-50000)/256; TL0=(65536-50000)%256;/装初值 ET0=1; TR0=0

37、; EA=1; EX0=1; IT0=1; PX0=1; PT0=0; P3=0xff;/外部中断0定义(按键P32定义)void main()/主函数 init(); /中断初始化 while (1)/大循环 qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; /分离千、百、十、个 display(qian,bai,shi,ge);/显示千、百、十、个位的数值 if(aa=20) aa=0;/计数(记20次为1秒) temp-;/9999自减 if(temp=0) temp=9999;/判断当倒计时为0时,跳转为99

38、99 void timer()interrupt 1/溢出中断0 TH0=(65536-50000)/256; TL0=(65536-50000)%256;/重装初值 aa+;/自动计数(记20次)void int0() interrupt 0 /外部中断0控制 按键P32执行 TR0=TR0;/按键P32按下执行程序 附录B 名称规格数量AT89S52DIP401AT89S52卡座DIP401四位共阴数码管SM4203641跳子两口8锁存器74HC5732锁存器卡座DIP202排阻103(10K)1电阻10K21K1按键大1小1自锁按键1电容10uF130pF2晶振11.05921发光二极管LED-G1杜邦线15CM5螺丝/螺帽5电源5V/300mA1附录C

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号