秒表时钟单片机_第1页
秒表时钟单片机_第2页
秒表时钟单片机_第3页
秒表时钟单片机_第4页
秒表时钟单片机_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、基于基于AT89S51单片机的单片机的秒表设计秒表设计 第十一组第十一组 组长:组长:韩润泽韩润泽 组员:组员:黄磊黄磊 刘轩宇刘轩宇 何维何维 杨杨俊生俊生 王顺志王顺志AT89S51单片机简介 单片机最小系统,无论对单片机初学人员还是开发人员都具有十分重要的意义,可以利用最小系统进行编程实现工业控制。其灵活的硬件电路的设计和软件的设计,使单片机得到了广泛的应用,单片机最小系统结构可谓是具有可编程硬件的一个缩影,对我们学习和研究微机系统具有重大意义。单片机最小系统电路板在单片机开发市场和大学生电子设计方面十分流行。本次课程设计包括AT89S51单片机最小系统(包括复位和时钟电路)及供电系统、

2、LED数码管显示电路。采用AT89S51单片机实现数字秒表的设计。主要以AT89S51单片机为核心,采用4位LED数码管显示以及外部中断电路来实现数字秒表的基本功能。本文简单介绍了其系统组成,重点讨论了其硬软件的实现过程,并对其计时精度进行了确定,使其达到1秒,并能实现060秒的计时。利用Protel电路设计软件进行原理图设计,PCB布线,最后通过对硬件系统的仿真观察其实际运行情况,给我们以直观的认识。借此巩固单片机应用、模拟电路、数字电路课程及学会工程软件protel的使用 随着电子技术的发展,电子技术在各个领域的运用也越来越广泛,人对它的认识也逐步加深。秒表计时器常常用于体育竞赛及各种其他

3、要求有较精确时间的各领域中。其中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。而复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时应立即终止,并对计时器清零。本设计就是利用所学到的电子元器件将脉冲源用数码管显示出来,以制成简易的秒表。秒表是由单片机的P0口和P2口分别控制两个数码管使数码管工作,循环显示从0059。同时用一个开关控制数码管的启动与停止,另外加上一个复位电路使其能正常复位,通常还使用石英晶体振荡器电路构成整个秒表的结构电路。方案设计1.1 硬件选择以及电路的设计应遵循的原则:(1) 在性价比满

4、足应用系统要求的基础上,选择更可靠、更熟悉的单片机,缩短研制周期。(2) 尽可能选择较成熟的典型应用电路,以提高系统的可靠性。(3) 单片机内部的资源与外部扩展资源应在满足应用系统设计要求的基础上留有余地,为进一步升级和扩展其功能提供方便。(4) 应充分结合软件方案统筹考虑硬件结构,通常硬件功能较完善,其相应的软件就简单,但硬件成本较高;而硬件功能略低,其相应的软件就复杂。实际中应尽量以软件替代硬件来降低成本。(5) 整个系统的相关器件应尽可能做到性能匹配,如电平、速度的匹配等。(6) 充分考虑整个系统的抗干扰设计,如选择具有抗干扰设计的单片机并充分筛选芯片与器件,在电路中采取隔离和屏蔽措施等

5、。 1.2 秒表计时器的原理图 利用单片机作为主控电路,选用四位共阳极的数码管作为显示电路以及位控制和控制开关来组成硬件电路。其基本原理图 AT89S51单片机单片机控 制 开控 制 开关关四 位 数四 位 数码管码管位控制位控制 在硬件电路中,利用AT89S51单片机的定时器作精确的定时,利用数码管对其进行显示;控制按钮利用外部中断0使其实现启动、外部中断1使其实现暂停的功能,设置中断为边沿触发方式,P0口输出段码数据,P2.0P2.1连上译码器作为位选;计时器采用T0中断实现,定时溢出中断周期为20ms,当溢出中断后向CPU发出溢出中断请求,每发出5次中断请求就对20ms位(即最后一位)加

6、一。 硬件的选择以及设计硬件的选择以及设计本设计在选取单片机时,在充分查阅资料并对各种单片机有一个初步了解的基础上选用了ATMEL公司的AT89S51。AT89S51是一种低功耗、高性能CMOS8位微控制器,具有 8K在系统可编程Flash存储器。与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S51具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,p0口定时器,2 个数据指

7、针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,它支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S51单片机采用40脚的DIP封装,其引脚图如下所示:P1.0 VCCP1.1 P0.0P1.2 P0.1P1.3 P0.2P1.4 P0.3P1.5 P0.4P1.6 P0.5P1.7 P0.6RST/VPD P0.7P3.0 RXD EA/VPPP3.1TXD ALE/PROGP3.2

8、INT0 PSENP3.3INT1 P2.7P3.4 T0 P2.6P3.5 T1 P2.5P3.6 WR P2.4P3.7 RD P2.3 P2.2XTAL2 XTAL1 P2.1VSS P2.0显示电路选择以及设计显示电路选择以及设计对于数字显示电路而言,通常采用LCD显示或LED显示。对于一般的段式LCD,需要专门的驱动电路,而且可视性差;对于具有驱动电路和单片机接口的LCD显示模块,一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外,AT89S51单片机本身没有专门的LCD驱动接口。而LED数码管作为一种主动显示器件,具有结构简单、亮度高、响应速度快、价格便宜、易于购买等优点

9、,而且有远距离视觉效果,很适合夜间或者远距离操作。因此在本设计中,我们采用7段数码管作为显示介质。数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用四位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂,所以采用动态显示。动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的公共阴极位选线由另外的I/O口线控制。动态方式显示时,各数码管轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管并送出相应的段码,在另一时刻选通另一数码管,并送出相应的段码,依次规律循环,即可以使

10、各位数码管显示将要显示的字符,虽然这些字符是在不同时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。 显示电路如图AT89S51段驱动位驱动四位数码管系统总体电路的设计系统总体电路的设计 系统采用AT89S51单片机为主电路的核心部分,各个电路均与单片机相连,由单片机统筹协调各个电路的运行工作。 开始键和暂停键使用了外部中断,所以需要连到单片机的P3.2和P3.3引脚上,这两个I/O口的第二功能是单片机的外部中断0端口和外部中断1端口。 显示电路由四位数码管组成,采用动态显示方式,因此有8位段控制和4位位控制,8位段控制接P0口,P0.0P0.7分别控制

11、数码管的a b c d e f g dp显示,位控制接在P2.0和P2.1两个口,再通过一个24译码器实现位控制。 系统总体电路图 系统总体电路PCB图软件设计 本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的关系。主程序主要是设置定时器的工作模式,对定时器赋初值,开总中断、两个外部中断以及定时器溢出中断。并设置外部中断为脉冲边沿触发方式。中断程序设计中断程序设计 中断是通过硬件来改变CPU的运行方向的。计算机在执行程序的过程中,当出现CPU以外的某种情况时,由服务对象向CPU

12、发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。 中断之后所执行的相应的处理程序通常称之为中断服务或中断处理子程序,原来正常运行的程序称为主程序。调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排好的,而何时调用中断服务程序事先却无法确定,因为中断的发生是由外部因素决定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成的。本方案中用到了三个中断:外部中断0、外部中断1和定时器T0溢出中断。按CPU在响应中断时的处理顺序,先处理高级中断,后处理低级中断,若有多个同级

13、中断时,则应按自然优先顺序处理。(1)外部中断)外部中断0服务程序服务程序 外部中断0服务程序结合外部P1.0键实现数字秒表的启动功能。启动定时器T0,TR0=1外部中断1入口启动定时器T0,TR0=1中断返回(2)外部中断)外部中断1服务程序服务程序外部中断外部中断1服务程序结合外部服务程序结合外部P1.0键实现数字秒表的停止功能。键实现数字秒表的停止功能。外部中断1入口停止计时,TR1=0中断返回(3) 定时器T0中断服务程序当T0溢出后,向CPU发出中断请求信号。CPU跳转到定时中断程序执行,具体流程图如图T0中断T0中断保护现场加20ms处理恢复现场,中断返回系统调试(1) 输入源程序

14、 打开keil软件,输入源程序,输入时应以英文方式输入字母和符号,且中文注释前要加分号。(2) 对源程序进行编译和纠错 根据自动编译提供的错误信息逐条纠正错误,直至编译信息提示“错误(0)”,编译结束。(3) 确定调试方案 在调试程序前一定要认真分析源程序,明确各功能程序运行的预期结果。然后结合源程序应达到的结果,确定出如何通过某些关键参数和实验现象检验程序运行结果正确与否。(4) 调试程序 调试程序时首先要明确程序的具体功能,对程序做认真分析。程序运行后,观察有无显示,时钟是否工作,运行结果是否正确。若运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法

15、逐一认证和排除。通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目的。在编译调试通过以后,生成hex文件以待仿真之用。程序清单:#include / 包含51单片机寄存器定义的头文件unsigned char code Tab11=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xff; /数码管显示09的段码表unsigned char int_time; /记录中断次数unsigned char second; /储存秒/*函数功能:快速动态扫描延时,延时约0.6毫秒*/void delay(

16、void) unsigned char i; for(i=0;i200;i+) ;/*函数功能:显示秒入口参数:k出口参数:无*/void DisplaySecond(unsigned char k) P2=0 xfd; /P2.1引脚输出低电平P0=Tabk/10; /显示十位delay();delay();delay();delay();delay();delay();delay();delay(); P2=0 xf7; /P2.0引脚输出低电平P0=Tabk%10; /显示个位delay();delay();delay();delay();delay();delay();delay();

17、delay();P2=0 xff; /关闭所有数码管P0=0 xff; /显示个位delay();delay();delay();delay();delay();delay();delay();delay(); void main(void) /主函数 TMOD=0 x01; /使用定时器T0 TH0=(65536-46083)/256; /将定时器计时时间设定为460831.085微秒/=50000微秒=50毫秒TL0=(65536-46083)%256;EA=1; /开启总中断 ET0=1; /定时器T0中断允许 TR0=1; /启动定时器T0开始运行 int_time=0; /中断次数初始化second=0; /秒初始化while(1) DisplaySecond(second);/调用秒的显示子程序 /*/函数功能:定时器T0的中断服务程序/*void interserv

温馨提示

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

评论

0/150

提交评论