毕业设计(论文)-基于AT89C52单片机的倒计时定时器设计_第1页
毕业设计(论文)-基于AT89C52单片机的倒计时定时器设计_第2页
毕业设计(论文)-基于AT89C52单片机的倒计时定时器设计_第3页
毕业设计(论文)-基于AT89C52单片机的倒计时定时器设计_第4页
毕业设计(论文)-基于AT89C52单片机的倒计时定时器设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGEI基于AT89C52倒计时定时器设计摘要在日常的生活和工作中,倒计时定时器已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。倒计时定时器具有实用性高、成本低、功耗低、易操作等优点。本文主要介绍了基于AT89C52单片机控制的倒计时定时器的设计。文中阐述了设计该系统的一些基本背景、原理及系统的各部分组成等。本次设计实现了在4位八段LED显示分秒、时间的设定、倒计时、复位、报警等功能。关键字:倒计时定时器AT89C52报警TheDesignofCountdownTimerBasedonAT89C52Abstract:Inourdailylifeandwork,countdowntimerhasbecomeessentialtodailylife.Itiswidelyusedinourfamily,stations,terminals,theaters,officesandotherpublicplaces,alsotakeagreatconveniencetopeople'slives,study,workandentertainment.Countdowntimerhasacharacterofpracticalandlow-cost,lowpowerconsumption,easyoperationandsoon.ThispaperintroducedthedesignofcountdowntimerbasedonAT89C52,anddescribedthebackground,principlesandthevariouspartsofthesystem.Thedesignhasachievedthemainfunctionsuchas:timesetting,timecount-down,resettingandalarm.Keywords:CountdownTimerAT89C52Alarm目录第1章引言 11.1选题背景 11.2指导思想 21.3方案论证与选择 21.4系统概述 4第2章系统总体设计 52.1模块功能实现与原理 52.2计时精度 6第3章硬件及软件设计 83.1主控模块 83.1.1AT89C52的基本知识 83.1.2AT89C52的内部结构 93.1.3AT89C52的引脚功能描述 103.1.4AT89C52的工作模式 133.1.5AT89C51的内部存储器 143.2显示模块 153.3键盘模块 163.4系统电路 183.4.1蜂鸣器报警/提示音电路设计 183.4.2电源电路设计 193.4.3时钟电路设计 203.5系统软件框图 203.6编程语言选择 21第四章结论 224.1总结 224.2系统展望 224.3在本次课程设计中获得的学习体会 22致谢 23参考文献 24附录1 25附录2 26第1章引言1.1选题背景倒计时定时器已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。随着技术的发展,人们已不再满足于钟表原先简单的报时功能,希望出现一些新的功能,诸如日历的显示、闹钟的非接触式止闹、跑表功能、重要日期倒计时显示等,以带来更大的方便,而所有这些,又都是以数字化的倒计时定时器为基础的。因此,研究实用倒计时定时器及其扩展应用,有着非常现实的意义,具有很大的实用价值。由于数字集成电路技术的发展和采用了先进的石英技术,使倒计时定时器具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。虽然现在市场上已有现成的倒计时定时器集成电路芯片出售,价格便宜,使用也灵活,如可以随意设置时、分、秒的输出,改变显示数字的大小等,并且由于集成电路技术的发展,特别是MOS集成电路技术的发展,使倒计时定时器具有体积小、携带方便,但是这里介绍的实用倒计时定时器可以满足使用者的一些特殊要求,输出方式灵活、功耗低、计时准确、性能稳定、维护方便等优点。[2]实用倒计时定时器是一个时间控制系统,既能作为一般的时间显示器,也可作为一个定时控制器,驱动负载或显示信息,同时可以根据需要扩展其功能。在此设计研究过程中需综合运用所学的模拟电子技术、数字电子技术、单片机原理与应用、电子系统设计等课程的知识,掌握实用倒计时定时器的设计、组装与调试方法,利用现代的电子系统设计、单片机等新电子技术以及现代的设计手段,系统地培养了综合设计、操作调试、故障处理的能力,达到综合素质以及创新能力的提高。本次毕业设计中采用单片机作为主要芯片设计倒计时控制系统。本系统的设计实用性强、设计灵活方便并且适合在任何条件下进行定时,所以设计意义较为深远。1.2指导思想通过对倒计时时钟软、硬部分的设计及调试,进一步掌握单片机的性能特点及工作原理。在设计过程中熟悉AT89C52系列单片机各个管脚的功能,学习单片机控制八段数码管显示的工作原理。提高单片机软件部分的编程能力,特别是利用单片机C语言对单片机的编程能力。通过本次毕业设计总结在四年大学学习中学到的知识,并且提高实际操作能力,为以后进一步学习和工作打好基础。1.3方案论证与选择1.总体方案论证与选择方案一:纯硬件电路系统。各功能采用分离的硬件电路模块实现。用时序逻辑电路实现时钟功能,用555定时器实现闹钟的设定。但这种实现方法可靠性差、控制精度低,灵活性小、线路复杂、安装调试不方便,而且不方便实现对系统的扩展。方案二:采用AT89C52单片机作为系统的控制核心。倒计时功能采用C语言编程利用单片机内部定时器来实现,可以使用LED八段数码管显示时间等信息。由于使用了单片机,整个系统可编程,系统的灵活性大大增加了。另外,本方案可以方便的实现其他功能的扩展。经过以上的比较论证,选用方案二来完成项目设计的要求。2.模块方案论证与选择(1)时钟模块方案一:基本门电路搭建用基本门电路来实现时钟发生器,电路结构复杂,故障系数大,不易调试。方案二:专用时钟芯片目前市场上已有很多实时时钟芯片。如DS12887、DS1302、PCF8563、X1227等,芯片内都集成了时钟/日历功能,给时钟系统设计带来很多方便。方案三:由单片机实现倒计时功能单片机内部具有定时器,可方便实现定时功能。通过计算可知,使定时器每25ms产生一次中断,当产生40次中断后秒单元将加一,以此类推,从而实现时、分、秒的走时,并加以显示。经过考虑,本着实用可行的原则,由于AT89C52有内部定时器,完全可以通过C语言变程来实现倒计时功能因此计时功能,定时模块采用方案三来实现。(2)键盘模块方案一:采用独立式按键电路每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。[8]方案二:采用阵列式键盘此类键盘是采用行列扫描方式,当按键较多时可以降低占用单片机的I/O口数目。由于本系统使用用的键盘按键较少,I/O接口线不多,所以采用方案二。(3)显示模块方案一:采用液晶显示。液晶特别是具有汉字显示功能的液晶显示器,来实现显示功能,不仅可以实现基本的显示信息,而且可以显示丰富的符号指示信息以及文字指示信息,信息量丰富且直观易懂。而且液晶显示有功耗低,体积小,重量轻,寿命长,不产生电磁辐射污染等优点。方案二:使用多个数码管显示。LED数码管是利用二极管发光显示数字和字母,具有亮度大、接口设计比较容易,价格相对较便宜等优点。由于本设计不需要显示大的信息量,系统采用方案二。(4)止闹功能方案一:采用声音控制实现非接触止闹功能。此方案的优点是操作方便,但由于声控存在灵敏度的问题,在现场条件差的环境中,外界噪声对正常声音信号带来的干扰,也比较容易引起误动作。方案二:采用光电开关实现非接触止闹功能,因为光电开关利用物体对红外线的反射,可检测到物体的有无,方便有效,人体只需要靠近传感器20CM以内就可产生信号,完成止闹功能。[3]方案三:采用按下止闹按钮实现接触式止闹。一般钟表都具有闹钟功能,定时时间到,便自动启动闹钟,发出铃声、音乐声以提醒人们,再由人按下止闹按钮停止闹钟工作,此方案优点是操作起来很方便。系统的止闹模块设计采本着实用,成本低的原则,采用用方案三实现止闹功能。1.4系统概述利用单片机定时器及计数器产生定时效果通过编程形成倒计时效果,再利用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。系统上电自检后,实时实现分钟、秒信息的显示,通过按键可实现校对时间、倒计时的设定和显示。当设置的定时时间到时,单片机通过蜂鸣器来实现声报警,利用开关实现止闹的功能。第2章系统总体设计本设计主要功能是实现时间的设定、倒计时、报警功能,采用分秒显示,在4位八段LED上显示分和秒。若想设置时间,需复位;用定时器1进行按键扫描,判断是否有键按下,若有键按下,是那个键按下;定时时间到则蜂鸣器发出警报;复位后停止发出警报声音,时间显示为系统初始时间(系统软件设定),按下确认键,系统开始重新倒计时。结构框图如图2-1所示:主控单元主控单元硬件复位电路键盘模块显示模块图2-1系统结构框图蜂鸣器报警2.1模块功能实现与原理(1)主控单元主控单元主要有AT89C2单片机构成,主要利用片内定时器0进行定时,定时器1进行键盘扫描,控制各个模块完成倒计时定时功能。(2)键盘模块键盘模块一共有5个按键,其中按键1和按键5分别设置时间的增减,按键2和按键4分别控制光标的左移和右移,按键3为确认键,按下此键开始倒计时。5个按键分别与p1.0~p1.4口连接,当没有按键按下时这几个口为高电平,当这几个口为低电平时,表示有按键按下。(3)复位电路复位操作是使单片机进入某种确定的初始状态。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。(4)显示模块显示模块主要分为分显示和秒显示两个部分,由四个共阳极八段数码管;四个共阳极八段数码管与P0口连接,公共端分别与四个PNP三极管连接,四个PNP三极管再与P2.0~P2.3连接,当这几个口给低电平时三极管导通数码管点亮。(5)蜂鸣器报警蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻后由单片机的引脚控制,当引脚输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当引脚输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制引脚的电平来使蜂鸣器发出声音和关闭。还可以在程序中改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变引脚输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。[1]2.2计时精度本设计利用MCU的定时器软件计时,计时误差首先取决于MCU的时钟。(1)MCU时钟引起的计时误差MCU的fosc=12MHz,是由石英晶体振荡器产生的,其频率稳定度优于10-6,有时可达10-11。按10-6计算,每秒变化6微秒,100分钟的变化仅为0.036S,故此变化可以忽略。(2)中断响应时间造成的误差计时定时器的初值,是按以下式计算出来的初填值=2n–TINT/Tc式中,2n为计时器的容量,这里是65536;TINT中断(计时溢出)的时间;Tc为机器周期,这里Tc=2us。0.1S中断的初值为15536.由于Tc为整数,此初值是无误差的。但是,由于中断请求到执行中断服务程序的第一条指令是需要几个Tc的时间,即中间响应时间。何况执行第一条指令填入TL1还需要3个Tc,若中断响应时间为3Tc,0.1s内的计时误差6T=12us,100min计时误差为-0.72s,完全满足计时精度要求。[5]第3章硬件及软件设计3.1主控模块本设计的主控模块由AT89C52单片机构成,利用片内定时器通过软件实现控制数码管显示、倒计时等功能。时间设定主要是靠键盘对时间进行设定,键盘主要有四个功能键和一个确定键。分别用于设定时间和确定开始倒计时。定时器的时间主要是依托单片机内部TIME0可编程定时计数器实现时间的准确获取。TIME0是一个通用的单通道8位定时器/计数器模块。其主要特点如下:单通道计数器,比较匹配发生时清除定时器(自动加载),10位的时钟预分频器溢出和比较匹配中断源(TOV0和OCF0)T/C(TCNT0)和输出比较寄存器(OCR0)为8位寄存器。[4]中断请求信号在定时器中断标志寄存器TIFR都有反映。所有中断都可以通过定时器中断屏蔽寄存器TIMSK单独进行屏蔽。T/C可以通过预分频器由内部时钟源驱动,或者是通过T0引脚的外部时钟源来驱动。时钟选择逻辑模块控制使用哪一个时钟源与什么边沿来增加(或降低)T/C的数值,如果没有选择时钟源T/C就不工作。时钟选择模块的输出定义为定时器时钟clkT。双缓冲的输出比较寄存器OCR0一直与T/C的数值进行比较,比较匹配事件还将置位比较标志OCF0。设计中将TIME0作为整个系统的定时器时钟来源,通过TIME0的定时功能实现对定时操作,由于TIME0是八位的定时计数器无法在一次操作中完成1秒的定时。在单片机内部资源的操作中采取重复操作的方式实现一秒的准确定时操作。在系统的测量过程中通过TIME0的操作在过一秒之后初始设定的时间值将自动递减到0,并且通过数码管实现动态显示。3.1.1AT89C52的基本知识AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,如图所示(本设计采用第二种封装形式),以适应不同产品的需求。其主要功能特性:·兼容MCS51指令系统·8k可反复擦写(>1000次)FlashROM·32个双向I/O口·256x8bit内部RAM·3个16位可编程定时/计数器中断·时钟频率0-24MHz·2个串行中断·可编程UART串行通道·2个外部中断源·共6个中断源·2个读写中断口线·3级加密位·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能AT89C52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

3.1.2AT89C52的内部结构AT8C52功能框架图如图3-1所示:图3-1AT8C52功能框架图

AT8C52功能框封装图如图3-2所示:图3-2AT8C52功能框封装图3.1.3AT89C52的引脚功能描述AT89C52引脚名称如表3-1所示:表3-1AT89C52引脚名称引脚标记引脚编号端口类别DIPLCCQEFVss202216IVcc404438IP0.0~P0.739~3243~3637~30I/OP1.0~P1.71~82~94~44I/OP2.0~2.721~2824~311~3,24~31I/OP3.0~P3.710~1711,13~195,7~13I/ORST9104IALE/PROG303327I/OPSEN293236OEA/Vpp313529IXTAL2182014OXTAL1192115I·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表3-2。Flash编程和程序校验期间,P1接收低8位地址。表3-2P1.0和P1.1的第二功能引脚号功能特性P1.0T2(定时计数器2外部计数脉冲输入),时钟输出P1.1T2EX(定时计数2捕获重装载触发和方向控制)P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:表3-3P3口第二功能表此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。·XTAL2:振荡器反相放大器的输出端。时钟振荡器:AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图如下。图3-3振荡电路图外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。3.1.4AT89C52的工作模式AT89C52有两种可用软件编程的省电模式,它们是空闲模式和掉电工作模式。这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的PD(PCON.1)和IDL(PCON.0)位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL是空闲等待方式,当IDL=1,激活空闲工作模式,单片机进入睡眠状态。如需同时进入两种工作模式,即PD和IDL同时为1,则先激活掉电模式。在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内RAM和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随 RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。其二是通过硬件复位也可将空闲工作模式终止。需要注意的是,当由硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。[3]3.1.5AT89C51的内部存储器Flash闪速存储器的编程:AT89C52单片机内部有4k字节的FlashPEROM,这个Flash存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。AT89C52单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的名字节获得该信息.AT89C52的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM程序存储器。写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。编程前,设置好地址、数据及控制信号。编程单元的地址加在P1口和P2口的P2.0-P2.3(11位地址范围为0000H-0FFFH),数据从P0口输入,引脚PSEN为低电平,RST保持高电平,EA/Vpp 引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)。编程时,可采用4-20MHz的时钟振荡器,AT89C52编程方法如下:1.在地址线上加上要编程单元的地址信号。2.在数据线上加上要写入的数据字节。3.激活相应的控制信号。4.在高电压编程方式时,将EA/Vpp端加上+12V编程电压。5.每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。改变编程单元的地址和写入的数据,重复1—5步骤,直到全部文件编程结束。每个字节写入周期是自身定时的,通常约为1.5ms。AT89C52单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需读取最后写入的那个字节,则读出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查询。3.2显示模块本模块的主要功能就是显示倒计时的起始时间,开始倒计时后时间的变化以及显示设定好的时间。基于AT89C52单片机的数码管显示分成了两大块:分钟显示和秒显示。其工作原理由段码线送出待显示的字符,然后通过顺序执行依次选中每一位数码管,同时使显示字符在每一位上停留一段时间,这样便可以看到4个LED的显示,4个计数LED是由P0口控制,由于是共阳极,所以低电平有效。当程序顺序执行到数码管动态显示程序时,便可实现4个LED的动态显示功能。动态显示设计硬件图如下图3-4所示:图3-4显示电路设计原理图LED显示器是有多段发光二极管显示字段的显示器件,有共阳极和共阴极两种,同时也有两种显示方式:静态显示和动态显示。两种方式相比较,静态显示的优点是显示亮度大。在单片机应用系统中使用多位LED显示器时,为节省单片机的I/O口线,多采用动态显示电路。由于本设计中采用的是多位LED显示,故采用动态LED显示。3.3键盘模块键盘设计电路原理图如下图3-5所示:图3-5键盘设计电路原理图(1)键盘作用计算机控制系统中,数据和控制信号的输入主要使用键盘,键盘接口,尤其是键输入信号的软件处理方法是影响系统使用和操作性能的重要因素,键盘接口和软件的任务主要包括以下几个方面:*检测并判断是否有键按下*按键开关的延时消抖功能*计算并确定按键的键值*程序根据计算出的键值进行一系列的处理和执行(2)键盘的选择键盘按结构分为独立式按键行列式,每类按译码方式的不同又分为编码式和非编码式两种,单片机中一般都使用的是用软件来识别和产生键代码的非编码式键盘行列式键盘编码方式有静态和动态两种,静态接口主要由一个行编码器和列编码器构成,动态接口可采用计数器、译码器和数据选择器来构成这两种键盘由硬件完成键的译码任务,一般小型仪器和控制系统中使用较多的是行列式和独立式的非编码键盘,如果系统要求实现多键同时按下的处理则采用非编码独立式较合适。[6]使用矩阵键盘,能减少键盘与单片机接口时所占用的I/O线的数目,总上所述本方案选择非编码式键盘。(3)键盘扫描流程图如图3-6:开始有键闭合延时10ms开始有键闭合延时10ms时否抖动?判断闭合键键号,并保存闭合键释放?返回NYNNY图3-6键盘扫描流程图3.4系统电路3.4.1蜂鸣器报警/提示音电路设计系统为了提示倒计时的完成设计了报警提示电路。主要是在系统进行时间设定时提示正在设置时间,和在倒计时完成时通过蜂鸣器的蜂鸣报警实现提示功能。电路主要有一个蜂鸣器和一个三极管组成。在倒计时完成时通过控制端口P3.0给三极管送入低电平使其导通,实现蜂鸣器报警。蜂鸣器电路设计原理图如下图3-7所示:图3-7蜂鸣器电路设计原理图3.4.2电源电路设计整个系统的工作采用外接5V直流电的方式给系统供电,由于系统用于精密的测量对电源的要求较高。所以在外接5V直流电的同时在系统电源介入口也进行相关的处理,以利于系统本身获得稳定性以及纹波系数较好的电源。电源设计原理图如下图3-8所示:图3-8电源设计原理图3.4.3时钟电路设计时钟电路是数字电路的核心。MCS-51单片机的时钟电路设计通常有两种形式:采用内部振荡方式和采用外部振荡方式。内部振荡方式:MCS-51单片机内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。把这两个引脚与作为反馈元件的晶体或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲。晶体或陶瓷振荡器的频率一般为1.2~12MHz,但需要根据单片机的具体要求而定。两个电容C1和C2的值一般为30PF左右,需要根据晶体或陶瓷谐振荡器的实际情况而定。[7]外部振荡形式:外部振荡形式就是办外部已有的时钟信号(如有源晶体振荡器产生的时钟信号)导入单片机内。本设计采用内部振荡方式,如图3-9所示:图3-9晶振电路设计原理图3.5系统软件框图系统软件流框图如下图3-10所示:图3-10系统软件流框图本系统当中,定时器0负责计时,并且以秒为单位,定时器1负责进行定时扫描,所以当进入系统主函数后,系统不停地进行显示和按键处理,定时和按键扫描则在中断中进行,这样就提高了系统的实时性(消抖再也不用延时了)。3.6编程语言选择编写单片机的软件的时候,应该尽量使用高级语言来编写。使用汇编语言,逐条指令编写,并且手工分配单片机中的内存资源。由于汇编语言的低可读性、低结构逻辑复杂,在一个软件的逻辑关系混乱后,要保证写出来的软件能安全运转是很困难的,所以用用C语言编写。第四章结论4.1总结整个设计所实现的功能非常简单,归结为四个字:定时报警。所谓定时就是实现AT89C52的定时器精确定时到1秒的功能,整个显示部分实现了分显示和秒显示两部分,同时实现了键盘的相关键值功能:按键3为确定启动倒计时的功能键,按键1和按键5实现光标的左移和右移,按键2和按键4实现当前值的增加和减小。实现了硬件复位的功能,同时也实现了蜂鸣器报警的功能,同时在设定定时时间值的时候,实现了当前设定位的闪烁效果,当启动测量以后,也实现了所设定时间值不闪烁的效果,同时也实现了对设定时间值的保存,开始倒计时后,除复位键有效外其它键均无效。最后,当测量结束的时候,按下键盘当中的复位键,实现系统复位,再次倒计时的功能。4.2系统展望随着人们生活水平的提高,人们对倒计时定时器的要求越来越高,有单一的计时功能到发展到现在有多功能倒计时定时器。这些多功能倒计时定时器广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所。利用单片机作为倒计时定时器的控制核心可以做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减少因元器件精度不够引起的误差。设计中了解到倒计时定时器的迅猛发展,它已经普遍应用到人们日常生产和生活之中了。倒计时定时器有很强的发展空间,因此我们有理由相信将来倒计时定时器会与我们的生产和生活更加紧密相连。4.3在本次课程设计中获得的学习体会在本次毕业设计当中,自己深深的明白了理论知识一定要和实践相结合的道理,只有把理论知识贯穿到实践当中,才能真正的学到有用的知识,自己在这次毕业设计中也学到了很多新的知识。致谢这次毕业论文能够得以顺利完成,并非我一人之功劳,是所有指导过我的老师,帮助过我的同学和一直关心支持着我的家人对我的教诲、帮助和鼓励的结果。我要在这里对他们表示深深的谢意!

感谢我的指导老师——XX老师,没有您的悉心指导就没有这篇论文的顺利完成。

感谢我的父母,没有你们,就没有我的今天,你们的支持与鼓励,永远是支撑我前进的最大动力。

感谢身边所有的朋友与同学,谢谢你们四年来的关照与宽容,与你们一起走过的缤纷时代,将会是我一生最珍贵的回忆。参考文献[1]曹巧媛.单片机原理及应用[M].:电子工业出版社.1997.7.[2]沈卫红.单片机应用系统设计实例与分析[M].北京航空航天大学出版社.2003.1.[3]杨振江等.流行单片机子程序及应用实例[M].西安电子科技大学出版社.2002.7.[4]付家才.单片机控制工程实践技术[M].北京:化学工业出版社,2004[5]孙育才,王荣兴,孙化芳.新型AT89S52系列单片机及其应用[M].北京:清华大学出,2005[6]朱定华.单片机原理及接口技术实验[M].北京:北方交通大学出版社,2002[7]张鑫,华臻,陈书谦.单片机原理及应用[M].北京:电子工业出版社,2005[8]何立民.MCS—51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1999[9]陈小忠,黄宁,赵小侠编著.单片机接口技术实用子程序[M].北京:人民邮政出版社,2005[10]ChenSteveStanleyDamster.VariableAirVolumeSystemforEnvironmentQuality[M],Mcgraw-HillCompany.1996.[11]DallasSemiconductorDataEtook[M].DallasSemiconductorCorp,.2000.[12]QuickGuildto1-WireNetUsingPCsandMicrocontrollers[M].ApplicationNote132.DallasSemiconductorcorp.1999.附录1倒计时定时器原理图:附录2源程序:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharmin=9;//分钟记时ucharsec=59;//秒钟计时uintk_delay=0;ucharkey;uintmid=0;uchartime[5];ucharrocket=0;ucharbuff[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x00};sbitbell=P3^0;voidk_scan(void);voidTime_0Init();voidTimeView();voidTime_1Init();voidDealKey(void);voidDelay();voidmain(){bell=1;Time_0Init();Time_1Init(); while(1){TimeView();DealKey();if(sec==0&&min==0) { TR0=0; bell=0; } }}voidTime_0Init(){TMOD=0x22;TH

温馨提示

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

评论

0/150

提交评论