基于单片机控制LED数码显示电子钟设计.docx
- 文档编号:28759308
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:32
- 大小:215.84KB
基于单片机控制LED数码显示电子钟设计.docx
《基于单片机控制LED数码显示电子钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制LED数码显示电子钟设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于单片机控制LED数码显示电子钟设计
第一章绪论
1.1课题的提出及意义
单片机作息时间控制实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,实现代学校必不可少的设备。
1.2设计的任务及要求
1.作息时间能控制电铃
2.作息时间能启动和关闭放音机
单片机作息时间控制的功能如下:
●使用4位七段显示器来显示现在的时间。
●显示格式为“时分”
●由LED闪动来作秒计数表示
●具有4个按键来作功能设置,可以设置现在的时间及显示定时设置时间
●一旦时间到则发出一阵声响,同时继电器启动,可以控制放音机开启和关闭。
第二章总体方案设计
2.1芯片比较
2.1.1单片机选型
当今单片机厂商琳琅满目,产品性能各异。
常用的单片机有很多种:
Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、台湾Winbond(华邦)W78系列、荷兰Pilips的PCF80C51系列、Microchip公司的PIC系列、Zilog的Z86系列、Atmel的AT90S系列、韩国三星公司的KS57C系列4位单片机、台湾义隆的EM-78系列等。
我们最终选用了ATMEL公司的AT89C52单片机。
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C52单片机适用于许多较为复杂控制应用场合。
2.1.2显示器接口芯片的选择
LED显示器接口芯片的选择常用的显示器接口芯片有CD4511,CD4513,MC14499,8279,MAX7219,74HC164等,它们的功能有:
1.CPU接受来自键盘的输入数据,并作预处理;2.数据显示的管理和数据显示器的控制。
CD4511是BCD锁存,7段译码,驱动器,但在显示6和9时,显示为b和q,不是很好看。
CD4513是BCD锁存,7段译码,驱动器(消隐),但现在市面上不好买。
MC14499为串行输入BCD码——十进制译码驱动器,用它来构成单片机应用系统的显示器接口,可以大大减少I/O口线的占用数量。
但是,由片内震荡器经过四分频的信号,经位译码后只能提供4个位控信号,使信号的采集受到限制;并且,MC19944的价格偏高,也不经济。
同样,8279为INTEL公司生产的通用键盘/显示器接口芯片,其内部设有16*8显示数据RAM,若采用8279管理键盘和显示器,可以减少软件程序,从而减轻主机的负担,但我们同时也发现,由于其功能比较强大,不可避免将会使外围设备与操作过程复杂化,同时价格比较贵。
对比一下MAX7219和
74HC164其占用资源少,且不需复杂的驱动电路。
但MAX7219虽然比较好用,且一片能驱动四个数码管,但对于我们设计的系统来说,不需要很多数码管,此外MAX7219相对74HC164的价格也比较贵,所以我们最终选用74HC164,下面对MAX7219作一下介绍。
特点:
(1)采用3线串行接口传送数据;
(2)内部有8字节显示静态RAM和6个特殊功能寄存器,相当于14个字节的RAM单元。
它们是可寻址的,即可以有选择的任意写入;
(3)只需一个外部电阻即可调节LED的段电流,并且允许程控方式LED通电的占空比而可方便的调节LED显示的亮度,或用于模拟亮度显示;
(4)可LED显示器的扫描个数;
(5)有不译码和B码两种显示模式,这种选择可做到位控,即各LED显示器可以有不同的显示方式:
译码或不译码;
(6)含硬件动态扫描显示控制,可设置低功耗方式,可进行图条显示。
引脚图(如图2-1)
图2-1
说明:
引脚
名称
作用
1
DIN
串行数据输入。
在CLK上升沿时,数据被装入内部16位移位寄存器。
2,3,5–8,
10,11
DIG0–DIG7
八个数字驱动器线路,来自共阴极显示器的反向电流。
MAX7219当关闭的时候拉位输出到V+.当关闭的时候MAX7221的位驱动器是高阻抗状态。
4,9
GND
地(两个GND引脚必须被连接在一起)
12
LOAD
装载数据输入。
串行数据的最后16位被锁存在LOAD的上升沿。
CS
片选输入。
当/CS是低电平时穿行数据被装载到移位寄存器中。
在/CS上升沿时串行数据的最后16位被锁存。
13
CLK
串行时钟输入。
10MHz的最大比率。
在CLK上升沿时,数据被转移到内部移位寄存器。
在CLK下降沿时,数据从DOUT输出。
在MAX7221中只有/CS是低电平时CLK输入被激活。
14–17,
20–23
SEGA–SEGG,DP
七段驱动和小数点驱动电源电流显示。
在MAX7219中,当段驱动器被关闭,它就被接到地。
当关闭以后MAX7221的段驱动器成高阻状态。
18
ISET
通过一只电阻器(RSET)连接VDD来设置最高段电流(查阅选择RSET电阻器部分)。
19
V+
正供给电压。
连接到+5V。
24
DOUT
串行数据输出。
进入DIN的数据16.5个时钟周期以后在DOUT有效。
这个引脚常被用来链接MAX7219/MAX7221,没有高阻状态。
工作原理简介
数据(含地址)接收
MAX7219采用串行寻址方式,在传送的串行数据中包含有RAM的地址。
按照时序的要求,单片机将16位二进制数逐位发送DIN端,在CLK上升延到来之前DIN必须有效,在CLK的每个上升延,DIN被串行逐位移入MAX7219内部的16位穿行寄存器中。
设最先移入的数据是D15,最后移入的数据是D0,则移入16位串行寄存器的数据是D15--D0。
为了有选择的将数据写入8个显示RAM或6个特殊功能寄存器,D0—D15中,D8—D11四位作为RAM和特殊功能寄存器的地址,D0—D7作为写入显示数据或控制字。
与并行数据传送相比,MAX7219串行接收D0—D15并存放到16位串行寄存器中的过程,相当于并行传送中,将并行数据和地址送到数据和地址总线上的过程。
数据装载
16位接收寄存器将收到的D0—D7位数据写入RAM或特殊功能寄存器是在数据装载信号控制下完成的。
图3-8是MAX7219的数据接收装载(写入)时序图,由图可知,LOAD必须在15个CLK下降延前由高变低,在16个CLK同时或之后由低变高(上升延)。
在LOAD的上升延,8位数据D0—D7写入以4位二进制数D8—D11位地址的RAM或特殊功能寄存器中。
显示扫描
当显示模式设定后,写入显示RAM的数据将在控制器的控制下,按设定的显示模式,以动态扫描方式进行显示。
MAX7219内部显示RAM及特殊功能寄存器
显示RAM(地址*1—*8)
地址为*1H的RAM数据控制接D0引脚的显示器,地址为*2H的RAM数据控制接D1引脚的显示器。
译码方式寄存器(地址:
*9H)
该寄存器的8位二进制数的各位值分别控制着8个LED显示器的译码方式。
当高电平时选择BCD-B码译码模式,当低电平时选择不译码模式。
B码译码的显示自行与现实数据的关系如下:
显示数据
(十六进制)0123456789ABCDEF
B码字型0123456789–EHLP*
其中,*代表全灭。
小数点不译码,它由显示数据的D7位控制。
扫描界限寄存器(地址:
*BH)
该寄存器的D0—D3位数据设定值为0—7,设定值表示显示器动态扫描个数为1—8。
停机寄存器(地址:
*CH)
当位D0=0时,MAX7219处于停机状态;当D0=1时,处于正常工作状态。
显示测试寄存器(地址:
*FH)
当位D0=0时,MAX7219按设定模式正常工作;当D0=1时,处于测试状态。
在该状态下,不管MAX7219处于什么模式,全部LED将按最大亮度接通显示。
亮度寄存器(地址:
*AH)及两度的调解或控制
亮度可通过硬件和软件两种方法调解或控制。
2.1.3存储器的选择
为了改善主CPU的资源与时序的分配,我们对AT89C51进行串行数据存储器的扩展。
常用的存储芯片有很多,如AT93C46/56/66,X5045。
经过比较选择,最终选用了XICOR公司的X5045。
X5045把三种常用的功能:
看门狗定时器,电压控制和EEPROM组合在单个封装之内。
这种组合降低了系统的成本并减少了对电路板空间的要求。
看门狗定时器对微控制器提供了独立的保护系统。
低VCC检测电路可以保护系统免受低电压的影响,同时X5045是串行EEPROM具有简单的三总线工作的串行外设接口,是一种有独特功能的高性能价格比存储器件。
AT93C46/56/66是ATMEL公司推出的低功耗、低电压电可擦除的可编程只读存储器。
它采用CMOS技术和FairchildSemiconductor公司的Mi-croWire工业标准3线串行接口,具有1Kb/2kB/4kB的容量,并可通过ORG管脚配置成128*8/256*8/512*8或64*16/128*16256*16等结构。
该系列存储器可靠性高,能够重复写100万次,数据可以保存100年不丢失;采用8脚PDIP/SOIC封装和14脚SOI封装(SOI封装为JEDEC和EIAJ标准),与并行的EEPROM相比,AT93C46/56/66可大大节省印制板空间,且接线简单,因而在多功能的精密测试仪中具有广阔的前途。
引脚功能
CS:
片选信号。
高电平有效,低电平时进入等待模式。
在连续的指令之间,CS信号必须持续至少250ns的低电平,才能保证芯片正常工作。
CLK:
串行时钟信号。
在CLK的上升沿,操作码、地址和数据位进入器件或从器件输出。
在发送序列时,CLK最好不停止,以防止读/写数据的错误。
DI:
串行数据输入。
可在CLK的同步下输入开始位、操作码、地址位和数据位。
DO:
串行数据输出。
在CLK同步下读周期时,用于输出数据;而在地址擦/写周期或芯片擦/写周期时,该端用于提供忙/闲信息。
VSS:
接地。
VCC:
接+5V电源。
ORG:
存贮器构造配置端。
该端接VCC或悬空时,输出为16位;接GND时,输出为8位。
指令及时序
地址擦指令(ERASE)
该指令用于强迫指定地址中所有数据位都为“1”。
一旦信息在DI端上被译码,就需使CS信号保持至少250ns的低电平,然后将CS置为高电平,这时,DO端就会指示“忙”标志。
DO为“0”,表示编程正在进行;DO为“1”,表示该指定地址的寄存器单元已擦完,可以执行下一条指令。
擦/写允许指令(EWEN)
由于在上电复位后AT93C46/56/66首先将处于擦/写不允许状态。
故该指令必须在所有编程模式前执行,一旦该指令执行后,只要外部没有断电就可以对芯片进行编程。
地址写指令(WRITE)
写指令时,先写地址,然后将16位的或8位数据写入到指定地址中。
当DI端输出最后一个数据位后,在CLK时钟的下一个上升沿以前,CS必须为低,且需至少保持250ns,然后将CS置为高电平。
需要说明的是:
写周期时,每写一个字节需耗时4ms。
地址读指令(READ)
读指令用于从指定的单元中把数据从高位到低位输出至DO端,但逻辑“0”位先于数据位输出。
读指令在CLK的上升沿触发,且需经过一段时间方可稳定。
为防止出错,建议在读指令结束后,再输出2-3个CLK脉冲。
芯片擦指令(ERAL)
该指令可将整个存贮器阵列置为1,其它功能与地址擦指令相同。
芯片写指令(WRAL)
该指令可将命令中指定的数据写入整个存贮器阵列,其它功能与地址写指令相同。
该指令周期所花费时间的最大值为30ms。
擦/写禁止指令(EWDS)
使用该指令可对写入的数据进行保护,操作步骤与擦/写允许指令相同。
2.1.4继电器的选择
继电器是我们生活中常用的一种控制设备,通俗的意义上来说就是开关,在条件满足的情况下关闭或者开启。
继电器的开关特性在很多的控制系统尤其是离散的控制系统中得到广泛的应用。
从另一个角度来说,由于为某一个用途设计使用的电子电路,最终或多或少都需要和某一些机械设备相交互,所以继电器也起到电子设备和机械设备的接口作用。
最常见的继电器要数热继电器,通常使用的热继电器适用于交流50Hz、60Hz、额定电压至660V、额定电流至80A的电路中,供交流电动机的过载保护用。
它具有差动机构和温度补偿环节,可与特定的交流接触器插接安装。
时间继电器也是很常用的一种继电器,它的作用是作延时元件,通常它可在交流50Hz、60Hz、电压至380V、直流至220V的控制电路中作延时元件,按预定的时间接通或分断电路。
可广泛应用于电力拖动系统,自动程序控制系统及在各种生产工艺过程的自动控制系统中起时间控制作用。
在控制中常用的中间继电器通常用作继电控制,信号传输和隔离放大等用途。
此外还有电流继电器用来限制电流、电压继电器用来控制电压、静态电压继电器、相序电压继电器、相序电压差继电器、频率继电器、功率方向继电器、差动继电器、接地继电器、电动机保护继电器等等。
正是有了这些不同类型的继电器,我们才有可能对不同的物理量作出控制,完成一个完整的控制系统。
除了传统的继电器之外,继电器的技术还应用在其他的方面,比如说电机智能保护器是根据三相交流电动机的工作原理,分析导致电动机损坏的主要原因研制的,它是一种设计独特,工作可靠的多功能保护器,在故障出现时,能及时切断电源,便于实现电机的检修与维护,该产品具有缺相保护,短路、过载保护功能,适用于各类交流电动机,开关柜,配电箱等电器设备的安全保护和限电控制,是各类电器设备设计安装的优选配套产品。
该技术安装尺寸、接线方式、电流调整与同型号的双金属片式热继电器相同。
是直接代替双金属片式热继电器的更新换代的先进电子产品。
而其真正的原理还是继电器技术。
继电器技术发展到现在,已经和计算机技术结合起来,产生了可编程控制器的技术。
可编程控制器简称作PLC。
它是将微电脑技术直接用于自动控制的先进装置。
它具有可靠性高,抗干扰性强,功能齐全,体积小,灵活可扩,软件直接、简单,维护方便,外形美观等优点;以往继电器控制的电梯有几百个触点控制电梯的运行。
有一个触点接触不良,就会引起故障,维修也相当麻烦,而PLC控制器内部有几百个固态继电器,几十个定时器/计数器,具备停电记忆功能,输入输出采用光电隔离,控制系统故障仅为继电器控制方式的10%。
正因为如此,国家有关部门已明文规定从1997年起新产电梯不得使用继电器控制电梯,改用PLC微电脑控制电梯。
可以看出,继电器技术在日常生活中无所不在,而且和电脑的紧密结合更加增强了它的活力,使得继电器为我们的生活更好地服务。
2.2总体设计及系统原理
经比较我们选定单片机芯片为AT89C52,存储器芯片为X5045。
在确定系统的大体形式之后,画出本系统的结构布局,电路原理如图2-2所示。
图2-2
第三章硬件设计
3.1单片机部分
3.1.1AT89C52
特点:
●与MCS-51产品指令和引脚完全兼容
●8K字节可重擦写FLASH闪存
●1000次擦写周期
●全静态操作:
0Hz-24MHz
●三级加密程序存储器
●256X8字节内部RAM
●32个可编程I/O口线
●3个16位定时/计数器
●8个中断源
●可编程串行UART通道
●低功耗空闲和掉电模式
功能特性概述:
AT89C52提供以下标准功能:
8K字节FLASH闪存,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
AT89C52的芯片管脚图如图3-1
图3-1
引脚功能说明:
VCC——电源电压
GND——地
P0口——P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口——P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见下表。
FLASH编程和程序校验期间,P1接收低8位地址。
P1.0和P1.1的第二功能
引脚号
功能特性
P1.0
T2(定时/计数器2外部计数脉冲输入),时钟输出
P1.1
T2EX(定时/计数2捕获/重装载触发和方向控制)
P2口——P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
FLASH编程或校验时,P2亦接收高位地址和一些控制信号。
P3口——P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INTO(外中断0)
P3.3
INT1(外中断1)
P3.4
TO(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
3.1.2单片机硬件资源分配
P2.4连接按键
P2.5连接按键
P2.6连接按键
P2.7连接按键
P3.4连接蜂鸣器
P3.5接继电器
P1.4连接X5045的SO端
P1.5连接X5045的/CS端
P1.6连接X5045的CLK端
P1.7连接X5045的SI端
3.2存储器部分
在上一章我已选定了存储器芯片X5045,下面对其作进一步的介绍:
特点:
●可编程的看门狗定时器
●上电复位及低VCC检测,即在上电和VCC低于检测门限时,输出复位信号。
输出复位高电平有效,直至VCC=1V复位信号仍有效
●SPI接口方式,最高可达1MHZ的串行时钟频率
●512*8位串行EEPROM
●低功耗CMOS,3mA工作电流,10uA备用电流
●电源电压:
2.7V-5.5V
●分块锁定,可保护1/4,1/2或所有EEPROM列
●防止偶然性写保护
●高可靠性,数据可保存100年,每字节可擦除次数可达到10万次
●可编程的复位门限。
需要加高电压(15-18V加在WP引脚)及一个专门的时序
●8引脚小型DIP封装
引脚图(如图3-2)
图3-2
引脚说明:
●/CS
(1):
片选输入
●SO
(2):
串行输出
●SI(3):
串行输出
●SCK(4):
串行时钟输入
●/WP(5):
写保护输入
●Vss(6):
地
●Vcc(7):
电源电压
●/RESET(8):
复位输出
使用说明:
串行输出(SO)
SO是一个推/拉串行数据输出引脚,在读周期时间内,数据从这个引脚输出,串行时钟脉冲下降沿时数据输出。
串行输入(SI)
SI是串行数据输入引脚,所有的操作码,字节,地址及数据都通过这个引脚写入存储器,串行时钟脉冲上升沿时,数据被锁存。
串行时钟(SCK)
串行时钟控制串行总线为数据的输入和输出计时,SI引脚的操作码,地址或数据在时钟输入上升沿时被锁存,SO引脚的数据在时钟输入上升沿时被改写。
片选(/CS)
当/CS为高电平时,X5043/45被检测,SO输出引脚处于高阻抗状态,除非内部写操作在进行中的时候,X5045将处于后备电源模式。
/CS为低电平时,可以使X5943/45处于工作电源模式,应特别注意,在电源上电以后,需要在开始任何操作以前完成/CS引脚上高电平到低电平的转换。
写保护(/WP)
当/WP为低电平时,对于X5045不能完成非易失性写操作,但是在其他方面工作正常。
当/WP被拉成高电平时,所有的功能,包括非易失性写操作都能正常工作。
当/WP变成高电平,/CS仍然是低电平时,将中断对X5045的写操作,如果内部写周期已经开始,/WP变成低电平将对写操作没有影响。
复位(RESET)
X5045的RESET分别工作在高电平/低电平,对外输出一直工作到VCC降至最小电压以下,将一直工作200ms直到VCC升高大于最小电压。
如果看门狗定时时间已定,/CS保持高电平或低电平的时间超过看门狗的定时时间,RESET也同样有效。
当/CS下降沿时可使看门狗定时器复位。
工作原理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 LED 数码 显示 电子钟 设计