课程设计51单片机数字时钟要点.docx

上传人:b****1 文档编号:23152187 上传时间:2023-05-08 格式:DOCX 页数:21 大小:215.68KB
下载 相关 举报
课程设计51单片机数字时钟要点.docx_第1页
第1页 / 共21页
课程设计51单片机数字时钟要点.docx_第2页
第2页 / 共21页
课程设计51单片机数字时钟要点.docx_第3页
第3页 / 共21页
课程设计51单片机数字时钟要点.docx_第4页
第4页 / 共21页
课程设计51单片机数字时钟要点.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

课程设计51单片机数字时钟要点.docx

《课程设计51单片机数字时钟要点.docx》由会员分享,可在线阅读,更多相关《课程设计51单片机数字时钟要点.docx(21页珍藏版)》请在冰豆网上搜索。

课程设计51单片机数字时钟要点.docx

课程设计51单片机数字时钟要点

HarbinInstituteofTechnology

课程设计说明书(论文)

 

课程名称:

课程设计

设计题目:

数字日历钟表的设计

院系:

电信学院通信工程

班级:

设计者:

学号:

指导教师:

设计时间:

2013.6.12-3013.6.18

 

哈尔滨工业大学

 

哈尔滨工业大学课程设计任务书

姓名:

院(系):

专业:

班号:

任务起至日期:

年月日至年月日

课程设计题目:

数字日历钟的设计

已知技术参数和设计要求:

1.数码管显示:

秒、分、时(可同时显示,也可轮换显示)

2.能够设置时间,“设置按键”数量不限,以简单合理易用为好。

3.误差:

1秒/天(报告中要论述分析是否满足要求)

扩展(优秀必作)

1.设置校准键:

当数字钟显示在“整点±30秒”范围时,按动“校准键”,数字钟即刻被调整到整点,消除了±30秒的误差。

2.加上“星期”显示(可以预置),并可以对其进行设置。

其他要求:

1.按动员老师的要求、课程设计报告规范进行设计

2.不允许使用时数字钟表、日历专用IC电路。

3.可以使用通用器件:

模拟、数字、单片机、EPLD、模块电路等。

4.设计方法不限。

工作量:

1.查找资料

2.设计论证方案

3.具体各个电路选择、元器件选择和数值计算

4.具体说明各部分电路图的工作原理

5.绘制电路原理图

6.绘制印刷电路图

7.元器件列表

8.编写调试操作

9.打印论文

工作计划安排:

1.查阅资料:

2.方案论证

3.设计、分析、计算、模拟调试、仿真、设计原理

4.撰写报告:

课程设计要求、方案论证、原理论述(原理框图、原理图)、分析、计算、仿真,PCB图的设计,误差分析、总结,参考文献等

5.上交课程设计论文2013-6-19

同组设计者及分工:

 

指导教师签字___________________

年月日

教研室主任意见:

 

教研室主任签字___________________

 

年月日

*注:

此任务书由课程设计指导教师填写

数字日历钟的设计

一、课程设计要求

1.数码管显示:

秒、分、时(可同时显示,也可轮换显示)

2.能够设置时间,“设置按键”数量不限,以简单合理易用为好。

3.误差:

1秒/天(报告中要论述分析是否满足要求)

4.设置校准键:

当数字钟显示在“整点±30秒”范围时,按动“校准键”,数字钟即刻被调整到整点,消除了±30秒的误差。

5.加上“星期”显示(可以预置),并可以对其进行设置。

二、方案论证

2.1单片机芯片的选择方案和论证

方案一:

采用89C51芯片作为硬件核心,其内部采用FlashROM,具有4KBROM存储空间,能于3V的超低压工作,但

运用于电路设计中时由于不具备ISP在线编程技术,烧入程序时需要专门的C编程器(当前可用的实验烧写开发板只支持具有ISP在线编程功能的AT89S**系列的芯片),当在对电路进行调试时,更显麻烦,并且增加了造价,

方案二:

采用89S51芯片作为主控模块,AT89S51是MCS-51系列单片机目前运用较多的一种芯片,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且具备ISP在线编程技术,方便对电路进行调试.但由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

针对该问题,可采用易于插拔的芯片插槽,芯片的程序烧写用专门的实验板进行烧写(当前可用的实验烧写开发板支持AT89S**系列).AT89S51单片机的功能引脚图如下图所示:

AT89S51单片机的功能引脚图

所以选择采用AT89S51作为主控制系统。

2.3时钟芯片的选择方案和论证

方案一:

采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,精度也较高,工作电压2.5V~5.5V范围内,功耗也较低,但价格比较贵,且目前市场上采购不到

方案二:

直接采用单片机定时计数器提供秒信号,使用程序实现时、分、秒计数。

采用此种方案实现虽然有一定的时间误差,但可减少少芯片的使用,节约成本,易于实现,符合初学者实验选用。

所以采用方案二。

综上各方案所述,对此次作品的方案选定:

采用AT89S51作为主控制系统;通过软件编程采用定时器定时实现秒.分.时计时;LED数码管静态显示时间。

三、原理论述

单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

显示器件选用LED七段数码管。

在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。

针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。

使用动态数码显示的方法,运用独立式按键识别过程,按“时”,“分”,“秒”数据送出显示处理方法。

这里采用应用广泛的80C51单片机作为时钟控制芯片,利用单片机内部的定时/计数器T0实现软时钟的目的。

首先将T0设定工作于定时方式1,对机器周期计数形成基准时间(50ms),然后使用循环的程序结构使基准时间计数20次从而形成秒,秒计60次形成分,分计60形成小时,小时计到24形成一天,天计到7形成一星期,再重新循环。

最后通过数码管把它们的内容在相应的位置显示出来,达到时、分、秒计时的功能。

3.1系统原理图

AT89C51的P1口接入三个按键,对时、分、秒进行调整。

P0口输出字段码,控制要显示的字符,外接74LS245芯片,驱动LED显示。

P3口输出字位码,去控制要显示的位,其原理图如图3-6所示。

图3-6电子钟原理图

当接入电源时,数字电子钟以秒为单位开始计时。

运行状态下,按下控制按键S-SET,对秒进行调整;按下M-SET调整分钟;按下H-SET对小时进行调整。

这样通过三个按键,分别对时、分、秒进行调整,从而实现调时。

3.2程序设计流程图

这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。

主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。

 

图4-1主程序流程图

按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。

 

图4-2按键处理流程图

定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就检测1天是否到,1议案如果到,天单元就加1,如果没到,就显示时间。

 

图4-3定时器中断流程图

时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,然后是时十位显示,最后是天的显示。

3.3时钟程序设计步骤

(1)选择工作方式,计算初值;

(2)采用中断方式进行溢出次数累计;

(3)从秒——分——时的计时是通过累加和数值比较实现的;

(4)时钟显示缓冲区:

时钟时间在方位数码管上进行显示,为此在内部

RAM中要设置显示缓冲区,共6个地址单元。

显示缓冲区从左到右依次存放时、分、秒数值;

(5)主程序:

主要进行定时器/计数器的初始化编程,然后反复调用显示

子程序的方法等待中断的到来。

(6)中断服务程序:

进行计时操作

(7)加1子程序:

用于完成对时、分、秒的加操作,中断服务程序在秒、

分、时加1时共有三种条调用加1子程序,包括三项内容:

合字、加1并进行十进制调整、分字。

四、分析运算

4.1硬件部分

采用7SEG-MPX8-CC八个共阴二极管显示器来显示日期和时间。

通过设置功能按键来实现调整日期和整点调时的功能。

电路连接使用PCB,使电路连接简洁美观。

4.2软件部分

(1)“时钟”基准时间由单片机内部的定时中断T0提供,考虑因素:

定时时间是“秒”的整除数,且长短适宜。

最长不能超过16位定时器的最长定时时间;最短不能少于中断服务程序的执行时间。

基准时间越短,越有利于提高时钟的运行精确度。

基准时间定为0.05秒。

(2)用一个计数器对定时中断的次数进行计数,由基准时间为0.05秒知计数值为20即可实现“秒”定时,同理进行“分”﹑“时”定时。

4.3计算

该部分主要是对51单片机内部定时中断T0的计时初值进行计算。

该单片机使用的晶振为内部晶振,因此晶振频率为fosc=12MHz,机器周期为Tj=12/fosc=12/12×106=1us。

由上面分析可知,定时时间T=50ms

定时初值为X=216-T/Tj=65536-50000=15536=3CB0H

五、程序

简要说明:

实现24小时制电子钟,8位数码管显示,显示时分秒

显示格式:

23-59-59(小时十位如果为0则不显示)

P0口输出段选信号,P2口输出位选信号

P1.2为调时按钮,P1.1为调分按钮;晶振12M

源程序如下:

S_SETBITP1.0;数字钟秒控制位

M_SETBITP1.1;分钟控制位

H_SETBITP1.2;小时控制位

D_SETBITP1.3;天控制位

SECONDEQU30H

MINUTEEQU31H

HOUREQU32H

DAYEQU33H

TCNTEQU34H

ORG00H

SJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVDPTR,#TABLE

MOVHOUR,#0;初始化

MOVMINUTE,#0

MOVSECOND,#0

MOVDAY,#0

MOVTCNT,#0

MOVTMOD,#01H

MOVTH0,#(65536-50000)/256;定时50毫秒

MOVTL0,#(65536-50000)MOD256

MOVIE,#82H

SETBTR0

;****************************************************

;判断是否有控制键按下,是哪一个键按下

A1:

LCALLDISPLAY

JNBS_SET,S1

JNBM_SET,S2

JNBH_SET,S3

LJMPA1

S1:

LCALLDELAY;去抖动

JBS_SET,A1

INCSECOND;秒值加1

MOVA,SECOND

CJNEA,#60,J0;判断是否加到60秒

MOVSECOND,#0

LJMPK1

S2:

LCALLDELAY

JBM_SET,A1

K1:

INCMINUTE;分钟值加1

MOVA,MINUTE

CJNEA,#60,J1;判断是否加到60分

MOVMINUTE,#0

LJMPK2

S3:

LCALLDELAY

JBH_SET,A1

K2:

INCHOUR;小时值加1

MOVA,HOUR

CJNEA,#24,J2;判断是否加到24小时

MOVHOUR,#0

LJMPK3

K3:

INCDAY;天值加1

MOVMINUTE,#0

MOVSECOND,#0

LJMPA1;等待按键抬起

J0:

JBS_SET,A1

LCALLDISPLAY

SJMPJ0

J1:

JBM_SET,A1

LCALLDISPLAY

SJMPJ1

J2:

JBH_SET,A1

LCALLDISPLAY

SJMPJ2;定时器中断服务程序,对秒,分钟和小时的计数

INT_T0:

MOVTH0,#(65536-50000)/256

MOVTL0,#(65536-50000)MOD256

INCTCNT

MOVA,TCNT

CJNEA,#20,RETUNE;计时1秒

INCSECOND

MOVTCNT,#0

MOVA,SECOND

CJNEA,#60,RETUNE

INCMINUTE

MOVSECOND,#0

MOVA,MINUTE

CJNEA,#60,RETUNE

INCHOUR

MOVMINUTE,#0

MOVA,HOUR

CJNEA,#24,RETUNE

MOVHOUR,#0

MOVMINUTE,#0

MOVSECOND,#0

MOVTCNT,#0

RETUNE:

RETI;

显示控制子程序

DISPLAY:

MOVA,SECOND;显示秒

MOVB,#10

DIVAB

CLRP3.6

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.6

MOVA,B

CLRP3.7

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.7

CLRP3.5

MOVP0,#40H;显示分隔符

LCALLDELAY

SETBP3.5

MOVA,MINUTE;显示分钟

MOVB,#10

DIVAB

CLRP3.3

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.3

MOVA,B

CLRP3.4

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.4

CLRP3.2

MOVP0,#40H;显示分隔符

LCALLDELAY

SETBP3.2

MOVA,HOUR;显示小时

MOVB,#10

DIVAB

CLRP3.0

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.0

MOVA,B

CLRP3.1

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

SETBP3.1

RET

TABLE:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

DELAY:

MOVR6,#10

D1:

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

END

六、调试与运行

6.1电路仿真

此设计的电路在单片机仿真软件[Proteus.Professional.7.1]中进行仿真,仿真电路如图5-1所示:

图5-1电子钟仿真电路图

6.2调试和运行

在KEIL(单片机汇编)C51软件中编写好的程序,将程序放入单片机仿真软件中,结合硬件电路进行调试与运行。

通过按键对时间进行调整。

如显示时间为14-30-22,既是14点30分22秒,通过以下调整则可实现。

(1)按动S-SET键,将秒调到22;

(2)按动M-SET键,将分调到30;

(3)按动H-SET键,将时调到14。

则将时间调到了所要显示的时间14-30-22,通过此方法可将时间调整到任何需要显示的时间。

七、PCB图的设计

8、总结

通过这次单片机课程设计,发现了自身所学知识存在许多的不足和问题,同时也学到了不少东西,提高了动手实践的能力. 

在整个设计过程中,从设计方案的确定,到具体电路的设计,最后到总体电路的联接构建工程量是比较大的,单靠个人能力,很多方面考虑不周,有的地方甚至毫无头绪,想不出具体方案,因此,绝对不能心急,不明白的地方和其它的同学共同讨论研究,毕竟群策群力办法要多些。

作为初学者,尽管这次设计中遇到了许多难题,但也都一一得以解决。

比如程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同学们的共同讨论,理清了思路,反而得心应手。

虽然此次课程设计的作品有些简单,但是通过自己的努力最终把电路成功设计出来,个人觉得还是很有成就感的,更为重要的是实实在在学到了不少东西,使自己这方面的知识技能有了很大的进步。

因此,我自己觉得这次课程设计对我而言算得上是一次全新的尝试,也是一个小小的成功,更是一次很好的锻炼,让我有了全方位的提高和进步。

九、设计相关说明

元器件清单:

单片机:

80C51

按键:

BUTTON

电阻:

RES

电容:

CAP

晶振:

CRYSTAL

LED数码管:

7SEG-MPX8-CA-BLUE(CA:

共阳,CC:

共阴)

地:

GRAND

电源:

POWER

十、参考文献

[1]《单片机原理与应用》宗成阁编著

[2]《单片机应用与仿真调试》严天峰编著

[3]《模拟电子技术(第三版)》胡宴如耿苏燕编著

[4]《数字电子技术(第三版)》杨志忠卫桦林编著

 

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

当前位置:首页 > 小学教育 > 英语

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

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