基于单片机的数字钟设计.docx

上传人:b****7 文档编号:10610732 上传时间:2023-02-21 格式:DOCX 页数:27 大小:326.84KB
下载 相关 举报
基于单片机的数字钟设计.docx_第1页
第1页 / 共27页
基于单片机的数字钟设计.docx_第2页
第2页 / 共27页
基于单片机的数字钟设计.docx_第3页
第3页 / 共27页
基于单片机的数字钟设计.docx_第4页
第4页 / 共27页
基于单片机的数字钟设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于单片机的数字钟设计.docx

《基于单片机的数字钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字钟设计.docx(27页珍藏版)》请在冰豆网上搜索。

基于单片机的数字钟设计.docx

基于单片机的数字钟设计

摘要

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

本课题主要研究的是基于单片机的数字钟设计,采用AT89C51单片机作为系统的主控芯片,外接LED显示电路,按键电路,晶振电路,复位电路模块构成一个简单的数字钟。

通过按键电路能对时、分、秒分别进行设置和实时调整,并将结果显示在数码管上。

关键词:

数字钟;单片机;数码管

Abstract

Electronictechnologyhasbeendevelopedrapidlyinthe20century,withitsmodernelectronicproducts,pushedbyalmostpermeatedeveryareaofsocietyhasvigorouslypromotedsocialproductiveforcesdevelopmentandimprovementofsocialinformatizationlevel,alsomakemodernelectronicproductperformancefurtherimproved,andtherhythmofupgradeitsproductsisbecomingmoreandmorequickly.

ThemostcommonSCMmoduleisadigitalclock,adigitalclockisakindofdigitalcircuittechnologyimplementation,minutesandseconds,thetimingdevicewithmechanicalclockcomparedwithhigheraccuracyandintuitiveandnomechanicaldevice,hasmorelongerservicelife,soithasbeenwidelyused.

ThistopicresearchisthedigitalclockdesignbasedonSCM,AT89C51SCMasthemaincontrolchipsystem,externalLEDdisplaycircuit,keycircuits,crystalscircuit,resetcircuitmoduleconstituteasimpledigitalclock.Throughthekeycircuitscanrespectivelythediffculties,minutesandsecondssettingandreal-timeadjustment,andtheresultshowedthatinthedigitaltube.

 

Keywords:

digitalclock;SCM;digital

 

 

1引言

在单片机技术日趋成熟的今天,其灵活的硬件电路和软件电路的设计,让单片机得到广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。

单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。

基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子[1],用数字电路实现对时、分、秒数字显示的计时装置。

因为机具有体积小、功耗低、功能强、性价比高、易于推广应用的优点,在自动化装置、智能仪器表、过程控制、通信、家用电器等许多领域得到日益广泛的应用[2],因此具有很大的研究价值。

 

2单片机介绍

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统[3]。

由于单片机的这种结构形式及它所采取的半导体工艺[4],使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。

单片机主要有如下特点[5]:

(1)性价比高;

(2)集成度高、体积小、可靠性强。

机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。

另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作;(3)控制功能强;(4)功耗小、电压低、便于生产的携式产品。

;(5)外部总线采用串行总线连接,以此缩小了体积;(6)单片机的系统扩展和系统配置典型、规范,容易构成各种规模的应用系统。

3数字钟硬件设计

3.1系统方案的确定

硬件电路是一个系统的重要部分,在本次设计中主要是以AT89C51为核心控制器,外加一些控制电路来实现数字钟的基本功能。

单片机芯片作为控制系统的核心部件,它除了具备微机CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、控制系统的输出量,实现自动控制[6],外围控制电路主要包括晶振电路模块、复位电路模块、按键电路模块以及数码管显示电路模块,通过这些控制电路的连接构成完整的电路,其结构框图如图1所示。

 

图1数字钟系统结构图

3.2功能分析

1.准确计时,以数字形式显示时、分、秒的时间;2.小时的计时为24小时制,分和秒的计时要求为60进位;3.八位数码管显示HH-MM-SS(时分秒),按键“模式键”依次选择调整“时”,“分”,“秒”,按键“加键”依次加1,按键“减键”依次减1;4.晶振电路起到减小误差,提高精确度的作用;5.复位电路是对单片机的初始化操作。

3.3数字钟设计原理

数字钟的实现一般有两种方法:

其一是直接用单片机的定时计数器产生固定时间,这种方法的优点是可以省去一些外围的芯片,其缺点是只能适用于一些要求不是十分精确、不作长期保留的场合;而对于要求较高的场合,则必须选用专用的芯片[7],本设计采用的是第一种方法。

直接用单片机的定时计数器产生固定时间,这种方法的工作原理是利用单片机芯片的定时器产生固定时间,模拟时钟的时、分、秒。

基于这一原理构成的数字钟系统主要由以下几部分组成:

89C51单片机控制器电路,按键开关电路,8位数码管显示电路,复位电路,晶振电路五部分构成。

其工作原理电路图如图2所示。

图2数字钟设计原理图

3.3.1键盘控制电路

数字钟最基本的功能除了能正常显示时间外,还需要对时间进行设置和调整,所以要配以相应的键盘控制电路。

该设计的键盘控制电路主要包括3个按键:

P3.0作为系统的模式选择键,用来选择是正常走时还是分别对时、分、秒进行调整;P3.1作为进行时分秒调整时的增加时间按键;而P3.2作为进行时分秒调整时的减少时间按键。

键盘控制电路的硬件连接图如图3所示。

图3键盘控制电路

3.3.2晶振电路

晶振的全称叫晶体振荡器,它在单片机系统里作用非常大,主要作用是产生单片机所需的时钟频率,单片机执行程序所需的时间完全取决于单片机晶振所提供的时钟频率,时钟频率越高,那么单片机运行速度就越快[8]。

在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。

高级的精度更高。

有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。

晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。

晶振电路如图4所示。

图4晶振电路

3.3.3复位电路

复位是单片机的初始化操作。

单片机启动运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。

因而,复位是一个很重要的操作方式。

当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作:

07H写入堆栈指针SP,P0口—P3口均置1,程序计数器PC和其他特殊功能寄存器SFR全部清零。

只要RST持续为高电平,单片机就处于循环复位状态[9]。

单片机的复位方式有上电自动复位和手工复位两种,本设计采用的是手动复位方式,其电路图如图5所示。

图5复位电路

3.3.4数码显示电路

发光二极管显示器驱动(点亮)的方法有两种。

一种是静态驱动法,即给欲点亮的LED通以恒定的定流。

这种驱动方法要有寄存器,译码器,驱动电路等逻辑部件。

当需要显示的位数增加时,所需的逻辑部件及连线也相应增加,成本也增加。

另一种是动态驱动方法,这种方法是给欲点亮的LED通过通以电流,此时LED的亮度是通断的平均亮度。

为保证亮度,通过LED的脉冲电流应数倍于其额定电流值。

利用动态驱动法可以减少需要的逻辑部件和连线,单片机应用系统中常采用动态驱动法[10]。

数码管有两种接法即共阳极接法和共阴极接法。

所谓共阳共阴,是针对数码管的公共脚而言的。

一个1位典型的数码管,一般有10个脚,8个段码(7段加1个小数点),剩下两个脚接在一起。

共阳指的是公共脚是正极(阳极),所有的段码实际上是负极,当某一个或某几个段码位接低电平,公共脚接高电平时,对应的段码位就能点亮,进而组合形成我们看到的数字或字母。

共阴刚好相反,也就是公共脚是负极(阴极),段码位是阳极,当公共脚接地,段码位接高电平时,对应段码位点亮[11],本次设计选择共阴极数码管,其中有6位显示“时”,“分”,“秒”,剩下两位显示“—”数码管A~DP接单片机P1端口用于段选,1~9接单片机P2端口用于位选。

各个段码实际上是一个发光二极管,既然是发光二极管,就有正负极,为了防止驱动数码管电流过大而损坏,各端口接1K电阻。

8位共阴极LED数码显示电路如图6所示。

图6八位8段共阴极LED数码显示

4.数字钟的软件设计

4.1程序设计内容

单片机软件设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。

设计步骤如下所示。

1.采用模块化程序结构设计软件,首先将整个软件分成若干功能模块;

2.根据流程图,编写源程序;

3.上机调试各模块程序;

4.与硬件一起联调,最后完成全部调试工作。

4.2系统设计流程图

4.2.1主程序流程

 

图7主程序流程图

4.2.2定时器中断流程

图8定时器中断流程图

定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间,定时器中断流程图如图8所示。

4.2.3时间显示流程图

时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示.,时间显示流程图如图9所示。

 

 

图9时间显示流程图

5.系统调试

5.1KeilC51软件环境简介

KeilC51集成开发环境是基于80C51内核的微处理器软件平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立、管理、程序编译、链接、目标代码生成、软硬件仿真等完整的开发流程[12]。

尤其是C编译工具在产生代码的准确性和效率方面达到了较高水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。

KeilC51集成开发环境的主要功能有以下几点[13]:

(1)uVision2forWindows一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;

(2)C51国际标准优化C交叉编译器。

代码产生可重定位的目标模块;(3)A51宏汇编器。

从80C51汇编源代码产生可重定位的目标模块;(4)BL51链接/定位器。

组合由C51和A51产生可重定位的目标模块,生成绝对目标模块;(5)LIB库管理器。

从目标模块生成连接器可以使用的库文件;(6)OH51目标文件至HEX格式的转换器。

从绝对目标模块生成IntelHEX文件;(7)RTX-51实时操作系统。

简化了复杂的实时应用软件项目的设计。

keilC51软件编译环境如图10所示。

图10keilC51软件编译环境

5.2Proteus软件环境简介

本系统的硬件设计首先是在Proteus软件环境中仿真实现的。

Proteus软件集成了高级原理绘图、混合模式SPICE电路仿真,PCB板设计以及自动布线来实现一个完整的电子设计系统[14]。

Proteus软件由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,ARES是一款高级的布线编辑软件。

Proteus软件主要具有以下几个方面的特点[15]:

(1)设计和仿真软件Proteus是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。

(2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。

(3)它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。

(4)它可以仿真目前流行的单片机,如PICS,ATMEL-AVR,MOTOROLA,8051等。

(5)在设计综合性方案中,还可以利用ARES开发印制电路板。

Proteus软件仿真环境如图11所示。

图11Proteus软件仿真环境

5.3数字钟系统PROTUES仿真调试结果

5.3.1引脚连接

8位高亮共阴极型数码管,单片机P1.0~P1.7接数码管A~DP脚,P2.0~P2.7接数码管9~1脚,P3.0~P3.2接模式键,加键,减键三个控制键,晶振电路连接单片机18,19端口(XTAL1,XTAL2),复位电路连接单片机端口9(RST),单片机的31号端口接VCC,

(注意:

20和40引脚分别接地和VCC),如图12所示。

图12引脚连接图

5.3.2仿真结果(电路原理图)

用PROTUES软件,根据数字电子钟的原理图,选择如图按钮开始仿真

,画出仿真图,如果显示如图

,则说明没有错误,即仿真成功得到仿真结果如图13如下所示。

图13数字钟的PROTES仿真

 

.5.3.3元件列表

序号

器件名称

数量

备注

1

主控芯片AT89C51(51系列均可以)

2

C51系列芯片均可以

2

8个(8段)共阴极数码管

8

(7SEG-MPX8-CC-BLUE)共阴极

3

普通电阻

25

大小为1k欧姆

4

普通按键

8

按键

5

电源

2

5V

6

PCB板

1

大小15cm*15cm

7

DB9串口,连线

各1个

与电脑或单片机连接下载线

8

USB接口,连线

各1个

与电脑或单片机连接USB下载线

9

晶振

2个

频率12mHZ(CRYSTAL)

10

电容

3

2个30pF,1个电解电容22uF

11

导线

若干

普通导线

参考文献

【1】林志琦,郎建军,等基于Proteus的单片机可视化软硬件仿真【M】.北京:

北京航空航天大学出版社,2006:

25.

【2】徐爱钧.单片机原理实用教程—基于Proteu虚拟仿真【M】.北京:

电子工业出版社,2009:

34.

【3】侯玉宝,陈忠平,李成群,等基于Proteu的51系列单片机设计与仿真【M】.北京:

电子工业出版社,2008:

21-42.

【4】周润景,张丽娜.基于Proteus的电路及单片机系统设计与仿真【M】.北京:

北京航空航天大学出版社,2006:

54.

【5】龙威林,杨冠声,胡山,单片机应用入门—AT89S51和AVR【M】.北京:

化学工业出版社,2008:

67.

【6】龚尚福,朱宇,郭秀才,王忠民,微机原理与接口技术【M】.西安:

西安电子科技大学出版社,2008:

32.

【7】李广第,朱月秀,冷祖祁,单片机基础【M】.北京.北京航空航天大学出版社,2007:

12.

【8】求是科技,靳达,单片机应用系统开发实例导航【M】.北京:

人民邮电出版社,2003:

9.

【9】戴佳,戴卫恒.51单片机C语言应用程序设计【M】.北京:

电子工业出版社,2006:

76.

【10】付家才.单片机控制工程实践技术【M】.北京:

化学工业出版社,2004:

25-27.

【11】张大明,彭旭昀,尚静基.单片微机控制应用技术【M】.北京:

机械工业出版社,2006:

56-57.

【12】赖麒文.8051单片机C语言彻底应用【M】.北京:

科学出版社,2002:

34.

【13】何宏.单片机原理与接口技术【M】.北京:

国防工业出版社,2006:

29-43.

【14】刘松.单片机技术与应用【M】.北京:

机械工业出版社,2011:

30-31.

【15】王迎旭.单片机原理与应用【M】.北京:

机械工业出版社,2006:

8-9.

 

附录(源程序)

ORG0000H

LJMPMAIN

ORG000BH

LJMPDINGSHI

ORG001BH

LJMPTIAOSHI

STYLEBITP3.0;模式健

PLUSBITP3.1;加键

MINUSBITP3.2;减键

SHIEQU30H;时针

FENEQU31H;分针

MIAOEQU32H;钞针

MAIN:

MOVSHI,#00H

MOVFEN,#00H

MOVMIAO,#00H

MOV33H,#00H;时钟扫描

MOV34H,#00H;分钟扫描

MOV35H,#00H;秒钟扫描

MOV36H,#00H;时钟扫描计数

MOV37H,#00H;时钟扫描闪烁

MOV38H,#00H;分钟扫描计数

MOV39H,#00H;分钟扫描闪烁

MOV3AH,#00H;秒钟扫描计数

MOV3BH,#00H;秒钟扫描闪烁

MOV3CH,#00H;定时

MOV3DH,#00H;模式

MOV40H,#00H;消抖

MOVSP,#50H;堆栈指针

MOVDPTR,#TABLE;查找表首地址

MOVTH0,#(65535-20000)/256;定时器初值

MOVTL0,#(65535-20000)MOD256

MOVTH1,#(65535-20000)/256

MOVTL1,#(65535-20000)MOD256

MOVTMOD,#11H;定时器工作方式设置,T0,T0设置为方式一

SETBPT0;设置T0为高优先级

SETBET0;开定时器中断

SETBET1

SETBTR0;启动定时器

SETBTR1

SETBEA;开总中断

DISPLAY:

MOVA,33H

CJNEA,#00,X1;判断时针是否扫描

MOVP2,#7FH;选通数码管时钟的十位

MOVA,SHI

MOVB,#10

DIVAB;把时针的十位个位分离

MOVCA,@A+DPTR;把时针的十位放在累加器A中

MOVP1,A;显示时针的十位

LCALLDELAY;延时

MOVP2,#0BFH;选通时针的个位

MOVA,B

MOVCA,@A+DPTR

MOVP1,A

LCALLDELAY

MOVA,37H

CJNEA,#01,X3;判断是否闪烁

X1:

INC36H

MOVA,36H

CJNEA,#10,X2

MOV33H,#00

X2:

CJNEA,#20,X3

MOV36H,#00

MOV33H,#01

X3:

MOVP2,#0DFH;显示分隔符

MOVA,#40H

MOVP1,A

LCALLDELAY

MOVA,34H;分针的显示

CJNEA,#00,F1

MOVP2,#0EFH

MOVA,FEN

MOVB,#10

DIVAB

MOVCA,@A+DPTR

MOVP1,A

LCALLDELAY

MOVP2,#0F7H

MOVA,B

MOVCA,@A+DPTR

MOVP1,A

LCALLDELAY

MOVA,39H

CJNEA,#01H,F3

F1:

INC36H

MOVA,36H

CJNEA,#10,F2

MOV34H,#00H

F2:

CJNEA,#20H,F3

MOV36H,#00H

MOV34H,#01H

F3:

MOVP2,#0FBH;显示分隔符

MOVA,#40H

MOVP1,A

LCALLDELAY

MOVA,35H

CJNEA,#00H,M1

MOVP2,#0FDH;秒针的显示

MOVA,MIAO

MOVB,#10

DIVAB

MOVCA,@A+DPTR

MOVP1,A

LCALLDELAY

MOVP2,#0FEH

MOVA,B

MOVCA,@A+DPTR

MOVP1,A

LCALLDELAY

MOVA,3BH

CJNEA,#01,M3

M1:

INC3AH

MOVA,3AH

CJNEA,#10,M2

MOV35H,#00H

M2:

CJNEA,#20H,M3

MOV3AH,#00H

MOV35H,#01H

M3:

LJMPDISPLAY

DINGSHI:

PUSHACC

PUSHPSW

MOVTH0,#(65535-20000)/256;定时器赋初值

MOVTL0,#(65535-20000)MOD256

INC3CH

MOVA,3CH

CJNEA,#50,J1;判断是否为一秒,若为一秒顺序执行,否发生跳转

MOV3CH,#00H;定时次数清零

INCMIAO;秒针加一

MOVA,MIAO

CJNEA,#60,J1;判断是否为一分

MOVMIAO,#00;秒针清零

INCFEN;分针加一

MOVA,FEN

CJNEA,#60,J1;判断是否为一时

MOVFEN,#00H;分针清零

INCSHI;时针加一

MOVA,SHI

CJNEA,#24,J1;判断

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

当前位置:首页 > 医药卫生 > 基础医学

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

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