基于单片机的多功能电子时钟计.docx
- 文档编号:4708224
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:37
- 大小:334.40KB
基于单片机的多功能电子时钟计.docx
《基于单片机的多功能电子时钟计.docx》由会员分享,可在线阅读,更多相关《基于单片机的多功能电子时钟计.docx(37页珍藏版)》请在冰豆网上搜索。
基于单片机的多功能电子时钟计
设计题目:
基于单片机的多功能电子时钟设计
一、毕业设计的目的
1)掌握单片机系统开发的一般方法与流程
2)掌握单片机系统电路的安装调试步骤与方法
二、主要设计内容
1)调查研究多功能电子时钟的原理与实现方法
2)构思基于单片机的多功能电子时钟的实现方案
3)用仿真软件分析设计方案
4)选择器件实现多功能电子时钟的硬件电路
5)编写和调试软件系统
6)进行实物电路板电路的测试与参数修正
三、重点研究问题
1)单片机的原理与应用
2)多功能电子时钟的原理与方法
3)多功能电子时钟的实时显示与功能切换
4)单片机的软件系统设计
四、主要技术指标或主要设计参数
1)硬件要求:
a)电路原理图正确
b)元器件选配合理
c)电路板布局合理
d)焊接质量好
2)软件要求:
a)程序要求结构化、模块化,流程清晰
b)满足功能需求且充分利用硬件资源
c)逻辑正确严谨,变量、模块定义规范化
摘要
随着生活节奏的加快,人们时间观念的加强,时钟已经成为人们日常生活中不可或缺的一部分,而如何在时钟的基础上,根据人们生活的需要增加相应的、功能以方便人们的生活,成为时钟设计方面的重点。
单片机以其强大的功能,低廉的价格成为许多多功能电子产品的首选。
本设计结合所学的额单片机的原理与应用这么课程而拓展的电子方面的研究,在单片机时钟的基础上通过软件记时,实现时钟功能,同时通过按键开关来扩展功能,实现定时闹钟与秒表功能。
C51语言作为高级语言C语言的移植,易于理解和操作,且结构化较高,本设计即采用C51语言作为编程语言,流程比较清晰。
关键字:
电子时钟STC89S52单片机C51语言
Abstract
Withthequickeningpaceoflife,itenhancedsenseoftime,theclockhasbecomeanindispensablepartofdailylife.Howtheclockbasis,accordingtopeople'slivesneedtoincreaseaccordingly,functiontofacilitatepeople'slives,becomethefocusoftheclockdesign.Microcontrollerwithitspowerfulfeatures,lowpricetobecomethefirstchoiceformanymulti-functionalelectronicproducts.ThedesigncombinesthescienceandapplicationoftheprincipleamountofSCMsuchcoursestoexpandthee-research,basedontheclockinthemicrocontrollersoftwareinmind,therealizationoftheclockfunction,andtoextendthefunctionalitythroughthekeyswitch,alarmandstopwatchtimetoachievefunction.C51high-levellanguageClanguageasthelanguageoftransplantation,easytounderstandandoperate,andthestructureofthehigher,thedesignoftheC51languageasaprogramminglanguageused,theprocessclearer.
Keyword:
electrico’clockSTC89S52MCUClanguage
目录
摘要I
AbstractII
目录I
1绪论1
2基本原理2
2.1STC89S52简介2
2.2八段数码管5
2.2.1概述5
2.2.2最大工作范围5
2.2.3电气特性(测试条件Ta=25,Vdd=5.0+/-0.25V)5
2.2.4接口说明5
2.2.5指令描述9
2.2.6接口时序11
2.3HCF4511B的说明12
3硬件设计14
3.1硬件主要组成部分14
3.2硬件电路说明14
3.2.1按键模块14
3.2.2单片机的复位电路15
3.2.3单片机的晶振电路16
3.2.4发声指示模块16
3.2.5数码管显示部分电路17
4软件设计18
4.1程序流程图18
4.2软件的仿真19
5系统调试20
5.1硬件调试20
5.1.1排除元器件失效20
5.1.2排除电源故障20
5.1.3联机仿真调试20
5.2软件调试20
总结23
致谢24
参考文献25
附录一源程序26
附录二软件仿真图40
附录三英文文献及翻译41
英文文献原文41
中文文献译文44
1绪论
单片机技术飞速发展,产品质量越来越好,而成本却越来越低,现阶许多复杂、多用的电子器件普遍采用单片机来实现。
同时,随着人们生活节奏的加快,时钟已经成为人们日常生活中的必需品,许多家电都带有时钟模块,而人们也不再满足于紧紧具有时间显示功能的时钟,对时钟功能的要求也越来越全面。
单片机以其强大的功能成为多功能电子时钟的首选,为电子时钟的功能扩展提供了强大的支持,实现一物多用,提高电子时钟的使用价值。
本设计详细介绍了该系统的组成和基本工作原理,重点介绍了硬件设计思想和软件设计的思路,在保证系统功能齐全,性能良好的前提下,最大限度的简化电路,降低系统的整体成本,提高系统的可靠性。
另外,预留P0口作为以后功能的扩展口。
(可是现在的液晶显示器基本上还都是只支持模拟RGB输入,同时支持模拟RGB输入和数字RGB输入并且可以接收电视信号的多功能液晶显示器市场上还很少见。
本设计同时集成了模拟RGB信号处理和数字RGB信号处理,并且集成了电视信号的编码处理。
实现了一物多用,提高了系统的实用价值。
本设计详细介绍了该系统的组成和基本工作原理,重点介绍了多功能电子时钟的硬件设计思路和软件设计思想。
硬件设计的主要要求是在保证系统性能的前提下,最大限度的降低系统的整体成本,同时还要留出以后功能扩展接口。
)
2基本原理
2.1STC89S52
STC89S52下图2-1所示。
图2-1STC89S52管脚
主要性能:
与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
功能特性描述:
STC89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程FlashSTC89S52
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为STC89S52特殊功能(第二功能)使用:
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,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。
2.2SN46056两位共阴数码管
2.2.1概述
(1)SN46056两位共阴数码管是标准的两位共阴数码管,可与CPU直接接口,具有8位标准数据总线、位选两位,接低电平时选中该数码管,8位段选接高电平时驱动数码管显示。
(2)外观尺寸:
113×65×11mm(SN46056-1),
93×70×10mm(SN46056-2)78×70×10mm(SN46056-3),
(3)LED显示器是由发光二极管显示字段的显示器件,也可称为数码管,它由8个发光二极管构成,通过不同的组合可显示0到9,A到F及其小数点“.”等字符。
其结构图如图3-11。
图3-11LED结构图
数码管通常有共阴极和共阳极两种接法。
共阴极数码管的发光二极管阴极必须接低电平,当某发光二极管的阳极为高电平(一般为+5V)时,此二极管点亮;共阳极数码管的发光二极管是阳极接到高电平,对于需点亮的发光二极管使其阴极接低电平(一般为地)即可。
显然,要显示某字形就应使此字形的相应字形点亮,实际就是送一个用不同电平组合代表的数据至数码管。
一般共阳极数码管必须外接电阻,而共阴极不一定外接电阻。
LED显示器有静态显示和动态显示两种方式。
在静态显示方式中,每个比D发光二极管工作电流在10mA一20mA;而在动态显示方式中,为了获得良好的亮度,LED发光二极管瞬时工作电流可以适当提高,一般取20mA一25mA。
LED静态显示接口电路由笔段代码锁存器、笔段译码器(由软件译码的LED静态显示驱动电路不需要译码器)等部分组成,在静态显示方式中,显示驱动程序简单,且CPU占用率低,但每一个LED数码管需要一个锁存器,以便锁存每一位的笔段代码,硬件开销大(元件数目多,印制板面积也会随之增加),仅适用于显示位数较少(4位以下)的场合。
当需要显示的位数在4—12时,多采用按位扫描硬件译码的动态显示方式或按位扫描软件译码的动态显示方式。
因此本系统采用动态显示方式。
在动态显示方式中,各LED数码显示器轮流工作,为了防止产生闪烁现象,每个LED数码管刷新频率必须大于25Hz,即相邻两次点亮的时间间隔要小于40ms,对于具有N个LED数码管的动态显示电路来说,如果刷新频率为f,那么显示周期为1/f,则每一位的显示时间为1/(f×N)秒。
显然,显示的位数越多,每一位的显示时间越短,在驱动电流一定的情况下,亮度越低(正因如此,在动态LED显示电路中,要适当增大驱动电流,一般取20mA~35mA,以抵消因显示时间短造成亮度下降)。
为了保证一定的亮度,实验表明:
在驱动电流取30mA的情况下,每位显示时间不能小于1ms。
2.2.2接口说明
(1)SN46056接口说明,如表2-1所示。
表2-1SN46056接口说明表
管脚号
管脚
电平
说明
1
VSS
0V
逻辑电源地
2
VDD
5.0V
逻辑电源正
3
V0
?
LCD驱动电压,应用时在VEE与V0之间加一2K可调电阻。
4
D/I
H/L
数据\指令选择:
高电平:
数据D0-D7将送入显示RAM;
低电平:
数据D0-D7将送入指令寄存器执行。
5
R/W
H/L
读\写选择:
高电平:
读数据;低电平:
写数据
6
E
H.H/L
读写使能,高电平有效,下降沿锁定数据。
7
DB0
H/L
数据输入输出引脚
8
DB1
H/L
数据输入输出引脚
9
DB2
H/L
数据输入输出引脚
10
DB3
H/L
数据输入输出引脚
11
DB4
H/L
数据输入输出引脚
12
DB5
H/L
数据输入输出引脚
13
DB6
H/L
数据输入输出引脚
14
DB7
H/L
数据输入输出引脚
15
CS1
H/L
片选择信号,低电平时选择前64列。
16
CS2
H
片选择信号,低电平时选择后64列。
17
RET
L
复位信号,低电平有效。
18
VEE
-10V
LCD驱动电源
19
BL
AC
背光电源,LED+
20
BL
AC
背光电源,LED-
(2)12864-3A接口说明,如表2-2所示。
表2-212864的接口说明
管脚号
管脚
电平
说明
1
c
H
数码管c位
2
dp
H
数码管dp位
3
e
H
数码管e位。
4
d
H
数码管d位
5
g
-H
数码管g位。
6
f
H
数码管f位
7
位选1
L
数码管第一位选通位
8
位选2
L
数码管第二位选通位
9
b
H
数码管b位
10
a
H
数码管a位
2.2.3指令描述
共阴数码管段选码表
屏显数字
段选码
abcdefg
0
11000000(0xC0)
1
11111001(0xF9)
2
10100100(0xA4)
3
10110000(0xB0)
4
10011001(0x99)
5
10010010(0x92)
6
10000010(0x82)
7
11111000(0xF8)
8
10000000(0x80)
9
10010000(0x90)
2.3HCF4511B的说明
CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码—七段码译码器,特点如下:
具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。
可直接驱动LED显示器。
HCF4511B引脚图:
其功能介绍如下:
BI:
4脚是消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。
LT:
3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮,显示“8”。
它主要用来检测数码管是否损坏。
LE:
锁定控制端,当LE=0时,允许译码输出。
LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。
A、B、C、D为8421BCD码输入端。
a、b、c、d、e、f、g:
为译码输出端,输出为高电平1有效。
CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作,其输出电流大致在500mA左右。
逻辑功能见表:
选用共阴极数码管,对于CD4511,它与数码管的基本连接方式如下图
在本设计中,采用单片机的P1口作为BCD码输入端,P3口作为位选选通输入端控制数码管显示,
其中P1.0~P1.3控制HCF4511芯片的BCD码输入端,P3.0~P3.5控制各数码管显示。
且直接将芯片的LT、BI引脚置低,LE=1拉高,译码器是锁定保持状态。
具体连接如下图:
(电源与地未标出)
3硬件设计
3.1硬件主要组成部分
设计原理图,如图3-1所示。
图3-1设计原理图
本设计电路,硬件部分共由五个模块组成:
按键模块、复位电路模块、晶振电路模块、发声指示模块、时间显示模块。
晶振电路模块负责给单片机提供时钟周期。
复位单路模块负责上电后自动复位,或按键后强制复位。
上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。
与此同时,按键扫描函数,一直扫描按键引脚状态,一旦扫描到按键被按下,即进入相应的功能函数。
如果检测到定时时间到,则驱动蜂鸣器发声提示。
3.2硬件电路说明
3.2.1按键模块
按键模块如图3-2-1所示。
图3-2-1按键模块
在该模块中,采用四个按键作为电子时钟的控制输入,通过按键来实现时钟的时间设置、定时、秒表功能。
电路中将四个按键的一端接公共地,而单片机的P2口默认为高电平,一旦按键被按下,则该按键对应的额管脚被拉低,通过软件扫描按键即可知道用户所要实现的功能,调用相应的按键子程序来完成该操作。
按键的去抖动由软件来实现。
3.2.2单片机的复位电路
单片机的复位电路,如图3-2-3所示。
图3-2-2单片机的复位电路
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
上电后,保持RST一段高电平时间。
3.2.3单片机的晶振电路
单片机的晶振电路,如图3-2-4所示。
图3-2-3单片机的晶振电路
石英晶体也连接在晶振引脚的输入和输出之间,等效为一个并联谐振回路,振荡频率应该是石英晶体的并联谐振频率。
晶体旁边的两个电容接地,实际上就是电容三点式电路的分压电容,接地点就是分压点。
以接地点即分压点为参考点,振荡引脚的输入和输出是反相的,但从并联谐振回路即石英晶体两端来看,形成一个正反馈以保证电路持续振荡。
3.2.4发声指示模块
发声指示模块,如图3-2-5所示。
图3-2-4发声指示模块
发声指示模块分为发声部分,指示部分两部分。
发声部分由电源,380欧限流电阻R1,LED发光二极管三部分组成。
正常情况下,Led引脚(P2_0)为高电平,LED两端没有电压差,不发光,一旦按键按下,或定时时间到,Led引脚(P2_0)被拉低,LED被点亮。
发生部分由蜂鸣器、电源、9018三极管、限流电阻组成。
蜂鸣器由PNP三极管驱动,当BZ管脚(P2_1)为高时,三极管be级没电压差,三极管截止;反之,三极管导通,有电流流经蜂鸣器,蜂鸣器发声。
3.2.5时间显示模块
时间显示模块如图3-2-6所示。
图3-2-5液晶显示电路
时间显示部分的电路也很简单,由三个两位的共阴8段数码管、四盏Led灯,加上一个4511译码驱动电路组成。
在显示过程中,单片机将要显示的数字传递给4511芯片,同时通过位选选通要显示的数码管。
4511芯片实现将BCD码数字转换为七段数码管段选码通过其输出端输出,同时提供约500mA的电流驱动数码管点亮。
图3-2-6数码管译码驱动驱动电路
4软件设计
4.1程序流程图
主程序流程图,如图4-1所示。
图4-1主程序流程图
按键功能子程序流程图,如图4-2所示。
图4-2按键功能子程序流程图
4.2软件的仿真
软件测试步骤如下:
(1)打开Proteus软件。
(2)选择file菜单下的opendesign..选项,找到所需的元器件,按照电路图连接后并保存。
(3)将用KEIL编译过的HEX格式程序,下载到单片机中:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 多功能 电子 时钟