单片机在多功能数字电子钟中的应用已是非常普遍,人们对电子时钟的功能及工作顺序都已非常熟悉了,但是却很少知道它的内部结构以及工作原理。由单片机作为电子时钟的核心控制器,可以通过它的时钟信号来实现计时功能,将时间数据由单片机输出,利用显示器将时间显示出来。通过键盘可以进行时间的设定。输出设备显示器可以用液晶显示技术或数码管来显示技术。
本系统利用单片机实现具有计时、校时等功能的数字电子时钟,是以单片机ATC51为核心元件同时采用LED数码管显示器动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。另外具有校时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。
第一章 概述
1.1课题研究的目的和意义
数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于电子集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域,因此进行电子钟的设计是必要的。尽管目前市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机定时器的功能也可以完成电子钟电路的设计,因此进行电子钟的设计是可行的。在这里我们将已学过的比较零散的数字电路和单片机的知识有机的、系统的联系、组织起来应用于实际,来培养我们的综合分析和设计电路,写程序,调试电路、程序的能力。
单片机具有体积小、功能强、可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
1.2国内外研究的现状及发展趋势
从单片机电子时钟近年的发展趋势来看,正朝着多层次用户、多品种、多规格、高精度、小体积、低能耗等方面发展。在这种趋势下,时钟的数字化,智能化已经成为现代时钟生产研究的主导设计方向。带有时钟功能的电子产品和电子设备进年来广泛地出现在国内外市场中,例如奥运会倒计时显示屏、铁路安全显示屏、生产线看板、体育比赛记时屏、大型室外高亮度时钟等,这类产品覆盖银行、医院、地铁车站、体育运动、电视台、监控系统、高大建筑物等行业。作为一种人机接口方式,语音比显示屏,鼠标键盘等设备更易于使用。而在设计里加上语音提示、音乐或者其他语音功能,还使得设计显得既人性化又有趣,不但能提高开发者的兴趣和积极性,同时也能让设计作品与众不同,从而得到了各界领域的广泛应用所以对语音的研究有很大的实际意义。
1.3课题设计目的与要求
1.3.1设计目的:
按要求完成单片机实现电子时钟系统。
通过课题的设计与实现培养系统分析、设计的能力,从而达到以下能力训练:
(1)、调查研究、分析问题的能力
(2)、使用设计手册、技术规范的能力
(3)、查阅中外文献的能力
(4)、制定设计方案的能力
(5)、计算机应用的能力
(6)、设计、计算和绘图的能力
(7)、技术经济指示的分析能力
(8)、语言文字表达的能力
1.3.2设计要求:
利用DJ-598K试验仪的硬件资源,设计一个电子钟,利用四个数码管,在其上显示分、秒;用4个小键盘分别进行分+1、分-1、秒+1、秒-1改变时间值。
基本要求:
(1)、设计实验电路(要求利用试验仪的硬件资源)
(2)、分析实验原理
(3)、列出实验接线表
(4)、采用汇编语言写实验程序
(5)、通过实验验证功能的实现
(6)、编写课程设计说明书
第二章 总体方案设计
2.1课题总体功能分析与设计
2.1.1系统需求分析
本课题要求设计一个电子钟,利用四个数码管进行时间显示,在其上显示分、秒;用4个小键盘分别进行分+1、分-1、秒+1、秒-1改变时间值。但考虑到电子钟的实用性,这里将对其进行扩充,是利用六个数码管进行时间显示,在其上显示时、分、秒;用6个小键盘分别进行时+1、时-1、分+1、分-1、秒+1、秒-1来改变时间值。
2.1.2系统功能分析与设计
有分析可得系统功能图2-1所示:
图2-1系统功能分析设计图
2.1.3系统设定详细说明
本课题设计需要六个数码管进行时间显示,刚打开电源时,系统初始状态显示的时间为12:00:00,然后电路会自动开始计时。当秒到60时,则分上加1同时秒位清零显示00,然后再从00自动开始计时;当分到60时,则小时上加1同时分位清零显示00,然后再从00开始;当小时显示变为23:59:59时,接下来的显示则变为00:00:00,电路自动开始计时,然后循环上述过程进行计时。电路中有对时、分、秒进行加/减1的各自单独的时间调整按钮,时间调整按钮每按一次,则相应调整的显示时间值加/减1。按S1键,则秒+1;按S2键,则秒-1;按S3键,则分+1;按S4键,则分-1;按S5键,则小时+1;按S6键,则小时-1。
2.2实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1) 计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位1s。
定时器方式1为16位定时/计数器工作方式,用于定时工作方式时,计数时间为:
T=(216-T0初值)×振荡周期×12
假设使用T/C0,方式1,50ms定时,晶振频率fosc=12MHz。则初值X满足:
(216-X)×1/12MHz×12×1μs = 50000μs
X=15536D→0011110010110000B→3CB0H
(2) 采用中断方式进行溢出次数累计,计满20次则为秒计时(1秒);
(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
2.3电子钟的时间显示
电子钟的时钟时间要在六位数码管上进行显示,则要在内部RAM中设置缓存地址单元。
显示寄存器单元位:
32H | 31H | 30H |
时显示寄存器单元位 | 分显示寄存器单元位 | 秒显示寄存器单元位 |
时间调整:用6个按键S1、S2、S3、S4、S5、S6,通过P1.0~ P1.5口将调整信号输入单片机,再通过程序控制来完成时间调整的功能。
2.5总体方案介绍
2.5.1计时方案
利用ATC51单片机内部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的提升作用。
2.5.2控制方案
ATC51的P0口外接6位LED显示数码管的段选信号,P2口外接6位LED显示数码管的位选信号,P1口外接6个调整时、分、秒加减的按键。
2.5.3硬件介绍
(1)ATC51 是一种低功耗,高性能的CMOS 8位微型计算机。片内有4KB FLASH(EPROM)可系统编程的只读存储器,该器件采用ATMEL公司的高密度非易失性存储器技术制造,与工业上标准的8031、8051和8751的指令系统及引脚兼容,它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8 位微处理器于单片芯片中, 片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。简易电子钟的功能不复杂,可灵活应用于各种领域。
ATC51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,看门狗(WDT),两个数据指针,两个16 位定时/计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,ATC51 可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
(2)六位LED显示数码管
由于考虑到充分利用DJ-598K试验仪的硬件资源,所以使用DJ-598K试验仪的六位数码管作为显示器,其是带有驱动器的六位数码显示管,如图2-2。
图2-2显示数码管实形图
图2-3显示数码管模块电路图
数据插座:JS__LED位选扫描线;JLED__LED段选码。
第三章 系统硬件电路设计
根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块与按键模块,模块之间的关系图如下面得方框电路图3-1所示。
图3-1 硬件电路方框图
3.1单片机模块设计
3.1.1芯片分析
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,ATC51单片机引脚图3-2所示:
图3-2 ATC51
MCS-51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能如下:
VCC:+5V电源。
VSS:接地。
RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
P0口:P0口为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才能有高电平输出;当作输入口使用时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,它不再需要多路转接电路MUX;因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。
P2口:P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用的I/O口使用,这时多路转接电路开关倒向锁丰存器Q端。
P3口:P3口特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。当作为I/O口使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位应应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出,具体第二功能如
表所示。
3.1.2晶振电路
图3-2所示为时钟电路原理图,在ATC51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉。
图3-2 晶振电路
3.1.3复位电路
单片机复位的条件是:必须使RST/VPD 或RST引(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12 MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位如图所示。电路为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。
图3-3 复位电路
3.2数码显示模块设计
系统采用动态显示方式,动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。
图3-4 数码显示电路
3.3按键模块设计
图3-5为按键模块电路原理图,时钟调整按键,分钟调整按键,秒钟调整按键。
图3-5 按键模块电路图
四、系统软件设计
4.1系统总体流程图
基本的程序流程应该是:程序执行,先通过初始化各个寄存器,在主程序中经过扫描按键来检测各个时间按键是否有动作,从而决定是否设定参数来执行相应功能的程序,进而在数码管上显示,若有就储存并修改相关的的时间寄存器的值,若没有就继续检测。在计时子程序中将各时间寄存器的值逐个加1,每加一次就要检查是否已超过显示的上限值,这样在后面就便于处理,在扫描显示子程序中,将扫描位数指针与数字字码表首地址相加,从而得到相应的显示数据;然后按照显示的位数将数据从P0和P2口输出到数码管上去显示,当然还有定时中断子程序,在这里,它实现计时1S的时间延时。
图4-1 系统总体流程图
4.2源程序代码
秒+1端口
秒-1端口
分+1端口
分-1端口
时+1端口
时-1端口
EQU 秒显示寄存器单元位
分显示寄存器单元位
时显示寄存器单元位
0000H
START
000FH
INT_T0
0100H
START: DPTR,#TAB
H,#12
M,#0
S,#0
R0,#0
TMOD,#01H
TH0,#3CH
MOV TL0,#0B0H
TR0
ET0
SETB EA
S1: DEL
S_SET,A1
S
A,S
A,#60,J1
S,#0
K1
S2: DEL
SO_SET,A1
S
A,S
A,#00,J2
S,#0
A1
S3: DEL
M_SET,A1
K1: M
A,M
A,#60,J3
M,#0
K2
S4: DEL
MO_SET,A1
M
A,M
A,#00,J4
M,#0
A1
S5: DEL
H_SET,A1
K2: H
A,H
A,#24,J5
S,#0
M,#0
H,#0
A1
S6: DEL
HO_SET,A1
H
A,H
A,#00,J6
H,#0
A1
A1: DISPLAY
S_SET,S1
SO_SET,S2
M_SET,S3
MO_SET,S4
H_SET,S5
HO_SET,S6
A1
J1: S_SET,A1
DISPLAY
J1
J2: SO_SET,A1
DISPLAY
J2
J3: M_SET,A1
DISPLAY
J3
J4: MO_SET,A1
DISPLAY
J4
J5: H_SET,A1
DISPLAY
J5
J6: HO_SET,A1
DISPLAY
J6
INT_T0: 设置定时初值50ms
TL0,#0B0H
R0
A,R0
设置中断20次
S
R0,#0
A,S
A,#60,RETUNE
M
S,#0
A,M
A,#60,RETUNE
H
M,#0
A,H
A,#24,RETUNE
H,#0
M,#0
S,#0
R0,#0
RETUNE:RETI
DISPLAY:MOV A,S
B,#10
AB
秒片选H位
A,@A+DPTR
A
段选信号输出口
DEL
P2.6
A,B
秒片选L位
A,@A+DPTR
A
P0,A
DEL
P2.7
A,M
B,#10
AB
分片选H位
A,@A+DPTR
A
P0,A
DEL
P2.3
A,B
分片选L位
A,@A+DPTR
A
P0,A
DEL
P2.4
A,H
B,#10
AB
时片选H位
A,@A+DPTR
A
P0,A
DEL
P2.0
A,B
时片选L位
A,@A+DPTR
A
P0,A
DEL
P2.1
RET
TAB: 数字字码表
DEL: R6,#10
LOOP1: R7,#100
LOOP2: R7,LOOP2
DJNZ R6,LOOP1
RET
END
五、系统仿真与测试
5.1系统仿真
运用proteus软件进行仿真现在proteus软件中建立一个新的文件,再根据自己的要求选择所需的器件,把器件进行适当的排位后进行连接,连接后运行软件进行仿真。如图5-1。
图5-1 系统仿真图
5.2实验接线
此接线以在DJ-598K试验仪上为例,因为课题要求利用DJ-598K试验仪的硬件资源,又由于DJ-598K试验仪内关于电源线、地线、晶振、复位等部分接线均以接好,且最终也要在DJ-598K试验仪上实现系统。
接线1
接到 | 接到 | 接到 | |||
秒加 | P1.0 | P0.0 | JLED.7 | P2. | JS.0 |
秒减 | P1.1 | P0.1 | JLED.6 | P2. | JS.1 |
分加 | P1.2 | P0.2 | JLED.5 | ||
分减 | P1.3 | P0.3 | JLED.4 | P2. | JS.2 |
时加 | P1.4 | P0.4 | JLED.3 | P2. | JS.3 |
时减 | P1.5 | P0.5 | JLED.2 | ||
P0.6 | JLED.1 | P2. | JS.4 | ||
P0.7 | JLED.0 | P2. | JS.5 |
设置 | 开关 | 设置 | 设置 | |||
JK | 外接 | CPU卡上 拨码开关 | K1、K8 | ON | uVision 中的debug | USE:Keil Monitor-51 Driver |
Port: COM1口 | ||||||
KB6 | 51 | " K2、K3、K4、K5、K6、K7 | OFF | |||
Bandrate: 57600 |
5.3实验测试
电子时钟主要的设计要求是能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟基本上实现了上述功能,能够通过时间调整电路对时间进行调整以及时间计时。图5-2为23:45:10的仿真图:
图5-2 23:45:10时刻的仿真效果
总结
单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。但当拿到题目时,确实不知道怎么着手,有些迷茫,但想到谢永宁老师在上课时,给我们很详细的开发、分析过一个工业实例,在这个案例的启发、帮助下,历时一个星期,解决了一个又一个难题,终于完成本次课题任务。
通过本课程设计培养我的系统设计能力,使我得到了能力上的训练,培养和提高我以下方面的能力:
(1)、调查研究、分析问题的能力
(2)、使用设计手册、技术规范的能力
(3)、查阅中外文献的能力
(4)、制定设计方案的能力
(5)、计算机应用的能力
(6)、设计计算和绘图的能力
(7)、技术经济指示的分析能力
(8)、语言文字表达的能力
在这次课程设计中,运用到了很多以前的专业知识,虽然过去从未应用过它们,但在学习的过程中带着问题去学,我发现效率很高,这是我做这次课程设计的一大收获。另外,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,而反复修改、不断改进是系统设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。课程设计结束了,但从中学到的知识会让我受益终身。发现问题、提出问题、分析问题、解决问题和实践能力的提高都会使我在以后的学习、工作和生活中受益。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。在此也了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的铺垫!
参考文献
[1] 童诗白:《模拟电子技术基础》高等教育出版社
[2] 苏家健:《单片机原理及应用技术》高等教育出版社
[3] 肖 婧:《单片机入门与趣味实验设计》,北京航天航空大学出版社
[4] 李朝青:《单片机原理及接口技术》,北京航天航空大学出版社
[5] 邓锦城:《单片机专题制作》,学苑出版社
附录
附录1 硬件总电路图
附录2 元器件清单
电子时钟元器件清单表
序号 | 元件名称 | 规格型号/参数 | 数量(个) | 备注 |
1 | 单片机 | ATC51 | 1 | |
2 | 晶振 | 12MHz | 1 | |
3 | 电容 | 30pF | 2 | |
4 | 电容 | 10μF | 1 | |
5 | 按键 | BUTTON | 6 | |
6 | LED数码管 | 7SEG-COM-MPX6 -BLUE | 6 | |
7 | 数码管 段选驱动器 | 74LS240 | 2 | |
8 | 数码管 片选驱动器 | 4011 | 6 |