基于单片机数字秒表系统的设计.doc

上传人:精*** 文档编号:865433 上传时间:2023-10-05 格式:DOC 页数:25 大小:352.18KB
下载 相关 举报
基于单片机数字秒表系统的设计.doc_第1页
第1页 / 共25页
基于单片机数字秒表系统的设计.doc_第2页
第2页 / 共25页
基于单片机数字秒表系统的设计.doc_第3页
第3页 / 共25页
基于单片机数字秒表系统的设计.doc_第4页
第4页 / 共25页
基于单片机数字秒表系统的设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、单片机课程设计目录1 引言41.1 单片机的发展概况41.2数字秒表的描述与分析51.21问题描述52 设计目的及要求72.1 设计目的72.2 设计要求73 系统硬件电路设计83.1数字秒表电路设计83.2 电源电路103.3 单片机晶振电路103.4 单片机复位电路113.5数码管显示系统电路124 软件设计154.1实验程序155 仿真结果20总结23参考文献241 引言1.1 单片机的发展概况单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工

2、业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。管脚图如图1所示。图1 89C52单片机引脚图(1) 电源地组Vcc和Vss;VCC(40)脚接+5V电压;VSS(20)脚接地(2) 时钟电路组XTAL1和XTAL2(3) 控制信号组RST/ALE/PSEN和EA(4) I/O端口P0, P1, P2和P3近来,单片机的发展尤为迅猛,并且趋于高智能化、存储器大量化、更多的外围电路内装化以及工艺上的多元化等方向,广泛应用于单机应用领域、多机应用领域、自动控制领域和智能化控制领域等。单片机应用系统的结构通常分为三个层次,即单片机、单片机

3、系统和单片机应用系统。单片机通常指应用系统主处理机,即所选择的单片机器件等。单片机系统指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统。时钟电路、复位电路和扩展存储器等与单片机共同构成了单片机系统。单片机应用系统指能满足嵌入对象要求的全部电路系统。在单片机系统的基础上加上面向对象的接口电路,如前向通道、后向通道、人机交互通道(键盘、显示器、打印机等)和串行通信口(RS232)以及应用程序等。单片机应用系统层次关系如图2所示。向后通道单片机单片机系统单片机应用系统向前通道人机交互通道应用程序串行通信口图2 单片机应用系统三个层次的关系1.2 数字秒表的描述与分析1.21问题描述设计一个

4、秒表,第一次按键,开始计数,数码管显示从00.00每10毫秒自动加1;第两二次按键,系统暂停计数,数码管显示当前的计数;第三次按键系统清零,数码管显示00.00 。1.22设计要求1使用四位数码管显示,显示时间00.0099.99秒;2正常计数时,每10毫秒自动加1;3一个按键(包括开始、暂停、清零),一个复位按键;4实现计数、复位、清零功能;5单片机通电后,首先初始化。第一次按键用来控制秒表工作的开始;第二次按键用来暂停程序的运行;第三次按键用来进行显示器清零;复位键是用来对程序复位用的,当程序出现死循环或想从00.00开始重新计时,按下复位键可返回程序开始,重新执行。 2 设计目的及要求2

5、.1 设计目的1建立数字电子电路系统的基本概念;2通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。3掌握定时器、外部中断的设置和编程原理。4通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 2.2 设计要求设计一个数字电子秒表,该秒表具有显示功能和清零、开始计时、停止计时等功能。设计的要求如下:1.以10毫秒为最小单位进行显示;2.秒表可显示00.0099.99秒的量程;3.该秒表具有清零、开始计时、停止计时功能;3 系统硬件电路设计3.1数字秒表电路设计数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组

6、成数字电子秒表,力求结构简单、精度高为目标。设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动等。主控制器采用单片机89C52,显示电路采用四位共阳极LED数码管显示计时时间。由于本实验有四位数码管,如果采用静态显示要占用全部的I/O端口,所以本次试验采用静态显示,共使用12个引脚,即简化了电路又节省了原料。本设计利用89C52单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。P2口输出段码数据,74HC573用作驱动输出,P1.0口接一个按钮开关,分别实现开始、暂停、清零功能。电路原理图设计最基本的要求

7、是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。秒表原理图如图3所示。图3 秒表原理图3.2 电源电路电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。3.3 单片机晶振电路89C52单片机内部的振荡电路是一个增益反相放大器,引线XYAL1和XTAL2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶

8、振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,单必须保证脉冲的高低电平要求的宽度。晶振电路如图4、5所示。 图4 内部晶振电路 图5 外部晶振电路单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路XTAL1和XTAL2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2的输出时钟信号。在89C52中通常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器。晶体和电容决定了单片机的工作精度为1微秒,晶体可在1.2-12MHZ之间选择。单片机在通常情

9、况下,使用震荡频率为12MHZ的石英晶体,而12MHZ频率主要是在高速串行通信情况才使用,在这里我们用的是12MHZ的石英晶体。对电容无严格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。C1和C2可在10-100pF之间取值,一般情况下取30pF。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2。由于XTAL2的逻辑电平不是TTL,所以还要接上拉电阻。3.4 单片机复位电路单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮

10、开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。上电自动复位通过电容C1充电来实现和限流电阻R2。手动按键复位是通过按键将电阻R1与VCC接通来实现。R1作为上拉电阻,当复位键按下是产生一个触发脉冲,进行复位操作。RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,若使用6MHz晶振,则需持续4s以上才能完成复位操作。如图中在通电瞬间,由于RC的充电过程,在 RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位。图6 复位电路图3.5数码管显示系统电路3.51

11、 数码管的介绍微机化测控系统中常用的测量数据的显示器有发光二极管显示器(简称LED或数码管)和液晶显示器(简称LCD)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用2个LED显示。LED数码管的外形结构如图2-4,外部有10个引脚,其中3, 8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字(0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。LED有共阴极和共阳极两种。如图2-4所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入

12、+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。共阴极 共阳极 图7 LED数码管结构原理图数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需要解决多位LED数码管的“段控”和“位控”问题,本电路的通过P1口实现:而每一位的公共端,即LED数码管的“位控”,则由P3口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不

13、同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开头”状态。使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。TX实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。表1 LED字形显示代码表字型共阳极段共阴极段字型

14、共阳极段共阴极段0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H 3.52 四位数码管的介绍数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。四位数码管阳=阴极连接在一起,阳极分开有各自的位选,动态显示的特点是将所有位数码管的段选

15、线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。图8四位数码管原理图图9四位数码管接线图4 软件设计4.1实验程序4.11主函数设计ORG 000HLJMP START ORG 0003HRETI ORG 000BHRETI ORG 0013HRETI ORG 001BH RETI ORG 0023HRETI CLEAR: MOV 20H,#00H SETB

16、00H RETSTART : ACALL CLEAR MAIN : LCALL KEYWORK JB 00H,FUN0 JB 01H,FUN1 JB 02H,FUN2 JB 03H,FUN3 AJMP MAIN第一种闪烁 FUN0: MOV A,#0FEHFUN00: MOV R0,#07H L1: MOV P0,A LCALL DL05S RL A DJNZ R0,L1 MOV R0,#07H L2: MOV P0,A LCALL DL05S RR A DJNZ R0,L2 JNB ACC.0,MAIN LJMP FUN00第二种闪烁 FUN1: MOV A,#0FEHFUN11: MOV

17、R1,#08H L3: MOV P0,A LCALL DL05S RL A ANL A,P0 DJNZ R1,L3 MOV A,#80H MOV R1,#08H L4: ORL A,P0 MOV P0,A LCALL DL05S RR A DJNZ R1,L4 LJMP MAIN AJMP FUN11 第三种闪烁 FUN2: MOV A,#0AAHFUN22: MOV P0,A LCALL DL05S CPL A MOV P0,A LCALL DL05S AJMP MAIN第四种闪烁 FUN3: MOV A,#11100111B MOV P0,A LCALL DL05S MOV A,#1101

18、1011B MOV P0,A LCALL DL05S MOV A,#10111101B MOV P0,A LCALL DL05S MOV A,#01111110B MOV P0,A LCALL DL05S AJMP MAIN扫描程序KEYWORK:MOV P2,#0FFH JNB P2.2,KEY0 JNB P2.3,KEY1 JNB P2.4,KEY2 JNB P2.5,KEY3 RET烁键处理 KEY0: LCALL DL10MS JB P2.2,OUT0 SETB 00H CLR 01H CLR 02H CLR 03HOUT0:RET ;闪烁1处理 KEY1:LCALL DL10MS J

19、B P2.3 ,OUT1 SETB 01H CLR 00HCLR 02H CLR 03HOUT1:RET 闪烁2处理 KEY2:LCALL DL10MS JB P2.4 ,OUT2SETB 02HCLR 01HCLR 00H CLR 03H OUT2:RET 闪烁功能备用KEY3:LCALL DL10MSJB P2.5 ,OUT3SETB 03HCLR 00HCLR 01HCLR 02HOUT3:RET延时程序执行一次513usDL512:MOV R2,#0FFH LOOP1:DJNZ R2,LOOP1 RET 10 毫秒延时程序DL10MS:MOV R3,#14H LOOP2:LCALL D

20、L512 DJNZ R3,LOOP2 RET延时子程序,改变R4 寄存器初值可改变闪烁的快慢DL05S:MOV R4,#30 LOOP3:LCALL DL25MS DJNZ R4,LOOP3RET25 毫秒延时子程序,调用键扫描子程序延时,可快速读出功能按键值DL25MS:MOV R5,#0FFH LOOP4:LCALL KEYWORK DJNZ R5,LOOP4RETEND 15 仿真结果仿真环境Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SP

21、ICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C

22、51 uVision2、MPLAB等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本实验采用protues7.4版本。运行开始前,数码显示管显示为00.00。按下开关,秒表程序运行,数码管开始跑动。再次按下开关,秒表程序运行停止,数码管显示时间不变。第三次按键,数码管清零。图10仿真图总结本设计的数字电子秒表是由89C52单片机、共阳数码显示管、控制按键等器件构成的,设有四位计时显示,复位按键以及一个开始、暂停、清零按钮。计时精度能到达10ms,设计精简,使用简单易懂。系统设计合理,线路简单、功能先进,性能稳定,程序精简。并给出了详细

23、的电路设计方法。通过本次设计,复习巩固我们以前所学习的单片机原理及应用等课程知识,加深对各门课程及相互关系的理解,并成功使用了keil和Proteus两个软件,使理论知识系统化、实用化,系统地掌握微机应用系统的一般设计方法,培养较强的编程能力、开发能力。同时,在设计的过程中,我也发现了本系统的许多不足和可以改进的地方。本设计的数字电子秒表缺少对多次计时时间进行记录的功能。应给在单片机的内部存储区多设置一些存储空间,用来存储多次计时时间。并在程序中编入对多次计时时间的调用显示。虽然存在不足,但本设计的数字电子秒表仍具有它的实用性。参考文献1 李华,王思明,张金敏.单片机原理及应用M.兰州:兰州大

24、学出版社,2001.5.2吴蓉,梁龙学,崔用明.数字电子技术M.兰州:兰州大学出版社,2006.7.3 顾滨,李勋.单片微计算机原理开发与应用M.北京:高等教育出版社,2000.2.附录1程序代码#include#define uint unsigned int#define uchar unsigned charuint temp,bai,shi,ge,qian;sbit wela=P10;/定义驱动控制端口static uint k=0;/声明全局变量uchar code table=/数码管显示0到90xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80

25、,0x90;uchar code table1=/第二位数码管显示(包含小数0x40,0x79,0x24,0x30,/点)0x19,0x12,0x02,0x78,0x00,0x10;void display(uint qian,uint bai,uint shi,uint ge);/声明显示函数void delay(uint z);/声明延时函数void init();void main()init();/初始化子程序while(1)if(k=0)init();/初始化子程序wela=1;/初始设置显示00.00P2=0XFF;wela=0;P0=0xc0; if(k=1)/第二次按键开始计数

26、if(temp=9999)/当计数超过99.99秒时清零 temp=0; qian=temp/1000;/计算数码管第一位bai=temp%1000/100;/计算数码管第二位shi=temp%1000%100/10;/计算数码管第三位ge=temp%10;/计算数码管第四位display(qian,bai,shi,ge);/显示时间Else/第二次按键时停止qian=temp/1000;bai=temp%1000/100;shi=temp%1000%100/10;ge=temp%10;display(qian,bai,shi,ge); if(k=3)/第三次按键时清零k=0; void de

27、lay(uint z)/延时子函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display(uint qian,uint bai,uint shi,uint ge)/显示子函数wela=1;/显示数码管第一位P2=0x01;wela=0;P0=tableqian;delay(1); wela=1;/显示数码管第二位P2=0x02;wela=0;P0=table1bai;delay(1);wela=1;/显示数码管第三位P2=0x04;wela=0;P0=tableshi;delay(1);wela=1;/显示数码管第四位P2=0x08;wela=0;P0=tablege;delay(1);void init()/初始化子程序wela=0;temp=0;TMOD=0x01; /设置定时器0为工作方式1TH0=0xc8;TL0=0xf0;EA=1;/开总中断ET0=1; /开定时器0中断TR0=1; /启动定时器0EX0=1;IT0=1;void timer0() interrupt 1/定时器设置时间10毫秒TH0=0xc8;TL0=0xf0;if(k=1)/第一次按键加一temp+;elseif(k=2)/第二次按键保持temp=temp;void time0() interrupt 0/中断子程序k+;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922