单片机控制LED显示电子钟.docx
- 文档编号:9758807
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:36
- 大小:1.03MB
单片机控制LED显示电子钟.docx
《单片机控制LED显示电子钟.docx》由会员分享,可在线阅读,更多相关《单片机控制LED显示电子钟.docx(36页珍藏版)》请在冰豆网上搜索。
单片机控制LED显示电子钟
摘要
本文介绍了一款基于AT89S51单片机LED显示电子钟的设计,通过多功能数字钟的设计思路,详细叙述了系统硬件、软件的具体实现过程。
论文重点阐述了数字钟硬件中MCU模块、时钟模块和相关控制模块等的模块化设计与制作;软件同样采用模块化的设计,包括中断模块、时间调整模块设计,并采用简单流通性强的C语言编写实现。
本设计实现了时间与秒表的修改功能、年、月、日显示功能。
并且通过对比实际的时钟,查找出了误差的来源,确定了调整误差的方法,尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。
关键词:
单片机数字钟秒表
毕业设计说明书目录
第一章引言2
第二章整体设计方案3
2.1设计要求3
2.1.1基本要求3
2.1.2扩展部分3
2.2系统基本方案选择和论证3
2.2.1单片机的选择3
2.2.2单片机的基本结构5
2.3本章小结5
第三章系统的硬件设计与实现7
3.1最小系统设计7
3.2数字钟的外围电路设计8
3.2.1时钟电路8
3.2.2LCD显示电路10
3.2.3电源电路12
3.2.4相关控制电路12
3.3本章小结14
第四章系统的软件设计15
4.1系统软件设计内容15
4.2主程序15
4.3时钟设置子程序18
4.4中断子程序20
4.5LCD显示子程序22
4.6本章小结23
第五章软硬件系统的调试24
5.1硬件调试24
5.2系统性能测试与功能说明25
5.2.1系统时钟误差分析25
5.2软件调试27
5.2.1Keil的介绍27
5.2.2KeiluVision2软件的操作27
5.3本章小节28
附录29
附录一:
硬件电路原理图29
附录二:
仿真图30
参考文献31
第一章引言
20世纪末,单片机技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字时钟,数字时钟是一种用单片机原理实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字时钟是采用单片机原理实现对.年、月、日、周、时、分、秒,数字显示及到时提醒的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字时钟及扩大其应用,有着非常现实的意义。
第二章整体设计方案
2.1设计要求
2.1.1基本要求
1.电子钟要能显示年份、日期和时间,工作状态稳定;
2.要有足够的按钮,以便用户可以方便地设定和调整时间;
3.配备复位按钮,当单片机工作不正常时,可以复位并重新设定时间。
2.1.2扩展部分
1.增加秒表功能
2.2系统基本方案选择和论证
本时钟的设计具体有两种方法。
一是通过单纯的数字电路来实现;二是使用单片机来控制实现。
本次设计选取了较为简单的单片机控制;而选择这一方法还要进行各个芯片的选择。
以下是我在这次设计中所用的方案。
其主要设计思想是:
整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。
时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。
系统设有4个按键可以对时间星期年月日进行调整,还可以设置秒表。
整体框架如下图所示。
2.2.1单片机的选择
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
主要功能特性为:
兼容MCS-51指令系统;
4k可反复擦写(>1000次)ISPFlashROM;
32个双向I/O口;
4.5-5.5V工作电压;
2个16位可编程定时/计数器;
时钟频率0-33MHz;
全双工UART串行中断口线;
128x8bit内部RAM;
2个外部中断源;
低功耗空闲和省电模式;
中断唤醒省电模式;
看门狗(WDT)电路;
灵活的ISP字节和分页编程;
双数据寄存器指针。
AT89S51单片机与其他品牌单片机相比有着性价比高,性能稳定的特点。
(1)51单片机的优点
如果是作低成本的智能产品,51构架单片机的成本优势,还是无人能敌的。
比如一片AT89S51和AT89S52单片机的批量价格大概是5元左右,STC89C52单片机的批量价格大概是6元多,这样的芯片价格是很低的。
一片简单的74系列通用数字逻辑芯片还要1元左右,而一片51单片机内部集成有成千上万个晶体管开关电路。
51构架已经诞生很多年了,到目前依然有着强大的生命力和实用性,从1976年51构架成功面市,多少年过去了,从90年代初全新闪存结构的AT89C51要90元一片,到现在AT89S51只要5元多一片,51依然大量的使用着。
使用51单片机能够有效的控制智能产品整机的成本,51系列还是有着无法替代的重要地位。
(2)AT89S51与AT89C51的比较
AT89S51相对与AT89C51新增加了很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!
AT89S51具有ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境上拔除,可以在线烧写。
AT89S51的最高工作频率为33MHz,89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。
AT89S51具有双工UART串行通道。
AT89S51内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。
AT89S51具有双数据指示器。
AT89S51具有电源关闭标识。
AT89S51具有全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
在兼容性方面,AT89S51向下完全兼容51全部字系列产品。
比如8051、89C51等产品。
也就是说不论教科书上采用的单片机是8051还是89C51还是MCS-51等等。
在89S51上一样可以照常运行,这就是所谓的向下兼容。
AT89S51与AT89C51就如同INTEL的P3向P4升级一样,虽然都可以跑Windows98,不过速度是不同的。
总之,无论是比其他品牌同类产品相比,还是与同品牌产品相比都显示出了AT89S51优良的性能,更高的性价比。
所以AT89S51芯片成为了本系统的首选。
2.2.2单片机的基本结构
AT89S51单片机基本结构主要包括了以下主要部件:
(1)控制器
控制器是单片机的指挥控制部件,控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。
单片机执行指令是在控制器的控制下进行的。
首先从程序存储器中读出指令,送指令寄存器保存,然后送至指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑产生各种定时信号和控制信号,再送到单片机的各个部件去进行相应的操作。
这就是执行一条指令的全过程,执行程序就是不断重复这一过程。
控制器主要包括程序计数器、程序地址寄存器、指令寄存器IR、指令译码器、条件转移逻辑电路及时序控制逻辑电路。
(2)存储器
AT89S51单片机存储器采用的是哈佛结构,即程序存储器空间和数据存储器空间截然分开,程序存储器和数据存储器各有自己的寻址方式,寻址空间和控制系统。
这种结构对于单片机面向控制的实际应用极为方便,有利.在8051/8751弹片击中,不仅在片内集成了一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有极强的外存储器的扩展能力,寻址能力分别可达64KB,寻址和操作简单方便。
(3)并行I/O口
MCS-51单片机共有4个双向的8位并行I/O端口(Port),分别记作P0-P3,共有32根口线,各口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。
实际上P0-P3已被归入特殊功能寄存器之列。
这四个口除了按字节寻址以外,还可以按位寻址。
由于它们在结构上有一些差异,故各口的性质和功能有一些差异。
(4)时钟电路与时序
时钟电路用于产生MCS-51单片机工作时所必需的时钟信号。
MCS-51单片机本身就是一个复杂的同步时序电路,为保证同步工作方式的实现,MCS-51单片机应在唯一的时钟信号控制下,严格地按时序执行进行工作,而时序所研究的是指令执行中各个信号的关系。
2.3本章小结
本章主要介绍了系统的整体构思方案,具体有几个模块组成,以及每个模块的连接方法。
核心芯片单片机的基本资料介绍,着重介绍了单片机的对比与选择。
再选择了合适的单片机后还介绍了AT89S51单片机最小系统的架构与实验。
第三章系统的硬件设计与实现
3.1最小系统设计
单片机要正常运行,必须具备一定的硬件条件,其中最主要的就是三个基本条件:
(1)电源正常;
(2)时钟正常;(3)复位正常。
AT89S51的引脚如图3-1所示。
在AT89S51单片机的40个引脚中,电源引脚2根,晶振引脚2根,控制引脚4根,可编程输入输出引脚32根。
图3-1AT89S51的最小系统
(1)工作电源
电源是单片机工作的动力源泉,对应的接线方法为;40脚(VCC)电源引脚,工作时接+5电源,20脚(GND)为接地线。
(2)时钟电路
时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下进行的,时钟电路就好比人的心脏一样重要。
当采用内部时钟时,连接方法如图2-1所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如30PF。
(3)复位电路
在复位引脚(9脚)持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。
如图2-1所示电容C和电阻R构成了单片机上电自动复位电路。
复位后,单片机从0000H单元开始执行程序,并初始化一些专用寄存器为复位状态值,受影响的专用寄存器如表3-1所示。
表3-1复位寄存器状态表
寄存器
状态
寄存器
状态
PC
000H
TC0N
00H
ACC
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0—P3
FFH
SCON
00H
IP
XXX00000H
SBUF
不确定
IE
OXX00000H
PCON
0XXX0000H
TMOD
00H
(4)控制引脚EA接法
EA/VPP(31脚)为内外程序存储器选择控制引脚,当EA为低电位时单片机从外部程序存储器取指令;当EA接高电平时单片机从内部程序存储器取指令。
AT89S51单片机内部有4KB可反复擦写1000次以上的程序存储器,因此要把EA接+5V高电平,让单片机运行内部的程序,这样就可以通过反复烧写来验证程序了。
这就是AT89S51单片机最小化系统的连接,只要把编写好的程序烧写到单片机内部,并接上5V电源就可以正常运行了,在17脚接上的发光二极管可以用来验证系统是否正常。
3.2数字钟的外围电路设计
3.2.1时钟电路
(1)单片机时钟
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种为外部时钟方式。
本文用的是内部时钟方式。
电路设计如图3-2所示。
图3-2单片机时钟
AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
(2)时钟芯片
采用带 RAM的时钟芯片DS1302。
该芯片可以进行时分秒的计数,具有100年日历,可编程接口,还具有报警功能和掉电保存功能,并且可以对其方便的进行程序控制
DS1302它通过串行方式与单片机进行数据传送,向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。
另外,它还能提供31字节的用于高速数据暂存的RAM。
有了这些特点,DS1302已在许多单片机系统中得到应用。
图3-3DS1302引脚排列图
DS1302的引脚排列如图3-3所示,各引脚的功能见表3-2。
表3-2DS1302功能表
引脚
功能
X1,X2
32768HZ晶振引脚端
RST
复位端
I/O
数据输入/输出端
SCLK
串行时终端
GND
地
VCC2,VCC1
主电源与后备电源引脚端
DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器、实时时钟电路以及用于高速暂存的31字节RAM。
DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。
其工作过程可概括为:
首先系统RST引脚驱动至高电平,然后在作用于SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。
因此,其与单片机之间的数据传送是十分容易实现的。
DS1302与单片机电路相连如图3-4所示。
VCC1为后备电源,VCC2为主电源,在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由VCC1或VCC2两者中的较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。
当VCC2小于VCC1时,DS1302由VCC1供电。
X1、X2为振荡源,外接32768Hz晶振及两值均为22pF电容构成并联谐振电路。
RST、I/O、SCLK三根端线与单片机的P1.0、P1.1、P1.2口相连,单片机从中读取数据送到LCD显示器上显示,从而实现时钟的功能。
图3-4DS1302与单片机接口图
3.2.2LCD显示电路
液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。
1602B可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。
该模块也可以只用D4-D7作为四位数据分两次传送。
这样的话可以节省MCU的I/O口资源。
各引脚的功能见表3-3。
表3-3LCD引脚功能图
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
双向数据口
2
VDD
电源正极
10
D3
双向数据口
3
VL
对比度调节
11
D4
双向数据口
4
RS
数据/命令选择
12
D5
双向数据口
5
R/W
读/写选择
13
D6
双向数据口
6
E
模块使能端
14
D7
双向数据口
7
D0
双向数据口
15
BLK
背光源地
8
D1
双向数据口
16
BLA
背光源正极
从该模块的正面看,引脚排列从右向左为:
15脚、16脚,然后才是1-14脚。
VDD:
电源正极,4.5-5.5V,通常使用5V电压;
VL:
LCD对比度调节端,电压调节范围为0-5V。
接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;
RS:
MCU写入数据或者指令选择端。
MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;
R/W:
读写控制端。
R/W为高电平时,读取数据;R/W为低电平时,写入数据;
E:
LCD模块使能信号控制端。
写数据时,需要下降沿触发模块。
D0-D7:
8位数据总线,三态双向。
如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。
本充电器就是采用4位数据传送方式;
BLA:
LED背光正极。
需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;
BLK:
LED背光地端。
它与单片机的连接如图3-5所示。
图3-5LCD与单片机接口
LCD接口设计为8位控制方式,即用D0~D7分别接单片机的P0口来传送控制命令及数据,因为P0口内部没有上拉电阻,所以外部另外加上10K的上拉电阻。
LCD的VO口通过一个10K的电位器调整对比度,单片机的P2.0~P2.2分别接LCD的RS、R/W、E三个控制端口。
LCD第十五脚通过限流电阻和接触式开关后接电源正极,第十六脚接地以实现按键启动LCD背光显示模式。
3.2.3电源电路
电源电路包括变压器、桥式整流器、电容和稳压器。
通过变压器变压,使得220V电压变为12V,在通过桥式整流,电容的滤波作用,稳压器的稳压作用,可输出5V的稳定电压。
稳压电源是单片机系统的重要组成部分,它不仅为系统提供多路电压源,还直接影响到系统的技术指标和抗干扰性能。
本设计的电源电路主要由以下器件组成:
220V转9V的变压器、整流桥、三端稳压器LM7805。
电源电路如图3-7所示,通过变压器把220V交流电转换为9V交流电,然后通过桥式整流电路和滤波电容后输入到三端稳压器LM7805,就可以从LM7805的输出端得到稳定的直流电。
图3-7系统电源电路
3.2.4相关控制电路
(1)按键电路
按键电路如图3-8所示,按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。
P2.4口:
表示功能移位键,按键选择要调整的时十位、时个位、分十位或分个位。
P2.5口:
表示数字“+”键,按一下则对应的数字加1。
P2.6口:
表示数字“-”键,按一下则对应的数字减1。
P2.7口:
表示时间表的切换,程序默认为日常时间表,当按下该开关,使输入为低电平时,表示当前执行的是考试时间表。
再按键,使按键抬起,输入高电平时,表示当前执行的是日常作息时间表。
图3-8按键电路图
(2)复位电路
AT89S51单片机的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电复位:
上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
如图3-9所示,上电自动复位是通过外部复位电路的电容充电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
图3-9复位电路
3.3本章小结
本章介绍了多功能数字钟系统的硬件模块组成。
详细介绍了各个模块的组成及功能。
MCU的组成和特点、专门的时钟芯片和单片机时钟、显示模块的构建与运用、2路电源的设计制作。
基本上是完成了作为单片机所需的硬件结构。
同时也显示了对软件支持的强烈要求。
第四章系统的软件设计
4.1系统软件设计内容
本设计的软件程序包括主程序、中断子程序、时钟显示子程序以及延时子程序等。
在整个系统中,在单片机的30H、31H和32H中存储当前时间的小时、分钟和秒。
用LCD显示当前的时间,必须用到分字和合字,因此在33H、34H、35H、36H、37H和38H中存储当前时间的时十位、时个位、分十位、分个位、秒十位和秒个位,方便显示。
本设计有由四个轻触按键组成的小键盘,这些按键可以任意改变当前的状态。
按功能移位键一次,表示当前要校对小时的十位;按第二次,表示当前校对的是小时的个位;按第三次,则表示校对的是分钟的十位;第四次,表示的校对的是分钟的个位。
按下数字“+”键和数字“-”键可在当前校对的数字上相应加上1或者减去1。
系统软件采用C语言编写。
时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。
我们可把定时器的定时时间定为50ms。
这样,计数溢出20次即可得到时钟的最小计时单位:
秒。
而计数20次可以用软件实现。
秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。
从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。
要求每满1秒,则“秒”单元中的内容
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 LED 显示 电子钟