#51单片机的数字时钟.docx
- 文档编号:8495198
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:15
- 大小:274.62KB
#51单片机的数字时钟.docx
《#51单片机的数字时钟.docx》由会员分享,可在线阅读,更多相关《#51单片机的数字时钟.docx(15页珍藏版)》请在冰豆网上搜索。
#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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 数字 时钟