课程设计定时数字钟的设计与制作.docx
《课程设计定时数字钟的设计与制作.docx》由会员分享,可在线阅读,更多相关《课程设计定时数字钟的设计与制作.docx(21页珍藏版)》请在冰点文库上搜索。
课程设计定时数字钟的设计与制作
课程设计
题目数字钟的设计与制作
学生姓名XXX学号XXXX
所在院(系)物理学系
专业班级电子信息科学与技术XXX
指导教师XXX
完成地点实验楼513教室
2007年11月29日
数字钟设计与制作
作者:
XXX
关键词:
AT89C51,晶振,电阻,LED数码管
陕西理工学院(物理学系)电子信息科学与技术专业2005级陕西汉中723000
指导教师:
XXX
一.任务
设计并制作一个数字钟.
二.要求
1.基本要求
1.1能显示时,分秒,24小时制.
1.2具有校时功能.
2.发挥部分
2.1具有定时功能.
2.2有报时功能.
2.3可设置闹钟.
三.说明
3.1时间要求:
11月12日到11月24日.
3.2完成实际电路,总结报告.
本电路是以AT89C51单片机为中心,实现数字钟的显示.一般而言数字钟的设计与制作可以采用数字电路来完成,也可以采用单片机来完成.若采用数字电路来完成,则设计的电路图太复杂,其功能也主要是依赖于数字电路的各功能模块的组合来实现,而且电路板的制作比较复杂.采用单片机来设计制作,由于其功能的实现主要是通过软件编程来完成,这样就大大降低了电路的复杂性,而且成本也较便宜.
四.方案论证与比较
方案一:
采用数字电路控制,其原理方框图如图1-1所示。
采用74LS系列芯片,整个计数器电路由秒计数器、分计数器、时计数器串接而成。
秒计数器和分计数器各自由一个十进制计数器和一个六进制计数器串接组成,形成两个六十进制计数器。
时计数器可由两个十进制计数器串接并通过反馈接成二十四制计数器。
但由于电路连线复杂,电路不够实用。
图1-1
方案二:
采用单片机控制。
采用单片机丰富的IO端口,及其控制的灵活性,实现数字钟的显时和调时等功能。
其原理图如图1-2所示。
图1-2
五.电路的功能单元设计
1.硬件电路的设计
该数字电子钟是以单片机AT89C51为核心来完成的,在硬件电路方面,电路中采用P0口作为6位LED数码管的驱动接口,这是由于P0口输出驱动电路工作处于开漏状态,它的驱动能力强,故只需外接上拉电阻便可以把LED数码管点亮。
因为共阴的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该电路中的6位LED数码管均用共阴极的数码管。
在6位LED显示时,为了简化电路,降低成本,6个LED显示器共用一个8位的I/O,6位LED数码管的位选线分别由相应的P2.0~P2.5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。
在电路中还设有三个按键S1,S2和S3用来进行定时,选时和调时的选择,他们分别与单片机的P1.2,P1.4,P1.6口相连接。
P1.7口与蜂鸣器相连接。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
电路构成:
(1)晶体振荡器电路:
晶体振荡器电路给数字钟提供一个频率稳定准确的12MHz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路.
(2)时间计数器电路:
时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器电路构成,秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器.(3)译码驱动电路译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流.(4)数码管:
数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管。
2.软件程序的设计
考虑到实用性,在该电子钟的设计中修改定时或调整时间时采用了闪烁,而且可以定时20组闹钟。
在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一组固定单元用来存储计数的秒,分,时以及20组定时时间的序号等。
在显示程序段中主要进行了闪烁的处理,采用定时器中断置标志位,再与位选相互结合的方法来控制调时或定时中的闪烁。
时,分,秒的显示则是用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。
初始化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数。
由于定义了20组定时闹钟,在这里采用中断20次,每中断一次比较一组闹钟,避免了一次比较20组中断时间过长,影响下次中断时间。
显示之后查询闹铃标志位是否与前面所置数相等,若相等则响铃。
为了避免响铃影响显示,采用了每显示几屏以后在显示程序中出现脉冲,驱动喇叭,不会影响显示。
之后用查询方式对按键进行判断,若有键按下,则进行软件延时消抖,避免了抖动引起的干扰,执行相应的48定时,选时或调时程序段。
程序流程
在进行软件仿真的时候,我发现若单纯用上拉电阻作为LED管的驱动是不能达到我想要得效果。
在Proteus软件中,用上拉电阻作驱动是行不通的,这与软件本身的制作有很大的关系,所以要改变电路图,我在单片机AT89C51的P0口外加了一片74LS245芯片,74LS245是一个8双向3态缓冲电路。
主要使用在数据的双向缓冲,常见于51的数据接口电路,当数据驱动能力不足,就使用一片245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路;245是双向的。
但在做实际电路板时完全可以使用上拉电阻来代替74LS245。
在作硬件电路时,我得到的结论是对于各个器件在面包板上的布局必须要做到合理化,而且在具体搭线时要有完整的思路,不能想搭那根就搭那根。
再最后调试时要有耐心,反复检查每个连线和查看器件是否插正确。
六.测试报告
该电子钟设有三个按键:
S1,S2和S3键。
按S1键进行校时,可以分别对时及分进行单独校时,使其校正到标准时间,校时时需要校正哪一位哪一位就闪烁。
按S2键是对闪烁位进行加一或返回的操作。
按S3键调整定时时间和定时组数,需要调整哪一位哪一位就闪烁,该电子钟最多可定时20组闹钟经测试该电子钟在一天的累计误差约为0.1秒。
该电子钟的误差主要由晶振自身的误差所造成,晶振的误差约为0.0001~0.000001。
在软件的编程过程中所产生的误差比较小,在重装初值的过程中大概需要约8个机器周期,但在程序开始对定时器赋初值时,多加了8个机器周期,减小了这方面的误差。
另外在中断的过程中,只会在第一次计时时产生时间的偏移,而它所产生累计误差很小,可以忽略。
七.总结
由于本数字钟是以单片机作为核心的控制元件,使得本数字钟具有性能可靠,电路简单,成本低等特点。
加上经过优化的程序,使其有很高的智能化水平。
我在设计和调试的过程中,也发现了一些问题,譬如时间在走的过程中有时会出现不稳定情况等。
数字钟的设计还不够人性化,如果能加上一些语音的提示,可能会更有生命力。
参考文献
[1]梅丽凤,王艳秋,等.单片机原理及接口技术[M]清华大学出版社,2004.
[2]朱定华,刘玉.单片机原理及应用技术学习辅导[M]电子工业出版社,2001.
[3]薛钧义.MCS-51/96系列单片微型机算计及应用[M]西安交通大学出版社,1998.
[4]何立民.MCS-51系列单片机应用系统设计[M]北京航空航天大学出版社,2001.
[5]杨拴科.模拟电子技术基础[M]高等教育出版社,2003.
Abstract:
ThiselectriccircuittakeamachineofAT89C51asthecenter,carryingoutthemanifestationofthedigitalclock.Generallyspeakingthedesignandmanufacturesofthedigitalclockcanadoptthenumericalelectriccircuittocomplete,canalsoadoptamachinetocomplete.Ifadoptthenumericalelectriccircuittocomplete,thentheelectriccircuitdiagramofdesignistoocomplicated,itsfunctionalsomainlyisdependoninthenumericalelectriccircuitofthecombinationofeachfunctionmoldpiecetocarryout,andthecreationofthecircuitboardismorecomplicated.Adoptamachinetodesignthecreation,becauseoftherealizationofitsfunctionmainlyistopassthesoftwareplaitdistancetocomplete,thusloweredthecomplexityoftheelectriccircuitconsumedly,andthecostalsocomparesthecheapness.
Keywords:
HK2000-A;AT89C2051;pulsesensor;TimingEfficiency
附录1:
硬件总图,软件仿真图
附录2:
程序清单
附录1:
硬件总图
软件仿真图
附录2:
程序清单
;P0段选,P2位选,P1.7喇叭,P1.0闹钟指示,P1.2定时,P1.4选时(加一),P1.6调时
ORG0
AJMPMAIN
ORG000BH
AJMPTIME
TIME:
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B8H
SETBTR0
MOV09H,R0
INC16H
MOVR0,16H
MOVA,@R0
CLRC
CJNEA,21H,TMM
INC16H
MOVR0,16H
INC16H
MOVA,@R0
CLRC
CJNEA,22H,TTM
MOV19H,#45H;19H作为时间到标志
AJMPTTM
TMM:
INC16H
INC16H
TTM:
MOVR0,09H
DJNZ18H,OUT0
MOV18H,#20
MOV16H,#23H
MOVA,R2;控制闪烁
CLRC
SUBBA,#5
JZTM
MOVA,1BH
CPLA
MOV1BH,A
ANLA,R4
MOV1AH,A
TM:
MOVA,17H
CLRC
SUBBA,#23H
JZOUT0
SEC:
INC20H
MOVA,20H
CLRC
CJNEA,#60,OUT0
MOV20H,#0
MIN:
INC21H
MOV19H,#0;一分钟到关闹铃
CLRP1.7
MOVA,21H
CLRC
CJNEA,#60,OUT0
MOV21H,#0
HOUR:
INC22H
MOVA,22H
CLRC
CJNEA,#24,OUT0
MOV22H,#0
OUT0:
RETI
DISP:
MOVR0,#10H;10H作为显存首址
MOVR7,#80H
MOVR6,#7
TO:
MOVA,@R0
MOVCA,@A+DPTR
ORLA,#80H
PUSHACC
MOVA,R7
RLA
MOVR7,A
ORLA,1AH;1AH控制闪烁
MOVP0,#0
MOVP2,A;P2为位选
POPACC
MOVP0,A;P0作为段选
INCR0
DJNZR6,TO
RET
CHAI:
MOVA,@R1
MOVB,#10
DIVAB
MOV10H,B
MOV11H,A
INCR1
MOVA,@R1
MOVB,#10
DIVAB
MOV12H,B
MOV13H,A
INCR1
MOVA,@R1
MOVB,#10
DIVAB
MOV14H,B
MOV15H,A
DECR1
DECR1
RET
TSHI:
MOVA,R2;R2作为调时与定时的标志
CLRC
SUBBA,#0F0H
JZGO2
MOVR2,#0FH
MOVA,R4
RRA
RRA
MOVR4,A
CLRC
CJNEA,#00110000B,GO
MOVR3,#22H
GO:
CLRC
CJNEA,#00001100B,GO1
MOVR3,#21H
GO1:
CLRC
CJNEA,#00000011B,GO3
MOVR3,#20H
GO3:
CLRC
CJNEA,#11000000B,GO2
MOVA,17H
CLRC
CJNEA,#23H,GO4
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B8H
SETBTR0
MOV17H,#0
GO4:
MOVR2,#0
GO2:
RET
DSHI:
MOVA,R2;R2作为调时与定时的标志
CLRC
SUBBA,#0FH
JZDSOUT1
MOVR2,#0F0H
MOVA,R4
RLA
RLA
MOVR4,A
CLRC
CJNEA,#00001100B,DSOUT2
INCR1
MOVA,R1
MOVR3,A
DECR1
DSOUT2:
MOVA,R4
CLRC
CJNEA,#00110000B,DSOUT3
INCR1
INCR1
MOVA,R1
MOVR3,A
DECR1
DECR1
DSOUT3:
MOVA,R4
CLRC
CJNEA,#00000011B,DSOUT4
INCR1
INCR1
INCR1
DSOUT4:
MOVA,R4
CLRC
CJNEA,#11000000B,DSOUT1
MOVR4,#00000011B
MOVR3,#0FH
INCR1
INCR1
INCR1
DSOUT1:
RET
XSHI:
MOVA,R2
CLRC
SUBBA,#5
JZXSOUT3
MOVA,R3
MOVR0,A
INC@R0
MOVA,R4
CLRC
CJNEA,#00000011B,XSOUT
MOVA,R2;R2作为调时与定时的标志
CLRC
CJNEA,#0FH,XSOUT4
MOV@R0,#0
MOV17H,#23H
XSOUT4:
MOVA,R2;R2作为调时与定时的标志
CLRC
CJNEA,#0F0H,XSOUT
MOV17H,#0
MOVR4,#11000000B
MOVR1,#20H
MOVR2,#5
XSOUT:
MOVA,R4
CLRC
CJNEA,#00110000B,XSOUT2
MOVA,@R0
CLRC
SUBBA,#24
JCXSOUT1
MOV@R0,#0
XSOUT2:
MOVA,R4
CLRC
CJNEA,#00001100B,XSOUT1
MOVA,@R0
CLRC
SUBBA,#60
JCXSOUT1
MOV@R0,#0
AJMPXSOUT1
XSOUT3:
MOVA,R5
CPLA
MOVR5,A
CPLP1.0;P1.0闹铃开关指示灯
XSOUT1:
RET
MAIN:
MOV10H,#0
MOV11H,#0
MOV12H,#0
MOV13H,#0
MOV14H,#0
MOV15H,#0
MOV20H,#0
MOV21H,#0
MOV22H,#0
MOV23H,#1
MOV26H,#2
MOV29H,#3
MOV2CH,#4
MOV2FH,#5
MOV32H,#6
MOV35H,#7
MOV38H,#8
MOV3BH,#9
MOV3EH,#10
MOV41H,#11
MOV44H,#12
MOV47H,#13
MOV4AH,#14
MOV4DH,#15
MOV50H,#16
MOV53H,#17
MOV56H,#18
MOV59H,#19
MOV5CH,#20
MOV16H,#23
CLRP1.2
CLRP1.4
CLRP1.6
CLRP1.7
MOVSP,#60H
MOVDPTR,#TAB
MOVR1,#20H;R1作为拆分地址首
MOVR4,#11000000B
MOVR2,#5;R2作为定时,调时选择
MOVR5,#00111100B;R5作为闹铃开关
MOV1BH,#0
MOV18H,#20
MOVP0,#0
MOVP2,#0
MOVIE,#87H
SETBIT0
SETBIT1
MOVIP,#2;设T0优先级最高
MOVTMOD,#1;定时器模式1
MOVTH0,#3CH
MOVTL0,#0B8H
SETBTR0
CLREX0
CLREX1
START:
ACALLCHAI
ACALLDISP
RING:
MOVA,R5
CLRC
CJNEA,#00111100B,SS0
MOVA,19H
CLRC
CJNEA,#45H,SS0
CPLP1.7
SS0:
JNBP1.6,SS1
ACALLDEL
JNBP1.6,SS1
ACALLTSHI
CLRP1.6
SS1:
JNBP1.4,SS2
ACALLDEL
JNBP1.4,SS2
ACALLXSHI
CLRP1.4
SS2:
JNBP1.2,SS3
ACALLDEL
JNBP1.2,SS3
ACALLDSHI
CLRP1.2
SS3:
AJMPSTART
DEL:
DJNZ1DH,$
DJNZ1CH,DEL
RET
TAB:
DB0C0H,0F9H0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END