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

上传人:b****0 文档编号:9030647 上传时间:2023-05-16 格式:DOCX 页数:23 大小:1,017.07KB
下载 相关 举报
基于单片机的数字钟的设计.docx_第1页
第1页 / 共23页
基于单片机的数字钟的设计.docx_第2页
第2页 / 共23页
基于单片机的数字钟的设计.docx_第3页
第3页 / 共23页
基于单片机的数字钟的设计.docx_第4页
第4页 / 共23页
基于单片机的数字钟的设计.docx_第5页
第5页 / 共23页
基于单片机的数字钟的设计.docx_第6页
第6页 / 共23页
基于单片机的数字钟的设计.docx_第7页
第7页 / 共23页
基于单片机的数字钟的设计.docx_第8页
第8页 / 共23页
基于单片机的数字钟的设计.docx_第9页
第9页 / 共23页
基于单片机的数字钟的设计.docx_第10页
第10页 / 共23页
基于单片机的数字钟的设计.docx_第11页
第11页 / 共23页
基于单片机的数字钟的设计.docx_第12页
第12页 / 共23页
基于单片机的数字钟的设计.docx_第13页
第13页 / 共23页
基于单片机的数字钟的设计.docx_第14页
第14页 / 共23页
基于单片机的数字钟的设计.docx_第15页
第15页 / 共23页
基于单片机的数字钟的设计.docx_第16页
第16页 / 共23页
基于单片机的数字钟的设计.docx_第17页
第17页 / 共23页
基于单片机的数字钟的设计.docx_第18页
第18页 / 共23页
基于单片机的数字钟的设计.docx_第19页
第19页 / 共23页
基于单片机的数字钟的设计.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

 

单片机综合实践报告

 

课题名称:

基于单片机技术数字钟电路的设计系部:

电子工程系

班级:

电子08D1

姓名:

吴静华

学号:

082212114

指导教师:

刘训非、臧华东

 

2010年10月8日

论文/设计/报告原创性声明

本人郑重声明:

所呈交的论文/设计/报告是本人在导师的指导下进行研究所取得的研究成果。

除了论文/设计/报告中特别加以标注引用的内容外,本论文/设计/报告不包含任何其他个人或集体已经发表或撰写的成果作品。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

2010年10月8日

 

论文/设计/报告版权使用授权书

本论文/设计/报告作者完全了解学校有关保障、使用学位论文/设计/报告的规定,同意学校保留并向有关论文/设计/报告管理部门或机构送交论文/设计/报告的复印件和电子版,允许论文/设计/报告被查阅和借阅。

本人授权省级优秀论文/设计/报告评选机构将本论文/设计/报告的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文/设计/报告。

本论文/设计/报告属于

1、保密□,在_________年解密后适用本授权书。

2、不保密□。

(请在以上相应方框内打“√”)

作者本人签名:

2010年10月8日

指导教师签名:

年月日

目录

一、摘要4

二、简单设计思路5

2.1课题设计要求5

2.2设计基本原理简介5

三、整体设计方案6

3.1硬件电路设计6

3.1.1原理图的设计6

3.1.2PCB板的设计7

3.2软件编程7

3.3单片机下载8

四、电路安装与调试11

4.1电路的安装11

4.2电路的调试11

五、改进与应用12

六、参考资料12

附录13

附录一13

附录二14

 

一、摘要

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

本文介绍了基于单片机的数字钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:

查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的讨论。

在文章的最后,给出了采用中断方式实现的数字钟的源程序。

关键字:

单片机,数字钟,数据缓冲区,中断

Abstract

Inrecentyears,withcomputersintheinfiltrationandthedevelopmentoflarge-scaleintegratedcircuits. SCMapplicationissteadilydeepening,asithasstrongfunction,smallsize,lowpowerdissipation,lowprices,reliable,easytousefeatures,itisparticularlysuitedtoandcontrolofthesystem,increasinglywidelyusedinautomaticcontrol,intelligentinstruments,gauges,dataacquisition,militaryproductsandhouseholdappliances,andotherareas,isoftenmicrocontrollerasacorecomponenttouse,Inlightofspecifichardwarearchitecture,andapplication-specificsoftwarefeaturesobjectcombinetomakeperfect.

Inthispaper,basedonsingle-chipdigitalclockdesign,discussedindetailfromthesoftwarerealizetheprocess,focusingontheclockadjustintheway:

queriesanddisruptionofcomparison,then,onthedigitalclockmadeofthestabilityandaccuracyrelateddiscussion.Inthelastarticle,givewayusinginterruptedrealizethesourceofthedigitalclock.

    

Keywords:

MCU,digitalclock,databuffer,interruption,timing,

 

二、简单设计思路

2.1课题设计要求

基于单片机电路,设计一个可以显示时、分、秒的数字钟的电路。

要求如下:

(1)能直接显示时、分、秒的数字钟,要求二十四时为一计数周期。

(2)当电路发生走时误差时,要求电路具有校时功能,校时时伴有闪烁(3)要求电路使用单片机电路。

(4)要求电源电压+5伏。

(5)要求有复位电路

2.2设计基本原理简介

数字钟的设计首先要保证其走时尽可能的准确,其次再设定其功能。

在设计中使用51系列单片机定时来完成走时并用两组输出口控制数码管分别显示时钟的小时、分钟、秒,利用输入端外接复位开关S1和调节时间开关S2来实现数字钟的功能。

该电路的原理框图如图1所示:

数字钟原理框图

图1

 

三、整体设计方案

3.1硬件电路设计

系统硬件电路根据课题设计要求,它由以下几个部件组成:

单片机89C52RC、电源、时分秒显示模块。

时分秒显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。

显示模块中时分秒显示驱动、校时模块都通过89C52RC的I/O口控制。

显示模块中的复位电路由89C52RC的RESET端控制。

电源部分:

电源部分有二部分组成。

一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由5V的电池供电,以保证停电时正常走时。

正常情况下电池是不提供电能的,以保证电池的寿命。

3.1.1原理图的设计

由此结合单片机课程学习,用potel99SE画出电路设计图,如图2所示:

数字钟原理电路图

图2

此电路中的数码管采用的是共阳极电路,使用单片机89C52RC的P0口和P2口控制六段数码管的译码显示时钟的时分秒。

接通电源,显示12:

59:

50。

持续三秒按S2,小时闪烁可调小时;再持续按三秒,分钟闪烁可调分钟;再持续按三秒,秒钟闪烁可调节;最后按三秒S2即可正常走时。

按一下按钮S1电路复位,又恢复显示显示12:

59:

50。

此电路只可以实现加一调时,记满重新从0:

0:

0开始计时,如此往复。

3.1.2PCB板的设计

按照原理图,用potel99SE画出PCB板的设计电路图,如下图所示:

数字钟PCB板的设计

图3

此PCB板采用的是双面布线,布线方便简单,除电源线和地线采用较粗的线,其他线的粗细相同。

由于时间不足所以只有电源线和地线采用手动布线,其他都采用了自动布线。

3.2软件编程

此部分主要介绍显示模块,显示模块是实现数字钟的重要部分,在显示时,首先将时间十进制数据转化为显示段码,然后送往数码管显示。

显示段码采用动态扫描的方式。

在要求改变显示数据的类别时,只须改变@R1(指向数据缓冲区的指针)指向的十进制数据缓冲区即可。

根据要求首先画出流程图,程序设计的基本流程图如下:

数字钟流程图

图4

根据流程图用Keil软件编程,采用定时器中断T0和T1来实现时钟的显示和调整时间。

具体程序见附录二。

3.3单片机下载

将USB转串口线与编程器连接好,将单片机放入编程器ZIP1锁紧座上(芯片缺口朝上),打开STC-ISP软件(STC_ISP_V480.exe),选择STC单片机型号,打开要下载的程序文件,设置COM号,点击下载按钮,当出现给MCU上电提示时,插上USB取电线,进行正常下载。

STC-ISP软件示意图

图5

在选择COM端口时看设备管理器端口的USB-SERIALCH340显示COM为多少就选择多少。

如图6所示:

COM端口查看示意图

图6

单片机在下载时如的摆放方法下图所示:

单片机摆放示意图

图7

四、电路安装与调试

4.1电路的安装

电路的安装要求如下:

(1)列出除元器件清单。

(2)元器件成型:

脚的间距=板上孔距。

元件两边留下的长度一致,弯折不要是直角(即有一定的弧度,防止折断管脚)

(3)插装元件:

插对位置、方向,元件插序由低到高分批。

元件要横平竖直。

(4)焊接:

烙铁预热焊盘和引脚;左手送入焊锡丝;当焊锡溶化时,提起焊锡丝;再提起烙铁;(焊锡应正好把焊盘覆盖,不能太多也不能太少)焊点的要求:

焊点要圆而光滑,不毛刺,不虚焊。

(5)剪脚:

预留1~2mm。

(6)修整:

修整焊点,整理元件。

4.2电路的调试

接上由220V的市电通过变压、整流稳压来得到+5V电压,即可看到如图8所示的显现,如不是则出现了故障,需先排除故障再进行调试。

调试步骤如下:

长按“S2”键(约3秒)松开,第一第二位数码管闪烁,此时轻按“S2”键,可设置“时”(0~23),再长按“S2”键(约3秒)松开,第三第四位数码管闪烁,此时轻按“S2”键,可设置“分”(0~59),再长按“S2”键(约3秒)松开,第五第六位数码管闪烁,此时轻按“S2”键,可设置“秒”(0~59),如此循环。

设置完成后再长按“S2”键(约3秒)松开即进入正常运行状态。

按S1恢复显示12:

59:

50秒,完成调试。

 

数字钟成果图

图8

五、改进与应用

在日常生活中我们缺不了时钟的陪伴,此电路的设计只是显示时间,在日常生活的运用中可以添加整点报时和闹钟的功能。

还可以添加下面两个功能:

(1)跑表功能:

按ms显示时间,以中断启动或停止计时在判断显示跑表功能后,启动定时计数器T1,用类似走时程序的办法来实现跑表功能。

参考中断程序T0编写。

这样会增加中断程序T1的复杂程度。

(2)倒计时功能:

可设定任意时间进行倒计时利用前述预置时间等的办法来预置倒计时的时间,利用类似跑表功能的办法来实现倒计时功能。

这样同样会增加中断程序T1的复杂程度。

六、参考资料

1《单片机原理及应用》李建忠编著西安电子科技大学出版2002年2月

2《单片机中级教程》张俊谟编著北京航空航天大学出版2000年1月

3《单片机原理与应用技术》江力编著清华大学出版社

4、《8051单片机课程设计实训教材》陈明荧编著清华大学出版社

5、《单片机原理及接口技术》余锡存、曹国华编著西安电子科技大学出版社

6、《MCS-51单片机应用设计》张毅刚、修林成、胡振江编著哈尔滨工业大学出版社

附录

附录一

数字钟元器件明细表

品名

型号规格

设计序号

封装

功能

焊接注意事项

碳膜电阻

100Ω

R1,R4,R7,R11,R14,R17

AXIAL0.4

集电极限流

焊锡应正好把焊盘盘覆盖,不能太多也不能太少,有正负极性之分的元器件焊接时要注意方向公共端也需要注意。

碳膜电阻

5.1K

R3,R6,R9,R12,R16,R19

AXIAL0.4

基极偏置电阻

碳膜电阻

2K

R2,R5,R8,R11,R15,R18

AXIAL0.4

基极偏置电阻

碳膜电阻

200Ω

R13

AXIAL0.4

分压

碳膜电阻

1K

R20

AXIAL0.4

分压

排阻

10K

RN1

SIP9

上拉电阻

圆片瓷介电容

30P

C9,C11

RAD0.1

微调平衡

独石电容

0.1u

C7,C10

RAD0.1

充放电滤波

电解电容

100uF/25V

C6,C8

RB.2/.4

上电复位

二极管

IN4148

D2

DIODE0.4

整流

稳压二极管

5.1V/1W

D1

DIODE

稳压

三极管

S8550

Q1,Q2,Q3,Q4,Q5,Q6

TO-92B

驱动

集成电路

HD74LS244

U4

DIP20

缓冲驱动

单片机

89C52RC

U5

DIP40

控制电路

数码管

共阳

U1

DIP-10

动态显示

数码管

共阳

U3

DIP-20

动态显示

晶振

11.0592M

X1

RAD0.3

产生振荡频率

小方键

SW-PB

S1

SW

复位

小方键

SW-PB

S2

SW

调整时间

电源插座

CON3

JP2

SIP3

接+5V电源

直插座

CON3

JP3

SIP3

接+5V电源

PCB板

11.43cm*6.15cm*0.08cm

串线口

一根

表一

附录二

单片机程序

DATA_SEGSEGMENTDATA;定义一个DATA段

STACKSEGMENTIDATA;定义一个堆栈段

BIT_SEGSEGMENTBIT;定义一个位段

bKeyBITP1.0;

IdleConstEQU50

RSEGSTACK

DS10H;16个字节的堆栈

RSEGDATA_SEG;开始DATA_SEG段

buffer:

DS6;6个字节的显示缓冲区

ms50:

DS1;50ms计数

ms250:

DS1;250ms计数

sec:

DS1;秒

min:

DS1;分

hour:

DS1;时

ms50_1:

DS1;存放多少个50ms,用于记录按键时间

SetPos:

DS1;设置位置

SetPos1:

DS1;需要屏蔽的数码管

RSEGBIT_SEG

bIdle:

DBIT1;省电模式

bTwinkle:

DBIT1;当前设置位置闪烁

CSEGAT0;相当于小汇编的ORG

LJMPMAIN

CSEGAT000BH;定时器T0中断处理入口地址

LJMPINT_Timer0

CSEGAT001BH;定时器T1中断处理入口地址

LJMPINT_Timer1

CSEGAT0100H

MAIN:

MOVSP,#STACK-1;堆栈

CLRbIdle

CLRbTwinkle

MOVms50,A;清零ms50

MOVms250,A

MOVhour,#12;设定初值:

12:

59:

50

MOVmin,#59

MOVsec,#50

MOVTH0,#60;定时中断计数器初值

MOVTL0,#176;定时250ns

MOVTMOD,#11H;定时器0,1:

方式一

MOVIE,#8AH;中断初始化,EA=1,ET0=1,ET1=1

SETBTR0;开定时器T0

MOVSetPos,#0FFH;

MAIN1:

ACALLAdjustBuffer;调整显示缓冲区

MAIN2:

ACALLKey;调用键扫描

ACALLDisplay

JNBF0,MAIN2

CLRF0

SJMPMAIN1;需要刷新显示时间

;中断服务程序

INT_Timer0:

MOVTL0,#176+5

MOVTH0,#60

PUSH01H

MOVR1,#ms50

INC@R1;50ms单元加1

CJNE@R1,#5,ExitInt

MOV@R1,#0;恢复初值

INCR1

MOVA,SetPos

CJNEA,#0FFH,INT_Timer0_1

SJMPINT_Timer0_2

INT_Timer0_1:

CPLbTwinkle

SJMPExitInt1

INT_Timer0_2:

INC@R1

CJNE@R1,#4,ExitInt

MOV@R1,#0;恢复初值

INCR1

INC@R1;秒加1

CJNE@R1,#60,ExitInt1

MOV@R1,#0

INCR1

INC@R1;分加1

CJNE@R1,#60,ExitInt1

MOV@R1,#0

INCR1

INC@R1;时加1

CJNE@R1,#24,ExitInt1

MOV@R1,#0

ExitInt1:

SETBF0

ExitInt:

POP01H

RETI

;中断服务程序

INT_Timer1:

MOVTL0,#176+5

MOVTH0,#60

INCms50_1

RETI

HexToBCD:

MOVB,#10

DIVAB

MOV@R0,B

INCR0

MOV@R0,A

INCR0

RET

AdjustBuffer:

MOVR0,#buffer

MOVA,sec

ACALLHexToBCD

MOVA,min

ACALLHexToBCD

MOVA,hour

ACALLHexToBCD

RET

;显示

Display:

JNBbIdle,Display3

RET;省电模式

Display3:

PUSHB

PUSHACC

PUSHDPL

PUSHDPH

PUSH00H

MOVR0,#buffer

MOVB,#0FEH

MOVDPTR,#SEG_TAB

Display1:

MOVA,@R0

MOVCA,@A+DPTR;取段码

MOVP0,A

MOVA,B

JNBbTwinkle,Display4

ORLA,SetPos1

Display4:

MOVP2,A;选种数码管

CALLDelay1ms

MOVA,B

RLA

JNBACC.6,Display2

MOVB,A

INCR0

SJMPDisplay1

Display2:

POP00H

POPDPH

POPDPL

POPACC

POPB

RET

SEG_TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;段码

DB080H,90H,88H,83H,0C6H,0A1H,86H,8EH

DB0FFH,0BFH

;延时1ms

Delay1ms:

PUSHACC

MOVA,#230

DJNZACC,$

MOVA,#230

DJNZACC,$

POPACC

RET

;设置功能

SetFunTab:

AJMPNoSet;不需要调整

AJMPSetHour;调整小时

AJMPSetMin;调整分钟

AJMPSetSec;调整秒钟

NoSet:

CLRbTwinkle

RET;不在设置状态

SetHour:

INChour

MOVA,hour

CJNEA,#24,SetHour1

MOVhour,#0

SetHour1:

SJMPSetFun1

SetMin:

INCmin

MOVA,min

CJNEA,#60,SetMin1

MOVmin,#0

SetMin1:

SJMPSetFun1

SetSec:

INCsec

MOVA,sec

CJNEA,#60,SetFun1

MOVsec,#0

SetFun1:

SETBF0

RET

;调整闪烁位置

SetPosTab:

AJMPNoSetPos

AJMPSetHourPos

AJMPSetMinPos

AJMPSetSecPos

NoSetPos:

MOVSetPos1,#0

RET

SetHourPos:

MOVSetPos1,#30H

RET

SetMinPos:

MOVSetPos1,#0CH

RET

SetSecPos:

MOVSetPos1,#03H

RET

Key:

ACALLDisplay

JNBbKey,Key4

JNBTR1,Key3

CLRTR1

SETBbKey

MOVA,ms50_1

CJNEA,#10,$+3

JNCKey1

;调整时间

SetFun:

MOVA,SetPos

INCA

RLA

MOVDPTR,#SetFunTab

JMP@A+DPTR

Key1:

CJNEA,#IdleConst,$+3

JNCKey2

;进入设置状态

SetPosFun:

INCSetPos

MOVA,SetPos

CJNEA,#3,SetPosFun1

MOVSetPos,#0FFH;退出设置状态

SetPosFun1:

MOVA,SetPos

INCA

RLA

MOVDPTR,#SetPosTab

JMP@A+DPTR

Key2:

SETBbIdle;进入省电模式

MOVP2,#0FFH

Key3:

RET

Key4:

JNBTR1,Key5

MOVA,ms50_1

CJNEA,#IdleConst,$+3

JNCKey2

RET

Key5:

ACALLDisplay

ACALLDisplay

ACALLDisplay

ACALLDisplay

JNBbKey,Key6

SJMPKey3

Key6:

CLRbIdle

MOVTH1,#60

MOVTL1,#176

SETBTR1

MOVms50_1,#0

RET

END

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

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2