基于.-单片机的24秒倒计时_第1页
基于.-单片机的24秒倒计时_第2页
基于.-单片机的24秒倒计时_第3页
基于.-单片机的24秒倒计时_第4页
基于.-单片机的24秒倒计时_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

...wd......wd......wd...课程设计题目:基于单片机的24秒倒计时院〔系〕:*************专业:********学生姓名:*******学号:***********指导教师:******职称:******2012年12月1日目录摘要2前言3Abstract4第一章原理设计51.1设计要求51.2AT89C51芯片61.3管脚说明8第二章系统总体方案的设计92.1硬件电路的设计92.2时钟频率电路的设计102.3复位电路的设计102.4显示电路的设计112.5按键电路的设计12第三章系统软件的设计133.1定时中断的程序设计133.2独立键盘服务程序的设计133.3报警程序的设计143.4显示子程序的设计143.5系统软件的调试14第四章AltiumDesigner原理图绘制14第五章KeiluVision3软件编译15总结16参考文献17程序源代码:18摘要近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件构造,以及针对具体应用对象特点的软件结合,以作完善。模拟多通道压力系统是利用压力传感器采集当前压力并放映在显示器上,它可以分析压力过量程,并发出报警。并采用电子秤原理可根据输入单价准确的计算出物体的金额。本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低本钱,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进展译码。【关键词】单片机;AT89C51;LED数码管显示器;keilC;晶体振荡器前言高速开展的计算机技术带着人类进入了信息社会,同时也促进了倒计时器的迅速开展。在电子技术飞速开展的今天,单片机的应用正在不断地走向深入。单片机技术在自动控制领域有着十分广泛的应用,如汽车、航空、、、视频等。很多行业涉及到自动控制的情况下涉及到单片机技术。电子产品的人性化和智能化已经非常成熟,单片机就是一个微型中央处理器,通过编程即能完成很多智能化的工作,因此它的出现给电子技术智能化和微型化起到了很大的推动作用。随着人们生活水平的提高,社会经济的开展,人们开场注重身体素质的提高。臂如举办篮球比赛需要有一个专门计时的工具。因此有必要设计适合篮球比赛计时器。本次设计的目的和意义在于根本掌握常用电子电路的一般设计方法,提高和培养在电子电路方面的设计和实验能力,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,学会运用理论来分析和解决实际问题,提高实际工作的能力,为今后能够独立进展某些单片机应用系统的开发设计工作打下一定的根基。AbstractPermeateinthesocialrealmalongwiththecalculatorinrecentyears,singleslicetheapplicationofthemachinejustatconstantlyalignmentthorough,arouseatraditionalcontrolanexaminationadayanewmoonbenefitrenewalinthemeantime.Insolidlythehourtheexaminationthesingleslicethatcontrolswithautothemachinetheapplicationthesystem,slicemachineusuallyBeacorepartstouse,onlysingleslicethemachineaspectknowledgeisnotenough,returnshouldaccordingtoconcretethehardwarestructure,andaimatconcrereapplicationthesofwatreoftheobjectcharacteristicscombinetomakeperfect.Imitatingmanypassagepressuresystemsesistomakeuseofpresuretospreadthefeelingmachinetocollectcurrentpressurecombinethereflectionisontnedisplay,itcananalyzethepressuresurfeitdistance,eruptingtoreporttothepolice.Combinetheadoptionelectronicssteelyardprinciplecanaccordingtoinputtheamountofmoneythattheunitpricecompuresanobjectaccurately.Thisthesisdiscussthatpourthedesignandcreationofthetimerinbrief,forpourLEDfiguresdisplaysinthetimertosay,Ianforthesakeofthesimpificationcircuit,declinelowcost,adopttotakesoftwareasconnectoflordapeople’smethdo,donotusespecializedhardwatetotranslatethecodemachinenamely,butadoptthesoftwareproceduretocarryontranslatingcode.【Keyword】singleslicemachine,AT89C51,TheLEDfiguretubedisplay,KeilC,CrystalOscillactor第一章原理设计1.1设计要求〔1〕学习单片机应用系统的根本构成,掌握其根本设计方法。〔2〕利用AltiumDesignerSummer08和KeiluVision3软件编译。〔3〕要求计数范围0-24秒。〔4〕采用2位LED显示计数值。〔5〕用按钮开关控制计时器的启动/暂停,K1复位24秒,K2清零显示00,K3控制停顿,K4控制开场,K5单片机复位;当数码管显示00时蜂鸣器发出报警声。1.2AT89C51芯片AT89C51是一种带4K字节闪烁可编程可擦除只读存储器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的低电压,高性能CMOS8位微处理器,俗称单片机。图1AT89C51单片机的内部构造CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两局部电路组成。a.运算器电路运算器电路包括ALU〔算术逻辑单元〕、ACC〔累加器〕、B存放器、状态存放器、暂存器1和暂存器2等部件,运算器的功能是进展算术运算和逻辑运算。b.控制器电路控制器电路包括程序计数器PC、PC加1存放器、指令存放器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各局部正常工作。c.定时器/计数器MCS-51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。d.存储器MCS-51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理构造也不一样。e.并行I/O口MCS-52单片机共有4个8位的I/O口〔P0、P1、P2和P3〕,每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。f.串行I/O口MCS-51单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。g.中断控制系统8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。h.时钟电路MCS-51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz~12MHz,典型取值为6MHz。i.总线以上所有组成局部都是通过总线连接起来,从而构成一个完整的单片机。系统的地址信号、数据信号和控制信号都是通过总线传送的,总线构造减少了单片机的连线和引脚,提高了集成度和可靠性。选用单片机的构造:1一个8位算术逻辑单元232个I/O口4组8位端口可单独寻址3两个16位定时计数器4全双工串行通信56个中断源两个中断优先级6128字节内置RAM7独立的64K字节可寻址数据和代码区每个8051处理周期包括12个振荡周期每12个振荡周期用来完成一项操作如取指令和计算指令执行时间可把时钟频率除以12取倒数然后指令执行所须的周期数因此如果你的系统时钟是11.059MHz除以12后就得到了每秒执行的指令个数为921583条指令取倒数将得到每条指令所须的时间1.085ms。1.3管脚说明图2AT89C51管脚图〔1〕VCC:供电电压。〔2〕GND:接地。〔3〕P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须被拉高。〔4〕P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。〔5〕P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1〞时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进展存取时,P2口输出地址的高八位。在给出地址“1〞时,它利用内部上拉优势,当对外部八位地址数据存储器进展读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。〔6〕P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1〞后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流〔ILL〕这是由于上拉的缘故。〔7〕RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。〔8〕ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想制止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE制止,置位无效。〔9〕/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。〔10〕/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器〔0000H-FFFFH〕,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源〔VPP〕。〔11〕XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。〔12〕XTAL2:来自反向振荡器的输出。第二章系统总体方案的设计2.1硬件电路的设计本设计分为硬件设计和软件设计,这两者相互结合,不可别离;从时间上看,硬件设计的绝大局部工作量是在最初阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大返工时比拟少的,软件设计的任务贯彻始终,到中后期根本上都是软件设计任务,随着集成电路技术的飞速开展,各种功能很强的芯片不断出现,是硬件电路的集成度越来越高,硬件设计的工作量在整个工程中所占的比重逐渐下降。为使应硬件电路设计尽可能合理,应注意以下几个方面:〔1〕尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替假设干普通芯片,随着生产工艺的提高,新型芯片的价格不断下降,并不一定比假设干普通芯片的价格总和高。〔2〕留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小修改或扩展而被迫进展全面返工。〔3〕程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。〔4〕RAM空间,AT89C51内部RAM不多,当要增强软件数据处理功能时,往往觉得缺乏。如果系统配置了外部RAM,则建议多留一些空间。随着软件设计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以是系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级足够的RAM空间,哪怕多设计一个RAM得插座,暂不插芯片也好。〔5〕I/O端口;在样机研制出来进展现场使用时,往往会发现一些被无视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端:有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,但是需要用的时候就派上用场了。2.2时钟频率电路的设计时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如以下列图:图3外部震荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进展微调。C1、C2的典型值为20pf。单片机在工作时,有内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,用f表示。图中的时钟频率为12MHz,即f=12MHz,则时钟周期为1/12us。2.3复位电路的设计复位是单片机的初始化操作,只需给8051的复位引脚RST加上大于2个机器周期〔即24个时钟振荡周期〕的高电平就可得8051复位,复位时,PC初始化为0000H,使8051从OUT单元开场执行程序。除了进入系统的正常初始化之外由于程序运行出错或操作错误而使系统处于死锁状态,为摆脱死锁状态,也需按复位键使得RST脚为高电平,使8051重新启动。在系统中,有时会出现显示不正常,也为了调试方便,我们需要设计一个复位电路,在系统中,复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。复位电路可由简单的RC电路构成,也可使用其它的相对复杂,但功能更完善的电路。本系统采用的电路如图4所示。工作原理是:上电瞬间,RC电路充电,RESET引脚端出现正脉冲,只要RESET保持10ms以上高电平,就能使单片机有效的复位。当时钟频率选用6MHz时,C取22μF,R取1KΩ。其电路图如以下列图:图4复位电路上电自动复位电路由上电瞬间C与R构成充电电路,RESET端的电位与Vcc一样,随着充电电流的减少,RESET的电位逐渐下降。图中RC时间常数越大,上电时RESET端保持高电平的时间越长,图中这组参数足以保证复位操作。假设复位电路失效,加电后CPU从一个随机的状态开场工作,系统就不能正常运行。值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知存放器及存储器的值都恢复到了初始值,而前面的功能介绍中提到的倒计时时间的记忆功能。2.4显示电路的设计显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,另一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。:图5共阴极数码管2.5按键电路的设计根据按键的设定,按键一的功能是显示24秒复位;按键二的功能是清零显示00;按键三的功能是停顿;按键四的功能是开场。图按键原理图第三章系统软件的设计3.1定时中断的程序设计开场开场保护现场保护现场重置计数初值重置计数初值否否中断中断是是数据送显示缓冲单元数据送显示缓冲单元调用显示子程序调用显示子程序恢复现场恢复现场并中断返回定时中断服务程序3.2独立键盘服务程序的设计键盘有功能按键和直接查询按键,功能按键需要子程序不断的调用,并在主程序中循环检测,直接按键通过中断服务方式,判断相应的数据进展相应的调整。3.3报警程序的设计蜂鸣器的控制口接在P3.7口,当单片机给P3.7口,蜂鸣器就会发出报警声。3.4显示子程序的设计显示程序时通过查询数组的方式,进展动态扫描,给P0口段码和送位码。3.5系统软件的调试显示局部是采用三极管驱动七段LED数码管,采用+5V直流稳压电源进展供电。我使用的是锐志仿真开发系统。电脑里安装上了仿真软件后,把8951的仿真头接至电路板上,把仿真器RS-232口与电脑的RS232口连接。就可以进展仿真了。第四章AltiumDesigner原理图绘制原理图的绘制如以下列图所示,在AltiumDesigner软件下根据以下列图绘制出原理图:图6系统原理图图中U1为单片机AT89C51,C1、C2,C3为1nF的电容,X1为12MHz的晶体振荡器,K1,K2,K3为按钮开关,AT89C51的P0口接两个七段数码管,P3口分别接K1,K2,K3,K4,K5,分别控制数码显示管,24秒复位、清零显示00、停顿、开场、复位。图7硬件PCB幅员第五章KeiluVision3软件编译用到了KeilC软件,集成调试环境,集成了编辑器、译码器、调试器,支持软件模拟,支持工程管理功能强大的观察窗口,支持所有的数据类型。树状构造显示,一目了然,支持ASM〔汇编〕、C语言多模块源程序混合调试,在直接修改、编译、调试源程序,错误指令定位。功能很强大,用于对程序的调试和编辑。其界面如下:图8程序仿真图9程序编译总结在设计制作24秒倒计时器的过程中,我深切体会到,实践是理论运用的最好检验。本次设计是对我两年所学知识的一次综合性检测和考验,无论是动手能力还是理论知识运用能力都得到了提高,同时加深了我对网络资源认识,大大提高了查阅资料的能力和效率,使我们有充足的时间投入到电路设计当中。本系统的研制主要应用到了模拟电子技术、数字电子技术、单片机控制技术、电子工艺等多方面的知识。在硬件调试过程中,我也学会不少的东西,掌握一些调试方法。在设计仿真图和编些程序中,对AltiumDesignerSummer08和Keil等软件掌握的更加结实,能够熟练的运用。所设计的基于单片机的24秒倒篮球计时器,到达了应用要求。在数据测试和调试方面,由于仪表存在误差和电路器件因工作时间过长温度升高而产生的误差,使得测量数据不是很准确,本系统就此通过软件设计,减少误差的存在,使计时误差范围减小到1ms以内,大大提高了系统的精度,与理论计算吻合。在误差方面,误差还可进一步减小,元件可采用精细的;可采用精细仪器进展测试。参考文献【1】肖洪兵.跟我学用单片机.北京:北京航空航天大学出版社,2002.8【2】何立民.单片机高级教程.第1版.北京:北京航空航天大学出版社,2001【3】赵晓安.MCS-51单片机原理及应用.天津:天津大学出版社,2001.3【4】李广第.单片机根基.第1版.北京:北京航空航天大学出版社,1999【5】徐惠民、安德宁.单片微型计算机原理接口与应用.第1版.北京:北京邮电大学出版社,1996【6】何立民.从Cygnal80C51F【7】夏继强.单片机实验与实践教程.北京:北京航空航天大学出版社,2001【8】陈志强胡辉.单片机应用系统设计实践指南.自编教材【9】胡学海.单片机原理及应用系统设计[M].北京:北京电子工业出版社,2005年.程序源代码:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitkey1=P3^0; //按键sbitkey2=P3^1; //按键sbitkey3=P3^2; //按键sbitkey4=P1^6; //按键sbitbeep=P3^7; //按键voiddelay(uintz); //延时函数voidinit(); //程序初始化voidxianshi(uintnum); //显示函数uintaa,num=24,shi,ge,temp=0;ucharcodetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//定义数码管显示数字ucharcodetable1[10]={0x3F,0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//定义数码管显示数字voidmain() //主函数{ init();while(!temp) { xianshi(num); if(!key4)//按键复位,显示24. { delay(10); if(!key4) { num=24; ET0=0; beep=1; } } if(!key1)//按键清零 { delay(10); if(!key1) { num=0; ET0=0; } while(!key1); } if(!key2)//

温馨提示

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

评论

0/150

提交评论