【毕业设计】基于at89c52单片机的多动能秒表设计_第1页
【毕业设计】基于at89c52单片机的多动能秒表设计_第2页
【毕业设计】基于at89c52单片机的多动能秒表设计_第3页
【毕业设计】基于at89c52单片机的多动能秒表设计_第4页
【毕业设计】基于at89c52单片机的多动能秒表设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

基于AT89C52单片机的秒表设计摘要随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测技术不断更新。单片机是指集成在一个芯片上的微型计算机,主要包括CPU、随机存储器、只读存储器、基本输入/输出接口电路、定时器/计数器等部件。本设计的数字电子秒表系统采用AT89C52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现四位LED显示,设计具有计时和倒计时功能的电子秒表。关键词单片机LED数码显示器AT89C52秒表1绪论单片机自问世以来,性能不断提高和完善,而且具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此在工业控制、智能仪表、数据采集和处理、通信系统、网络系统、汽车工业、国防工业、家用电器等领域的应用日益广泛,并且正逐步取代现有的多片微机应用系统,单片机的潜力越来越被人们所重视1。进入21世纪,随着信息产业的高速发展,秒表的用途越来越广泛。数字秒表是电器制造、电力、工业自动化控制、国防、实验室及科研单位理想的计时仪器,同时还用于军事,医疗,商务等领域,发展及应用前景广泛。目前已经有很多种类的数字秒表应用于各个行业了,它们大多是指针式或集成电路型的,但是结构相对复杂、测试功能单一2。鉴于目前的情况,我们提出了以单片机作为控制核心,添加必要的外围电路的价格低廉、走时精确、使用方便的秒表系统。随着信息产业的高速发展,数显电子秒表用途不断增多而且越来越重要,它同时也在增加功能及性能改进。一种崭新的、采用硬件描述语言的硬件电路设计方法已经兴起,硬件描述语言是电子设计自动化EDA领域的一次重大变革在电子计算机发展过程中,微型计算机是一个重要分支。其中单片微型计算机SINGLECHIPMICROCOMPUTER的应用更带来了秒表设计领域新的革命。德国和奥地利科学家便通过对单片机的研制出一种超高精确度秒表,能测出比01飞秒即11016S还短的时间。这种高精确度秒表是由德国比勒菲尔德大学和奥地利维也纳工业大学的研究人员组成的研究小组研制成功的3。综上所述,秒表经历了机械设计、基于集成电路的设计、基于EDA的设计、基于单片机的设计的发展及现如今的一些出于特殊用途的超高精度秒表,每个发展阶段都符合其时代的要求,但是随着科技的发展,数显电子秒表在向着高精度,高稳定性,体积小,重量轻便于携带趋势发展。基于单片机的定时与控制装置在诸多行业都有广泛的应用,本文以AT89C52为主控制芯片,应用LED显示器设计电子秒表,其主要功能有单计时、连续记8个的计时、设定初值的倒计时。本文是一个单片机的最小系统设计,对于各种复杂系统的开发,具有一定的指导作用。2系统功能概述毕业设计总体方案是以AT89C52单片机作为控制核心,设计具有计时、倒计时等功能的电子秒表。一个完整的电子秒表电路就是一个单片机的最小系统,主要由键盘输入电路、单片机、晶振、复位电路和LED显示电路构成。本毕业设计中电子秒表可以实现以下的功能(1)用开关控制两种计时模式的选择。分别是单计时模式和连续计8个的计时模式。(2)用开关控制电子秒表的启动、停止、复位,七段数码管的高2位显示秒表的秒值,低2位显示秒表的百分秒值。(3)可实现设定初值的倒计时功能。其中涉及了三种初值调整方式,分别是增1(减1、连续增(连续减)和快速增(快速减)。3系统硬件设计31电路元件及其功能介绍根据设计的方案,选取了单片机AT89C52,用于显示秒表数值的LED1LED4,以及用于显示电路工作状态的LED5LED6,驱动数码管的三极管SS9012以及必要的按键开关及其他元件。311AT89C52单片机的介绍集成在一个芯片上的微型计算机即为单片机,也就是把组成微型计算机的各种功能部件,像CPU、只读存储器ROM(READONLYMEMORY)、随机存储器RAM(RANDOMACCESSMEMORY)、基本输入/输出接口电路、定时器/计数器等部件集成在一块芯片上,构成一个较为完整的微型计算机,从而实现一些微型计算机所具有的功能4。在微型单片机选择上,我们应该考虑存储器容量,时钟频率,I/O口线等基本参数。对于本设计,由于电子秒表系统在数据的处理和存储方面要求不高,所以选取片内带RAM和ROM的单片机即可,在本设计中选取的是ATMEL公司的AT89C52单片机。AT89C52是一个低电压,高性能CMOS8位单片机5,片内含8KBYTES的可反复擦写的FLASH只读程序存储器和256BYTES的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器和FLASH存储单元,AT89C52单片机在电子行业中有着广泛的应用6。AT89C52具有很多优异的功能,具体的功能及特点如下1兼容MCS51指令系统;28KB可反复擦写大于1000次)FLASHROM;332个双向I/O口;4256BYTE内部RAM;53个16位可编程定时/计数器中断7;6时钟频率024MHZ;72个外部中断源,共8个中断源;82个读写中断口线,3级加密位;9低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;10有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求8。另外,在AT89C52片内存储器中,80HFFH共128个单元为特殊功能寄存器(SFR)。并非所有的地址都被定义,从80HFFH共128个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。AT89C52除了有单片机AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。定时/计数器2的控制和状态位位于T2CONT2MOD,寄存器对(RCAO2H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获或自动重装载寄存器9。AT89C52单片机的内部结构与MCS51系列单片机的构成基本相同。CPU是由运算器和控制器所构成的。运算器主要用来对操作数进行算术、逻辑运算和位操作的。控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。AT89C52单片机的指令系统和引脚功能与MCS51的完全兼容10。AT89C52的引脚排列如图31所示。图31AT89C52引脚排列图312LED显示器概述如32图所示为七段LED数码管的原理图,通过该图可以很容易的看出共阳极和共阴极的七段LED管的工作原理的不同点。对于共阴极的数码管,所有发光二极管的阴极共连后接地,而阳极引出脚用于控制LED是否发亮。若阳极引出脚接地,则LED被熄灭;若阳极引脚接高电平,则LED被点亮。图32LED原理图共阳极的LED正好相反,所有发光二极管的阳极共连后接高电平,而阳极引出脚用于控制LED是否点亮。若阴极引脚接高电平,则LED被熄灭;反之,则LED被点亮。单片机对LED管的显示可以分为静态和动态两种11。静态显示的特点是各LED管能同时稳定地显示各自字符;动态显示是指各LED轮流一遍一遍显示各自字符,但由于显示的切换较快,在人的视觉看来是各LED管同时显示不同字符。下面介绍LED的接口方法与电路(1)LED数码显示的接口方法单片机与LED数码显示器有以硬件为主和以软件为主的两种接口方法。以硬件为主接口方法,这种接口方法的电路如33图所示。图33LED接口方法电路图(2)LED数码显示器的接口电路单片机实际使用的LED数码显示器位数较多。为降低成本,大部分以软件为主的接口方法对于多位LED数码管显示器,通常采用动态扫描显示方法,即逐个循环点亮各位显示器。这样虽然在任一时期只有一位显示器被点亮,但是由于人眼有视觉残留效应,看起来与全部显示持续点亮的效果基本一样(在亮度上要有差别)。此外,单片机一般对LED的驱动效果有限,LED一般还需要外围的驱动才能更好的发挥其显示效果。LED显示是单片机控制产品中常见的应用。使用LED模块,这种模块中带有LED显示管和LED驱动电路,用起来较方便。一般用户直接采用单片机LED驱动器LED显示管的方式,一种经常使用的LED驱动器8550,它作为共阳数码管的驱动器,而共阴数码管的驱动器则是A1015,它们都是三极管12。32系统电路设计321复位电路复位电路在单片机系统中是必不可少的。所谓的复位就是讲单片机重新启动,这是单片机内部的都有寄存器都回到初始状态13。对于AT89C52单片机来说,它是高电平复位,也就是说只要将单片机的RESET引脚接高电平并保持一定的时间就可以实现单片机的复位(而对于一些低电平复位的单片机来说就刚好相反,要使其RESET引脚置为低电平并保持一定时间以实现单片机的复位)。本设计电路中对应的复位电路如图34所示。单片机驱动器LED数码管图34复位电路图从上面的电路可以看出实现的是上电复位和按键复位两个复位功能。上电的一瞬间,单片机的RESET引脚接到高电平,同时电容C1开始充电,经过一定的时间后电容充电饱和,10K的下拉电阻把RESET引脚拉回到低电平状态,实现了单片机的复位。同样道理,在单片机工作的时候按下复位按钮,单片机的RESET引脚接到高电平,电容C1马上放电完毕;松开该按钮后电容C1开始充电,经过一定的时间后电容充电饱和,10K的下拉电阻把RESET引脚拉回到低电平状态,实现了单片机的复位。322晶振电路图35晶振电路图单片机最小系统晶振也可以采用6MHZ或者110592MHZ,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快14。单片机最小系统起振电容C2、C3一般采用1533PF,并且电容离晶振越近越好,晶振离单片机越近越好。单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显电路将无法通信。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的晶振精度会更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器15(VCO)。在此系统中,主板时钟芯片即分频器的原始工作振荡频率,由石英晶体多谐振荡器的谐振频率来产生,晶振其实是一个频率产生器,他主要把传进去的电压转化为频率信号。提供给分频率一个基准的振荡频率,它是一个多谐振荡器的正回馈环电路,也就是说它把输入作为输出,把输出作为输入的回馈频率,象这样一个永无休止的循环自激过程,从而为秒表系统提供一个稳定的时钟频率。323数码管显示部分图36数码管连接电路图如36图所示,LED1LED4数码管与AT89C52的P10P17连接,当系统工作时,单片机里面的程序按指定运行,单片机会向引脚P10P17传送数码管的段位码,LED上的各个段位对应的发光二极管则根据传输过来的编码点亮或断电熄灭,从而显示的便是09各个数字。各个数码管的显示并不是同时点亮或熄灭的,而是通过对不同数码管在不同时间段的控制来实现,而由于系统执行的快速性,系统执行时会给人们一定的视觉暂留。所以,同一时刻,人眼看到的便是几个数码管共同显示。下面的三极管则作为数码管的驱动,从单片机内部传输来的指令信号来决定LED1LED4各个数码管相应的显示或明亮变化。基于此,数码管实现了秒表数据的显示。324按键部分电路电路通过对K1、K2、K3等按键的闭合,来实现电路的切换和智能控制。具体的按键部分电路如37所示。图37按键部分电路图各个按键的功能如下按键K1在正常情况下,用于控制单一计时模式下秒表的启动、停止。在倒计时初值设定的情况下为倒计时初值的增加按键,按一下K1,倒计时初值增加1;按住K1不放,倒计时初值连续增加;快速连按两下K1然后不放,则倒计时初值快速增加,增加的速度是连续增加的10倍。按键K2在正常情况下,用于倒计时初值减少功能的启动、停止。在倒计时初值设定的情况下为倒计时初值的减少按键,按一下K2,倒计时初值减少1;按住K2不放,倒计时初值连续减少;快速连按两下K2然后不放,则倒计时初值快速减少,减少的速度是连续减少的10倍。按键K3用于秒表的功能的选择,在默认的情况下,为秒表的计时准备模式;按下K3后秒表进入倒计时的状态,这是通过按键K1和K2可以进行倒计时初值的调整,再按下K3则进入倒计时。325I/O口线连接P10P17与数码管的各个位相连,用于传送数码管的段位码。P30P33与数码管LED1LED4相连,通过单片机的P30P33可以控制LED的显示。P21和按钮K1相连,用于决定单一计时模式下的秒表启动、停止和倒计时初值的增加。P20和按钮K2相连,用于决定连续计8个的计时模式下秒表启动、停止和倒计时初值的减少。P22和按钮K3相连,用于单片机工作模式的选择。P26和LED6相连,用于显示单片机的工作状态。P27和LED5相连,用于显示单片机的工作状态。326系统总体电路单片机电子秒表的原理图如图38所示。图38电子秒表原理图电路组建完成之后,向单片机内传输要执行的功能程序代码,系统上电之后,晶振电路部分为系统工作提供必须的时钟频率,系统在代码的执行下对LED数码管传输相应的段位码,控制LED的显示。LED5LED6则作为状态指示灯根据单片机的状态显示计时和倒计时两种工作状态来做出相应的明亮变化在准备计时时LED5亮,LED6熄灭;在准备倒计时的时候LED5熄灭,LED6亮。在系统按键的相应作用下,K1实现倒计时初值的增加,K2实现倒计时初值的减少,K3则实现计时与倒计时两种状态的切换。而复位电路则通过按键的作用,实现系统的默认设置,对电路起到复位的作用。通过对各个LED数码管的显示与中断控制,各部分电路相互的作用运行,达到显示秒表运行的目的。4系统软件设计系统硬件设计好之后,接下来就要进行软件设计。电子秒表的软件设计主要有三个方面第一是利用定时器来完成秒表的定时周期;第二是利用定时中断来实现键盘的扫描,确定单片机的工作状态;第三是利用单片机控制LED的输出显示。41程序功能及主要变量的说明411程序功能电子秒表程序主要完成如下功能(1)两种计时模式的启动、停止、复位功能的秒表。(2)可设定初值的倒计时定时器。412主要变量说明程序中用到的关键变量说明如表41和表42所示。表41主要变量定义变量说明M整型变量,用于存储要显示的数MS字符型变量,用于10MS的累加LED1LED4整型变量,用于存储要显示的各个位的数字START位变量,用于控制秒表单一计时模式的计时开始STOP位变量,用于控制秒表单一计时模式的计时停止EIGHT_START位变量,用于控制秒表连续计时8次模式的计时开始EIGHT_STOP位变量,用于控制秒表连续计时8次模式的计时停止COUNT_DOWN位变量,用于控制倒计时开始SCANKEY位变量,用于控制键盘扫描CHEAK位变量,按键的消抖标志位KEYDOWN位变量,K1的按下标志位K2_KEYDOWN位变量,K2的按下标志位表42主要变量定义42程序流程图主程序完成的工作是检测各个标志位的状态,以确定单片机的工作情况。键盘查询和数据显示的部分在定时中段服务子程序中完成。由于程序较大,所以将程序的各个功能模块的流程图分别给出。421计时功能流程图图41计时功能流程图K3_KEYDOWN位变量,K3的按下标志位K3_KEYUP位变量,K3的弹起标志MM字符型变量,用于02秒的累加ADD位变量,倒计时初值加1标志位SUB位变量,位变量,倒计时初值减1标志位BIT_ADD1位变量,K1完成一次按键动作的标志位BIT_SUB位变量,K1完成一次按键动作的标志位FAST_ADD位变量,倒计时初值连续增标志位DOUBLE_KEY位变量,倒计时初值快速增标志位FAST_SUB位变量,倒计时初值连续减标志位DOUBLE_SUB位变量,倒计时初值连续减标志位TAB8整型变量,存储连续计时8次模式的8的时间值422倒计时初值设定流程图图42倒计时初值增加流程图图43倒计时初值减少流程图423倒计时功能流程图图44倒计时开始流程图43主要程序代码全部的程序包括了头文件、变量的定义、主程序及各子程序。本部分对设计中的主要程序单独说明。(1)主程序在主程序中需要完成以下的功能首先调用初始化函数对各个变量进行初始化,再对定时器的定时初值进行设定,接着根据各个标志位的值来判断单片机的工作模式及工作状态。键盘扫描由SCAN()来完成,各个位的数值的计算由ADD1()完成。VOIDMAINVOIDBEGIN1/调用初始化函数TMOD0X01TL00X18TH00XFCEA1ET01TR01FORIFSCANKEY1/进行键盘扫描SCANKEYOSCANIFDOUBLE_KEY1/倒计时初值快速增加P2_60P2_71MM10ADD1MIFFAST_ADD1/倒计时初值连续增加P2_60P2_71MADD1MBIT_ADD10IFADD1/倒计时初值增加1P2_60P2_71ADD0MADD1MIFDOUBLE_SUB1/倒计时初值快速减少P2_60P2_71MM10ADD1MIFFAST_SUB1/倒计时初值连续减少P2_60P2_71MADD1MBIT_SUB0IFSUB1/倒计时初值减少1P2_60P2_71SUB0MADD1MIFSTART1/计时开始IFMM0P2_7P2_7P2_61MIFMM6000M0ADD1MIFSTOP1START0/计时停止IFCOUNT_DOWN1/倒计时开始IFM0MP2_71IFMM0P2_6P2_6(2)定时器中断子程序这里的秒表的计时、键盘的扫描及数值显示灯都是利用定时中断来完成的。定时的时间设为1MS,用于数值显示;同时利用累加的方法实现10MS和200MS的定时,用于键盘的扫描及控制显示灯的闪烁。VOIDTIME0VOIDTL00X18TH00XFCMSIFMS10MS0MMIFMM20MM0SCANKEY1DISPLAY(3)显示子程序显示子程序其实包括了DISPLAY和ADD1TIME两个子程序。ADD1TIME是用来计算数码管各个位要显示的数值的子程序,DISPLAY是查段位码表及进行动态扫描的子程序。VOIDADD1TIMEUINTTIMEUINTN,AATIME/1000LED1A/计算十秒位数值NTIMELED2N/100/计算秒位数值NN100LED3N/10/计算十分一秒位数值LED4N10/计算百分一秒位数值VOIDDISPLAYVOIDSWITCHMS4CASEOP30XFEP1TABLELED4P1_71BREAKCASE1P30XFDP1TABLELED3P1_71BREAKCASE2P30XFBP1TABLELED2P1_71BREAKCASEOP30XF7P1TABLELED1P1_71BREAKDEFAULTRETURN5结论本次毕业设计的任务是以单片机AT89C52作为控制核心,设计电子秒表,使其具有计时、倒计时功能。通过我几个月的努力,本次毕业设计取得了较好的成果,基本上达到了本次毕业设计任务书的要求。初步实现了具有计时、倒计时功能的电子秒表设计。虽然还有一些欠缺的地方,但是总体来说这次的毕业设计还是很成功的。这次毕业设计让我收获很大,学到很多将来一定能用到的知识,设计、定时器应用、LED应用等。更重要的是,我学会了软硬件开发的思想。在这次设计中给我感受最深的就是我们应该加强同学与老师之间的相互合作与配合,老师在其中起着很大作用,他时刻地洞察着你的进展情况,关键时候给你指明了方向,让你向着他理想的目标前进。同时,我们作为学生要能理解老师的一番苦意,我们要有进取心,持之以恒的精神,遇到困难不能气馁,只有这样才能让指导老师看到成功的希望。我相信,在以后的工作学习中,我会更加努力,全身心地投入社会,做出我理想的成绩参考文献1郑毛祥单片机应用基础人民邮电出版社,2006621422戢卫平,胡耀辉,朱朝华等主编单片机系统开发实例经典M北京冶金工业出版社,200629473桑胜举,沈丁主编单片机原理及应用M北京中国铁道出版社,20101324宋浩主编单片机原理及应用M北京清华大学出版社,20051031495李叶紫等主编MCS51单片机应用教程M北京清华大学出版社,200422456高伟主编AT89单片机原理及应用M北京国防工业出版社,2008321177KAIE,SAWATAS,LKEBUKUROKETALDETECTIONOFPCRPRODUCTINSOLUTIONUSINGSURFACEPLASMONRESONANCEANALYTICALELCTRICAL1999717968008VERGHESEGC,LANGH,CASEYLFANALYSISOFINSTABILITYINELECTRICALMACHINESIEEETRANSONIA,1986,228538649赵德安等主编单片机原理与应用M北京机械工业出版社,200517910童诗白,华成英主编模拟电子技术基础M北京高等教育出版社,200937911叶挺秀,张伯尧电工电子学高等教育出版社2004258012许日滨,李潼主编汇编语言程序设计M北京人民邮电出版社,20001516913王质朴等主编单片机原理接口及应用M北京北京理工大学出版社,20097012814谭浩强主编C程序设计M北京清华大学出版,20086921415朱民雄计算机语言技术M北京航空航天大学出版社,20021103105STOPWATCHDESIGNBASEDONSCMGAOSHANGCHAOCOLLEGEOFPHYSICSANDELECTRONICINFORMATION,DEZHOUUNIVERSITY,DEZHOU,253023ABSTRACTWITHCOMPUTERPENETRATIONINTHESOCIALSPHERE,SCMAPPLICATIONSARECONSTANTLYDEEPENING,ANDPROMOTETHETRADITIONALCONTROLDETECTIONTECHNOLOGYUPDATESINGLECHIPISIN

温馨提示

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

评论

0/150

提交评论