基于数码管的电子时钟设计.docx
- 文档编号:23070729
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:27
- 大小:200.31KB
基于数码管的电子时钟设计.docx
《基于数码管的电子时钟设计.docx》由会员分享,可在线阅读,更多相关《基于数码管的电子时钟设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于数码管的电子时钟设计
2012~2013学年第2学期
《单片机原理及应用》
课程设计报告
题目:
基于数码管的电子时钟设计
专业:
自动化
班级:
电气工程系
2013年5月1日
1、任务书
课题名称
基于数码管的电子时钟设计
指导教师(职称)
执行时间
2012~2013学年第2学期第10
学生
学号
承担任务
设计目的
1.学习8051单片机定时器时间计时处理、按键扫描及LED数码管显示的设计法。
2.能够较全面地巩固和应用单片机课程中所学的基本理论和基本法,锻炼动手能力。
3.培养学生独立思考、独立收集资料、独立设计的能力;培养分析、总结及撰写技术报告的能力。
设计要求
要求:
1、用8个数码管显示一个电子时钟格式为00-00-00,分别表示时钟、分钟和秒钟;
2、要求有暂停,能进行时钟、分钟和秒钟的调节;
3、到整时(如1点整,2点整)时蜂鸣器发出“滴答”声,同时一个发光二极管发出闪烁。
摘要
随着人类科技文明的发展,人们对于时钟的要求在不断地提高。
时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
本设计主要基于单片机技术原理,设计制作出一个电子时钟系统。
6位LED数码管显示,使用按键扫描进行时间校准。
这种实现法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。
最后将设计的时钟系统在Protues仿真软件上进行仿真验证所设计的时钟系统稳定可靠。
关键词:
AT89C51单片机;电子时钟;数码管;按键扫描
基于数码管的电子时钟设计
插图清单
图2-6LED数码管8
表格清单
第一章绪论
1.1单片机的应用和特点
20世纪末,单片机技术获得了飞速的发展,渗透到我们生活的每个领域,几乎很难找到那个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种IC卡,民用豪华轿车的安全控制系统,录像机、摄像机、全自动洗衣机的控制等等,这些都离不开单片机的控制还有医疗器械、功能仪表都需要单片机。
可见,单片机关系到我们生活的面面。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个畴:
智能仪器、工业控制,家用电器、网络和通信、设备领域、模块系统以及汽车电子。
随着单片机的广泛应用,在其在推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使得现代电子产品性能进一步提高。
单片机有以下特点:
1.单片机的存储器ROM和RAM是格区分的。
ROM称为程序存储器,只存放程序、固定常数及数据表格。
RAM则为数据存储器,用作工作区及存放用户数据[1]2.采用面向控制的指令系统。
为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力;
3.单片机的I/O口通常是多功能的。
由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的法,引脚处于种功能,可由指令来设置或机器状态来区分;
4.单片机的外部扩展能力很强。
在部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与多通用的微机接口芯片兼容,给应用系统设计带来了很大的便。
1.2单片机的发展趋势
目前,单片机正朝着高性能和多品种向发展趋势是进一步向着CMOS化、低功耗、小体积,大容量、高性能、低价格和外围电路装化等几个面发展。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计法。
在以前,是必须由模拟或是数字电路实现的大部分功能的,而现在已经能用单片机通过软件的法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
1.3电子时钟简介及其基本特点
随着社会经济的急速发展,给人们的生活带来巨大压力的同时迫使人们加快自己工作、生活的步伐,使时间对于人们来说总是那么宝贵,工作的忙碌性和繁杂性容易是人忘记当前时间。
忘记了要做的事情,当事情不是很重要的时候这种遗忘无伤大雅。
但是,一旦是重要的事情,一时的耽误可能酿成大祸。
1957年,Ventura发明了世界上第一只电子表,从而奠定了电子时钟的基础,电子时钟也飞速的发展起来。
现代的电子时钟的基于单片机的一种计时工具采用延时程序产生一定的时间中断,用于一秒定义,通过计数式进行六十秒分钟进一,满六十分小时进一,满二十四小时清零,从而达到计时的功能,是人们日常生活不可缺少的工具。
现在高精度的计时工具大多数采用了英晶体振荡器,由于电子钟、英钟、英表都采用了英技术,因此,走时精度高,稳定性好,使用便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LCD显示器或数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
第二章控制系统的硬件设计
2.1总案设计
根据课设的要求,我们设计了如图2-1所示的整体框图,包括外部震荡电路模块、复位电路模块、按键电路模块、蜂鸣器电路模块(起整点报时的功能)、单片机芯片以及显示模块。
其中单片机芯片是核心模块,与外部晶振电路和复位电路组成单片机系统电路。
外部晶振电路
复位电路
按键键电路
显示电路
蜂鸣器电路
单
片
机
图2-1电子时钟电路设计框图
2.2单片机芯片的选择
经过多种单片机性能的分析及现有实验设备的限制,在本设计中单片机芯片采用了AT89C51单片机芯片。
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的案。
2.2.1AT89C51的功能概述
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲式停止CPU的工作,但允RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电式保存RAM中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
2.2.2AT89C51引脚功能说明
引脚排列如图2-2所示。
图2-2AT89C51引脚说明
Vcc:
电源电压
GND:
接地
P0口:
P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1口是一个带有部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作为输入口。
作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
Flash编程和程序校验期间,P1接收低8地址[5]。
P2口:
P2口是一个带有部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作为输入口。
作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(例如执行MOVXRi指令)时,P2口线上的容(即特殊功能寄存器(SFR)区中P2寄存器的容),在整个访问期间不改变。
Flash编程和程序校验期间,P2亦接收高位地址和其他控制信号。
P3口:
P3口是一个带有部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”,它们被部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。
DIRT0位缺省为RESET输出高电平打开状态。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此可对外输出时钟或用以定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于出入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,单片机执行外部程序时,应设置ALE无效。
/PSEN:
程序储存允(/PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)使,每个机器期两次/PSEN有效,即输出两个脉冲。
当访问外部数据存储器。
没有两次有效的/PSEN信号。
EA/VPP:
外部访问允。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程电压VPP。
2.3单片机系统电路设计
单片机系统电路包含晶振和复位两部分,如图2-3所示。
图2-3单片机系统电路
在图2-3的复位部分,单片机的9脚(RST)是硬件复位功端,当该端持续4个期输入高电平即可实现复位,复位后单片机的各状态都将回复初始状态,其中K5为复位键,按下此键就可以使单片机恢复到初始值。
晶振电路部分,此电路在加电大约延迟10sm后正当器起振,在XTAL2引脚产生幅值为3V的正弦时钟信号,其振荡频率主要由英晶振的频率决定。
电容C1、C2起到两个作用,一是帮助振荡器起振,二是对振荡器的频率进行微调,值都为33pF。
图中X1为英晶振。
2.4按键电路设计
设计用了3个按键K1、K2、K3,分别表示设定键、暂停键、加键,其中设定键是对时、分、秒的选择键,而加键是对时或分或秒的调节,两者结合从而达到调节时间的目的。
电路如图2-4所示:
图2-4按键设计电路
2.5蜂鸣器电路设计
当单片机检测到整点的时候,例如01-00-00时,单片机系统应能发发出信号使蜂鸣器发出“嘀、嘀、嘀”的声音,同时一个发光二极管闪烁。
用I/O口很容易实现该功能。
本设计的蜂鸣器电路是实现整点报时。
本设计中选用压电式蜂鸣器。
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器、共鸣器和外壳组成。
当接通电源后(1.5V~15V直流工作电压),多振荡器起震,输出1.5~2.5KHZ的音频信号。
阻抗匹配器推动压电蜂鸣片发生。
购买市售的压电式蜂鸣器,用一根I/O口线驱动蜂鸣器发声,约需10mA的驱动电流,可用7406或7407低电平驱动,也可以用一个晶体管驱动,如图2-5所示:
图2-5蜂鸣器设计电路图
2.6LED数码管显示电路
我们常用的LED数码管有七段式和八段式,相对于七段式来说八段式多了一个小数点其他的基本相同。
本设计中我们选用的是八段式LED数码管。
所谓八段就是数码管里有八个小的LED发光二极管,通过控制不同的LED二极管的亮灭来显示不同的字形。
数码管是一种把多个LED显示段集成在一起的显示设备。
有两种类型,一种是共阳极,一种是共阴极。
共阳极就是把多个LED显示段的阳极接在一起,又称为公共端。
共阴型就是把多个LED显示段的阴极连接在一起,即为公共端。
其中,共阳极的公共端接+5V电源,共阴极公共端接地。
如图2-5所示。
(a)外观图(b)共阳极等效电路(c)共阴极等效电路
图2-6LED数码管
一个八段数码管称为一位,多个数码管并列在一起可构成多为数码管,它们的段选线(即a、b、c、d、e、f、g、dp)连载一起,各自的公共端为位选线。
显示时都是从段选线送入编码,选中哪个位选线,那个数码管就会被点亮。
数码管的八段对应一个字节的八位,a对应最低位,dp对应最高位。
例如,显示字符0,共阴极数码管字符编号为00111111,即0x3f;共阳极数码管字符编号为11000000,即0xc0。
可以看出两个编码的各位正好相反。
本设计中选用的是共阳极的数码管,表2-1中为各字符的编号。
表2-1数码管字型与字段关系表
显示
字符
g
f
e
d
c
b
a
字型码
共阴极
共阳极
0
0
1
1
1
1
1
1
3FH
C0H
1
0
0
0
0
1
1
0
06H
F9H
2
1
0
1
1
0
1
1
5BH
A4H
3
1
0
0
1
1
1
1
4FH
B0H
4
1
1
0
0
1
1
0
66H
99H
5
1
1
0
1
1
0
1
6DH
92H
6
1
1
1
1
1
0
1
7DH
82H
7
0
0
0
0
1
1
1
07H
F8H
8
1
1
1
1
1
1
1
7FH
80H
9
1
1
0
1
1
1
1
6FH
90H
A
1
1
1
0
1
1
1
77H
88H
B
1
1
1
1
1
0
0
7CH
83H
C
0
1
1
1
0
0
1
39H
C6H
D
1
0
1
1
1
1
0
5EH
A1H
数码管的显示法可分为静态显示和动态显示,在本设计中采用的是动态显示,其原理:
各个数码管的相同端连接在一起,共同占用8位段引管线:
每位数码管的阳极连接在一起组成公共端。
依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,显示就会清晰显示出来。
本设计选取的是7SEG-MPX8-CA-BLUE共阳极的多位数码管,如图2-7所示。
图2-7显示电路设计
由以上各部分电路模块的设计思路,以及进一步修改得到如图2-8所示的由AT89C51芯片和74HC573等元件组成的电路图,按钮开关从上到下依次设定、暂停、加、确认等功能。
此外,该电路还可以实现整点报时,同时发光二极管闪烁的功能。
图2-8总体设计电路图
第三章控制系统的软件设计
软件的设计主要包括三个部分:
主程序、显示子程序、中断服务组程序。
1、主程序设计功能主要是选择定时器工作式,流程图如图3-1所示,程序见附录一。
开始
显示缓冲区初始
置定时器模式及工作方式
设置初始常数
启动定时器
单元初始化
图3-1主程序框图
2、中断服务组程序设每个机器期的长度是12个振荡期。
实验系统的晶振是11.0592MHz,所以定时常数的设置可按以下法计算:
机器期=12÷11.0592MHz=1.0857µS,程序见附录一。
3、显示子程序设计功能:
扫描8个数码管,数值。
程序见附录一,流程图如图3-2所示:
调用延时程序
秒单元加1
60S到?
秒单元清0
分单元加1
60M到?
分单元清0
小时单元加1
24H到?
小时单元清0
返回
N
Y
N
Y
N
Y
图3-2显示子程序设计框图
第四章系统仿真
系统的调试、仿真用到了Keil和Protues两个软件。
KeilC51仿真器是一款利用KEILC51的IDE集成开发环境作为仿真环境的廉价仿真器,是利用SST公司具有IAP功能的单片机SST89C58制作而成,主要是利用了SST89C58的IAP功能,所谓IAP功能是Inapplicationprogram的英文缩写,是在应用编程的意思,通俗一点讲就是:
它可以通过串口将用户的程序下载到单片机中,可以通过串口对单片机进行编程。
它之所以具有这种功能,实际上它有两块程序flash区,其中一块flash中运行的程序可以更改另外的一块程序flash区中的程序,正是利用这一特性才用它作成了仿真器,我们把仿真器的监控程序事先烧入SST89C58,监控程序通过SST89C58的串口和PC通讯,当使用KEILC51的IDE环境仿真时,用户的程序通过串口被监控程序写入flash程序区中,当用户设置断点等操作仿真程序时,flash程序中的用户程序也在相应的更改,从而实现了仿真功能。
具体操作过程如下:
1.在Protues软件中绘制连接图2-8所示的总体电路图,然后把程序输入keil软件中生成HEX文件,最后把HEX文件载入AT89C51单片机中运行。
2.仿真后的结果:
(1)开始通电时,LED数码管显示的时间是“00-00-00”,此时处于整点状态,蜂鸣器发出“嘀嘀嘀”的响声,发光二极管也同时亮起。
仿真结果如图4-1所示。
图4-1整点报时仿真
(2)按下k1键(设定功能),选择调节的是时、分、秒其中的一个,然后按k3(加)键,对选中的时或分或秒进行调节,例如把时间调整在“22-11-10”,仿真结果如图4-2所示。
调时后按下k1键(确认功能),时钟就开始工作计时。
按下k2(暂停)键,LED数码管上显示的时间就不会变动,时钟停止工作。
图4-2调时仿真
第五章总结与体会
通过这次单片机课程设计,发现了自身所学知识存在多的不足和问题,同时也学到了不少东西,提高了动手能力。
在整个设计过程中,从设计案的确定,到具体电路的设计,最后到总体电路的联接构建以及程序的编写改写,整个设计工程量的比较大的,单靠个人能力,很多面考虑不,有的地甚至毫无头绪,想不出具体案,因此,绝对不能心急,不明白的地我们一组同学进行分析、研究,毕竟群策力办法要多些,让每个人也多个机会,碰上是在不能解决的问题,就去找辅导老师,用过老师的指点,把问题彻底搞清楚并加以掌握。
另外,在这次的设计过程中,我们还查阅了很多相关设计的资料,通过参考和研究别人的一些设计,使得我们的设计思路更加清晰和密,从而使设计出来的产品也更加完善和高质量。
尽管这次设计中遇到了很多问题,但是也都一一得以解决,比如软件设计时,遇到了很多问题,但是经过我们的讨教及想老师询问,静下心来思考,慢慢就理清了思路。
通过这次设计,也使我们了解到无论做任事情,都要有一颗平常心,不要急着想要成功、走捷径,要一步一个脚印,把每一部都认认真真的做好来,才能取得最后的成功,同时也练就了我们的耐心,做什么事情都要有耐心,不要遇到困难就退缩,而是要静下心来去寻找解决的法,否则很难有最后的成功。
在此过程中,充分发挥人的主观能动性,自主学习,学到了很多没有学到过的知识,另一面,碰到问题注意与同学和老师写作、讨论、寻求解决的案,最终完成作品,达到预期的目的。
虽然这次设计的课题有些简单,但是要真的做进去还是有一定的困难的,但是经过自己的努力,得出最后的作品,我们还是蛮有成就感的,更重要的是学到了平时没有学到的知识。
因此,我们觉得这次的课程设计对自己而言算的上是一次全新的尝试,也是一个小小的成功,更是一次很好的锻炼,让我们有了全位的提高和进步。
参考文献
[1]楼然苗,光飞。
《单片机课程设计指导》,航空航天大学。
[2]友德,志英,涂时亮。
《单片机原理、应用与实验(第五版)》,复旦大
学。
[3]佚名。
单片机电子数字钟论文,豆丁网文档在线,
.docin./p-35240247.html
[4]永枫。
《单片机应用实训教程》,电子科技大学。
[5]定华单片机原理及接口技术实验,北交通大学。
[6]天峰。
《单片机应用系统设计与仿真调试》,航空航天大学。
[7]佚名。
毕业论文基于AT89C51单片机的数字时钟,豆丁网文档在线,
.docin./p-42351239.html
[8]白美电子线路设计·实验·测试华中理工大学1992.
[9]立民单片机应用系统设计,航空航天大学1993.
[10]付家才单片机控制工程实践技术,化学工业2004.3.
[11]光才单片机课程设计实例指导,航空航天大学。
附录
附录一程序清单
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable[]={~0xC0,~0xf9,~0xa4,~0xb0,~0x99,~0x92,~0x82,~0xf8,~0x80,
~0x90,~0x88,~0x83,~0xc6,~0xa1,~0x86,~0x8e,~0xff,~0x0c,~0xbf};/*数码管编码表0-F、灭(16)、P.-*/
uchart0,t1,sec,min,hour,function,a0,a1,a2,a3,a4,a5,a6,a7;
bitshan;
voiddelay(uintcount);
ucharkeychuli();
ucharkey();
voiddisplay(uchar,uchar,uchar,uchar,uchar,uchar,uchar,uchar);//函数申明
voidsend();
voidini();
voidchuli();
voidmain()//主函数
{
ini();
while
(1)
{display(16,16,18,16,16,18,16,16);//没有键按下是显示P.
if(ke
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 数码管 电子 时钟 设计