




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子倒计时定时器设计方案绪论1.1 课题的学术背景及其实际意义倒计时定时器已经成为人们日常生活中必不可少的物品,随着技术的发展,广泛的应用于各个公共场所,给人们日常的生活、学习、工作、娱乐带来便利,但是由于原先简单的报时功能已经不能够被人们所满足,希望出一些新的功能新的产品来满足人们的需要,例如重要日子的倒计时、秒表等等,这些都能带来更大的方便。而所有的这些都是以倒计时定时器为基础的。因此,研究倒计时定时器有着非常重要的意义和实用价值。电子定时器在家用电器中经常用于延时自动关机、定时。延时自动关机可用于:收音机、电视机、录音机、催眠器、门灯、路灯、汽车头灯、转弯灯以及其他电器的延时断电及延时自停电源等。定时可用于:照相定时曝光、定时闪光、定时放大、定时调速、定时烘箱、冰箱门开定时报警、水位定时报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等。例如:空调中的定时器,在工作一段时间之后便能自动切断电源停止工作。夏季夜间使用,入睡前先顶好时间,等睡熟后到了预定时间,空调自动关机,方便节能。定时器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施等等。1.2 相关领域的成果及存在的不足在电子技术突飞猛进的今天,电子倒计时定时器也慢慢的被广大的家庭所接受,这些都方便了每个人的生活和工作。传统的定时器绝大多数都是发条驱动式、电机传动式或电钟式等机械定时器,部分电子器械中也有用时间继电器的。相对于传统的定时器,电子定时器的体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。所以电子定时器的发展必定大有前途。同时随着现代电子技术的发展,电子定时器也在不断的进步,朝向着更多用途、更高精度、更小体积发展着。1.3 课题来源及主要研究内容本课题是通过老师挑选的几个课题当中自主选择的,虽然倒计时定时器已经很常见了,但是自己亲自动手制作,把所学到的知识应用的实际操作中,通过这个过程一定会有很大的收获,巩固加深了单片机应用的知识面,提高了自己的动手能力和解决问题的能力。本课题主要研究的内容要了解电子倒计时定时器的基本结构原理,调研并查找相关资料,选择实现电子倒计时定时器的方案,进行完整的倒计时的硬件电路、系统软件以及实物结构的设计并进行电路仿真、软件编程、系统调试。2北京工业大学耿丹学院2012届毕业设计(论文)第2章 倒计时定时器的结构、原理及设计方案2.1 单片机的发展概况 微型计算机的出现是电子数字计算机广泛应用到人们日常工作和生活领域中去的一个重大转折点。它已经深入应用到非微型计算机所无法应用的领域,对社会产生了极大的影响。单片微型计算机是微型计算机发展的一个重要分支,它以其独特的机构和性能,越来越普遍的应用到国民经济建设的各个领域。单片机全称为单片微型计算机(Single Chip Microcomputer)。因为单片机主要用于控制系统中,所以又称微控制器(Microcontroller Unit,MCU)或嵌入式控制器(Embedded Controller)。它具有嵌入式应用系统所要求的体系结构,微处理器,指令系统,总线方式,管理模式等。他把计算机的基本部件都微型化集成到一块芯片上了,通常片内部都含有中央处理部件(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内部没有寄存器,参加运算的操作数,必须放在累加器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中一个个字节的读出来,然后到CPU中去执行,那么ROM具体执行到哪一条呢?这就需要我们的程序计数器PC来指示。程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。 3、指令寄存器IR指令寄存器的作用就是用来存放即将执行的指令代码。在这里我们先简单的了解下CPU执行指令的过程,首先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。 4、指令译码器ID用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。5、地址寄存器AR(16位)AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器AR通过地址总线AB与外部存储器相连。6、数据寄存器DR用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。7、程序状态字PSW用于记录运算过程中的状态,如是否溢出、进位等。例如,累加器A的内容83H,执行:ADD A,#8AH ;累加器A与立即数8AH相加,并把结果存放在A中。指令后,将产生和的结果为10DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放结果中的最高位B8。为些,在CPU内设置一个进位标志位C,当执行加法运算出现进位时,进位标志位C为1。8、时序部件由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。2.3 设计要求、方案及框图2.1.1 设计要求 这个倒计时定时器的设计采用倒计时的方式,初始值由键盘设定,最大定时为59分59秒,8位LED显示时间,定时到进行声光报警。2.1.2 设计方案主控模块(1)采用AT89C51单片机为核心,通过程序来实现时间的显示,用定时器实现闹钟功能的设定,通过LED数码管显示时间。如图2-1:键盘模块显示模块电源模块报警模块图2-1系统框图本设计采用AT89C51单片机不如AT89S52精确高,长时间工作会导致误差很大,并且C语言设计起来相当麻烦,调整起来麻烦而且不方便实现对系统的扩展。(2)采用AT89S52单片机为核心,倒计时功能采用C语言编程利用单片机内部定时器来实现,通过时钟芯片DS1302利用LED数码管显示当前时间,并通过键盘控制模式的转换和时间的调整,当时间到了经行报警,这个设计使整个系统可编程,灵活性大大增加了,虽然多了个芯片但是加大了精度,因此选择这个方案。2.1.3 设计框图利用单片机定时器及计数器产生定时效果通过编程形成倒计时效果,在通过LED数码管显示数据。系统供电后,实现小时、分钟、秒的显示,通过按键校对时间、倒计时的设定和显示,当定时时间到的时候,单片机通过报警器实现声光报警。如图2-2:时钟模块主控模块报警模块键盘模块显示模块电源模块图2-2系统框图第3章 硬件电路设计3.1 ATS89C51单片机介绍AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且。外形及引脚排列如图所示主要特性: 与MCS-51兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2管脚说明: VCC:供电电压。 GND:接地。 P0 口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1 口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2 口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入, 由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2 时钟模块3.2.1 DS1302简介DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。如图3-1图3-1 DS1302引脚图DS1302的引脚排列,其中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进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。3.2.2 DS1302电路设计本设计要求在不进行倒计时的时候可以显示一天的时间,所以采用的时钟芯片DS1302为核心来实现这个问题,DS1302的X1、X2端口连接一个32.768kHz的晶振,Vcc1、Vcc2连接电源,串行数据IO端口连接单片机的P1.5引脚,串行时钟SCLK端口连接单片机的P1.6引脚,复位RST端口连接单片机的P1.4引脚。电路图3-2:图3-2 DS1302电路设计3.2.3 时钟电路设计时钟电路对单片机是不可缺的,单片机的每个功能都要以时钟电路为基础工作。单片机内部自带一个时钟电路,外部接入定时控制元件即可构成一个稳定的自己振荡器。其中机器周期共有12个振荡脉冲周期,因此,机器周期是时钟周期的12倍。本实验使用的晶振是12MHz,则时钟周期为(1/12)us,机器周期为1us。两个端口分别连在单片机XLAL1、XLAL2引脚上实验图3-3:图3-3 时钟电路3.2.4 时钟复位电路复位操作有上电自动复位、按键电平复位和外部脉冲复位三种方式,本次实验用的是按键电平复位,利用电容的充放电公式来选择所需的电容、电阻,能保证复位信号高电平持续时间大于2个机器周期。电路图3-4:图3-4 复位电路设计3.3 键盘模块本设计要用数码管显示当前时间和倒计时时间,这就需要由键盘来设定,键盘分为独立连接式和矩阵式,本实验采用五个独立的键盘设计,连在单片机的P3口,第一个按键控制工作模式的选择,系统通电后显示当前时间,按下则显示倒计时状态,第二个按键为设置模式选择,不管是倒计时还是显示时间都能对当前的时间进行设置,第三、四个按键主要是对时、分、秒进行加减,第五个按键主要的功能是启动和停止倒计时。电路设计如图3-5:图3-5 键盘模块设计3.4 显示模块3.4.1 LED数码管介绍数码管是一种半导体发光器件,其基本元件是发光二极管。图3-6 LED数码管数码管的分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管的驱动方式 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S521单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。3.4.2 LED数码管电路设计本设计主要采用8位LED数码管显示,与单片机的IO口连接,但是单片机的IO口电流有限,只有几毫安,但是数码管的驱动电流要几十毫安到几百毫安,所以在实验中选择了单片机74LS245和单片机74LS138进行驱动和段选。3.4.2.1 单片机74LS245介绍和电路设计74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据,还具有双向三态功能,既可以输出,也可以输入数据。当单片机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.1D1),其它时间处于输出(P0.1D1)。通过单片机74LS245来扩大电流输出来给数码管进行驱动,电路设计如图3-7:图3-7 74LS245电路设计3.4.2.2 译码器74LS138介绍和电路设计74LS138为3线到8线译码器,共有54LS138和74LS138两种线路结构模式。当一个选通端(E1)为高电平,另两个选通端((/E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。可用在8086的译码电路中,扩展内存。因为本设计采用的8位数码管为共阴极数码管,单片机74LS138的IO口输出是低电平,所以单片机和数码管可以配合在一起使用,来完成数码管的段选。它的电路设计如图3-7:图3-8单片机74LS138电路设计3.5 报警模块本设计在倒计时时间到的时候为了提醒用户而采用的声光报警,电路主要有一个蜂鸣器、一个三极管组成,在倒计时完成时通过控制端口P3.0给三极管送入低电平使其导通,报警器报警,指示灯点亮。如图3-6:图3-9 声光报警电路设计第4章 软件程序设计4.1 Keil软件介绍图4-1 Keil软件2009年2月发布Keil uVision4,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。最新的Keil uVision4 IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。uVision4在Vision3 IDE的基础上,增加了更多大众化的功能。 多显示器和灵活的窗口管理系统 系统浏览器窗口的显示设备外设寄存器信息调试还原视图,创建并保存多个调试窗口布局, 多项目工作区简化与众多的项目4.2 软件程序流程图主程序开始初始化变量初始化定时器显示子函数键盘子函数判断键盘是否按下报警器报警、指示灯闪亮启动停止倒计时中断1中断2定时器中断图4-2 软件流程图系统中设置了五个按键,当程序扫描到“复位”键时,单片机重新读入拨码盘数据,意即新的一轮计时开始,当程序扫描到“走”键时,若原计时停止,则启动计时,否则无效,同样,当程序扫描到“停”键时,若原计时已启动,则停止计时,否则无效。对于本系统来说,秒计时的准确性和主从机的通信的可靠性是程序的关键,以下分别对这两个程序的设计进行描述。在硬件电路中因未设计硬件计时功能,秒的产生只有依靠软件来完成。本系统中采用系统定时P计数器T0 来产生。最大定时时间计算方法如下:TMAX = 216 12foscs ,其中fosc 为系统时钟频率,本系统中的时钟频率为1110592MHz , 经计算TMAX 为7111ms ,为了计算的方便,取TMAX = 50ms ,软件计数至20 次为1s。第5章 系统调试本次倒计时定时器设计包括硬件电路设计和软件设计,软件主要是通过C语言进行编程,将程序编辑编译完成后,将生成的hex文件通过串口下载软件下载到STC89C52单片机芯片中去。通过Proteus软件进行仿真,实验过程中仿真可以正常运行,但是总是比现实显示的时间慢,而且报警的时候声音也是一卡一卡的,检查各个端口也没有发现问题,通过与老师的沟通,觉得是Proteus软件的问题,结果还是很好的完成了仿真的工作。如下图所示:图5-1 时间显示模式仿真图图5-2 倒计时模式仿真图硬件设计首先检查印制板及焊接的质量情况,在检查无误后通电检查数码管的点亮状况。至于键盘的调试,关键是把握好按键的去抖效果。当出现按键“不灵”情况,一般是由于程序中用于按键去抖的延时时间不够。在进行LED数码管焊接的时候,也出现的点问题,因为任务书要求的是8位数码管,做板子的时候是两个四位的连在一起,数码管引脚就比较混乱,做过了一个板子但是没有正常工作,经过了一些调试还是没有显示出来时间,决定直接买了一个数码管模块,直接与单片机的几个引脚连接就可以完成实验要求的功能,最后连接一起通电试了试,可以完成现在的要求,虽然板子有点简陋看起来有点省事,但是过程还是学到了不少的东西。不过现在还有个问题就是误差有点大,准备弄得更加精确。图5-3 硬件时间显示状态图5-4 硬件倒计时状态系统开始调试,通电后数码管显示时间,在通过键盘进行时间的调整和工作模式的选择,下表是对系统倒计时时间的测试结果。现实时间实验时间误差5分钟4分55秒5秒10分钟9分43秒17秒15分钟14分18秒42秒表1 系统倒计时时间测试表误差分析:本设计的计时和倒计时功能主要是通过单片机内部的计时器来完成,而且程序设计也使用的延时语句,不可避免的会出现一些误差。但是本设计的时间显示的误差很小,倒计时时间越长误差就越大,电路板也已经从手焊的换成印制板,还在寻找原因。 25结 论结 论本文主要先对核心芯片做了个概述,并且简单的介绍了各个管脚的功能,阐述了设计要求、选择的方案以及最后能够完成的功能。然后通过硬件和软件部分的介绍,详细的说明了我做毕设的步骤以及各个部分的选择,如何实现的,用什么软件实现的,最后列出了实验的误差以及PCB、原理图等等的实验过程。虽然毕业设计可以完成实验要求,但是这仅仅是一小部分,还有很多问题没有解决,硬件设计的过于简单,导致了误差的出现,这都是我以后要努力地方向。从这次毕业论文设计中,无论对于单片机还是定时器,都进一步清晰了设计概念、学习了专业理论、掌握了芯片知识,而且还增长了实践经验,提高了认知水平,促进了自学能力。从诸多方面获得了很大的收益。26参考文献参考文献1 李群芳.单片微型计算机.电子工业出版社,20102 孙景琪, 曹小秋.通信广播电路原理与应用.北京工业大学出版社,20103 徐士良, 葛兵.计算机软件技术基础.清华大学出版社,20104 刘明亮, 郭云.数字信号处理基础教程.北京航空航天大学出版社,20115 王划一, 杨西峡.自动控制原理.国防工业出版社,20106 郑步生,吴渭Multisim200l电路设计及仿真入门与应用M北京:电子工业出版社,20027 楼然苗,李光飞51系列单片机设计实例M北京:北京航空航天大学出版社,20038 梁纯,王军基于MCS一51单片机的LED点阵图文显示屏设计J工矿自动化,2005(6)9夏路易、石宗义编著 电路原理图与电路板设计教程 北京希望电子出版社 200210吴国经主编 单片机应用技术 中国电力出版社 200411徐泳龙主编 单片机原理及应用 机械工业出版社 200427附 录附 录附录1 主程序#include#include ds1302.h / DS1302的驱动头文件#define uchar unsigned char#define uint unsigned int/ 设置模式选择sbit key1=P13;/ +sbit key2=P14;/ -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=0x3F,0X30,0X5b,0X4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/位选编码uchar code wei=0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87;/时分秒显示缓冲区uchar data dis1=0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00;/时分秒初值uchar data chuzhi=0x23,0x59,0x50;/送十六进制数/ 读取的时间值uchar data time1302=0x00,0x00,0x00;/ 倒计时的分钟,秒signed char Count_minutes = 0;signed char Count_seconds = 0;/ 系统工作模式选择位1: 时间显示模式 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;/ 秒的十位dis16=chuzhi2/10;/ 秒的个位dis14=chuzhi1%10;/ 分的十位dis13=chuzhi1/10;/ 分的个位dis11=chuzhi0%10;/ 时的十位dis10=chuzhi0/10;/ 时的个位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;/ 系统工作模式选择if(key4 = 0) delay(10);if(key4 = 0) while(key4 = 0);Work_Flag = !Work_Flag; / 按下键 在两个工作模式间切换 if(key1=0)/ 时间显示模式下的选择键按下delay(10);if(key1=0)while(key1=0);/ 等待释放if(Work_Flag)kk+; / 模式标识if(kk=1)/ 为1,则对时进行设置temp = chuzhi2/10*16+chuzhi2%10;Write1302 (0x8e,0X00); /禁止写保护Write1302 (0x80,0x80|temp); /时钟暂停Write1302 (0x8e,0x80); /允许写保护elsell +;if(ll = 2)ll = 0;if(!Work_Flag)/ 设置倒计时的初始时间 / 倒计时秒设置模式 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_minutes = 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; / 倒计时模式下,分设置模式if(ll = 1)if(key2 = 0)/ +delay(10);if(key2 = 0)while(key2 = 0);Count_minutes +;if(Count_minutes = 60)Count_minutes = 0; if(key3 = 0) / -delay(10);if(key3 = 0)while(key3 = 0);Count_minutes -;if(Count_minutes =96) /96对应16进制60temp=0;Write1302 (0x8e,0X00); /禁止写保护Write1302 (0x80,0x80|temp); /秒初始化Write1302 (0x8e,0x80); /允许写保护if(key3=0)/ -按下delay(10);/ 防抖if(key3=0)while(key3=0);/ 等待按键释放temp=(chuzhi2-1)/10*16+(chuzhi2-1)%10;/10进制转BCDif(chuzhi2=0)temp=89;Write1302 (0x8e,0X00); /禁止写保护Write1302 (0x80,0x80|temp); /秒初始化Write1302 (0x8e,0x80); /允许写保护break;case 2:/ 分设置模式if(key2=0)/ +键按下delay(10);if(key2=0)while(key2=0);temp=(chuzhi1+1)/10*16+(chuzhi1+1)%10;/10进制转BCDif(temp=96) /96对应16进制60temp=0;Write1302 (0x8e,0X00); /禁止写保护Write1302 (0x82,temp); /分初始化Write1302 (0x8e,0x80); /允许写保护if(key3=0)/ -按下 delay(10);if(key3=0)while(key3=0);temp=(chuzhi1-1)/10*16+(chuzhi1-1)%10;/10进制转BCDif(chuzhi1=0)temp=89;Write1302 (0x8e,0X00); /禁止写保护Write1302 (0x82,temp); /分初始化W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 变电站建设工程节能评估报告
- 广东省东莞市东莞港2024-2025学年高二上学期第二次月考语文考题及答案
- 轻型钢结构构件制造与运输方案
- 安装过程中施工方案与工艺优化
- 停薪留职期间员工薪酬及福利调整及权益保障协议
- 智能能源科技公司股份交易与能源互联网建设合同
- 智能化数据中心机房建设与智能调度服务合同
- 离婚分居子女抚养及财产分割协议范本
- 碳捕集利用系统设计与优化方案
- 离婚协议公证及财产分割、子女抚养及监护权确认协议
- (2025秋新版)苏教版三年级数学上册全册教案
- 阅读与思考(选学)为什么要证明课件
- HPLC高效液相色谱解读课件
- 移动通信5G关键技术分析课件
- DN1000顶管施工方案
- 理想与前途教育主题班会
- 无人机操作与使用教案
- 自悯量表中文版
- DB32∕T 2975-2016 水运工程建设管理用表
- T∕FSI 084-2022 双酚AF
- K线八低八高技术系统讲解课程(三)
评论
0/150
提交评论