基于proteus和单片机的时钟设计报告.docx

上传人:b****6 文档编号:5867369 上传时间:2023-01-01 格式:DOCX 页数:18 大小:158.29KB
下载 相关 举报
基于proteus和单片机的时钟设计报告.docx_第1页
第1页 / 共18页
基于proteus和单片机的时钟设计报告.docx_第2页
第2页 / 共18页
基于proteus和单片机的时钟设计报告.docx_第3页
第3页 / 共18页
基于proteus和单片机的时钟设计报告.docx_第4页
第4页 / 共18页
基于proteus和单片机的时钟设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

基于proteus和单片机的时钟设计报告.docx

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

基于proteus和单片机的时钟设计报告.docx

基于proteus和单片机的时钟设计报告

一、设计题目:

基于单片机的时钟设计

二、设计目的:

1、通过课程设计,进一步巩固、深化和扩充在单片机原理及相关课程方面的基本知识、基本理论和基本技能。

2、掌握单片机开发软件Keil的使用和调试。

3、学习Keil与Protel的联合使用,以及主要技术指标的测试方法。

三、设计要求及主要技术指标:

设计要求:

用试验箱设计一个时钟,可以用来显示当前时间。

用六位数码管显示增强功能:

可以校正时间。

主要技术指标:

1、准确计时,以数字形式显示时、分、秒的时间。

2、小时以24小时计时形式,分秒计时为60进位。

3、校正时间功能,即能随意设定走时时间。

4、设计系统晶振电路、时钟电路、复位电路。

 

一、方案论证与比较

1.1方案提出

方案1:

采用实时时钟芯片。

现在市场上有很多实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。

因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。

方案2:

使用单片机内部的可编程定时器。

利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。

该方案节省硬件成本,但程序设计较为复杂。

方案3:

:

通过硬件译码实现时间显示

系统采用通用的89C51芯片,显示器为6个共阳极LED数码管,用1个BCD7段译码器74LS47驱动数码管,用3-8译码器74LS138的输出作为动态扫描时数码管的位选信号,因为采用了上述两个芯片,所以在对数码管进行扫描显示时,只需要单片机的7条I/O线就能完成显示功能了。

1.2设计方案的论证和选择

方案1:

要用到实时时钟芯片,计时数据的更新每秒自动进行一次,不需要程序干预,因此不适用于软件设计过程中,而且成本相对也比较高。

方案2:

利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时该方案节省硬件成本,但程序设计较为复杂。

方案3:

采用通用的89C51芯片,电路简单,实现的功能齐全,按键设置简单,程序的设计相对也比较容易,总的来说,此方案可行性比较高。

综上利弊,我们采用方案3。

 

二、系统的功能及设计框图

2.1系统的全部功能、要求及技术指标。

时间以24小时为一个周期,时钟的格式为:

XXXXXX,由左向右分别为:

时、分、秒。

完成显示由秒加1,一直加1至529,再恢复为00;分加1,一直加1至59,再恢复00;时加1,一直加1至23,再恢复00。

按键功能:

1.启动时,数字时钟从23:

59:

00开始自动计时;

2.接P1.0按键控制对“时”的调整,每按一次时计数值加1;

3.接P1.1按键控制对“分”的调整,每按一次分计数值加1;

4.接P1.2按键控制对“秒”的调整,每按一次秒计数值加1;

5.接P1.3按键控制对“时”的调整,每按一次时计数值减1;

6.接P1.4按键控制对“分”的调整,每按一次分计数值减1;

7.接P1.5按键控制对“秒”的调整,每按一次秒计数值减1。

8.接RST的按键按下时,时钟恢复初值23:

59:

00

 

2.2确定设计框图(系统包含的单元电路及结构)和总体设计方案

时钟设计原理图

该系统采用通用的89C51芯片,用1个BCD7段译码器74LS47驱动数码管,用3-8译码器74LS138的输出作为动态扫描时数码管的位选信号,在6个共阳极LED数码管上显示。

 

2.3软件流程图

主程序:

首先进行初始化,设置数字时钟的计时初值为23:

59:

00,启动T0进行50ms定时,且允许T0中断。

然后检测S1--S6是否按下,当按键S1--S6按下时,转入时、分、秒计数值的调整程序,系统主程序流程图如图所示。

主程序流程图

 

定时器T0中断子程序:

中断服务子程序的作用是进行时、分、秒的计时与显示。

定时器T0用于定时,定时周期设为50ms,中断累计20次(即1s)。

定时器T0中断服务程序流程图如图所示。

定时器流程图

时、分、秒计数值调整子程序TIME:

时间计数单元分别在40H(s),41H(min),42H(h)内存单

元中,在计数单元中采用组合BCD码计数。

TIME子程序的作用是当满1秒时,对秒计数单元

进行加1操作,满60向分进位;对分计数单元进行加1操作,满60向时进位;对时计数单元

进行加1操作,满24清零。

显示子程序VIEW:

VIEW子程序的作用是分别将时间计数单元40H(s),41H(min),42H(h)中的十进制时间值(组合BCD码)转化为个位和十位(分离BCD码)存放在显示缓冲区中,显示缓冲区地址为30H--35H。

其中30H--31H存放秒数据,32H--33H存放分数据,34H--35H存放时数据。

由于每一个地址单元内均为分离BCD码,用BCD一个7段译码器74LS47直接进行译码,因此不需要软件方式对BCD码数据进行译码。

扫描子程序SCAN:

SCAN子程序的作用是把显示缓冲区中的数据依次送往显示器显示。

把扫

描值作为高4位,显示数据值作为低4位,输出P0口,以完成显示,因为采用了3-8译码器74LS47作为扫描输出,所以用36H单元存放扫描指针,即36H中存放的是数码管的序号,显示时,只需取出30H--35H某一地址中的数据,并从P0口的低4位输出,同时P0口的高4位作为扫描值输出,就能保证数码管的正常工作。

三、系统调试分析

3.1软件仿真原理图

3.2模拟仿真过程

本次设计主要采用软件模拟仿真的方法。

在Proteus中画图、连线形成可用电路。

在KEIL中编写汇编程序,并产生HEX文件,接着将其导入Proteus中,模拟运行。

3.3各项指标测试

1.启动时,数字时钟从23:

59:

00开始自动计时;

2.接P1.0按键控制对“时”的调整,每按一次时计数值加1;

3.接P1.1按键控制对“分”的调整,每按一次分计数值加1;

4.接P1.2按键控制对“秒”的调整,每按一次秒计数值加1;

5.接P1.3按键控制对“时”的调整,每按一次时计数值减1;

6.接P1.4按键控制对“分”的调整,每按一次分计数值减1;

7.接P1.5按键控制对“秒”的调整,每按一次秒计数值减1;

8.接RST的按键按下时,时钟恢复初值23:

59:

00。

 

四、结束语(结论及体会)

两周的单片机课程设计很快就结束了,在这期间,开始比较困难,但是经过慢慢摸索,合

理地进行设计安排,我们终于顺利地完成了本次单片机课程设计,同时也学到了很多东西。

在本次课程设计中,我们通过对proteus和keil软件的结合利用,进一步学习和掌握了单片机原理的有关知识,特别是程序的编程方面,加深了对单片机原理及应用技术的认识,进一步巩固了对单片机知识的理解,掌握简单单片机应用系统的设计、制作的方法。

在设计时根据课题要求,复习相关的知识,查询相关的资料。

根据实验条件,找到适合的方案,找到需要的元器件及工具,进行实验。

这次的单片机课程设计重点是通过实践操作和理论相结合,提高科学的思维能力,更在短短两周时间了解了更多的有关单片机的知识,使知识更加丰富。

在设计的过程中,一次性成功的可能性小之又小,在设计完思路之后,要用proteus软件找出元器件进行连接实验,因为平时接触proteus较少,在找一些实验所需的元器件时也花了不少功夫。

而在成功连接并运行时却又发现实验结果与连线有差错,于是我们又对源程序和电路图的连接进行缜密的阅读与检查,也查阅了不少资料并请教了指导老师,终于能够实现我们要的功能。

因此,要做好一个课程设计,就必须做到:

在设计程序之前,对所用单片机的内部结构有一个系统的了解;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,要进过反复修改、不断改进;还有注释程序,一个程序不仅仅是实现功能还,应该让人一看就能明白设计思路,这样也为资料的保存和交流提供了方便。

五、参考文献

(1)李朝青编著.《单片机原理及接口技术》.北京:

航空航天大学出版社,1999.3;

(2)谢维成等.《单片机原理与运用及C51程序设计》.北京:

清华大学出版社;

(3)李广第主编.单片机基础.北京:

北京航天工业出版社.2002;

(4)丁元杰主编.单片微型计算机.北京:

机械工业出版社.2003。

(5)

附录1:

设计中用到的元器件、芯片的外引脚图及引脚功能说明。

元器件:

1、AT89C51单片机

2、BCD7段译码器74LS47

3、3-8线译码器74LS138

4、LED数码管(7SEG-MPX6-CA)

5、CAP电容

6、CRYSTAL晶振

7、BUTTON按键

使用芯片:

(1)AT89C51单片机

89C51单片机管脚图

P0端口(P0.0-P0.7):

P0口是一个漏极开路的8位准双向I/O端口。

P1端口(P1.0-P1.7):

P1是一个带有内部上拉电阻的8位准双向I/O端口。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

它可用作对外部输出的脉冲或用于定时目的。

PSEN:

外部程序存储器的选通信号。

EA:

当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

  

2、BCD7段译码器74LS47

74LS47管脚图

(1)LT:

试灯输入,是为了检查数码管各段是否能正常发光而设置的。

当LT=0时,无论输入A3,A2,A1,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。

(2)BI:

灭灯输入,是为控制多位数码显示的灭灯所设置的。

BI=0时。

不论LT和输入A3,A2,A1,A0为何种状态,译码器输出均为高电平,使共阳极7段数码管熄灭。

(3)RBI:

灭零输入,它是为使不希望显示的0熄灭而设定的。

当对每一位A3=A2=A1=A0=0时,本应显示0,但是在RBI=0作用下,使译码器输出全1。

其结果和加入灭灯信号的结果一样,将0熄灭。

(4)RBO:

灭零输出,它和灭灯输入BI共用一端,两者配合使用,可以实现多位数码显示的灭零控制。

3、3-8线译码器74LS138

当一个选通端(E1)为高电平,另两个选通端(/E2)和/(E3))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。

74LS138管脚图

 

4、LED数码管

该系统使用的是共阳极的LED数码管,ABCDEFGK控制段选,123456控制位选,DP为小数点。

 

附录2:

(1)时钟电路原理图:

 

(2)晶振电路原理图:

 

(3)复位电路原理图:

 

(4)按键电路原理图:

 

附录3:

源程序

ORG0000H

LJMPSTART

ORG000BH

LJMPTT0

ORG0050H

START:

MOVSP,#70H

MOV36H,#00H

MOV40H,#00H

MOV41H,#59H

MOV42H,#23H

MOV30H,#00H

MOV31H,#00H

MOV32H,#09H

MOV33H,#05H

MOV34H,#03H

MOV35H,#02H

MOVTMOD,#01H

MOVTL0,#0B0H

MOVTH0,#3CH

MOVIE,#82H

MOV50H,#20

SETBTR0

LOOP:

JBP1.0,N2

CALLDE

MOVA,42H

ADDA,#01H

DAA

MOV42H,A

CJNEA,#24H,N1

MOV42H,#00H

N1:

JNBP1.0,$

CALLDE

N2:

JBP1.1,N4

CALLDE

MOVA,41H

ADDA,#01H

DAA

MOV41H,A

CJNEA,#60H,N3

MOV41H,#00H

N3:

JNBP1.1,$

CALLDE

N4:

JBP1.2,N6

CALLDE

MOVA,40H

ADDA,#01H

DAA

MOV40H,A

CJNEA,#60H,N5

MOV40H,#00H

N5:

JNBP1.2,$

CALLDE

N6:

JBP1.3,N8

CALLDE

MOVR7,34H

CJNER7,#00H,N60

MOVR6,35H

CJNER6,#00H,N61

MOV42H,#23H

JMPN7

N60:

MOVA,34H

DECA

MOV34H,A

MOVA,35H

SWAPA

ADDA,34H

MOV42H,A

JMPN7

N61:

MOV34H,#09H

MOVA,35H

DECA

SWAPA

ADDA,34H

MOV42H,A

N7:

JNBP1.3,$

CALLDE

N8:

JBP1.4,N10

CALLDE

MOVR7,32H

CJNER7,#00H,N80

MOVR6,33H

CJNER6,#00H,N81

MOV41H,#59H

JMPN9

N80:

MOVA,32H

DECA

MOV32H,A

MOVA,33H

SWAPA

ADDA,32H

MOV41H,A

JMPN9

N81:

MOV32H,#09H

MOVA,33H

DECA

SWAPA

ADDA,32H

MOV41H,A

N9:

JNBP1.4,$

CALLDE

N10:

JBP1.5,N11

CALLDE

MOVR7,30H

CJNER7,#00H,N100

MOVR6,31H

CJNER6,#00H,N101

MOV40H,#59H

JMPN11

N100:

MOVA,30H

DECA

MOV30H,A

MOVA,31H

SWAPA

ADDA,30H

MOV40H,A

JMPN11

N101:

MOV30H,#09H

MOVA,31H

DECA

MOV31H,A

SWAPA

ADDA,30H

MOV40H,A

N11:

JNBP1.5,$

CALLDE

TT0:

MOVTH0,#3CH

MOVTL0,#0B0H

PUSHACC

PUSHPSW

DJNZ50H,TINT0

CALLTIME

CALLVIEW

TINT0:

CALLSCAN

POPPSW

POPACC

LJMPLOOP

SCAN:

MOVR0,#36H

SCAN0:

MOVA,@R0

ADDA,#30H

MOVR1,A

MOVA,@R0

SWAPA

ORLA,@R1

MOVP0,A

CALLDELAY

INC@R0

CJNE@R0,#06H,SCAN0

MOV@R0,#00H

RET

TIME:

MOVA,40H

ADDA,#01H

DAA

MOV40H,A

CJNEA,#60H,TTI

MOV40H,#00H

MOVA,41H

ADDA,#01H

DAA

MOV41H,A

MOVA,41H

CJNEA,#60H,TTI

MOV41H,#00H

MOVA,42H

ADDA,#01H

DAA

MOV42H,A

CJNEA,#24H,TTI

MOV42H,#00H

TTI:

RET

VIEW:

MOVA,40H

ANLA,#0FH

MOV30H,A

MOVA,40H

SWAPA

ANLA,#0FH

MOV31H,A

MOVA,41H

ANLA,#0FH

MOV32H,A

MOVA,41H

SWAPA

ANLA,#0FH

MOV33H,A

MOVA,42H

ANLA,#0FH

MOV34H,A

MOVA,42H

SWAPA

ANLA,#0FH

MOV35H,A

RET

DELAY:

MOVR7,#65

DJNZR7,$

RET

DE:

MOVR4,#10

DE1:

MOVR5,#100

DJNZR5,$

DJNZR4,DE1

RET

END

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

当前位置:首页 > 自然科学

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

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