电子倒计时定时器设计毕业设计论文(共42页)_第1页
电子倒计时定时器设计毕业设计论文(共42页)_第2页
电子倒计时定时器设计毕业设计论文(共42页)_第3页
电子倒计时定时器设计毕业设计论文(共42页)_第4页
电子倒计时定时器设计毕业设计论文(共42页)_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、Abstract 北京工业大学耿丹学院(xuyun)毕业设计(b y sh j)(论文) 题目(tm): 电子倒计时定时器设计摘要随着时代的进步,电子技术的发展,倒计时定时器得到了越来越广泛的应用,给人们日常的生活、学习、工作、娱乐带来便利,电子定时器相比普通的定时器来事具有体积小、重量轻、造价低、精度高等特点。本设计主要采用51系列单片机,通过硬件电路设计和软件编程设计来实现,硬件主要包括主控模块,时间显示模块,键盘设置模块,报警器模块的设计,软件编程主要采用C语言,虽然程序条数比较多,但是设计起来比较方便,可通过Keils软件进行调试。此次倒计时定时器采用单片机AT89S52为核心,利用时

2、钟芯片DS1302来显示一天的时间,系统通电后利用数码管自动显示当前时间,通过键盘可以调整时间,分别对时、分、秒进行加减,也可以通过键盘转换成倒计时模式,最大倒计时时间为59分59秒,而且误差很小,当倒计时为零时蜂鸣器进行报警,指示灯变亮,倒计时功能关闭则显示当前时间,操作简单方便。关键词:时钟芯片;AT89S52;倒计时;DS1302AbstractWith the progress of the development of electronic technology, the countdown timer has been more and more widely to peoples

3、 daily life, study, work, entertainment convenience, electronic timer timer compared to ordinary things havesmall size, light weight, low cost and high accuracy.The design is mainly 51 series microcontroller, hardware design and software programming design, hardware control module, display module, k

4、eyboard settings module, the alarm module design, software programming using C language, although the program Articlenumber, but it was easier to design, Keils software debugging.The countdown timer microcontroller AT89S52 as the core, DS1302 clock chip to display the time of day, the system is powe

5、red on use of digital control automatically displays the current time, the time can be adjusted via the keyboard, hours, minutes, seconds plus or minus, but alsokeyboard converted into countdown mode, the maximum countdown time of 59 minutes 59 seconds, and the error is very small, the buzzer alarm

6、when the countdown to zero, the light is on, the countdown function Close to display the current time, simple operation.Key Words:Clock chip;AT89S52;Countdown;DS1302目 录PAGE - -PAGE 3目 录PAGE 53目录 TOC o 1-3 h z u HYPERLINK l _Toc356160157 摘 要 PAGEREF _Toc356160157 h 1 HYPERLINK l _Toc356160158 Abstrac

7、t PAGEREF _Toc356160158 h 2 HYPERLINK l _Toc356160159 第1章绪论(xln) PAGEREF _Toc356160159 h 5 HYPERLINK l _Toc356160160 1.1课题(kt)的学术背景及其实际意义 PAGEREF _Toc356160160 h 5 HYPERLINK l _Toc356160161 1.2相关(xinggun)领域的成果及存在的不足 PAGEREF _Toc356160161 h 5 HYPERLINK l _Toc356160162 1.3课题来源及主要研究内容 PAGEREF _Toc35616

8、0162 h 5 HYPERLINK l _Toc356160163 第2章倒计时定时器的结构、原理及设计方案 PAGEREF _Toc356160163 h 7 HYPERLINK l _Toc356160164 2.1 单片机的发展概况 PAGEREF _Toc356160164 h 7 HYPERLINK l _Toc356160165 2.2 51单片机的内部结构 PAGEREF _Toc356160165 h 7 HYPERLINK l _Toc356160166 2.3 设计要求、方案及框图 PAGEREF _Toc356160166 h 9 HYPERLINK l _Toc356

9、160167 2.1.1设计要求 PAGEREF _Toc356160167 h 9 HYPERLINK l _Toc356160168 2.1.2设计方案 PAGEREF _Toc356160168 h 9 HYPERLINK l _Toc356160169 2.1.3设计框图 PAGEREF _Toc356160169 h 10 HYPERLINK l _Toc356160170 第3章硬件电路设计 PAGEREF _Toc356160170 h 11 HYPERLINK l _Toc356160171 3.1ATS89C52单片机介绍 PAGEREF _Toc356160171 h 11

10、 HYPERLINK l _Toc356160172 3.2时钟模块 PAGEREF _Toc356160172 h 13 HYPERLINK l _Toc356160173 3.2.1DS1302简介 PAGEREF _Toc356160173 h 13 HYPERLINK l _Toc356160174 3.2.2DS1302电路设计 PAGEREF _Toc356160174 h 14 HYPERLINK l _Toc356160175 3.2.3时钟电路设计 PAGEREF _Toc356160175 h 15 HYPERLINK l _Toc356160176 3.2.4时钟复位电路

11、 PAGEREF _Toc356160176 h 15 HYPERLINK l _Toc356160177 3.3键盘模块 PAGEREF _Toc356160177 h 16 HYPERLINK l _Toc356160178 3.4显示模块 PAGEREF _Toc356160178 h 17 HYPERLINK l _Toc356160179 3.4.1LED数码管介绍 PAGEREF _Toc356160179 h 17 HYPERLINK l _Toc356160180 3.4.2LED数码管电路设计 PAGEREF _Toc356160180 h 19 HYPERLINK l _T

12、oc356160181 3.5报警模块 PAGEREF _Toc356160181 h 21 HYPERLINK l _Toc356160182 第4章软件程序设计 PAGEREF _Toc356160182 h 22 HYPERLINK l _Toc356160183 4.1Keil软件介绍 PAGEREF _Toc356160183 h 22 HYPERLINK l _Toc356160184 4.2软件程序流程图 PAGEREF _Toc356160184 h 22 HYPERLINK l _Toc356160185 第5章系统调试 PAGEREF _Toc356160185 h 25

13、HYPERLINK l _Toc356160186 结 论 PAGEREF _Toc356160186 h 30 HYPERLINK l _Toc356160187 参考文献 PAGEREF _Toc356160187 h 31 HYPERLINK l _Toc356160188 附 录 PAGEREF _Toc356160188 h 32 HYPERLINK l _Toc356160189 附录(fl)1 主程序 PAGEREF _Toc356160189 h 32 HYPERLINK l _Toc356160190 附录(fl) 2 电路(dinl)原理图 PAGEREF _Toc3561

14、60190 h 49 HYPERLINK l _Toc356160191 附录3 PCB图 PAGEREF _Toc356160191 h 50 HYPERLINK l _Toc356160192 致 谢 PAGEREF _Toc356160192 h 51北京工业大学耿丹学院2012届毕业设计(论文) PAGE 4 北京工业大学耿丹学院2012届毕业设计(论文)PAGE 54绪论(xln) 课题(kt)的学术背景及其实际意义倒计时定时器已经成为人们日常生活中必不可少的物品,随着技术的发展,广泛(gungfn)的应用于各个公共场所,给人们日常的生活、学习、工作、娱乐带来便利,但是由于原先简单的

15、报时功能已经不能够被人们所满足,希望出一些新的功能新的产品来满足人们的需要,例如重要日子的倒计时、秒表等等,这些都能带来更大的方便。而所有的这些都是以倒计时定时器为基础的。因此,研究倒计时定时器有着非常重要的意义和实用价值。电子定时器在家用电器中经常用于延时自动关机、定时。延时自动关机可用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用于:照相定时曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。例如:空调中的定时器,在工作一段时间之后便能自动切断电源停

16、止工作。夏季夜间使用,入睡前先顶好时间,等睡熟后到了预定时间,空调自动关机,方便节能。定时器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施等等。相关领域的成果及存在的不足在电子技术突飞猛进的今天,电子倒计时定时器也慢慢的被广大的家庭所接受,这些都方便了每个人的生活和工作。传统的定时器绝大多数都是发条驱动式、电机传动式或电钟式等机械定时器,部分电子器械中也有用时间继电器的。相对于传统的定时器,电子定时器的体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。所以电子定时器的发展必定大有前途。同时随着现代电子技术的发展,电子定时器也在不断的进步,朝向着更多用途、更

17、高精度、更小体积发展着。 课题来源及主要研究内容本课题是通过老师挑选的几个课题当中自主选择的,虽然倒计时定时器已经很常见了,但是自己亲自动手制作,把所学到的知识应用的实际操作中,通过这个过程一定会有很大的收获,巩固加深了单片机应用的知识面,提高了自己的动手能力和解决问题的能力。本课题主要研究的内容要了解电子倒计时定时器的基本结构原理,调研并查找相关资料,选择实现电子倒计时定时器的方案,进行完整的倒计时的硬件电路、系统软件以及实物结构的设计并进行电路仿真、软件编程、系统调试。北京工业大学耿丹学院2012届毕业设计(论文) 倒计时定时器的结构(jigu)、原理及设计方案2.1 单片机的发展(fzh

18、n)概况 微型计算机的出现是电子数字计算机广泛应用到人们日常(rchng)工作和生活领域中去的一个重大转折点。它已经深入应用到非微型计算机所无法应用的领域,对社会产生了极大的影响。单片微型计算机是微型计算机发展的一个重要分支,它以其独特的机构和性能,越来越普遍的应用到国民经济建设的各个领域。单片机全称为单片微型计算机(Single Chip Microcomputer)。因为单片机主要用于控制系统中,所以又称微控制器(Microcontroller Unit,MCU)或嵌入式控制器(Embedded Controller)。它具有嵌入式应用系统所要求的体系结构,微处理器,指令系统,总线方式,管

19、理模式等。他把计算机的基本部件都微型化集成到一块芯片上了,通常片内部都含有中央处理部件(CPU),数据存储器(RAM),程序存储器(ROM,EPROM,Flsh ROM),定时器/计数器和各种输入/输出(I/O)接口他们之间的相互连接结构2.2 51单片机的内部结构51单片机内部有一个8位的CPU,同时CPU内部包含了运算器,控制器及若干寄存器。1、运算器(ALU)的主要功能A)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。B)加、减、乘、除、加1、减1、比较等算术运算。C)与、或、异或、求补、循环等逻辑运算。D)位处理功能(即布尔处理器)。由于ALU内部

20、没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A也用于存放运算结果。例如:执行指令 ADD A,B执行这条指令时,累加器A中的内容通过输入口In_1输入ALU,寄存器B通过内部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部数据总线,送回到累加器A。2、程序计数器PCPC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节的读出

21、来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。程序计数器PC具有自动(zdng)加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。 3、指令寄存器IR指令(zhlng)寄存器的作用就是用来存放即将执行的指令代码。在这里我们先简单的了解(lioji)下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。 4、指令译码器ID用于对送入指令寄存器中的

22、指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。5、地址寄存器AR(16位)AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。6、数据寄存器DR用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存

23、器与外部数据总线DB直接相连。7、程序状态字PSW用于记录运算过程中的状态,如是否溢出、进位等。例如,累加器A的内容83H,执行:ADD A,#8AH ;累加器A与立即数8AH相加,并把结果存放在A中。指令后,将产生和的结果为10DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。8、时序部件由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。2.3 设计要求、方案及框图设计要求 这个倒计时定时器的设计采用倒计时的方式,初始值由键盘设定,最大定时为59分59秒,4位L

24、ED显示时间,定时到进行声光报警。设计方案主控模块(1)采用(ciyng)AT89C51单片机为核心,通过程序来实现时间的显示,用定时器实现闹钟功能的设定,通过LED数码管显示时间。如图2-1:键盘模块显示模块电源模块报警模块图2-1系统(xtng)框图本设计采用AT89C51单片机不如AT89S52精确高,长时间工作会导致(dozh)误差很大,并且C语言设计起来相当麻烦,调整起来麻烦而且不方便实现对系统的扩展。(2)采用AT89S52单片机为核心,倒计时功能采用C语言编程利用单片机内部定时器来实现,通过时钟芯片DS1302利用LED数码管显示当前时间,并通过键盘控制模式的转换和时间的调整,当

25、时间到了经行报警,这个设计使整个系统可编程,灵活性大大增加了,虽然多了个芯片但是加大了精度,因此选择这个方案。 设计框图利用单片机定时器及计数器产生定时效果通过编程形成倒计时效果,在通过LED数码管显示数据。系统供电后,实现小时、分钟、秒的显示,通过按键校对时间、倒计时的设定和显示,当定时时间到的时候,单片机通过报警器实现声光报警。如图2-2:时钟模块主控模块报警模块键盘模块显示模块电源模块图2-2系统框图硬件(yn jin)电路设计ATS89C52单片机介绍(jisho)AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有(jyu) 8K 在系统可编程Flash存储器。使用Atme

26、l 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种 HYPERLINK /view/37.

27、htm t _blank 软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。如图3-1图3-1 AT89S52引脚图P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外(cwi),P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1

28、.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。引脚号第二(d r)功能:P1.0 T2(定时器/计数(j sh)器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个 TTL 逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引

29、脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,

30、将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部

31、程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT

32、89S52由外部程序存储器取指令(或数据)时,每个机器周期(zhuq)两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部(wib)访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器和内部时钟(shzhng)发生电路的输入

33、端。XTAL2:振荡器反相放大器的输出端。时钟模块DS1302简介DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。如图3-2图3-2 DS1302引脚图DS1302的引脚排列,其

34、中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据传送的方法。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RS

35、T置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。DS1302电路设计本设计要求在不进行倒计时的时候可以显示(xinsh)一天的时间,所以采用的时钟芯片DS1302为核心来实现这个问题,DS1302的X1、X2端口连接一个32.768kHz的晶振,Vcc1、Vcc2连接电源,串行数据IO端口连接单片机的P1.5引脚,串行时钟SCLK端口连接单片机的P1.6引脚,复位RST端口连接单片机的P1.4引脚。电路图3-3:图3-3 DS1302电路设计时钟(shzhng)电路设计时钟电路对单片机是不可缺的,单片机的每个功能都要以时钟电路为基础工作。单片机内部自带一个时钟电路,外部接入定时(dn

36、 sh)控制元件即可构成一个稳定的自己振荡器。其中机器周期共有12个振荡脉冲周期,因此,机器周期是时钟周期的12倍。本实验使用的晶振是12MHz,则时钟周期为(1/12)us,机器周期为1us。两个端口分别连在单片机XLAL1、XLAL2引脚上实验图3-4:图3-4 时钟电路时钟复位电路复位操作有上电自动复位、按键电平复位和外部脉冲复位三种方式,本次实验用的是按键电平复位,利用电容的充放电公式来选择所需的电容、电阻,能保证复位信号高电平持续时间大于2个机器周期。电路图3-4:图3-5 复位(f wi)电路设计键盘(jinpn)模块本设计(shj)要用数码管显示当前时间和倒计时时间,这就需要由键

37、盘来设定,键盘分为独立连接式和矩阵式,本实验采用五个独立的键盘设计,连在单片机的P3口,第一个按键控制工作模式的选择,系统通电后显示当前时间,按下则显示倒计时状态,第二个按键为设置模式选择,不管是倒计时还是显示时间都能对当前的时间进行设置,第三、四个按键主要是对时、分、秒进行加减,第五个按键主要的功能是启动和停止倒计时。电路设计如图3-5:图3-6 键盘(jinpn)模块设计显示(xinsh)模块LED数码管介绍(jisho)数码管是一种半导体发光器件,其基本元件是发光二极管。图3-7 LED数码管数码管的分类(fn li)数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个(

38、y )发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等(dn dn)数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应

39、字段就不亮。数码管的驱动方式 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S521单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接

40、口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉

41、效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。LED数码管电路设计本设计主要采用8位LED数码管显示,与单片机的IO口连接,但是单片机的IO口电流有限,只有几毫安,但是数码管的驱动电流要几十毫安到几百毫安,所以在实验中选择了单片机74LS245和单片机74LS138进行(jnxng)驱动和段选。单片机74LS245介绍(jisho)和电路设计74LS245是我们常用的芯片(xn pin),用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向

42、传输数据,还具有双向三态功能,既可以输出,也可以输入数据。当单片机AT89SC52单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当CE为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.

43、1D1),其它时间处于输出(P0.1D1)。通过单片机74LS245来扩大电流输出来给数码管进行驱动,电路设计如图3-7:图3-8 74LS245电路设计译码器74LS138介绍和电路设计74LS138为3线到8线译码器,共有54LS138和74LS138两种线路结构模式。当一个选通端(E1)为高电平,另两个选通端((/E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。若将选通

44、端中的一个作为数据输入端时,74LS138还可作数据分配器。可用在8086的译码电路中,扩展内存。因为(yn wi)本设计采用的8位数码管为共阴极数码管,单片机74LS138的IO口输出是低电平,所以单片机和数码管可以配合在一起使用,来完成数码管的段选。它的电路设计如图3-7:图3-9单片机74LS138电路设计报警(bo jng)模块本设计(shj)在倒计时时间到的时候为了提醒用户而采用的声光报警,电路主要有一个蜂鸣器、一个三极管组成,在倒计时完成时通过控制端口P3.0给三极管送入低电平使其导通,报警器报警,指示灯点亮。如图3-6:图3-10 声光报警电路设计软件(run jin)程序设计K

45、eil软件(run jin)介绍图4-1 Keil软件(run jin)2009年2月发布Keil uVision4,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。最新的Keil uVision4 IDE,旨在提高开发人员的生产力,实现更快,

46、更有效的程序开发。uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。uVision4在Vision3 IDE的基础上,增加了更多大众化的功能。 多显示器和灵活的窗口管理系统 系统浏览器窗口的显示设备外设寄存器信息调试还原视图,创建并保存多个调试窗口布局, 多项目工作区简化与众多的项目软件程序流程图主程序开始初始化变量初始化定时器显示子函数键盘子函数判断键盘是否按下报警器报警、指示灯闪亮启动停止倒计时中断1中断2定时器中断图4-2 软件(run jin)流程图系统(xtng)中设置了五个按键,当程序(chngx)扫描到“复位”键时,单片机重新读入拨码盘数

47、据,意即新的一轮计时开始,当程序扫描到“走”键时,若原计时停止,则启动计时,否则无效,同样,当程序扫描到“停”键时,若原计时已启动,则停止计时,否则无效。对于本系统来说,秒计时的准确性和主从机的通信的可靠性是程序的关键,以下分别对这两个程序的设计进行描述。在硬件电路中因未设计硬件计时功能,秒的产生只有依靠软件来完成。本系统中采用系统定时P计数器T0 来产生。最大定时时间计算方法如下:TMAX = 216 12foscs ,其中fosc 为系统时钟频率,本系统中的时钟频率为1110592MHz , 经计算TMAX 为7111ms ,为了计算的方便,取TMAX = 50ms ,软件计数至20 次为

48、1s。系统(xtng)调试本次倒计时定时器设计包括硬件电路设计和软件设计,软件主要是通过(tnggu)C语言进行编程,将程序编辑编译完成后,将生成的hex文件通过串口下载软件下载到STC89C52单片机芯片中去。通过Proteus软件进行仿真,实验过程中仿真可以正常运行,但是总是比现实显示的时间慢,而且报警(bo jng)的时候声音也是一卡一卡的,检查各个端口也没有发现问题,通过与老师的沟通,觉得是Proteus软件的问题,结果还是很好的完成了仿真的工作。如下图所示:图5-1 时间显示模式(msh)仿真图图5-2 倒计时模式(msh)仿真图硬件(yn jin)设计首先检查印制板及焊接的质量情况

49、,在检查无误后通电检查数码管的点亮状况。至于键盘的调试,关键是把握好按键的去抖效果。当出现按键“不灵”情况,一般是由于程序中用于按键去抖的延时时间不够。在进行LED数码管焊接的时候,也出现的点问题,因为任务书要求的是8位数码管,做板子的时候是两个四位的连在一起,数码管引脚就比较混乱,做过了一个板子但是没有正常工作,经过了一些调试还是没有显示出来时间,决定直接买了一个数码管模块,直接与单片机的几个引脚连接就可以完成实验要求的功能,最后连接一起通电试了试,可以完成现在的要求,虽然板子有点简陋看起来有点省事,但是过程还是学到了不少的东西。不过现在还有个问题就是误差有点大,准备弄得更加精确。图5-3

50、硬件时间显示(xinsh)状态图5-4 硬件(yn jin)倒计时状态系统开始调试,通电后数码管显示时间,在通过键盘进行(jnxng)时间的调整和工作模式的选择,下表是对系统倒计时时间的测试结果。现实时间实验时间误差5分钟4分55秒5秒10分钟9分43秒17秒15分钟14分18秒42秒表1 系统(xtng)倒计时时间测试表误差分析:本设计的计时和倒计时功能主要是通过单片机内部的计时器来完成,而且程序设计也使用的延时语句,不可避免的会出现一些误差。但是本设计的时间显示的误差很小,倒计时时间越长误差就越大,电路板也已经从手焊的换成印制板,还在寻找原因。 结 论PAGE 24结 论本文主要先对核心芯

51、片做了个概述,并且简单的介绍了各个管脚的功能,阐述了设计要求、选择的方案(fng n)以及最后能够完成的功能。然后通过硬件和软件部分的介绍,详细的说明了我做毕设的步骤以及各个部分的选择,如何实现的,用什么软件实现的,最后列出了实验的误差以及PCB、原理图等等的实验过程。虽然毕业设计可以完成实验要求,但是这仅仅是一小部分,还有很多问题没有解决,硬件设计的过于简单,导致了误差的出现,这都是我以后要努力(n l)地方向。从这次毕业论文设计中,无论对于单片机还是定时器,都进一步清晰了设计概念、学习了专业理论、掌握了芯片知识,而且还增长了实践经验,提高(t go)了认知水平,促进了自学能力。从诸多方面获

52、得了很大的收益。参考文献PAGE 25参考文献1 李群芳.单片微型计算机.电子(dinz)工业出版社,20102 孙景琪, 曹小秋.通信广播电路原理(yunl)与应用.北京工业大学出版社,20103 徐士良, 葛兵.计算机软件技术(jsh)基础.清华大学出版社,20104 刘明亮, 郭云.数字信号处理基础教程.北京航空航天大学出版社,20115 王划一, 杨西峡.自动控制原理.国防工业出版社,20106 郑步生,吴渭Multisim200l电路设计及仿真入门与应用M北京:电子工业出版社,20027 楼然苗,李光飞51系列单片机设计实例M北京:北京航空航天大学出版社,20038 梁纯,王军基于M

53、CS一51单片机的LED点阵图文显示屏设计J工矿自动化,2005(6)9夏路易、石宗义编著 电路原理图与电路板设计教程 北京希望电子出版社 200210吴国经主编 单片机应用技术 中国电力出版社 200411徐泳龙主编 单片机原理及应用 机械工业出版社 2004附 录PAGE 41附 录附录(fl)1 主程序#include#include ds1302.h / DS1302的驱动(q dn)头文件#define uchar unsigned char#define uint unsigned int/ 设置模式(msh)选择sbit key1=P13;/ +sbit key2=P14;/ -

54、sbit key3=P15;/ 系统工作模式选择sbit key4=P16;/ 倒计时开始/停止sbit key5=P17;/ 报警sbit BEEP = P37;/ LEDsbit LED = P34;unsigned char ll = 0;unsigned char kk,i;/ 临时变量/共阴数码管0-9,灭,-编码uchar code dis=0 x3F,0X30,0X5b,0X4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00,0 x40;/位选编码(bin m)uchar code wei=0 x80,0 x81,0 x82,0 x83,0

55、x84,0 x85,0 x86,0 x87;/时分秒显示(xinsh)缓冲区uchar data dis1=0 x00,0 x00,0 x0b,0 x00,0 x00,0 x0b,0 x00,0 x00;/时分秒初值uchar data chuzhi=0 x23,0 x59,0 x50;/送十六进制(sh li jn zh)数/ 读取的时间值uchar data time1302=0 x00,0 x00,0 x00;/ 倒计时的分钟,秒signed char Count_minutes = 0;signed char Count_seconds = 0;/ 系统工作模式选择位1: 时间显示模式

56、 0:倒计时模式bit Work_Flag = 1;/延时1ms子程序void delay(uint z)uint x,y;for(x=z;z0;z-)for(y=110;y0;y-);/ 显示子函数void display()uchar k;if(Work_Flag)/ 时间模式下的显示dis17=chuzhi2%10;/ 秒的十位(sh wi)dis16=chuzhi2/10;/ 秒的个位(gwi)dis14=chuzhi1%10;/ 分的十位(sh wi)dis13=chuzhi1/10;/ 分的个位dis11=chuzhi0%10;/ 时的十位dis10=chuzhi0/10;/ 时的

57、个位for(k=0;k8;k+) / 循环刷新各个位P2 = weik;P0 = disdis1k;delay(1);/让数码管正常显示出来else/ 倒计时模式下的显示dis13 = Count_seconds/10;/ 得到分钟的1十位dis14 = Count_seconds%10;/ 得到分钟的个位dis10 = Count_minutes/10;dis11 = Count_minutes%10;for(k=0;k5;k+)P2 = weik;P0 = disdis1k;delay(1);/键盘扫描子函数void kscan()uchar temp;/ 系统(xtng)工作模式选择if

58、(key4 = 0) delay(10);if(key4 = 0) while(key4 = 0);Work_Flag = !Work_Flag; / 按下键 在两个(lin )工作模式间切换 if(key1=0)/ 时间(shjin)显示模式下的选择键按下delay(10);if(key1=0)while(key1=0);/ 等待释放if(Work_Flag)kk+; / 模式标识if(kk=1)/ 为1,则对时进行设置temp = chuzhi2/10*16+chuzhi2%10;Write1302 (0 x8e,0X00); /禁止写保护Write1302 (0 x80,0 x80|te

59、mp); /时钟暂停Write1302 (0 x8e,0 x80); /允许写保护elsell +;if(ll = 2)ll = 0;if(!Work_Flag)/ 设置倒计时的初始(ch sh)时间 / 倒计时秒设置(shzh)模式 if(ll = 0) if(key2 = 0)/ +delay(10);if(key2 = 0)while(key2 = 0);Count_seconds +;if(Count_seconds = 60)/ 加到60,分加1,秒为Count_seconds = 0;Count_minutes +;if(Count_minutes = 60)Count_minut

60、es = 0;if(key3 = 0)delay(10);if(key3 = 0)while(key3 = 0);if(Count_minutes) Count_seconds -;if(Count_seconds 0)Count_seconds = 59;Count_minutes -;elseif(Count_seconds)Count_seconds -;elseCount_seconds = 0; / 倒计时模式(msh)下,分设置模式if(ll = 1)if(key2 = 0)/ +delay(10);if(key2 = 0)while(key2 = 0);Count_minutes

温馨提示

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

评论

0/150

提交评论