数字电子钟毕业设计报告.docx
- 文档编号:6332574
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:16
- 大小:138.75KB
数字电子钟毕业设计报告.docx
《数字电子钟毕业设计报告.docx》由会员分享,可在线阅读,更多相关《数字电子钟毕业设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
数字电子钟毕业设计报告
目录
1.课程设计目的…………………………………………………………………2
2.课程设计题目描述和要求……………………………………………………
3.课程设计报告内容……………………………………………………………
3.1实验名称………………………………………………………………………
3.2实验目的………………………………………………………………………
3.3实验器材及主要器件…………………………………………………………
3.4数字电子钟基本原理…………………………………………………………
3.5数字电子钟单元电路设计和器件选择………………………………………
3.6数字电子钟AT89C2051单片机简介…………………………………………
3.7数字电子钟电路图……………………………………………………………
3.8数字电子钟源代码……………………………………………………………
4.总结……………………………………………………………………………
1.课程设计目的
※掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法;
※进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;
※提高电路布局﹑布线及检查和排除故障的能力;
※培养书写综合实验报告的能力。
2.课程设计题目描述和要求
(1)设计一个有“时”、“分”显示,且有校时功能的电子钟;
(2)用中小规模集成电路组成电子钟,并在实验箱上进行组装、调试;
(3)画出框图和逻辑电路图,写出设计、实验总结报告;
3.课程设计报告内容
3.1实验名称
4位数字电子钟
3.2实验目的
·掌握数字电子钟的设计、组装与调试方法;
·熟悉集成电路的使用方法。
3.3实验器材及主要器件
(1)AT89C2051单片机
(2)共阴四段显示器
(3)电阻、电容、导线等(若干)
3.4数字电子钟基本原理
数字电子钟是由集成芯片构成的振荡电路、分频器、计数器、显示器和校时电路组成。
集成芯片构成的振荡电路产生的信号经过分频器作为秒脉冲,秒脉冲送入计数器,计数结果通过“时”、“分”译码器显示时间。
3.5数字电子钟单元电路设计和器件选择
1.振荡器
石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。
它还具有压电效应,在晶体某一方向加一电场,则在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限止时,才达到最后稳定。
这用压电谐振的频率即为晶体振荡器的固有频率。
一般来说,振荡器的频率越高,计时精度越高,但耗电量将增大。
如果精度要求不高也可以采用由集成电路定时器555与RC组成的多谐振荡器。
如图所示。
设振荡频率f=1KHz,R为可调电阻,微调R1可以调出1KHz输出。
2.分频器
由于振荡器产生的频率很高,要得到秒脉冲,需要分屏电路。
本实验由集成电路定时器与RC组成的多谐振荡器,产生1KHz的脉冲信号。
3.计数器
秒脉冲信号经过计数器,分别得到“分”个位、十位以及“时”个位、十位的计时。
“分”计数器为六十进制,小时为十二进制。
4.显示器
本系统用四段发光二极管来显示译码器输出的数字,显示器有两种:
共阳极显示器或共阴极显示器。
AT89C2051单片机对应的显示器是共阴极显示器。
5.校时电路
当数字钟走时出现误差时,需要校正时间。
校时电路实现对“时”“分”的校准。
在电路中设有正常计时和校对位置。
本实验实现“时”“分”的校对。
对校时的要求是,在小时校正时不影响分的正常计数;在分校正时不影响小时的正常计数。
校时开关的功能表
S1
复位键
S3
功能键
S4
置数键
3.6本设计采用AT89C2051单片机作为中央处理器。
其主要任务是不断处理数据并把数据送到LED显示,通过扫描按钮信息来完成时间的调整。
1)AT89C2051简介
AT89C2051是一个低电压,高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读Flash程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可为您提供许多高性价比的应用场合。
AT89C2051是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。
同时AT89C2051的时钟频率可以为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。
省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。
2)主要功能特性:
·兼容MCS51指令系统
·15个双向I/O口
·两个16位可编程定时/计数器
·时钟频率0-24MHz
·两个外部中断源
·可直接驱动LED
·低功耗睡眠功能
·可编程UARL通道
·2k可反复擦写(>1000次)FlashROM
·6个中断源
·2.7-6.V的宽工作电压范围
·128x8bit内部RAM
·两个串行中断
·两级加密位
·内置一个模拟比较放大器
·软件设置睡眠和唤醒功能
3)AT89C2051结构
AT89C2051提供以下标准功能:
2k字节Flash闪速存储器,128字节内部RAM,15个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,内置一个精密比较器,片内震荡器及时钟电路.同时,AT89C2051可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式.空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作.掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位.
引脚功能说明:
VCC:
电源电压
GND:
地
P1口:
P1口是一组8位双向I/O口,P1.2--P1.7提供内部上拉电阻,P1.0和P1.1内部无上拉电阻,主要是考虑它们分别是内部精密比较器的同相输入端(AINO)和反相输入端(AIN1),如果需要应在外部接上拉电阻.P1口输出缓冲器可吸收20mA电流并可直接驱动LED.当P1口引脚写入"1"时可作输入端,当引脚P1.2--P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流(I1L).
P1口还在Flash闪速编程及程序校验时接收代码数据.
P3口:
P3口的P3.0--P3.5、P3.7是带有内部上拉电阻的7个双向I/O口.P3.6没有引出,它作为一个通用I/O口但不可访问,但可以作为固定输入片内比较器的输出信号,P3口缓冲器可吸收20mA的电流.当P3口写入"1"时,它们被内部上拉电阻拉高并可作为输入端口.作输入端时,被外部拉低的P3口将用上拉电阻输出电流(I1L).
P3口还用于实现AT89C2051特殊的功能,如下表所示:
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号.
RST:
复位输入.RST引脚一旦变成两个机器周期以上高电平,所有的I/O口都将复位到"1"(高电平)状态,当震荡器正在工作时,持续两个机器周期以上的高电平便可完成复位,每个机器周期为12个震荡时钟周期.
XTAL1:
震荡器反相放大器的及内部时钟发生器的输入端.
XTAL2:
震荡器反相放大器的输出端.
4)AT89C2051单片机指令
AT89C2051是经济型低价位的微控制器,它含有2K字节的Flash闪速程序存储器,指令系统与MCS-51完全兼容,可使用MCS-51指令系统对其进行编程,但是在使用某些有关指令进行编程时,程序员须注意一些事项.
和跳转或分支有关的指令有一定的空间约束,使目的地址能安全落在AT89C2051的2K字节的物理程序存储器空间内,程序员必须注意这一点.对于2K字节存储器的AT89C2051来说,LJMP7EOH是一条有效指令,而LJMP900H则为有效指令.
3.7数字电子钟电路图
3.8数字电子钟源代码
源程序如下:
ORG0000H;程序开始入口
LJMPSTART
ORG0003H;外中断0中断程序入口
RETI
ORG000BH;定时器T0中断程序入口
LJMPINTT0;跳至INTTO执行
ORG0013H;外中断1中断程序入口
RETI
ORG001BH;定时器T1中断程序入口
LJMPINTT1
ORG0023H;串行中断程序入口地址
RETI
;---------------主程序----------------------;
START:
MOVR0,#70H;70给R0,清70-7FH显示内存
MOVR7,#0FH
CLEARDISP:
MOV@R0,#00H;0给R0中的数为地址的内存中存放(70H)
INCR0
DJNZR7,CLEARDISP
MOV78H,#2;默认时间为12:
00,闹钟5:
00
MOV79H,#1
MOV74H,#2;防止上电时数码管显示00小时
MOV75H,#1
MOV66H,#1;中断退出时66H为1时,分、时计时单元数据移入显存标志
MOV68H,#1;上电默认闹钟开状态
MOV7DH,#6;闹钟时十位
MOV7CH,#3
MOV69H,#0
MOV7AH,#0AH;放入"熄灭符"数据
MOVTMOD,#11H;设T0、T1为16位定时器
MOVTL0,#0B0H;50MS定时初值(T0计时用)
MOVTH0,#3CH
SETBEA;总中断开放
SETBET0;允许T0中断
SETBTR0;T0定时器开始计时
MOVR4,#14H;1秒定时用初值(50MS×20)
START1:
LCALLDISPLAY;显示子程序
LCALLBEEP;闹钟查询
JNBP1.7,SETTIME;P1.7口为0时转时间调整程序
JMPSTART1;P1.7口为1时跳回START1
;-----------------------时间闹钟调整系统--------------------------;
NFLAG:
MOVA,68H;设置闹钟开关状态
CJNEA,#1,BEE68
MOV68H,#0
JMPE6
BEE68:
MOV68H,#1
E6:
MOV66H,#8;中断退出66H不为1时分、时计时单元数据移入显存标志
MOV72H,7BH
MOV73H,7CH
MOV74H,7DH
MOV75H,7EH
LCALLDDL
LCALLDDL
MOV72H,68H
MOV73H,69H
MOV74H,7AH
MOV75H,7AH
LCALLDDL
LCALLDDL
MOV66H,#1
LJMPSTART1
SETTIME:
LCALLDDL
JBP1.7,NFLAG;键按下时间小于1秒,设置闹钟开关状态并查看闹钟时间,不关走时,确保准确,大于1秒调时
MOVTL1,#0B0H;T1闪烁定时初值
MOVTH1,#3CH
MOVR2,#06H;进入调时状态,赋闪烁定时初值
MOV66H,#8;调闹钟时保持走时,关闭时钟显示数据
SETBET1;允许T1中断
SETBTR1;开启定时器T1
SET1:
LCALLDISPLAY;调用显示,防止键按下无显示
JNBP1.7,SET1;P1.7口为0等待键释放
MOVR5,#00H;清设置类型闪烁标志
SETN1:
INCR5;闹钟分调整
SET5:
LCALLDISPLAY
JBP1.7,SET5
SEETN1:
LCALLDDL;有键按下大于1秒分时间连续加(0.5秒加1),小于1秒转调时状态
JBP1.7,SET6;键释放查询,键释放自动转调时
MOVR0,#7CH
LCALLADD1
MOVA,R3
CLRC
CJNEA,#60H,HHN1
HHN1:
JCSEETN1
LCALLCLR0
JMPSEETN1
SET6:
INCR5;闹钟时调整
SEET6:
LCALLDISPLAY
JBP1.7,SEET6
SEETNH1:
LCALLDDL
JBP1.7,SETF
MOVR0,#7EH
LCALLADD1
MOVA,R3
CLRC
CJNEA,#24H,HOUU1
HOUU1:
JCSEETNH1
LCALLCLR0
JMPSEETNH1
SETF:
LCALLDISPLAY
JBP1.7,SETF
LCALLDDL
JNBP1.7,SETOUT;短按调时,长按退出
CLRET0
CLRTR0
MOV70H,#00H;设定后的时间从00秒开始走时
MOV71H,#00H
INCR5
SET3:
LCALLDISPLAY
JBP1.7,SET3
SETMM:
LCALLDDL
JBP1.7,SET4
MOVR0,#77H
LCALLADD1
MOVA,R3
CLRC
CJNEA,#60H,MMH
MMH:
JCSETMM
LCALLCLR0
AJMPSETMM
SET4:
INCR5
SEET4:
LCALLDISPLAY
JBP1.7,SEET4
SETHH:
LCALLDDL
JBP1.7,SETOUT1
MOVR0,#79H
LCALLADD1
MOVA,R3
CLRC
CJNEA,#24H,HOUU
HOUU:
JCSETHH
LCALLCLR0
AJMPSETHH
SETOUT1:
SETBET0
SETBTR0;计时开始
SETOUT:
MOVR5,#00H;清设置类型闪烁标志
CLRTR1;关闭T1
CLRET1;关T1中断
MOV66H,#1
SETOUT2:
LCALLDISPLAY
JNBP1.7,SETOUT2
LJMPSTART1
;--------------------------延时1秒钟-----------------------;
DDL:
MOV18H,#36
DDL0:
MOV17H,#239
DDL1:
LCALLDISPLAY
DJNZ17H,DDL1
DJNZ18H,DDL0
RET
;----------------------------T0中断程序------------------------;
INTT0:
PUSHACC;打包
PUSHPSW
CLRET0
CLRTR0
MOVA,#0B7H
ADDA,TL0
MOVTL0,A
MOVA,#3CH
ADDCA,TH0
MOVTH0,A
SETBTR0
DJNZR4,OUTT0;20次中断未到中断退出
ADDSS:
MOVR4,#14H;20次中断到(1秒)重赋初值
MOVR0,#71H;指向秒计时单元(70-71H)
ACALLADD1;调用加1程序(加1秒操作)
MOVA,R3;秒数据放入A(R3为2位十进制数组合)
CLRC;清进位标志
CJNEA,#60H,ADDMM
ADDMM:
JCOUTT01;小于60秒退出
ACALLCLR0;等于或大于60秒清0
MOVR0,#77H;指向分计时单元(76H-77H)
ACALLADD1
MOVA,R3
CLRC
CJNEA,#60H,ADDHH
ADDHH:
JCOUTT0
ACALLCLR0
MOVR0,#79H;指向小时计时单元(78H-79H)
ACALLADD1
MOVA,R3
CLRC
CJNEA,#24H,HOUR
HOUR:
JCOUTT0
ACALLCLR0
OUTT0:
MOVA,66H;查询标志
CJNEA,#1,OUTT01
MOV72H,76H;中断退出时将分、时计时单元数据移入对应显示单元
MOV73H,77H
MOV74H,78H
MOV75H,79H
OUTT01:
POPPSW;出栈
POPACC
SETBET0;开放T0
RETI;中断返回
;---------------------------加1程序--------------------------;
ADD1:
MOVA,@R0;取当前计时单元数据到A
DECR0;指向前一地址
SWAPA;A中数据高四位与低四位交换
ORLA,@R0;前一地址中数据放入A中低四位
ADDA,#01H;A加1操作
DAA;十进制调整
MOVR3,A;移入R3寄存器
ANLA,#0FH;高四位变0
MOV@R0,A;放回前一地址单元
MOVA,R3;取回R3中暂存数据
INCR0;指向当前地址单元
SWAPA;A中数据高四位与低四位交换
ANLA,#0FH;高四位变0
MOV@R0,A;数据放入当削地址单元中
RET
CLR0:
CLRC
CLRA;清累加器
MOV@R0,A;清当前地址单元
DECR0;指向前一地址
MOV@R0,A;前一地址单元清0
RET;子程序返回
;-------------------------调时闪烁程序----------------------;
INTT1:
PUSHACC
PUSHPSW
MOVTL1,#0B0H
MOVTH1,#3CH
DJNZR2,INTT1OUT;0.3秒未到退出中断(50MS中断6次)
MOVR2,#06H;重装0.3秒定时用初值
CPL02H;0.3秒定时到对闪烁标志取反
JB02H,FLASH1;02H位为1时显示单元"熄灭"
MOVA,R5
CJNEA,#01H,NL
JMPNNN1
NL:
CJNEA,#02H,NL1
LJMPNNN1
NL1:
CJNEA,#03H,NL2
LJMPNLL
NL2:
CJNEA,#04H,INTT1OUT
LJMPNLL
NLL:
MOV72H,76H
MOV73H,77H
MOV74H,78H
MOV75H,79H
AJMPINTT1OUT
NNN1:
MOV72H,7BH
MOV73H,7CH
MOV74H,7DH
MOV75H,7EH
INTT1OUT:
POPPSW;恢复现场
POPACC
RETI;中断退出
FLASH1:
MOVA,R5
CJNEA,#01H,ML
LJMPMNN1
ML:
CJNEA,#02H,ML1
LJMPMNN2
ML1:
CJNEA,#03H,MN
LJMPMLL
MN:
CJNEA,#04H,INTT1OUT
LJMPMHL
MLL:
MOV72H,7AH
MOV73H,7AH;显示单元(72-73H),将不显示分数据
MOV74H,78H
MOV75H,79H
AJMPINTT1OUT
MHL:
MOV72H,76H
MOV73H,77H
MOV74H,7AH;显示单元(74-75H),小时数据将不显示
MOV75H,7AH
AJMPINTT1OUT
MNN1:
MOV72H,7AH
MOV73H,7AH;显示单元(72-73H),将不显示闹钟分数据
MOV74H,7DH
MOV75H,7EH
AJMPINTT1OUT
MNN2:
MOV72H,7BH
MOV73H,7CH
MOV74H,7AH
MOV75H,7AH;显示单元(74-75H),闹钟小时数据将不显示
AJMPINTT1OUT
-------------------------显示-------------------------------;
DISPLAY:
MOVDPTR,#DISDATA
MOVA,70H
MOVCA,@A+DPTR
MOVP3,A
CLRP1.0
NOP
NOP
NOP
SETBP1.0
MOVA,71H
MOVCA,@A+DPTR
MOVP3,A
CLRP1.1
NOP
NOP
NOP
SETBP1.1
MOVA,72H
MOVCA,@A+DPTR
MOVP3,A
CLRP1.2
NOP
NOP
查询闹钟分十位
CJNEA,7CH,BEERE
BB:
CLRP1.6
LCALLDDL
SETBP1.6
LCALLDDL
JNBP1.7,BEERR
BEERE:
RET
BEERR:
SETBP1.6
MOV68H,#0
LCALLDISPLAY
JNBP1.7,BEERR
JMPBEERE
DISDATA:
DB0C0H,0F9H,64H,70H,59H,52H,42H,0F8H,40H,50H,0FFH;0123456789空白
END
4.总结
虽然我们学习了模电和数电,对电子技术有了一些初步了解,但那都是一些理论的东西。
通过这次数字电子钟的课程设计,我们才把学到的东西与实践相结合。
从中对我们学的知识有了更进一步的理解。
为期两周的课程设计使我更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。
也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。
虽然这只
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子钟 毕业设计 报告