基于单片机的花样电子时钟设计与制作Word文件下载.docx

上传人:b****7 文档编号:22589892 上传时间:2023-02-04 格式:DOCX 页数:33 大小:369.28KB
下载 相关 举报
基于单片机的花样电子时钟设计与制作Word文件下载.docx_第1页
第1页 / 共33页
基于单片机的花样电子时钟设计与制作Word文件下载.docx_第2页
第2页 / 共33页
基于单片机的花样电子时钟设计与制作Word文件下载.docx_第3页
第3页 / 共33页
基于单片机的花样电子时钟设计与制作Word文件下载.docx_第4页
第4页 / 共33页
基于单片机的花样电子时钟设计与制作Word文件下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

基于单片机的花样电子时钟设计与制作Word文件下载.docx

《基于单片机的花样电子时钟设计与制作Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的花样电子时钟设计与制作Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。

基于单片机的花样电子时钟设计与制作Word文件下载.docx

4.2点阵式LED花样显示的软件设计…………………………………………21

4.2.1点阵式LED花样显示软件系统设计………………………………21

5.花样电子时钟各模块之间的数据通信…………………………………………20

5.1AT89C52单片机并行接口的结构与特点……………………………………23

5.2时钟信号的串行通信…………………………………………………………23

5.3各模块之间数据通信的流程图………………………………………………23

5.3.1LED数码管时钟通信设置流程图……………………………………23

5.3.2点阵LED灯通信设置流程图…………………………………………24

6.设计特点与效果分析……………………………………………………………26

6.1设计功能介绍…………………………………………………………………26

6.2设计包含的技术要点…………………………………………………………26

6.3设计的特色……………………………………………………………………26

6.4设计总结………………………………………………………………………26

附录………………………………………………………………………………………28参考文献………………………………………………………………………………………43

致谢………………………………………………………………………………………44

中文摘要

单片机从20世纪70年代问世开始,以其极高的性价比,受到人们的重视和青睐,应用很广、发展也很迅速。

单片机体积小、重量轻、抗干扰能力强、环境要求不高、可靠性高、灵活性好、价格低廉、开发比较简单容易。

由于具有以上优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、家用电器、电力电子、智能仪器仪表、机电一体化设备等各个方面,而51单片机是各单片机中最有代表性和最为典型的一种。

这次毕业设计通过对它的学习、应用,以AT89C52芯片为核心,加以必要的电路,设计了一个简单的花样电子时钟,它由5.0V直流稳压电源供电,通过数码管能够准确显示时间,调整时间,同时通过LED显示出相应的图案,从而到达学习、设计、开发软、硬件的能力。

关键词:

单片机,定时器中断,串口通信,数码管,8*8点阵式LED

Abstract

SCMbeganthe20th70'

scentury,beingimportancedbypeoplewithhighlycost-effectiveandapplicationisverybroad,veryrapiddevelopment.Singledevelopedrelativelyeasybecauseofsmallsize,lightweight,stronganti-interference,theenvironmentlessdemanding,highreliability,goodflexibilityandlowcost.Becauseoftheseadvantages,inourcountry,SCMhasbeenwidelyusedinindustrialautomationcontrol,automatedtesting,householdappliances,powerelectronics,intelligentinstrumentsandmeters,electromechanicalintegrationequipmentandotherareas,and51single-chipmicrocontrolleristhemostrepresentativeandthemosttypicalone.Thegraduationprojectthroughitslearning,applicationstoAT89C52chipasthecore,tothenecessarycircuitry,designedasimplepatternofelectronicclock,whichconsistsof5.0VDCpowersupply,bydigitalcontroltoaccuratelydisplaythetimeadjustthetimeandthroughtheLEDdisplaypatterncorrespondingtoarriveatlearning,design,developmenthardwareandsoftwarecapabilities.

KeyWords:

SCM,timerinterrupt,serialcommunication,digitaltube,8*8dotmatrixLED

引言

基于单片机的定时和控制装置在许多行业有广泛的应用,而电子时钟是其中最基本,也是最具有代表性的一个例子。

在基于单片机系统的电子时钟电路中,除了基本的单片机系统和外围电路外,还需要外部的控制和显示装置。

花样电子时钟,输入装置是按键开关,显示装置是LED七段数码管和点阵式。

单片机系统的定时和中断是单片机最重要的资源,也是应用最为广泛的功能。

花样电子时钟程序主要就是利用定时器和中断实现计时和现实功能。

1.绪论

1.1花样电子时钟的背景及意义

花样电子时钟是采用数字电路实现对时、分、秒显示的计时装置,同时添加了花样LED显示,广泛用于个人家庭、车站、码头、办公室等公共场所,成为人们日常生活中必不可少的必需品。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得电子时钟的精确度,远远超过老式钟表,而且大大地扩展了钟表的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启动等,所有这些,都是也钟表数字化为基础的。

因此,研究电子时钟及扩大其应用,有着非常显示的意义。

整个设计包括两大部分:

硬件部分和软件部分。

硬件是整个系统的基础,软件部分则是合理、充分地支持和使用系统的硬件,从而完成系统所要完成的任务。

2.整体设计方案

2.1总体设计

2.1.1花样电子时钟的功能需求

实现可以同时显示小时、分钟和秒,设有四个按键K0、K1、K2和K3;

K1键按一次调分钟,K1键连续按两下调小时,K0键是复位,K2键加1,K3键减1;

到整点通过蜂鸣器发出响声的次数来报时,同时点阵式LED显示不同的图案。

如图2-1所示:

图2-1功能需求流程图

2.1.2花样电子时钟总体设计方案

一、本系统的总体设计方案可用以下框图表示,如图2-2所示。

图2-2总体设计框图

二、本系统以52单片机组成的主控电路,以LED数码管来显示时、分、秒,以独立按键方式对时、分进行调整,以LED点阵模块来实现整点报时的花样显示。

主控电路选用美国Atmel公司生产的与MCS-51系列单片机完全兼容的AT89C52芯片作为电路核心。

它是Atmel微控制器家族中廉价的成员,内部集成了2kb的Flash闪存,不需外扩程序存储器,大大简化了电路结构。

由于要实现数码管时钟显示与点阵式LED花样显示同步,并且AT89C52端口资源较少(仅有P1、P2、P3口),所以需要两个主控电路即两个AT89C52芯片分别控制数码管时钟显示与点阵式LED花样显示。

两个主控电路利用串口通信实现通信。

电路采用8个共阳LED数码管作为电子时钟的显示器件,其中每两位分别用来显示时钟的时、分、秒,两位分别显示两条斜杠。

采用8*8点阵式LED作为时钟花样的显示器件。

按键由4个按键组成,分别用来进行电子时钟复位、时间调整等。

由于要用到8*8点阵式LED显示花样图案,所以要用到扩展板电路。

单片机时钟信号采用11.0592MHz晶振产生。

电源电路由三端集成稳压块LM7805提供稳定的+5V电压。

3.花样电子时钟的硬件设计

3.1数码管电子时钟的硬件设计

3.1.1数码管电子时钟的硬件原理图

电子时钟的计时方案是利用单片机内部的定时/计数器进行中断定时,配合软件延时实现对时、分、秒的计时,它处理过程如下:

首先设定单片机内部的一个定时器/计数器工作于定时方式,对机器周期计数形成基准时间(如10ms),然后用另一个定时器/计数器或软件计数的方法对基准时间计数形成秒(对10ms计数100次),秒计60次形成分,分计60次形成小时,小时计24次则计满一天。

然后通过数码管把它们的内容在相应位置显示出来既可。

数码管显示可以采用静态显示方法或动态显示方法。

静态显示方法需要数据锁存器等硬件,接口复杂,时钟显示一般用6个或8个数码管。

由于系统没有其他的复杂的任务处理,而且显示的时钟信息随时都可能变化,一般采用动态显示方法。

动态显示方法,线路相对简单,但须动态扫描,扫描频率要大于人眼视觉暂时频率(每秒24次),信息看起来才稳定。

译码方式可分为软件译码和硬件译码,软件译码通过译码程序查得显示信息的字段码;

硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。

在具体处理时,定时器/计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。

在主程序中只需对定时器/计数器初始化、调用显示子程序和控制子程序。

另外,为了使用方便,设计了简单的按键,可以通过按键实现时、分的调整,这样在主程序中就加入了键盘设置子程序。

整个系统的控制方案是:

上电后系统自动进入时间显示,从00—00—00开始计时;

通过按下时间设定/启动计时键,系统停止计时,进入到时间设定状态,系统保持原有的显示,等待键入当时时间,根据需要按相应的按键可以顺序设置时、分、秒,并在相应的数码管上显示设计值,设置完毕后,系统将从设定后的时间开始计时显示;

到整点时,蜂鸣器就鸣叫相应的次数(如3:

00am就鸣叫三次)。

基于系统上述的控制要求,设计出如下图所示的硬件电路,主要包括:

AT89C52单片机主控电路、扩展板电路、8位数码管显示电路、电源电路等,具体说明如下图所示:

图3-1单片机模块硬件原理图

图3-2数码管显示模块硬件原理图

一、主控电路

U1、C1、C2、Y1、C9、R9、S6构成主控电路的最小系统。

C1、C2、Y1是单片机时钟源产生电路,Y1选用11.0592MHz的晶振。

C1、R9是系统上电复位电路,S6为电路硬复位按钮。

二、扩展板电路

扩展板电路通过主控电路AT89C52的端口(P1、P2)与主控电路相连,它由点阵LED灯显示模块和数码管显示模块两部分组成;

点阵LED灯显示模块由8*8点阵式LED灯组成,数码管显示模块由是8位七段数码管组成。

三、显示电路

显示电路由U2、U3、Q1~Q7和8个共阳极七段式数码管组成(两位一组分别显示时、分、秒,剩余两位分别显示时、分、秒之间的短横线间隔)。

主控电路AT89C52的P1口为段选码输出端,通过74HC573与数码管相连,P2口为位选码输出端,分别通过三极管驱动与数码管阳极相连,三极管能对P2输入信号取反。

按键开关设定了4个,通过P1口相连。

四、蜂鸣器报时电路

由AT89C52的P3.6控制蜂鸣器(低电平有效)的驱动。

五、电源电路

电源电路由三端集成稳压块LM7805提供稳定的+5V电压。

3.2点阵式LED花样显示的硬件设计

3.2.1点阵式LED花样显示的硬件原理图

LED点阵显示模块实现的功能有:

通过AT89C52单片机的I2C接口接收显示数据;

用行扫描的方式进行显示,将行扫描串行数据和行显示串行数据分别发送给74LS04芯片进行显示。

LED为发光二极管的简称,是一种能将电能转换成光能的器件,当电流通过的时候可以产生可视的光。

每个LED点阵显示模块由16个8*8点阵LED组成。

LED点阵显示的工作原理是,共有16个管脚,0-7为阳极管脚,分别对应LED点阵从上到下的8行,A-H为阴极管脚,分别对应从左到右的8列,当对应的某一列置1电平,某一行置0电平时,则相应的二极管就亮。

LED显示器常用的工作方式有静态显示方式和动态显示方式。

所谓静态显示,就是当显示器显示一个字符时,相应的发光二极管始终保持导通或截止,在显示的这个过程中,其状态是静止不变的,直到一个字符显示完毕,要显示下个字符,其状态才改变。

而动态显示方式则不同,,,它在显示每一个字符的过程中,都是一位一位的轮流点亮要显示的各个位,这样发福循环。

动态显示方式利用了人眼的视觉残留性质。

由于8*8点阵LED管脚设计的上述特点,使得要同时显示,只能采用动态显示方式。

LED点阵显示硬件原理图如下:

图3-3点阵模块硬件原理图

4.花样电子时钟的软件设计

4.1数码管电子时钟的软件设计

4.1.1数码管电子时钟软件系统设计

电子时钟的系统软件程序由主程序和子程序组成,主程序包含初始化参数设置、按键处理、数码管显示模块,蜂鸣器报时模块等,在设计时各个模块都要采用子程序结构设计,在主程序中调用。

由于定时器/计数器采用中断方式处理,因此还要编写定时器/中断服务子程序,在定时器/计数器中断服务程序中对时钟进行调整。

一、主程序

主程序执行流程如下图所示,主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。

图4-1主程序流程图

C语言源程序如下:

main()

{

while

(1)

{

fenkai(m,f,s)。

heng()。

xmiao()。

xfen()。

xshi()。

keyscan()。

if(kk==1)

fenm()。

}

二、数码管显示模块

本系统共有8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、横线、时个位和时十位。

数码管显示的信息用8个内存单元存放,这8个内存单元称为显示缓冲区,其中秒个位和秒十位、分个位和分十位、时个位和时十位分别由秒数据、分数据和时数据分拆得到。

在本系统中数码管显示采用软件译码动态显示。

在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码表中查出所显示的信息的字段码,从P1口输出,同时在P2口将对应的位选码输出,选中显示的数码管,就能在相应的数码管上显示缓冲区的内容。

共阳极是8个发光二极管的阳极连在一起,为一个公共端,若公共端接高电平,当某发光二极管的阴极为低电平时,此发光二极管点亮。

在单片机系统中,如要使LED正常显示数字或字符时,不能直接将数字送到LED显示器,而是将要显示的数字通过查表方式,查到相应的显示子模再送到LED显示器显示。

如G端接高电平,段码各位定义如下:

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Dp

g

f

e

d

c

b

a

如要显示“7”字,对应a、b、c应送入低电平,才能使该字段发光二极管点亮,段码为11111000B,即F8H。

voidtishif()//分钟调试的显示

D2=0。

P1=tab[gfen]。

delay(50)。

P1=0xff。

D2=1。

D3=0。

P1=tab[sfen]。

D3=1。

voidtishis()//小时调试的显示

D4=0。

P1=tab[gshi]。

D4=1。

D5=0。

P1=tab[sshi]。

D5=1。

voidfenkai(ucharmm,ucharff,ucharss)//秒、分、时个位、十位的设置

gmiao=mm%10。

smiao=mm/10。

gfen=ff%10。

sfen=ff/10。

gshi=ss%10。

sshi=ss/10。

voidxmiao()//数码管上显示秒

D0=0。

P1=tab[gmiao]。

delay

(1)。

D0=1。

D1=0。

P1=tab[smiao]。

D1=1。

voidxfen()//数码管上显示分

voidxshi()//数码管上显示时

三、定时器/计数器T0中断服务程序

定时器/计数器T0用于时间计时。

选择方式1,先对定时器赋初值,CPU响应中断后进入中断服务子程序。

中断服务子程序以100ms、1s、1min、1hour对时钟计时,每产生一次中断,100ms计数单元加1,当该单元内容累计到10时,秒计数单元加1,并将100ms单元清0;

秒累计到60时,分计数单元加1,并将秒计数单元清0;

当分计数单元累计到60时,时计数单元加1,并将分计数单元清0;

时计数单元满24后,所有单元内容清0。

定时器计数单元的内容为十六进制数,需把该数调整为压缩BCD码,并通过程序拆分成单字节BCD码后,送入显示缓冲区,进行输出显示。

该定时中断子程序用于实现定时功能,同时刷新计时缓冲区,其流程如图4-2所示。

图4-2中断服务程序流程图

voidtime0()interrupt1//定时器0的中断

TH0=(255-100)。

TL0=(255-100)。

aa++。

if(aa==1&

&

d==1)

ct++。

kk=1。

}

if(aa==155)

kk=0。

D6=1。

if(aa==310)

aa=0。

m++。

if(m==60)

m=0。

f++。

if(f==60)

f=0。

d=1。

s++。

pp=1。

if(s==24)

s=0。

四、蜂鸣器报时子程序

当分计数单元累计到60,时计数单元加1时,就启动蜂鸣器,起到报时的功能。

voidfenm()//蜂鸣器启动

D6=0。

五、按键处理模块

按键处理设置为:

如没有按键,则时钟正常走时。

当按下K0按键时,即复位,时钟从零开始计时;

当按下K1按键,进入调分状态,时钟停止走动;

按K2和K3按键可以进行加1或减1操作;

继续按K1按键,可以分别进行分和小时的调整;

最后按K2按键将退出调整状态,时钟开始计时运行。

voidkeyscan()

EA=0。

if(k1==0)

delay(10)。

count++。

TR0=0。

ET0=0。

while(!

k1)。

if(count>

=3)

fashu(s)。

count=0。

TR0=1。

ET0=1。

t1=0。

t2=0。

if(count==1)

t1=1。

if(k2==0)

delay(10)。

if(k2==0)

if(f==60)

{

f=0。

}

k2)。

if(k3==0)

if(f==0)

f=59。

else

f--。

k3)。

if(count==2)

t2=1。

s++。

if(s==24)

s=0。

}

while(!

if(s==0)

s=23。

s--。

EA=1。

4.2点阵式LED花样显示的软件设计

4.2.1点阵式LED花样显示软件系统设计

8*8点阵式LED灯共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮。

如要实现一根柱形的亮法。

对应的一列为一根竖柱,亮法如下:

一根竖柱:

对应的列置1,而行则采用扫描的方法来实现;

一根横柱:

对应的行置0,而列则采用扫描的方法来实现。

unsignedcharcodetaba[]={0xfe,0xfd,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1