单片机电子时钟设计
摘 要
单片机是一个由微处理器(CPU)、片内数据储存(RAM)与特殊功能寄存器(SFR)、片内程序存储器(ROM)、并行输入输出(I/O)、定时/计数器、串行通信口、总线控制器、中断控制系统、片内振荡器和内部总线组成的集成电路芯片。它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。
本论文采用的MCS-51单片机来实现电子时钟的设计,由C语言进行编程,由片内定时器与两位一体七段的LED显示时分秒,另外由DS1302温度集成块显示两位的温度。本论文通过电子时钟设计的实例,介绍了单片机系统总体方案的设计方法,软硬件的设计方法,并给出了与之对应的程序流程图。
关键词:单片机,电子时钟,定时器,数码管,DS1302
目 录
摘 要 ......................................................................................................... I 绪 论 ......................................................................................................... 1 1 单片机概述 .......................................................................................... 2 1.1 单片机简述....................................................................................... 2 1.2 单片机结构....................................................................................... 2 1.3 单片机发展过程与趋势 .................................................................. 3 2 电子时钟设计 ...................................................................................... 4 2.1 设计思路 ........................................................................................... 4 2.2 整体设计方案 .................................................................................. 4 3 硬件设计 .............................................................................................. 5 3.1 电路原理 ........................................................................................... 5 3.2 系统设计 ........................................................................................... 5 4 软件设计 .............................................................................................. 7 4.1 流程设计 ........................................................................................... 7 4.2 主程序设计..................................................................................... 10 结束语 ....................................................................................................... 14 参考文献................................................................................................... 15 致 谢 ......................................................................................................... 16
绪 论
近年来,随着高性能单片机技术的不断发展,单片机在微机领域中占据了不可替代的重要地位。经过几十年的发展,从性能、指令功能、运算速度、控制能力等方面都有很大提高。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。目前MCS-51兼容的产品多达百种,单片机的应用日益广泛,具有广泛的前景。
单片机问世迄今的30多年间,单片机得到了迅速的发展,各种新型、高性能的单片机不断地推陈出新冲向市场,已成为计算机发展和应用的一个重要方面。单片机的应用重要意义还在于,它从根本上改变了传统控制系统的设计思想和设计方案。以前必须由模拟电路或数字电路实现的大部分功能,现已能用单片机通过软件方法来实现。这种软件代替硬件的控制技术也成微控制技术。
1 单片机概述
1.1 单片机简述
单片机微型计算机简称单片机。单片机示微型计算机的一个重要分支,主要面向控制,因此又称为微控制器(MCU)。智能控制与自动控制的核心就是单片机。由于单片机具有体积小、功能强、价格低、电源单一、功耗低、运算速度快、控制功能强、可靠性高、抗干扰能力强、开发方便、研制周期短等特点,在我国,已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面。
[1]
1.2 单片机结构
51系列单片机在结构上基本相同,只是个别模块和功能上有些区别。它包含了作为微型计算机所必须的基本功能部件,各功能部件通过片内总线连成一个整体,集成在一块芯片上。AT89C51单片机的内部结构方框图【3】如1-1所示:
图1-1 单片机基本结构框图
1.3 单片机发展过程与趋势
单片机从诞生以来,发展十分迅速,其发展过程主要经历了如下3个主要阶段:
(1)8位单片机诞生和产品形成阶段(1976——1978)
(2)8位单片机性能完善阶段(1978——1982)
(3)单片机微控制化阶段(1982——现在)
目前,单片机正向着高性能和多品种方向发展,具体有如下主要发展趋势: (1)高性能化采用精简指令集和流水线技术,增加数据总线的宽度,以大幅度提高CPU的运行速度。
(2)片内存储大容量化以往单片机的片内RAM只有64~128 B,ROM只有1~4 KB。而新型存储大容量化单片机的片内RAM可达4 KB,ROM可达64 KB。
(3)程序储存器采用Flash和系统调试技术Flash型程序存储器可以方便地进行多次编程和修改,在系统开发阶段十分
便利。此外,具有系统调试(ISD)功能的单片机,实现了PC通过单片机的JTAG接口或串行接口直接进行程序的仿真调试。
(4)外围电路内装化随着集成电路集成度的不断提高,一些单片机将A/D转换器、D/A转换器、语音芯片、LCD驱动器等接口电路集成在单片机内,使得单片机应用系统的开发更方便,系统性能也得以提高。
(5)外围接口串行化单片机一般通过三总线的结构来进行扩展,导致它的对外引脚过多,对外连接比较麻烦。而I²、SPI串行总线的引入和一些并行外围器件的串行化,可以使得它的引脚减少,对外连接得到简化[2]。
(6)低功耗化
2 电子时钟设计
2.1 设计思路
电子时钟的理论基础主要涉及了51单片机应用中的数据转换显示,数码管显示原理。另外,也涉及到了单片机的动态扫描显示原理等一些内容。 单片机体积小、重量轻、可靠性高、灵活性好、开发较为容易。它功能强大,提供了相当多的相关功能模块,所以使用非常方便,用51单片机来设计电子时钟是完全可行的。
基于单片机应用系统的电子时钟设计,要有明确的设计目的和设计方案,要设计出硬件总体框架图,经过资料的查找,得到系统框架。设计一个能直接显示“时”、“分”、“秒”的数字时钟,以24时为计时周期。该设计还具有温度显示功能,通过DS18B20集成块实现。通过四个按键实现“时”、“分”“秒”的调整。
2.2 整体设计方案
此次设计的实时电子时钟显示系统一AT89C51单片机为控制核心,实时显示时、分、秒通过DS1302、数码管完成,实时温度显示通过DS18B20集成块完成。完成这些功能的实现需要设计以下内容:
(1)时钟芯片电路:此电路由专门的集成块组成,为系统提供实时的时钟
信息。
(2)温度控制电路:此电路也由专门的集成块组成,为系统提供实时的温度信息。
(3)数码管显示装置:能够实时的显示时钟和温度信息。 (4)51单片机的一些外围电路
3 硬件设计
3.1 电路原理
采用单片机实现的电子时钟设计电路如图3-10所示【4】。
图3-10电子时钟原理图
四个两位一体LED数码管显示可以采用P0、P2口实现。图3-10中P0口用于控制LED数码显示器的段选信号,P2口用于控制LED数码显示器的位选信号。利用P1口的P1.0~P1.6处理各个所需的信号,利用按键实现时间的修改。P3.0和P3.1用于时间修改和工作状态标志指示。
3.2 系统设计
①系统时间显示说明.电子时钟工作状态显示参数如图3-20所示,四个两位
一体LED数码显示器每两位分别显示小时、分钟、秒。温度显示示意图如图3-21 所示,一个两位一体LED数码显示器显示温度。
时分
秒
图3-20 工作状态显示示意图
温度
图3-21 温度显示示意图
②系统按键说明。系统有4个键盘,其定义见表3-22.
表3-22 系统按键说
4 软件设计
4.1 流程设计
电子时钟的程序主要包括三个方面:一是利用片内定时器完成时钟的定时周期,二是利用按键进行时间的调整及闹铃时间的设置,三是单片机控制LED数码管显示时间。
系统主程序流程如图4-10【5】所示。主程序主要完成24h时钟的调整、闹铃时间的设置、闹铃时间比较与打铃处理、电子时钟的工作起/停控制、时间的数码管显示等。主程序的初始化程序主要包括以下几个方面。
⑴片内数据存储器初始化、显示缓存区初始化、定时计数器初始化、闹铃时间存储单元初始化等。
⑵始终定时初始化。时钟定时程序设计利用单片机片内定时器T0或T1作时钟源进行计时,定时的基本思路如下。
①定时器基本定时单位250µs,工作方式选择方式二、允中断。在中断服务程序中,利用软件技术4000次,可实现定时1s。
②利用软件计数60次,可实现定时1min。每到1min,设置分钟标志,以便主程序与闹铃设置时间进行比较,查看是否要打铃。
③利用软件计数60次,可实现定时1h。 定时中断服务子程序流程图如图4-11【6】所示。
图4-10 电子时钟主程序流程图
图4-11 电子时钟中断服务程序流程图
4.2 主程序设计
ORG 0000H AJMP ORG LJMP ORG
MAIN: MOV MOV MOV MOV QL: MOV INC DJNZ MOV MOV MOV LCALL NEXT: LCALL JB
LCALL SJMP RUNF: LCALL LCALL JK: LCALL LCALL JZ LCALL LCALL
MAIN 000BH INTT0 0030H
SP, #60H
PSW, #00H R0, #20H R7,
#5FH @R0, #00H R0
R7, QL
IP, #02H IE, #82H
TMOD, #01H PP
KEY
ACC.0, RUNF DISP NEXT OUTT TIME DISP
KEY
JK ANKEY
DISP
;确立堆栈区
;
;RAM区首地址 ;RAM区单元个数
;RAM清零 ;IP初始化,优先定时器0 ;IE初始化,
;定时器0方式1工作 ;调P.子程序
;按键检测子程序
;A键按下运行
;调用显示子程序
;调传送子程序 ;开电子钟 ;调用显示子程序
;按键检测子程序
;调用显示子程序
SJMP JK
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;; 键功能子程序 ;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ANKEY: CLR EA CHECK: JB
;关中断 ;判断是否运行
TR0, YXZ
K0: CJNE AJMP K1: CJNE AJMP K2: CJNE AJMP K3: CJNE AJMP YXZ: JB AJMP KEY1: MOV LCALL CLR
CJNE ACALL AJMP KEY2: MOV LCALL CLR
CJNE ACALL AJMP
A, #01H, RUN A,
#02H, KEY1 A,
#04H, KEY2 A,
#08H, KEY3 ACC.0, STOP
OUT
R0, #45H ADD1 C
A, #24H, CLR0 OUTT
R0, #43H ADD1 C
A, #60H, CLR0 OUTT K1
K2
K3
OUT
OUTT
OUTT ;转运行
;转时调整
;转分调整
;转秒调整
;时调整
;分调整
KEY3: MOV R0, ADD1 C A,
#41H ;秒调整
ACALL CLR
CJNE #60H, OUTT
ACALL CLR0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;; 传送显示数据 ;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; OUTT: MOV 30H, 40H
MOV 31H, 41H MOV 32H, #11 MOV 33H, 42H
MOV 34H, 43H MOV 35H,
#11 MOV 36H, 44H
MOV
37H,
45H
RET STOP: CLR
TR0
RET
RUN: LCALL TIME
OUT: SETB EA RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;; 运行电子钟 ;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; TIME: SETB EA
MOV TL0, #0B0H
MOV TH0, #3CH
;秒显示单元41H-42H
; "-"
;分显示单元43H-44H
; "-"
;时显示单元44-45H
;关电子钟并跳出
;运行电子钟
;无键按下或完成功能跳出
MOV R4, #20 ;50ms,20次循环 SETB TR0 RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;显示子程序 30H ;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;启动定时器0
DISP: MOV MOV DISP1: MOV MOV MOV MOVC MOV
ACALL MOV JB RR INC MOV AJMP DISP2: RET
TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH DL:
MOV
DL1: MOV
DL2: DJNZ DJNZ RET
END
R1, #30H ;显示缓冲存储单元首地址R2, #80H ;从右至左显示 P2, R2 ;送位控 A, @R1 DPTR, #TAB A, @A+DPTR
P0, A
;送段控 DL ;延时 A, R2 ACC.0, DISP2 A R1
R2, A
DISP1
R6, #14H
;显示延时子程序
R7, #19H R7, DL2 R6,
DL1
结束语
通过这次论文设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。
从拿到题目到具体设计,从理论到实践,在一个多星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
参考文献
[1] 郑毛祥.单片机应用基础.人民邮电出版社,2006 [2] 金建设.单片机系统及应用.北京邮电大学出版社,2009
[3] 胡辉.单片机应用系统设计与训练[M].中国水利水电出版社,2004.9 [4] 曹巧媛.单片机原理及应用[M].电子工业出版社,1997.7 [5] 李忠国.单片机技能实训.人民邮电出版社,2006 [6] 李光弟.单片机基础(修订本).北京航空航天大学,2001
致 谢