基于单片机的数字钟的设计.docx
- 文档编号:23407734
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:23
- 大小:1,017.07KB
基于单片机的数字钟的设计.docx
《基于单片机的数字钟的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字钟的设计.docx(23页珍藏版)》请在冰豆网上搜索。
基于单片机的数字钟的设计
单片机综合实践报告
课题名称:
基于单片机技术数字钟电路的设计系部:
电子工程系
班级:
电子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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)