毕业设计(论文)
设计课题单片机电子时钟
系别电子工程系
专业名称应用电子技术
班级电子1212
学生姓名吴三坤
指导老师欧历元
教师职称副教授
2016年5月5号
摘 要
单片计算机即单片微型计算机.由RAM,ROM,CPU构成,定时,计数和多种接口于一体的微控制器.它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上.而51系列单片机是各单片机中最为典型和最有代表性的一种.这次课程设计通过对它的学习,应用,从而达到学习,设计,开发软,硬的能力.
本设计主要设计了一个基于AT89C51单片机的电子时钟.并在数码管上显示相应的时间.并通过一个控制键用来实现时间的调节和是否进入省电模式的转换.应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真.该方法仿真效果真实,准确,节省了硬件资源.
关键字:单片机,子时钟,键盘控制.
目录
前言...........................................................................................................................1
第一章电子时钟原理................................................................................................5
第二章方案
第三章系统设计
3.1总体设计
3.1.1系统说明
3.2模块设计
3.2.1时钟........................................................................................................5
3.2.2复位电路
3.3.3程序下载接口
3.3.4位选部分
3.3.5数码管的连接电路
3.3.6控制部分
第四章原理图............................................................................................................14
第五章软件设计.......................................................................................................20
5.1程序流程图3
5.2源程序5
第六章总结................................................................................................................26
致谢..............................................................................................................................27
信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能RST:复位输入.当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间.ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节.在FLASH编程期间,此引脚用于输入编程脉冲.在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作对外部输出的脉冲或用于定时目的.然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE的输出可在R8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用.另外,该引脚被略微拉高.如果微处理器在外部执行状态ALE禁止,置位无效./PSEN:外部程序存储器的选通信号.在由外部程序存储器取指期间,每个机器周期两次/PSEN有效.但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现./EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器.注意加密方式1时,/EA将内部锁定为RESET,当/EA端保持高电平时,此间内部程序存储器.在FLASH编程期间,此引脚也用于施加12V编程电源(VPP).XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入.XTAL2:来自反向振荡器的输出.
一单片机I/O口的输出实验
1实验程序
程序如下
ORG0000HAJMPLOOP
LOOP:MOVSP,#65H,//保护堆栈,养成习惯
MOVP1,#0FFH,
LCALLDELAY,
MOVP1,#00H,
LCALLDELAY,
LJMPLOOP,
DELAY:MOVR7,#250,
D1:MOVR6,#250,
D2:DJNZR6,D2,
DJNZR7,D1,
RET,
END
将以上写入MEDWIN编译软件,源代码编译生成HEX文件,烧写到实验板看到了什么8只LED灯都在闪烁
2程序分析
这段程序和教程里的程序比较有两处不同第1条原来是SETBP1.0现在改为MOVP1#0FFH第3条原来是CLRP1现在改为MOVP1#00H为什么这样改了之后就变成了8只LED灯同时闪烁了原来P1代表了P1.7-P1.0的全部我们把它当作一个存储器单元即一个字节不过对一个存储器单元送数就应该用MOV指令了在这里P1P1.7-P1.0接的是LED灯也就是负载它起到了一个输出端的作用那如果把P1改为P0或P2或P3行不行呢答案是肯定的为什么我们稍后再谈接着看第2个实验
二单片机I/O口的输入实验
1实验程序MAIN:MOVP3,#0FFH,
LOOP:MOVA,P3,
MOVP1,A,
LJMPLOOP,
END同样的方法把程序搞到单片机实验板上按下第1个按钮有一个LED灯亮了按下第2个按钮另一个LED灯亮了松开按钮相应的灯就灭了是不是有点象工业控制中的点动控制原理分析一下这个程序
3.振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出.该反向放大器可以配置为片内振荡器.石晶振荡和陶瓷振荡均可采用.如采用外部时钟源驱动器件,XTAL2应不接.有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度.
4.芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成.在芯片擦操作中,代码阵列全被写"1"且在任何非空存储字节被重复编程以前,该操作必须被执行.此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式.在闲置模式下,CPU停止工作.但RAM,定时器,计数器,串口和中断系统仍在工作.在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止.
原理图
图4-1
软件设计
程序流程图
(二)源程序
表5-P1口对应段码及数值显示数字P1.7P1.6P1.5P1.4P1.1.2P1.1P1.016进制代码dpgfedcba0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FH
JMPSTART
ORG0BH
JMPTIM0
START:MOVSP,#70H
MOV28H,#00
MOV2AH,#12H
MOV2BH,#00
MOV2CH,#00
MOVTMOD,#00000001B
MOVTH0,#HIGH(65536-4000)
MOVTL0,#LOW(65536-4000)
MOVIE,#10000010B
MOVR4,#250
SETBTR0
LOOP:JBP0.0,N2
CALLDELAY
MOVA,2CH
ADDA,#01
DAA
MOV2CH,A
CJNEA,#60H,N1
MOV2CH,#00
N1:JNBP0.0,$
CALLDELAY
N2:JBP0.1,N4
CALLDELAY
MOVA,2BH
ADDA,#01
DAA
MOV2BH,A
CJNEA,#60H,N3
MOV2BH,#00
N3:JNBP0.1,$
CALLDELAY
N4:JBP0.2,LOOP
CALLDELAY
MOVA,2AH
ADDA,#01
DAA
MOV2AH,A
CJNEA,#24H,N5
MOV2AH,#00
N5:JNBP0.2,$
CALLDELAY
JMPLOOP
TIM0:MOVTH0,#HIGH(65536-4000)
MOVTL0,#LOW(65536-4000)
PUSHACC
PUSHPSW
DJNZR4,X2
MOVR4,#250
CALLCLOCK
CALLDISP
X2:CALLSCAN
POPPSW
POPACC
RETI
SCAN:MOVR0,#28H
INC@R0
CJNE@R0,#6,X3
MOV@R0,#0
X3:MOVA,@R0
ADDA,#20H
MOVR1,A
MOVA,@R0
SWAPA
ORLA,@R1
MOVP1,A
RET
CLOCK:MOVA,2CH
ADDA,#1
DAA
MOV2CH,A
CJNEA,#60H,X4
MOV2CH,#00
MOVA,2BH
ADDA,#1
DAA
MOV2BH,A
CJNEA,#60H,X4
MOV2BH,#00
MOVA,2AH
ADDA,#1
DAA
MOV2AH,A
CJNEA,#24H,X4
MOV2AH,#00
X4:RET
DISP:
MOVR1,#20H
MOVA,2CH
MOVB,#10H
DIVAB
MOV@R1,B
INCR1
MOV@R1,A
INCR1
MOVA,2BH
MOVB,#10H
DIVAB
MOV@R1,B
INCR1
MOV@R1,A
INCR1
MOVA,2AH
MOVB,#10H
DIVAB
MOV@R1,B
INCR1
MOV@R1,A
RET
DELAY:MOVR6,#60
D1:MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
END
第六章总结
本设计能够很准确的走时,并能够通过硬件对时钟进行时间调整.通过对自己在大学年时间里所学的书面表达能力,为自己今后进一步深化学习,积累了一定宝贵的经验也是专业知识的学习过程运用已有的专业基础知识,进行,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练.培养运用所学知识解决实际问题的能力,水平提高了,将与整合,怎么写作于教学实践,能力这个实验十分有意义我获得很深刻的经验我们的立足于,以解决教学中的实际问题为目的,以,问题即课题,即,专家采取与结合的方式,的问题,实践性.这种做法既有助于完成,又有助于带动实践,解决实际问题
致谢
通过这三年来的忙碌和学习,本次毕业论文设计已接近尾声,作为一个大专生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,在这里衷心感谢指导老师的督促指导,以及一起学习的同学们的支持,让我按时完成了这次毕业设计.
在毕业论文设计过程中,我遇到了许许多多的困难.在此我要感谢我的指导老师欧历元老师给我悉心的帮助和对我耐心而细致的指导,我的毕业论文较为复杂烦琐,但是欧老师仍然细心地纠正图中的错误.除了敬佩曾老师的专业水平以外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作,我才得以解决毕业设计中遇到的种种问题.同时感谢我院,系领导对我们的教导和关注,感谢大学三年传授我们专业知识的所有老师.他们是欧历元,曽令都,祝超,熊成基,刘义质等谢谢你们呕心沥血的教导.还有谢谢我周围的同窗朋友,他们给了我无数的关心和鼓励,也让我的大学生活充满了温暖和欢乐.如果没有他们的帮助,此次毕业论文的完成将变得困难.他们在我设计中给了我许多宝贵的意见和建议.同时也要感谢自己遇到困难的时候没有一蹶不振,取而代之的是找到了最好的方法来解决问题.最后,感谢生我养我的父母.谢谢他们给了我无私的爱,为我求学所付出的巨大牺牲和努力.
.电路原理图与电路设计教程Protel99SE[M].北京希望电子出版社.2002[7]王毓银.数字电路逻辑设计[M].高等教育出版社.2004-2
[8]邱关源.电路[M].高等教育出版社.2003-2
湖南工商职业学院毕业设计(论文)
N
24小时到
分单元清零,时单元加1
N
N
N
Y
Y
时单元清零
时间显示
中断返回
开始
一秒时间到
60秒时间到
60分钟到
秒单元加1
秒单元清零,分单元加1
Y
Y
时钟调整程序
关闭显示,省电状态
分钟闪烁,调时状态
分值加1
按键S2时间t>,1
时值等于24
按键S2时间t<,0.5
按键S2时间t<,0.5
时钟闪烁,调时状态
分值等于60
分值清零
时值加1
时值清零
返回显示
S2是否按下
第24页共28页