基于单片机的24秒倒计时.docx

上传人:b****6 文档编号:4196509 上传时间:2022-11-28 格式:DOCX 页数:18 大小:368.60KB
下载 相关 举报
基于单片机的24秒倒计时.docx_第1页
第1页 / 共18页
基于单片机的24秒倒计时.docx_第2页
第2页 / 共18页
基于单片机的24秒倒计时.docx_第3页
第3页 / 共18页
基于单片机的24秒倒计时.docx_第4页
第4页 / 共18页
基于单片机的24秒倒计时.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于单片机的24秒倒计时.docx

《基于单片机的24秒倒计时.docx》由会员分享,可在线阅读,更多相关《基于单片机的24秒倒计时.docx(18页珍藏版)》请在冰豆网上搜索。

基于单片机的24秒倒计时.docx

基于单片机的24秒倒计时

 

 

 

题目:

基于单片机的24秒倒计时

院(系):

*************

专业:

********

学生姓名:

*******

学号:

***********

指导教师:

******

职称:

******

 

2012年12月1日

摘要

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

模拟多通道压力系统是利用压力传感器采集当前压力并放映在显示器上,它可以分析压力过量程,并发出报警。

并采用电子秤原理可根据输入单价准确的计算出物体的金额。

本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。

【关键词】单片机;AT89C51;LED数码管显示器;keilC;晶体振荡器

 

前言

高速发展的计算机技术带领人类进入了信息社会,同时也促进了倒计时器的迅速发展。

在电子技术飞速发展的今天,单片机的应用正在不断地走向深入。

单片机技术在自动控制领域有着十分广泛的应用,如汽车、航空、电话、传真、视频等。

很多行业涉及到自动控制的情况下涉及到单片机技术。

电子产品的人性化和智能化已经非常成熟,单片机就是一个微型中央处理器,通过编程即能完成很多智能化的工作,因此它的出现给电子技术智能化和微型化起到了很大的推动作用。

随着人们生活水平的提高,社会经济的发展,人们开始注重身体素质的提高。

臂如举办篮球比赛需要有一个专门计时的工具。

因此有必要设计适合篮球比赛计时器。

本次设计的目的和意义在于基本掌握常用电子电路的一般设计方法,提高和培养在电子电路方面的设计和实验能力,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,学会运用理论来分析和解决实际问题,提高实际工作的能力,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。

 

Abstract

Permeateinthesocialrealmalongwiththecalculatorinrecentyears,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字节内置RAM

7独立的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看8位单片机发展之路.单片机与嵌入式系统应用,2002年,第5期:

P5~8

【7】夏继强.单片机实验与实践教程.北京:

北京航空航天大学出版社,2001

【8】陈志强胡辉.单片机应用系统设计实践指南.自编教材

【9】胡学海.单片机原理及应用系统设计[M].北京:

北京电子工业出版社,2005年.

 

程序源代码:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitkey1=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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1