数字电子时钟的实习报告doc.docx
- 文档编号:20887469
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:25
- 大小:175.86KB
数字电子时钟的实习报告doc.docx
《数字电子时钟的实习报告doc.docx》由会员分享,可在线阅读,更多相关《数字电子时钟的实习报告doc.docx(25页珍藏版)》请在冰豆网上搜索。
数字电子时钟的实习报告doc
第一章整体设计方案
1.1单片机的基本结构……………………………………………………………………………
1.2数字电子时钟整体设计框图………………………………………………………………
第二章数字钟的硬件设计
2.1最小系统设计……………………………………………………………………………
2.2LED显示电路……………………………………………………………………………
2.3键盘控制电路……………………………………………………………………………
第三章数字钟的软件设计
3.1系统软件设计流程图……………………………………………………………………
3.2数字电子钟的原理图……………………………………………………………………
3.3主程序……………………………………………………………………………………
第四章系统仿真
4.1PROTUES软件介绍………………………………………………………………………
4.2电子钟系统PROTUES仿真………………………………………………………………
第五章调试与功能说明
5.2系统性能测试与功能说明………………………………………………………………
5.3系统时钟误差分析………………………………………………………………………
5.1硬盘调试…………………………………………………………………………………
5.4软件调试问题及解决……………………………………………………………………
结束语………………………………………………………………………………………….
参考文献………………………………………………………………………………………
第一章整体设计方案
1.1单片机的基本构成
AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本功能部件,AT89C51单片机单片机内包含下列几个部件:
(1)一个8位CPU;
(2)一个片内振荡器及时钟电路;
(3)4K字节ROM程序存储器;
(4)128字节RAM数据存储器;
(5)两个16位定时器/计数器;
(6)可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;
(7)32条可编程的I/O线(四个8位并行I/O端口);
(8)一个可编程全双工串行口;
(9)具有五个中断源、两个优先级嵌套中断结构。
其内部机构框图如图2.2所示:
1.3振荡器(晶振)特性
XTAL1(19脚)和XTAL2(18脚)分别为反向放大器的输入和输出,通过这两个引脚接上晶振,其频率为12.000MHz。
1.4芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51单片机设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作,但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
1.5AT89C51单片机的引脚说明
AT89C51单片机采用40条引脚双列直插式器件,引脚除5V(40脚)和电源地(20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,逻辑框图及引脚图分别如图2.4(a)(b)所示
第三章数字钟的硬件设计
3.1最小系统设计
图3-1单片机最小系统的结构图
单片机的最小系统是由电源、复位、晶振、/EA=1组成,下面介绍一下每一个组成部分。
1.电源引脚
Vcc 40 电源端
GND 20 接地端
工作电压为5V,另有AT89LV51工作电压则是2.7-6V,引脚功能一样。
2.外接晶体引脚
图3-2晶振连接的内部、外部方式图
XTAL1 19
XTAL2 18
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
3.复位 RST 9
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。
当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。
复位操作不会对内部RAM有所影响。
常用的复位电路如下图所示:
:
图3-3常用复位电路图
4.输入输出引脚
(1)P0端口[P0.0-P0.7]P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。
作为输出口时能驱动8个TTL。
对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。
在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。
(2)P1端口[P1.0-P1.7]P1是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收低8位地址信息。
(3)P2端口[P2.0-P2.7]P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收高8位地址和控制信息。
在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。
而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
(4)P3端口[P3.0-P3.7]P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接控制信息。
除此之外P3端口还用于一些专门功能,具体请看下表。
P3引脚兼用功能
P3.0串行通讯输入(RXD)
P3.1串行通讯输出(TXD)
P3.2外部中断0(INT0)
P3.3外部中断1(INT1)
P3.4定时器0输入(T0)
P3.5定时器1输入(T1)
P3.6外部数据存储器写选通WR
P3.7外部数据存储器写选通RD
P3引脚
兼用功能
P3.0
串行通讯输入(RXD)
P3.1
串行通讯输出(TXD)
P3.2
外部中断0(INT0)
P3.3
外部中断1(INT1)
P3.4
定时器0输入(T0)
P3.5
定时器1输入(T1)
P3.6
外部数据存储器写选通WR
P3.7
外部数据存储器写选通RD
表3-1 P3端口引脚兼用功能表
3.2LED显示电路
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:
发光二极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一,如下图所示。
图3-4LED显示器的符号图
发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
LED数码管有共阳、共阴之分。
图是共阳式、共阴式LED数码管的原理图和符号
.
图3-5共阳式、共阴式LED数码管的原理图和数码管的符号图
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。
采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。
LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。
对于多位LED显示器,通常
都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。
图3-6数码管的硬件连接示意图
数码管使用条件:
a、段及小数点上加限流电阻
b、使用电压:
段:
根据发光颜色决定;小数点:
根据发光颜色决定
c、使用电流:
静态:
总电流80mA(每段10mA);动态:
平均电流4-5mA峰值电流100mA
数码管使用注意事项说明:
(1)数码管表面不要用手触摸,不要用手去弄引角;
(2)焊接温度:
260度;焊接时间:
5S
(3)表面有保护膜的产品,可以在使用前撕下来。
3.3键盘控制电路
该设计需要校对时间,所以用三个按键来实现。
按khour来调节小时的时间,按kmin来调节分针的时间,按ksec来调节秒的时间。
下图是按键硬件连接图。
图3-7按键控制电路的硬件连接图
当用手按下一个键时,如图3-8所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。
这就是抖动。
抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。
很容易想到,抖动问题不解决就会引起对闭合键的识别。
用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。
图3-8按键抖动信号波形
第四章数字钟的软件设计
系统的软件设计也是工具系统功能的设计。
单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。
单片机的软件设计通常要考虑以下几个方面的问题:
(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;
(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。
既便于调试、链接,又便于移植和修改;
(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;
(4)绘制程序流程图;
(5)合理分配系统资源;
(6)为程序加入注释,提高可读性,实施软件工程;
(7)注意软件的抗干扰设计,提高系统的可靠性。
4.1系统软件设计流程图
这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。
主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间
图4-1主程序流程图
按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来
图4-3定时器中断流程图
时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。
4.2数字钟的原理图
用PROTUES软件,根据要求画出数字电子钟的原理图如下所示。
图4-5数字钟的原理图
在此有必要介绍一下数字电子钟的工作原理。
工作原理:
数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。
因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。
6个数码管的段选接到单片机的P0口,位选接到单片机的P2口。
数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。
“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。
“时单元”采用24进制计时器,可实现对一天24小时的累计。
显示电路将“时”、“分”、“秒”通过七段显示器显示出来。
校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,按一下ksec,秒单元就加1,按一下kmin,分就加1,按一下khour,时就加1。
主程序SCANEQU28H
ORG0000H
LJMPSTART
ORG0BH
LJMPTIM0
ORG0030H
START:
MOVSP,#70H
MOV2AH,#12
MOV2BH,#00H
MOV2CH,#00H
MOV20H,#00H
MOV21H,#00H
MOV22H,#00H
MOV23H,#00H
MOV24H,#00H
MOV25H,#00H
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVIE,#10000010B
MOV41H,#20;R4
SETBTR0
START_0:
LCALLDISPLAY
LCALLSCAN_1
LJMPSTART_0
SCAN_1:
JBP0.0,N2
LCALLDELAY
JBP0.0,N2
LOP1:
CLREA
LCALLDATA2
LCALLDATA1
LCALLDISPLAY
JNBP0.0,LOP1
MOVA,2CH
INCA
MOV2CH,A
CJNEA,#60,N6
MOV2CH,#00
N2:
JBP0.1,N4
LCALLDELAY
JBP0.1,N4
LOP_2:
CLREA
LCALLDATA2
LCALLDATA1
LCALLDISPLAY
JNBP0.1,LOP_2
MOVA,2BH
INCA
MOV2BH,A
CJNEA,#60,N6
MOV2BH,#00
N4:
JBP0.2,N6
LCALLDELAY
JBP0.2,N6
LOP_3:
CLREA
LCALLDATA2
LCALLDATA1
LCALLDISPLAY
JNBP0.2,LOP_3
MOVA,2AH
INCA
MOV2AH,A
CJNEA,#24,N6
MOV2AH,#00
N6:
SETBEA
RET
TIM0:
MOVTH0,#3CH
MOVTL0,#0B0H
PUSHACC
PUSHB
PUSHPSW
SETBRS0
DJNZ41H,X2
CPLP3.2
MOV41H,#20
LCALLCLOCK1
LCALLCLOCK2
X2:
POPPSW
POPB
POPACC
RETI
CLOCK1:
MOVA,2CH
INCA
MOV2CH,A
CJNEA,#60,X4
MOV2CH,#00
MOVA,2BH
INCA
MOV2BH,A
CJNEA,#60,X4
MOV2BH,#00
MOVA,2AH
INCA
MOV2AH,A
CJNEA,#24,X4
MOV2AH,#00
X4:
RET
CLOCK2:
MOVA,2CH
MOVB,#10
DIVAB
MOV20H,B
MOV21H,A
MOVA,2BH
MOVB,#10
DIVAB
MOV22H,B
MOV23H,A
MOVA,2AH
MOVB,#10
DIVAB
MOV24H,B
MOV25H,A
RET
DISPLAY:
MOVR0,#20H
MOVSCAN,#0FEH
MOVA,SCAN
LD0:
MOVP2,A
MOVA,@R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP1,A
ACALLDL1MS
INCR0
MOVA,SCAN
JNBACC.5,LD1
RLA
MOVSCAN,A
AJMPLD0
LD1:
RET
DATA1:
MOVA,2CH
MOV2CH,A
CJNEA,#60,K4
MOV2CH,#00
MOVA,2BH
MOV2BH,A
CJNEA,#60,K4
MOV2BH,#00
MOVA,2AH
MOV2AH,A
CJNEA,#24,K4
MOV2AH,#00
K4:
RET
DATA2:
MOVA,2CH
MOVB,#10
DIVAB
MOV20H,B
MOV21H,A
MOVA,2BH
MOVB,#10
DIVAB
MOV22H,B
MOV23H,A
MOVA,2AH
MOVB,#10
DIVAB
MOV24H,B
MOV25H,A
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H
DB82H,0F8H,80H,90H,88H,0FFH
DL1MS:
MOVR6,#14H
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET
DELAY:
MOVR6,#20
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
END
第五章系统仿真
5.1PROTUES软件介绍
Proteus软件是LabcenterElectronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
5.2电子钟系统PROTUES仿真
用PROTUES软件,根据数字电子钟的原理图,画出仿真图,得到的图如下所示
图5-1数字钟的PROTES仿真
第六章调试与功能说明
单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。
一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。
6.1硬盘调试
拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确。
若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。
将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。
6.2系统性能测试与功能说明
走时:
默认为走时状态,按24小时制分别显示“时时-分分-秒秒”,有2个“-”动态显示,时间会按实际时间以秒为最少单位变化。
走时调整:
按ksec对秒进行调整,按一下加一秒;按kmin对分进行调整,按一下加一分;按khour对时进行调整,按一下加一小时,从而达到快速设定时间的目的。
6.3系统时钟误差分析
时间是一个基本物理量,具有连续、自动流逝、不重复等特性。
我国时间基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。
结合时间概念和误差理论,可以定义电子钟的走时误差S=S1-S2,S1表示程序实际运行计算所得的秒;S2表示客观时间的标准秒。
S>0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之,S<0表示秒单元数值的刷新超前,即走时误差为“快”。
本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。
晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。
6.4软件调试问题及解决
软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。
软件调试可以采取离线调试和在线调试两种方式。
前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。
本次课题,Keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。
仿真部分采用protus6professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。
首先打开protus6professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求
结束语
我在这一次数字电子钟的设计过程中,很是受益匪浅。
通过对自己在大学二年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。
这为自己今后进一步深化学习,积累了一定宝贵的经验。
撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。
培养了我运用所学知识解决实际问题的能力。
通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。
这个实验十分有意义我获得很深刻的经验。
通过这次课程设计,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子 时钟 实习 报告 doc