数字时钟实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机
数字时钟设计
实训报告
系别
专业
姓名
学号
摘要
单片机是把中央处理器CPU,随即存取存储器RAM,只读存储器ROM,定时器/计数器以及输入/输出即I/O接口电路等主要计算机部件,集成在一块集成电路上的微机。

虽然只是一个芯片,但从组成和功能上来看,已具备微型系统的属性。

单片机的发展经历了4个阶段,其向着低功耗CMOS化,微型单片化,主流与多品种共存的方向发展。

单片机在工业自动化,仪器仪表,家用电器,信息和通讯产品及军事方面得到了广泛应用。

另外,其发展前景不错。

本次实训以设计制作数字时钟为例,来加深我们对单片机特性和功能的了解,加强我们的编程思想。

为今后从事单片机程序产品的开发,打下了良好的理论与实践基础。

理论服务于实践,将知识转化为能力,也是本次试训的另一个重要目的。

目录
一、整体设计方案 (3)
1. 方案设计要求 (3)
2. 方案设计与论证 (3)
3. 整体设计框图 (4)
二、数字时钟的硬件设计 (4)
1. 最小系统设计 (4)
2. LED显示电路 (8)
3. 键盘控制电路 (9)
4. 数字时钟的原理图 (10)
三、数字时钟的软件设计 (11)
1. 系统软件设计流程图 (11)
2. 数字时钟主程序 (14)
四、调试与仿真 (18)
1. 数字时钟系统PROTUES仿真 (18)
2. 软件与硬件调试 (19)
3. 系统性能测试与功能说明 (19)
4. 出现问题及解决 (19)
五、实验结论 (20)
六、心得体会 (21)
附录:1.原器件清单 (22)
2.参考文献 (22)
一、整体方案设计
1. 方案设计要求
设计制作一个数字时钟,要求能实现基本走时,并以数字形式显示时、分、秒;采用24小时制;能校时、校分、校秒;也可以添加其他功能.
2. 方案设计与论证
方案一:
采用各种纯数字芯片实现数字时钟的设计。

优点:各个模块功能清晰,电路易于理解实现。

缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。

方案二:
采用 FPGA模块用硬件语言实现功能。

优点:运算速度快,走时精度高,算法简单。

缺点:成本高,大材小用。

方案三:
采用单片机最小系统实现功能。

优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。

缺点:走时有一定的误差。

经过综合考虑成本问题以及他人接受程度,选择第三种方案实现设计要求。

3.整体设计框图
数字时钟整体框图
二、数字时钟的硬件设计
1. 最小系统设计
∴ AT89C51的介绍:
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)具有五个中断源、两个优先级嵌套中断结构。

其内部结构框图如下图所示:
∴ AT89C51单片机的部分管脚说明:
AT89C51单片机采用40条引脚双列直插式器件,引脚除5V( 40脚)和电源地( 20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,引脚图如下图:
最小系统:
单片机最小系统的结构图
单片机的最小系统是由电源、复位、晶振、/EA=1组成,下面介绍各个组成部分。

① Vcc 40 电源端;GND 20 接地端。

工作电压为5V 。

②外接晶振引脚
晶振连接的内部、外部方式图
XTAL1 19 ;XTAL2 18。

XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。

内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。

晶振的频率可以在1MHz-24MHz内选择。

电容取30PF左右。

系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。

③复位RST 9
常用复位电路图
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。

复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。

④/EA=1 31脚
当/EA=1时,访问内部程序存储器,当PC值超过内ROM范围时,自动转执行外部程序存储器的程序;当/EA=0时,只访问外部程序存储器。

另外介绍一下输入输出引脚(本系统只用到P0、P1、P2口):
(1) P0端口[ 是一个8位漏极开路型双向I/O端口,端口置1
(对端口写1)时作高阻抗输入端。

作为输出口时能驱动8个TTL。

对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。

在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。

(2) P1端口[-]是一个带有内部上拉电阻的8位双向I/0端口。

输出时可驱动4个TTL。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接收低8位地址信息。

(3) P2端口[-]是一个带有内部上拉电阻的8位双向I/0端口。

输出时可驱动4个TTL。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接收高8位地址和控制信息。

在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。

而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。

2. LED显示电路
本实训用到四位一体共阳极数码管和一位共阳极数码管,通过其引脚图,便可顺利完成其连接。

3. 键盘控制电路
该设计需要校对时间,所以用三个按键来实现。

按S3来调节小时的时间,按 S2来调节分针的时间,按 S1来调节秒的时间。

下图是按键硬件连接图。

当用手按下一个键时,往往按键在闭合位置和断开位置之间跳
几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。

抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。

很容易想到,抖动问题不解决就会引起对闭合键的识别。

用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,再读入键盘码。

4. 数字时钟的原理图
根据要求画出数字时钟的原理图如下所示:
数字时钟的原理图
数字时钟的工作原理:
数字时钟是一个将“时”,“分”,“秒”显示于人的视觉器官的
计时装置。

它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。

因此,一个基本的数字时钟电路主要由显示器“时”,“分”,“秒”和单片机,及复位校时部分组成。

6位一体数码管的段选接到单片机的P0口,位选接到单片机的P2口。

数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。

“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。

“时单元”采用24进制计时器,可实现对一天24小时的累计。

显示电路将“时”、“分”、“秒”通过七段显示器显示出来。

校时电路是用来对“时”、“分”、“秒”显示数字进行校对调整,按一下S1,秒单元就加1 ,按一下S2,分就加1,按一下S3,时就加1。

三、数字时钟的软件设计
1. 系统软件设计流程图
主程序是先开始,然后启动定时器,定时器启动后再进行按键检测,检测完后,就可以显示时间。

主程序流程图
时间设置:
时间设置流程图
按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。

定时器中断:
定时器中断流程图
时间显示是从左到右依次是时十位显示、分十位显示、秒十位显示。

2. 数字时钟主程序
SCAN EQU 28H
ORG 0000H
LJMP START
ORG 0BH
LJMP TIM0
ORG 0030H
START: MOV SP,#70H
MOV 2AH,#12
MOV 2BH,#00H
MOV 2CH,#00H
MOV 20H,#00H
MOV 21H,#00H
MOV 22H,#00H
MOV 23H,#00H
MOV 24H,#00H
MOV 25H,#00H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV IE,#B
MOV 41H,#20
SETB TR0
START_0:
LCALL DISPLAY
LCALL SCAN_1
LJMP START_0
SCAN_1:
JB ,N2
LCALL DELAY
JB ,N2
LOP1:
CLR EA
LCALL DATA2
LCALL DATA1
LCALL DISPLAY
JNB ,LOP1
MOV A,2CH
INC A
MOV 2CH,A
CJNE A,#60,N6
MOV 2CH,#00
N2:
JB ,N4
LCALL DELAY
JB ,N4
LOP_2:
CLR EA
LCALL DATA2
LCALL DATA1
LCALL DISPLAY
JNB ,LOP_2
MOV A,2BH
INC A
MOV 2BH,A
CJNE A,#60,N6
MOV 2BH,#00 N4:
JB ,N6
LCALL DELAY
JB ,N6
LOP_3:
CLR EA
LCALL DATA2
LCALL DATA1
LCALL DISPLAY JNB ,LOP_3
MOV A,2AH
INC A
MOV 2AH,A
CJNE A,#24,N6
MOV 2AH,#00 N6:
SETB EA
RET
TIM0: MOV TH0,#3CH MOV TL0,#0B0H PUSH ACC
PUSH B
PUSH PSW
SETB RS0
DJNZ 41H,X2
MOV 41H,#20
LCALL CLOCK1
LCALL CLOCK2
X2: POP PSW
POP B
POP ACC
RETI
CLOCK1:
MOV A,2CH
INC A
MOV 2CH,A
CJNE A,#60,X4
MOV 2CH,#00
MOV A,2BH
INC A
MOV 2BH,A
CJNE A,#60,X4
MOV 2BH,#00
MOV A,2AH
INC A
MOV 2AH,A
CJNE A,#24,X4
MOV 2AH,#00
X4: RET
CLOCK2:
MOV A,2CH
MOV B,#10
DIV AB
MOV 20H,B
MOV 21H,A
MOV A,2BH
MOV B,#10
DIV AB
MOV 22H,B
MOV 23H,A
MOV A,2AH
MOV B,#10
DIV AB
MOV 24H,B
MOV 25H,A
RET
DISPLAY:
MOV R0,#20H
MOV SCAN,#0FEH
MOV A,SCAN
LD0: MOV P2,A
MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
ACALL DL1MS
INC R0
MOV A,SCAN
JNB ,LD1
RL A
MOV SCAN,A
AJMP LD0
LD1: RET
DATA1:
MOV A,2CH
MOV 2CH,A
CJNE A,#60,K4
MOV 2CH,#00
MOV A,2BH
MOV 2BH,A
CJNE A,#60,K4
MOV 2BH,#00
MOV A,2AH
MOV 2AH,A
CJNE A,#24,K4
MOV 2AH,#00
K4: RET
DATA2:
MOV A,2CH
MOV B,#10
DIV AB
MOV 20H,B
MOV 21H,A
MOV A,2BH
MOV B,#10
DIV AB
MOV 22H,B
MOV 23H,A
MOV A,2AH
MOV B,#10
DIV AB
MOV 24H,B
MOV 25H,A
RET
TAB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H
DB 82H,0F8H,80H,90H,88H,0FFH
DL1MS: MOV R6,#14H
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
DELAY: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
END
四、调试与仿真
1.数字时钟系统PROTUES仿真
用ISIS软件,根据数字时钟的原理图,画出仿真图,得到的图如下所示:
将Keil编译程序产生的HEX文件下载至AT89C51中,通过控制按键来进行仿真测试。

2.软件与硬件调试
单片机应用系统的调试包括硬件和软件两部分,但是它们并不能完全分开。

一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。

软件调试是指用仿真软件进行仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至AT89C51芯片中,用焊接好的电路来进行各项功能的验证与检测。

需要特别注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的。

3.系统性能测试与功能说明
工作时:默认为走时状态,按24小时制分别显示“时时分分秒秒”,时间会按实际时间以秒为最小单位变化。

走时调整:按S1对秒进行调整,按一下加一秒;按S2对分进行调整,按一下加一分;按S3对时进行调整,按一下加一小时,从而达到快速设定时间的目的,按S4进行复位。

4.出现的问题及解决
①编译程序中出现错误,应严格按照汇编语言的语法来编写即可解决。

②PROTEUS软件仿真时,加上三极管驱动数码管显示时很难找到符合条件的三极管,这很好的说明了软件仿真于硬件的最大区别。

解决方法:若去掉三极管,数码管可正常显示,则说明仿真成功,不必过于在寻找三极管上花费工夫。

另外,也会出现部分按键功能无法实现的问题,这时应先检查仿真元器件与单片机端口是否连接正确,然后再检查主程序,若以上两项都无误,那么可以通过改变其周围电阻来解决。

在本次实训中,我的出现复位键不能用的问题,通过减少其旁边电阻阻值,使问题得到解决。

③硬件调试出现问题,应仔细检查电路,看是否有桥接、虚焊、少焊和错焊的问题,即要有好的焊接技术和认真的态度来确保硬件焊接无误。

五、实验结论
本次实训得到了期望中的结果。

本次实训意在加强我们对AT89C51单片机主要功能的了解与掌握,数字时钟的设计制作是掌握AT89C51单片机的一个很好的实践,原理能付于实践中,是对原理加深了解的最好方法。

A T89C51单片机是一个微型的计算机模型,因为它具备了一台计算机最基本的构成部分:CPU,ROM,RAM,定时器/计数器,I/O口等,它是计算机的完美缩影。

AT89C51单片机应用范围很广,例如:在工业自动化方面,在仪器仪表方面,在家用电器方面,在信息和通信产品方面以及军事方面等,总之它与我们的生活密切相关,另外开发前景也很不错。

因此,掌握AT89C51单片机等类似芯片,对我们以后的工作与生
活非常有用。

六、心得体会
近两周的单片机实训,让我获得了很多知识,进一步加深了我对AT89C51单片机的掌握,另外也巩固了我的编程思想和焊接技术。

本次的数字时钟实训,让我对自己在大学二年的知识的到了回顾,例如模电和数电以及做PCB的软件。

它也让我充分发挥了对所学知识的理解和设计的书面表达能力。

这为今后自己进一步深化学习,积累了一定的宝贵经验。

撰写报告的过程是对专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。

本次的实训,让我发现理论必须用于实践,否则只是一张白纸。

此外只有理论水平提高了,才能更好的运用于实践。

另外,本次实训也考验了我的认真的态度。

只有做事拥有认真的态度与科学的方法,才能成功。

来到大学已两年,像这样的实训,已是第三次。

我认为实训非常有必要,因为它能让我们主动去寻找遇到问题的解决方法,同时也是对我们严谨认真工作态度的考验与锻炼,为以后我们进入社会参加工作是一个很好的培训与历练。

附录
1.原器件清单
AT89C51 1个
LED 绿3个,红1个
按键开关 4个
电解电容 10µF 1个
瓷片电容 30pF 2个
三极管 PNP9015 6个
数码管四位一体共阳极1个,一位共阳极2个
排阻 1个
电阻 220Ω 12个,1KΩ 7个
晶振 12MHz 1个
2. 参考文献
《51系列单片机高级实例开发指南》李军北京航空航天大学出版社《MCS—51/96系列单片机原理及应用》孙涵芳徐爱卿
北京航空航天大学出版社《AT89系列单片机原理与接口技术》王幸之钟爱琴王雷
北京航空航天大学出版社《单片机原理与实用技术》付晓光清华大学出版社
北京交通大学出版社《数字电子技术》杨志忠高等教育出版社
《电路基础》姚年春侯玉杰人民邮电出版社《模拟电子技术》胡宴如高等教育出版社《单片机实用技术》陶春鸣人民邮电出版社。

相关文档
最新文档