#51单片机的数字时钟.docx

上传人:b****6 文档编号:8495198 上传时间:2023-01-31 格式:DOCX 页数:15 大小:274.62KB
下载 相关 举报
#51单片机的数字时钟.docx_第1页
第1页 / 共15页
#51单片机的数字时钟.docx_第2页
第2页 / 共15页
#51单片机的数字时钟.docx_第3页
第3页 / 共15页
#51单片机的数字时钟.docx_第4页
第4页 / 共15页
#51单片机的数字时钟.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

#51单片机的数字时钟.docx

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

#51单片机的数字时钟.docx

#51单片机的数字时钟

中北大学信息商务学院

课程设计说明书

学生姓名:

王春鸣学号:

08050642X39

学院:

信息商务学院

专业:

电子信息项目

题目:

专业综合实践之单片机信息处理部分

单片机控制的数字钟的设计

指导教师:

王浩全职称:

副教授

2018年12月12日

中北大学信息商务学院

课程设计任务书

2018-2018学年第一学期

学院:

信息商务学院

专业:

电子信息项目

学生姓名:

王春鸣学号:

08050642X39

课程设计题目:

专业综合实践之单片机信息处理部分:

单片机控制的数字钟的设计

起迄日期:

2018年12月12日~2018年12月24日

课程设计地点:

系专业实验室,201

指导教师:

王浩全

系主任:

王浩全

下达任务书日期:

2018年12月12日

课程设计任务书

一.设计目的:

巩固掌握单片机工作原理及应用

提高编程能力

二.设计内容和要求<包括原始数据、技术参数、条件、设计要求等):

单片机选用89C51

要求实现时、分、秒显示

三.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文>、图纸、实物样品等〕:

<1)提供核心器件的工作原理与应用介绍;

<2)提供用Protel设计的电路原理图,印刷板电路图;

<3)提供用Multisim、MaxPlus、Proteus、Medwin、KeilC等软件对电路的仿真、编程与分析;

<4)提供符合规定要求的课程设计说明书;

<5)提供参考文献不少于15篇,且必须是相关的参考文献;

课程设计任务书

四.主要参考文献:

[1]王守中,聂元铭,51单片机开发入门与典型实例.北京:

人民邮电出版社,2009

[2]徐爱钧,单片机原理实用教程--基于proteus虚拟仿真.北京:

电子工业出版社,2018

[3]周润景,袁伟亭,景晓松,Proteus在MCS-51&ARM7系统中的应用百例.北京:

电子工业出版社,2006

[4]雷思孝,冯育长,单片机系统设计及项目应用.西安:

西安电子科技大学出版社,2005

[5]先锋工作室,单片机程序设计实例.北京:

清华大学出版社,2003

[6]AT89C51Datasheet,ATMEL,2004

五.设计成果形式及要求:

说明书一份

六.工作计划及进度:

12月12日~12月15日:

查资料;

12月16日~12月20日:

在指导教师指导下设计方案;

12月21日~12月23日:

在指导教师辅导下完成实验;撰写课程设计说明书;

12月24日:

答辩

系主任审查意见:

签字:

年月日

1设计方案简介1

1.1设计分析1

1.2方案选择与论证1

1.2.1方案简介1

1.2.2方案的论证4

1.3设计条件及主要参数表4

1.4系统设计框图5

2硬件电路设计6

2.1ProteusISIS仿真原理图6

2.2基于ARES7professional的PCB图和3D图示6

3实验源程序7

4仿真结果与说明10

5课程设计心得体会10

6参考文献11

1.设计方案简介

1.1设计分析

利用89C51单片机结合数码管显示器设计一能够显示时、分、秒的电子时钟,因为用LED数码管显示数据,在夜晚或黑暗的场合里也可以使用,具有一定的实用性;电子时钟的设计利用单片机的输入输出功能、定时/计数功能和中断功能,因此,是对前面讲的单片机基本功能知识的一次复习、总结和提高;因为设计单片机时钟时应尽量减少硬件,所以丰富的功能只能由软件来完成,因此使程序语句比较多,看起来较复杂。

所以,在学习设计过程中会给我们带来两点启发。

<1)注意程序的模块化设计与分析。

在程序设计时,一般将比较复杂的大程序分解若干个功能模块,然后再把各模块通过主程序有机地联系在一起。

分析程序是设计程序的逆过程,首先要弄清程序是由几个模块所组成,每个模块主要功能是什么,模块之间是怎样联系在一起的。

先有一个粗线条、总轮廓,然后再逐步深入分析。

每个子程序就是一个模块,子程序段的特征是:

开始行有程序标号,以便主程序调用;末尾行有子程序返回指令RET或RETI。

<2)每个典型模块既可在这个程序使用,也可以在其他程序中使用。

所以,掌握一些典型模块的功能。

原理,建立一个模块库,一旦设计新的程序需要使用时就不必重新编写,可以减少重复劳动。

1.2方案选择与论证

1.2.1方案简介

方案一:

单片机时钟的结构分硬件和软件两部分。

其中,硬件部分比较简单,主要由单片机、LED数码管显示器和按键开关组成,单片机P0端口接有4位共阳极LED数码管显示器。

数码管的8个引脚依照a、b、c、d、e、f、g、dp顺序依次与P0端口的8个引脚P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7相连,R是限流电阻。

4位LED数码管的共阳极引脚分别于V1~V4三极管的集电极相连,三极管的基极通过限流电阻分别接在单片机P2端口的P2.0~P2.3引脚上。

4位数码管显示器分别由4只三极管控制,例如,P2.0输出为低电平时,V4三极管导通,与其相连的共阳极数码管显示器开始工作;P2.0输出为高电平时,V4三极管截止,与其相连的数码管显示器停止工作。

例如,设置定时器T0工作在模式0状态下,设置每隔5ms中断一次,中断200次正好是1s。

中断服务程序里记载着中断的次数,中断200次为1秒,60秒为1分,60分为1小时,24小时为1天。

时钟的显示是使用4位LED数码管,其软件设计原理是:

由中断产生的秒、分、小时数据,经转换子程序转换成适应LED数码管显示的数据,并通过单片机的输出功能输入到数码管显示器,再通过显示其扫描程序,显示出时钟的走时时间。

调整时钟时间是利用了单片机的输入功能,把按键开关作为单片机的输入信号,通过检测被按下的开关,从而执行赋予该开关调整时间功能。

因此,在设计程序时把单片机时钟功能分解为走时、显示和调整时间3个主要部分,每一部分的功能通过编写相应的子程序来完成,然后再通过主程序调用子程序,使这3部分有

机地连在一起,完成单片机的时钟设计。

电路设计下图:

方案二:

利用8051单片机片内定时器,设计一台可调数字钟,能通过按键进行时、分、秒的调整,采用8位LED数码管以24小时方式进行显示。

8051单片机的P0口通过三台总线收发器74LS245接到8位共阴极LED数码管的数字输入端,单片机的P3口作为数码管的数位控制,从P0口输出显示字符段码,从P3口输出循环扫描控制位,利用人眼的视觉暂留功能,达到8位数码管同时显示的效果。

单片机的P1.0~P1.2引脚通过三个按钮开关接地,通过判断P1.0~P1.2引脚电平的高低,决定是否进行数字钟的时、分、秒调整。

本设计利用8051单片机片内定时器T0的中断来实现数字钟功能,T0定时时间设为50ms,每隔50ms产生一次定时中断,如果中断20次即达到1秒。

程序设计是预先安排时、分、秒内存单元,在中断服务程序中根据中断次数来决定秒单元是否加1,当秒单元达到60时分单元加1,同时秒单元清0,分单元达到60时,时单元加1,同时分单元清0,时单元达到24时,时、分、秒单元同时清0,又从头开始计时。

方案三:

本方案利用AT89C51的定时器和6位7段数码管,设计一个电子时钟。

显示格式“XXXXXX”,由左向右分别是:

时、分、秒。

1.2.2方案的论证

三个方案中,方案一因为引脚限制只能显示小时,分钟的计时,且线路较为繁琐,以蜂鸣器连续两次发出响声,同时工作指示灯LED闪动,作为程序开始的指示,加大了相关汇编程序的难度;方案二中时可调的数字时钟,单片机的P1.0~P1.2引脚通过三个按钮开关接地,通过判断P1.0~P1.2引脚电平的高低,决定是否进行数字钟的时、分、秒调整。

功能完善但采用的是8051单片机与课程设计要求内容不一致。

方案三中采用89C51单片机可以实现简单的计时功能,并且该芯片简单易控制,成本低,性能稳定,因此选择方案三。

1.3设计条件及主要参数表

ProteusISIS,keilc51,ProteusARES编辑环境。

元件清单

元件名称

所属类

所属子类

AT89C51

MicroprocessorICs

8051Family

CAP

Capacitors

Generic

CAP-ELEC

Capacitors

Generic

CRYSTAL

Miscellaneous

---

RES

Resistors

Generic

7SEG-MPX6-CC-BLUE

Optoelectronics

7-SegmentDisplays

74LS245

TTL74LSseries

Transceivers

1.4系统设计框图

 

2、硬件电路设计

2.1proteusISIS仿真原理图

2.2基于ARES7Professional的PCB图

3、源程序

LEDBUFEQU30H。

显示缓冲

HOUREQU40H

MINUTEEQU41H

SECONDEQU42H

C100usEQU43H

TICKEQU10000。

设置中断次数

T100usEQU256-100。

设置定时器初始值

LJMPSTART。

跳至主程序

ORG00BH。

定时器0中断入口

T0INT:

PUSHPSW。

状态保护

PUSHACC

MOVA,C100us+1

JNZGOON。

计数值是否为0

DECC100us

GOON:

DECC100us+1

MOVA,C100us

ORLA,C100us+1

JNZEXIT

MOVC100us,#HIGH(TICK>。

重置计数值

MOVC100us+1,#LOW(TICK>

INCSECOND。

秒值加1

MOVA,SECOND

CJNEA,#60,EXIT。

秒值是否为60

MOVSECOND,#0。

秒值为60则清0

INCMINUTE。

分值加1

MOVA,MINUTE

CJNEA,#60,EXIT。

分值是否为60

MOVMINUTE,#0。

分值为60则清0

INCHOUR。

小时值加1

MOVA,HOUR

CJNEA,#24,EXIT。

小时值是否为24

MOVHOUR,#0。

小时值为24则清0

EXIT:

POPACC

POPPSW

RETI

DELAY:

MOVR7,#0FFH。

延时子程序

DELAYLOOP:

DJNZR7,DELAYLOOP

DJNZR6,DELAYLOOP

RET

LEDMAP:

DB3FH,06H,5BH,4FH。

8段管显示码

DB66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH

DB39H,5EH,79H,71H

DISPLAYLED:

MOVC100us+6,#0。

右边两位不显示

MOVC100us+7,#0

MOVR0,#LEDBUF

MOVR1,#6。

共6个8段管

MOVR2,#01111111B。

从左边开始显示

LOOP:

MOVA,#0

MOVP0,A。

关闭所有8段管

MOVA,@R0

MOVP0,A

MOVA,R2

MOVP3,A。

显示1位8段管

MOVR6,#01H

CALLDELAY

MOVA,R2。

显示下一位

RRA

MOVR2,A

INCR0

DJNZR1,LOOP

RET

T0LED:

MOVDPTR,#LEDMAP。

将字段码转换显示码

MOVCA,@A+DPTR

RET

START:

MOVTMOD,#02H。

模式2,定时器

MOVTH0,#T100us。

设置定时器初始值

MOVTL0,#T100us

MOVIE,#10000010B。

EA=1,IT0=1

MOVHOUR,#0。

显示初始值

MOVMINUTE,#0

MOVSECOND,#0

MOVC100us,#HIGH(TICK>

MOVC100us+1,#LOW(TICK>

SETBTR0。

启动定时器0

MLOOP:

MOVA,HOUR。

显示小时十位值

MOVB,#10H

DIVAB

CALLT0LED

MOVLEDBUF,A。

将十位值送显示缓存

MOVA,B。

显示小时个位值

CALLT0LED

ORLA,#80H。

显示小数点

MOVLEDBUF+1,A。

送显示缓存

MOVA,MINUTE。

显示分钟十位值

MOVB,#10

DIVAB

CALLT0LED

MOVLEDBUF+2,A。

将十位值送显示缓存

MOVA,B。

显示分钟个位值

CALLT0LED

ORLA,#80H。

显示小数点

MOVLEDBUF+3,A。

送显示缓存

MOVA,SECOND

MOVB,#10。

显示秒十位值

DIVAB

CALLT0LED

MOVLEDBUF+4,A。

送显示缓存

MOVA,B

CALLT0LED

MOVLEDBUF+5,A

CALLDISPLAYLED。

调用显示子程序

LJMPMLOOP

END

4、仿真结果与说明

本设计使用单片机内部计数器的定时功能,有关设置主要针对定时器/计数器工作方式寄存器TMOD。

具体内容为:

工作方式选择位,设置为方式2;计数/定时方式选择位,设置为定时器工作方式。

定时器每100μs中断一次,在中断服务程序中,对中断次数进行计数,100μs计数10000次就是1s。

然后在对秒计数得到分和小时值,并送入显示缓存。

单片机P0口输出字段码,P3出输出位码。

5、课程设计心得体会

本设计能够准确显示时间<显示格式为时时:

分分:

秒秒,24小时制),设计以硬件软件化为指导思想,充分发挥了单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。

基于单片机的数字时钟系统具有显示准确,直观等特点,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性。

电子时代已经到来,作为新时代的我们,更应该提高自身能力,适应新世代的发展,知识来自实践,多去生活中探寻所需要的。

对于上述所提到的课程设计,应尽量考虑到人为因素,增强时钟的实用性和操作性,为使用者提供切实的方便。

所以,在设计的时候,应该从多方面,多角度去考虑问题,而且应该进一步提高时钟的质量。

此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,对今后这类工作有着和大的帮助,日后也可以高质量的完成项目。

这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在王老师的辛勤指导下,终于游逆而解。

同时,在王老师的身上我们学也到很多实用的知识,在此我们表示感谢!

同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

6、参考文献

[1]王守中,聂元铭,51单片机开发入门与典型实例.北京:

人民邮电出版社,2009

[2]徐爱钧,单片机原理实用教程--基于proteus虚拟仿真.北京:

电子工业出版

社,2018

[3]周润景,袁伟亭,景晓松,Proteus在MCS-51&ARM7系统中的应用百例.北京:

电子工业出版社,2006

[4]雷思孝,冯育长,单片机系统设计及项目应用.西安:

西安电子科技大学出版

社,2005

[5]先锋工作室,单片机程序设计实例.北京:

清华大学出版社,2003

[6]AT89C51Datasheet,ATMEL,2004

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

当前位置:首页 > 解决方案 > 学习计划

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

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