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

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

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

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

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

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

单位代码

学  号

分类号

密级

 

基于单片机的数字钟设计

 

院系:

工学院机械系

专业:

机械设计制造及其自动化

班级:

姓名:

学号:

指导老师:

黄河科技学院课程设计任务书

工学院机械系机械设计制造及其自动化专业11级1班

学号姓名指导教师牛月兰

题目:

基于单片机的数字钟设计

课程:

单片机应用技术课程设计

课程设计时间2014年10月27日至2014年11月10日共2周

课程设计工作内容与基本要求(设计要求、设计任务、工作计划、所需相关资料)(纸张不够可加页)

1.设计要求

利用AT89C51单片机作为微控制器,自动计时,由6位LED显示器显示时、分和秒,具备调整功能,可调节时、分,断电保护。

创新设计:

2.设计任务与要求

2.1系统硬件电路设计

根据该系统设计的功能要求选择所用元器件,设计硬件电路。

要求用Proteus绘制整个系统电路原理图。

2.2软件设计

根据该系统要求的功能进行软件设计,绘制整个系统的软件流程图;根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求逐条加以注释。

2.3Proteus仿真

用Proteus对系统软硬件进行仿真调试并通过。

2.4编写设计说明书

内容包括任务书、设计方案分析、硬件部分设计、软件部分设计、调试结果整理分析、设计调试的心得体会等,字数不少于5000字;硬件部分设计要绘制整个系统电路原理图,对各部分电路设计原理做出说明;软件设计部分要(用visio2003画图软件)绘制整个系统框图及各部分的软件流程图,列出程序清单,逐条加以注释,并注明各程序功能块的功能。

3.工作计划

序号

设计内容

所用时间

1

布置任务及调研

4天

3

制作与调试

8天

4

撰写设计报告书

2天

合计

14天

4.主要参考资料

单片机课程设计指导书皮大能北京理工大学出版社2012.7

8051单片机实践与应用吴金戎清华大学出版社2003.8

单片机技术基础教程与实践夏路易电子工业出版社 2008.1

单片机原理及应用张毅刚高等教育出版社2012.11

基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社

2007.7

 

指导老师签字:

日期:

基于单片机数字钟设计

摘要

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

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

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

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

关键字:

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

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

 

1简单设计思路

1.1课题设计要求

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

要求如下:

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

(2)当电路发生走时误差时,要求电路具有校时功能,校时时伴有闪烁

(3)要求电路使用单片机电路。

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

(5)要求有复位电路

1.2设计基本原理简介

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

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

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

图1.1数字钟原理图

1.3确定元器件的型号及参数

1.3.1单片机的选择

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:

中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。

低电压和低功耗单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。

由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。

这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。

目前,我国生产很多型号的单片机,在此,我们采用型号为AT89C51的单片机AT89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C51是MCS-51系列单片机的典型产品之一。

AT89C51单片机的P口特点:

P0口:

是一个8位漏极开路输出型双向I/O端口。

作为输出端口时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。

在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。

此设计用AT89C51单片机。

1.3.2LED数码管显示电路

主芯片使用AT89C51或STC89C52单片机,晶振使用12MHz或11.0592MHz,使用3个2位一体共阴数码管组成6位显示时、分、秒,或者使用4位一体时钟专用数码管。

2整体设计方案

2.1硬件电路设计

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

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

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

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

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

电源部分:

电源部分有二部分组成。

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

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

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

图2.1数字钟原理电路图

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

接通电源,显示12:

59:

50。

按S2,小时闪烁可调小时;按S2,分钟闪烁可调分钟;最后按S2即可正常走时。

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

59:

50。

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

0:

0开始计时,如此往复。

2.2软件编程

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

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

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

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

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

具体程序见附录。

2.3单片机的下载

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

图2.3单片机摆放示意图

图2.2数字钟流程图

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

如图2.4所示。

图2.4

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

如图2.5所示。

图2.5COM端口查看示意图

3电路安装与调试

3.1电路的安装

电路的安装要求如下:

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

(2)元器件成型:

脚的间距=板上孔距。

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

(3)插装元件:

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

元件要横平竖直。

(4)焊接:

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

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

(5)剪脚:

预留1~2mm。

(6)修整:

修整焊点,整理元件。

3.2电路的调试

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

图3.1数字钟成果图

用Proteus软件对设计电路进行仿真,具体仿真步骤、方法、显示如下。

打开仿真界面开始仿真时,“LED”显示如图3.2所示.

图3.2仿真初始界面

按“S2”键松开,第一位数码管闪烁,此时可以设置“时”(0--23),然后按加一键,时可加一;按减一键,时可减一。

仿真图如图3.2所示。

图3.3调“时”仿真图

再按“S2”键松开,第三第四位数码管闪烁,此时可设置“分”(0--59),仿真图如图3.3所示。

图3.3调“分”仿真图

总结

感谢牛老师给我的指导帮助,让我顺利完成了这个设计。

我在这一次数字电子钟的设计过程中,很是受益匪浅。

通过对自己在大学三年时间里所学的知识的回顾,并发挥对所学知识的理解和思考及书面表达能力,自己亲手设计,最终完成目标了。

以前上课都是上一些最基本的东西,而现在却可以将以前学的东西作出有实际价值的东西。

在这个过程中,我的确学得到很多在书本上学不到的东西,如:

如何利用现有的元件组装得到设计要求,如何找到错误的原因,如何利用计算机来画图等等。

这为自己今后进一步深化学习,积累了一定宝贵的经验。

把知识转化为能力的实际训练。

培养了我运用所学知识解决实际问题的能力。

通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。

这个课程设计十分有意义,我获得宝贵经验。

通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。

自己今后将会更加的把理论知识和实际应用结合起来,提高自己的能力。

参考资料

【1】《单片机课程设计指导书》.皮大能.北京理工大学出版社2012.7

【2】《8051单片机实践与应用》.吴金戎.清华大学出版社2003.8

【3】《单片机技术基础教程与实践》.夏路易.电子工业出版社2008.1

【4】《单片机原理及应用》.张毅刚.高等教育出版社2012.11

【5】《基于Proteus的单片机系统设计与仿真实例》.蒋辉平.机械工业出版社2007.7

附录

单片机程序:

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

;显示

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

设置功能

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-2022 冰豆网网站版权所有

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