89C单片机数码管时钟的设计Word文件下载.docx
- 文档编号:22752116
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:32
- 大小:1.35MB
89C单片机数码管时钟的设计Word文件下载.docx
《89C单片机数码管时钟的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《89C单片机数码管时钟的设计Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
Abstract
ThepapermainlypresentsthehardwareandsoftwaredesignofthedigitalclockusingAT89C2051.Thesourceprogramusingassemblelanguageisgiven.Thisdigitalclockisatime-device,whichcandisplay“hour”,”minute”,“second”.Itstimeperiodis24hoursandthefullscaleofthedisplayis23hours,59miutes,59secondsandithasthefunctionoftimeadjustment.Thecircuitconstantsoftheclockpula’sgenerator,theclockcounter,decodingdrivecircuit,digitaldisplaycircuitandthetimeadjustmentcircuit.Itgeneratestimestandardsignalusingcrystaloscillator,hereisthequartzcrystaloscillator.Because60secondsis1minute,60minuteis1hourand24hoursis1day.Weusestwocountersof60partsandcounterof60partsandacounterof24partsseparatelytoconstitutethecountofpercentageofsecond,second,minute,andhour.Soitcanrealizetimefunction.Displaycomportselectssix-segmentnumericaltubeLED.Drivenbydecodingoutputcircuit,itcandisplayshowingclearandintuitivefigures.Duetowalkingerrorofdigitalclock,wedesigntimecalibrationcircuitinthesystem.
Keyword:
NixieTubeClock;
AT89C2051;
Clockdisplaycircuit;
Resetcircuit
引言
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对于我们每个人来说都是很宝贵的,市场上出现的各式个样的钟表都很受消费者的欢迎和喜爱,钟表的数字化给人们生产生活带来了极大的方便,满足大家的需求,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等等,所有这些,都是以钟表数字化为基础的。
本设计克服了机械式钟表的诸多缺点,而且在常规电子式钟表的功能上加上了省电模式;
其次,利用单片机的精确计数功能,可对时、分、秒进行精确的计数。
1数字钟的功能实现与设计方案
1.1数字钟的设计要求及功能
利用AT89C2051来实现六位LED数码管的时钟,可以24h(小时)计时方式,分别显示时、分、秒,时分调整可通过触摸按键来实现。
数码管时钟电路,秒表/时钟计时器采用AT89C2051单片机最小化应用设计,采用共阳七段LED显示器,利用P3.7口的S1来对显示的时、分、秒进行调整。
在操作键时,其一对触点闭合或断开,将引起电压的变化。
此时,单片机可根据电压的变化来判断键的通断状态。
采用12MHz晶振可有利于提高秒计时的精确性。
1.2方案的确定
LED数码管时钟电路采用24h计时方式,时、分、秒用六位数码管显示。
该电路采用AT89C2051单片机,使用3V电池供电,只使用一个按键开关即可进入调时、省电(不显示LED数码管)和正常显示三种状态。
为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等硬件,接口复杂一些,考虑时钟显示只有六位,且系统没有其它复杂的处理任务,所以决定采用动态扫描法实现LED的显示。
单片机采用易购的AT89C2051系列,这样单片机可具有足够的空余硬件资源实现其它的扩充功能,如考虑到要使用电池供电的话可采用LV系列单片机。
秒表/时钟计时器电路系统的总体设计框架如图1所示。
图1硬件系统的总体设计框架
2数字硬件系统设计
2.1数字钟的硬件电路的设计
数码管时钟电路接线图如图2所示。
其采用AT89C2051单片机最小化应用设计,LED显示采用动态扫描方式实现,P1口输出段码数据,P3.0——P3.5口作扫描输出,P3.7接按钮开关。
为了提供LED数码管的驱动电流,用三极管9012作电源驱动输出。
图2硬件电路
2.1.1系统时钟电路的设计
Y、C1、C2组成振荡电路,和内部的振荡电路共同构成单片机的工作基准——时钟电路。
它含有单片机数字电路系统的工作基准,为数字电路提供稳定的时钟信号。
Y为晶体,它的标称频率越高,数字电路系统的工作频率也就越高。
系统时钟电路如图3所示。
图3系统时钟电路
2.1.2系统复位电路的设计
电路中C3、R15组成复位电路,该电路采用的是上电复位,即整个系统从新开始工作。
复位电路有很多种,分别可由不同的元件组成,可靠性也各有不同,本设计采用简单的上电复位。
如图4所示。
图4复位电路
2.1.3按键与按钮电路设计
本设计中只使用一个按键开关SET,来对时、分、秒进行调整。
SET还作为复位按钮,也可以进入省电(不显示LED数码管)和正常显示三种状态。
图5所示为按钮电路。
图5按钮电路
2.1.4数字钟的显示电路设计
驱动数码管采用动态显示。
动态驱动是将所有的数码管的8个显示笔画“a,b,c,d,e,f,g,dp”的同名端连在一起,另外每个数码管中的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控制显示。
R1-R8是P1口的上拉电阻,P端口必须外接上拉电阻才能正常输出“0”和“1”电平,保证P1端口所接的LED数码管能够正常显示数字,和软件相配合来驱动数码管显示时、分、秒。
该显示电路如图6所示。
图6显示电路
2.2数码管的结构
2.2.1数码管的内部结构
数码管的结构有单个数码管和集成数码管(即一个封装内至少有两个数码管集成在一起)两种,结构图如图7所示,其中(a)为数码管的引脚图,有共阴极和共阳极两种。
本设计采用共阳极数码管,其内部结构图如图(b)所示。
它们都是由基本的7个条状的发光二极管(LED)排列而成的,可实现数字“0-9”及少量字符的显示。
另外,为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组成,把这些发光二极管命名为“a、b、c、d、e、f、g、DP”,对应引脚如图7所示。
图7数码管的内部结构与引脚图
2.2.2数码管的外部结构
数码管的外部结构图,如图8所示。
图8
3系统主要程序的设计
3.1主程序
本设计中计时采用定时器T0中断完成,其余状态循环调用显示子程序,当P3.7端口开关按下时,转入调时功能程序。
其主程序执行流程见图9所示。
图9主程序流程图
3.2显示子程序
数码管显示的数据存放在内存单元70H—75H中,其中70H—71H存放秒数据,72H—73H存放分数据,74H—75H存放时数据,每一地址单元内均为十进制BCD码。
由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中,显示时,先取出70H—75H某一地址中的数据,然后查得对应的显示用段码从P1口输出,P3口将对应的数码管选中供电,就能显示该地址单元的数据值。
为了显示小数点及“-”“A”等特殊字符,在显示计时时采用不同的显示子程序。
3.3定时器T0中断服务程序
定时器T0用于时间计时。
定时溢出中断周期设为50ms,中断累计20次(即1s)时对秒计数单元进行加1操作。
时钟计数单元地址分别在70H—71H(秒)、76H—77H(分)、78H—79H(时),7AH单元内存放“熄灭符”数据(#0AH)。
在计数单元中采用十进制BCD码计数,满60(秒表功能时有100)进位,T0中断服务程序执行流程见图10。
图10T0中断服务程序执行流程图
3.4定时器T1中断服务程序
T1中断服务程序用于指示调整单元数字的亮闪,在时间调整状态下,每过0.3秒,将对应单元的显示数据换成“熄灭符”数据(#0AH)。
这样,在调整时间时,对应调整单元的显示数据会间隔闪亮。
3.5调时功能程序
调时功能程序的设计方法是:
按下按键,若按下时间小于1s,进入省电状态(数码管不亮,时钟不停),否则进入调分状态,等待操作,此时计时器停止走动。
当再次按下按钮时,若按下时间小于0.5秒,则时间加1min;
若按下时间大于0.5s,则进入小时调整状态。
在小时调整状态下,当按键按下的时间大于0.5s时退出调整状态,时钟继续走动。
LED数码管时钟电路的完整源程序见附录3。
4硬件电路的焊接
4.1电烙铁使用
1根据焊接对象合理选用不同类型的电烙铁(选择尖头的电烙铁)。
2使用过程中不要任意敲击电烙铁头,以免损坏。
内热式电烙铁连接杆钢管壁厚度只有0.2mm,不能用钳子夹以免损坏。
在使用过程中应经常维护,保证烙铁头挂上一层薄锡。
4.2对焊接点的基本要求
1焊点要有足够的机械强度,保证被焊件在受振动或冲击时不致脱落、松动。
2焊接可靠,具有良好导电性,必须防止虚焊。
3焊点表面要光滑、清洁,焊点表面应有良好光泽,不应有毛刺、空隙,无污垢,尤其是焊剂的有害残留物质,要选择合适的焊料与焊剂。
4.3焊接过程
1焊前准备
首先要熟悉所焊电路板的图,并按图纸配料,检查元器件型号、规格及数量是否符合图纸要求,并做好装配前元器件引线成型等准备工作。
2焊接顺序
元器件装焊顺序依次为:
电阻器、电容器、晶振、三极管、集成电路等其它元器件为先小后大。
3对元器件焊接要求
(1)电阻器焊接
按原理图将电阻器准确装到规定位置。
要求标记向上,字向一致。
装完同一种规格后再装另一种规格,尽量使电阻器的高低一致。
(2)电容器焊接
将电容器按图装入规定位置,并注意有极性电容器其“+”与“-”极不能接错。
(3)三极管焊接
注意e、b、c三引线位置插接;
焊接时间尽可能短,焊接时用镊子夹住引线脚,以利散热。
焊接大功率三极管时,若需加装散热片,应将接触面平整、打磨光滑后再紧固,管脚与电路板上需连接时,要用塑料导线。
(4)集成电路焊接
首先按图纸要求,检查型号、引脚位置是否符合要求。
焊接时先焊边沿的二只引脚,以使其定位,然后再从左到右自上而下逐个焊接。
4.4在调试中遇到的问题
1本设计电源是采用3V直流电源直接供电,故在硬件电板的焊接中直接采用3V电源供电。
2在对软件电路仿真时,电路的输出电压较低,致使电路软件不能达到预定效果。
经过检查,是三极管的型号和引脚接错。
3在对各元器件的检查发现,由于硬件电路的焊接过程中的疏忽。
个别色环电阻阻值与要求有差别,阻碍了硬件电路的调试,经过仔细核对,排除了这些问题。
对于电容器、三极管露在印制电路板面上多余引脚均需齐根剪去。
5软件电路的调试
5.1软件电路调试
本设计是采用AT89C2051单片机控制LED数码管显示电路的,其操作步骤如下:
(1)添加元件到元件列表中
本设计要用到的器件有:
元件中的单片机芯片AT89C2051、电阻Resistor、数码管7SEG-MPX-CA-BLUE、按键开关BUTTON、电源POWER、地线GROUND、示波器OSCILLOSCOPE。
在模型选择工具栏中选元件
(默认),单击P按钮,出现挑选元件窗口,如图11所示。
图11挑选元件窗口图
将元器件添加到编辑窗口可以在左上角的关键字搜索栏Keywords中输入,例如输入AT89C2051,即可在Results栏中筛选出该名称或包含该名称的器件,双击Results栏中的名称AT89C2051即可将其添加到对象选择器。
同样的方法放入7SEG-MPX-CA-BLUE、按键开关BUTTON等。
(2)将元件放入原理图编辑窗口:
在元件列表中左键选取AT89C2051,在原理图编辑窗口中单击左键,这样AT89C2051就被放到原理图编辑窗口中了。
同样放置其它各元件。
如果元件的方向不对,可以在放置以前用方向工具转动或翻转后再放入;
如果已放入图纸,可以选定后,再用方向工具或块旋转工具转动。
左键选择模型选择工具栏中的终端接口图标:
从模型中挑选出地线-GROUND和电源-POWER,并在原理图编辑窗口中左击放置到原理图编辑窗口中。
添加示波器:
左键选择模型选择工具栏中的虚拟仪器图标
,左键选择OSCILLOSCOPE,并在原理图编辑窗口中左击,这样示波器就被放置到原理图编辑窗口中了。
(3)连线
按样图绘制电路连线,如图12所示。
图12接线图
(4)仿真
对于单片机需要下载程序后才能运行,所以要将事先准备好的仿真程序调试文件下载到单片机芯片中。
本设计用的是:
dianzishizhong.hex。
先右击AT89C2051再左击,出现EditComponent对话框,如图13所示。
图13
在ProgramFile中单击
出现文件浏览对话框,找到dianzishizhong.hex文件,单击“确定”即将仿真程序装入单片机,单击OK退出。
然后单击
开始仿真,此时可以看到程序的运行结果如图14所示。
单击
分别可以暂停/终止仿真的运行。
图14显示结果图
注:
仿真时,元件引脚上的红色代表高电平,蓝色代表低电平。
仿真波形如图15所示。
图15波形图
5.2系统程序调试
软件调试在WaveE2000编译器下进行,该编译器对源程序进行仿真编译,把.ASM文件加入模块文件,出现图16所示的对话框。
将所加入的模块保存,然后选择“工具菜单—编译”。
编译通过后生成.Hex文件,图17所示的为程序软件仿真通过的结果图。
图16
图17程序仿真结果图
总结
本课题设计总体上来说是顺利完成了,但由于自己的理论知识和实践操作水平有限,致使作品所实现功能的过程中出现了很多问题,不过经过仔细的核对排查,解决了很多设计时出现的问题。
在设计中我们小组考虑了多种硬软件实现方案,通过比较并论证了采用单片机AT89C2051型号是合理、而又最为经济的;
在系统实现阶段,详细论述了整个控制系统的流程;
在系统调试阶段,详细介绍了与单片机配套的调试软件(Wave软件和ProteusISIS软件);
在整机联调阶段,由于焊接水平有限和部分零件的参数不匹配从而方面出现了很多问题(LED不显示数字、数字以乱码形式出现等等)。
以下是我们所遇到的具体问题:
原设计电源是用+5V直流电源,用小型变压器来实现将220V交流电压整流成+5V的直流电压。
由于在选择变压器的时候没有注意额定电流的大小,所以硬件电路没有任何显示。
发现这个问题后,我们就把USB接口接到电脑上的USB接口后,有显示。
但显示出来的是乱码,而且是随机乱码,经过几遍的硬件电路检查,线路连接方面没有问题。
我们也分析了一下原因:
由于所选择的变压器型号有误,所以电路中所流过的电流太大,而导致一些元器件损坏了。
在对电路进行软件仿真的时候,也遇到过一些问题。
我们仿真软件是用ProteusISIS软件进行硬件电路仿真,出现的主要问题就是所选择的元器件的型号和设置的参数问题,因为所选择的元件库有很多,可供选择的型号也很多,虽然元器件的图形符号一样,但选择的型号要求与原理图上的要求不匹配,致使编译出来的结果就不一样。
我们第一次原理图仿真出来出现了好多错误,经过仔细的核对,排除了这些问题。
用伟福软件进行程序的编译,在程序调试过程中,在设计过程中没有过多的注意细节问题,比如说在立即数前忘了加#,而导致程序在编译的过程中出现了错误等等。
由于以上软件,我们都是初次使用,所以在使用过程中出现了以上种种问题。
不过经过仔细的核对排查,解决了很多设计时出现的问题。
所以我们认为在我们未来的生活或工作当中,无论做什么事情,都要有认真仔细的态度,以免造成不可挽回的损失。
参考文献
参考文献内容
1王幸之.AT89系列单片机原理与接口技术.北京:
航空航天大学出版社,2004
2李念强.单片机原理及应用.北京:
机械工业出版社,2007
3何桥.单片机原理及应用.北京:
中国铁道出版社,2004
4胡健.单片机原理及接口技术实践教程.北京:
机械工业出版社,2005
5朱宇光.单片机应用新技术教程.北京:
电子工业出版社,2000
6刘大茂.单片机原理及应用.上海:
上海交通大学出版社,2001
7马家辰.单片机原理及接口技术.哈尔滨:
哈尔滨工业大学出版社,2001
8李建忠.单片机原理及应用.西安:
西安电子科技大学出版社,2002
9杨将新.单片机程序设计及应用.北京:
电子工业出版社,2006
致谢
在离校之际,借这毕业论文的最后一页,表达对老师们的谢意。
本次毕业设计是在路桂明老师的精心指导下完成的。
从课题选择、方案论证到具体设计和调试,无不凝聚着路老师的心血。
平时,路老师对我们的设计要求严格、也给了我们相当独立的空间。
设计的过程是不简单的,不论是在做作品还是在写论文方面.正因为它的不简单,使我明白了如果真的要做好一件事也是要付出辛勤和汗水的,世界上没有不劳而获的事,只有自己努力过了才能体会其中的乐趣。
当然设计的成功并不是我一个人的功劳,在这里首先要感谢的是我的指导老师路老师。
路老师这段时间课挺多,但在我们做毕业设计时还不时的关心我们的进程,给我们一些建议,才使得设计顺利成功。
同时,我要感谢课题组的各位同学,张小磊、缪静华。
在毕业设计的短短2个月的时间里,他们给我提出了很多宝贵的意见,给了我不少帮助还有工作上的支持,在此也真诚的谢谢他们。
本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。
正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成,在此向南通职业大学电子工程系的全体老师表示由衷的谢意,感谢他们三年来的辛勤栽培。
即将结束三年的大学生活,相信等待我的是一片充满机遇、风险与快乐的土地。
附录1
材料清单
器件名称
数量
单价(元)
总数(元)
基本功能部分
万用板
1
10
AT89C2051(CPU)
5
数码管
6
按钮
0.2
2
晶振
0.8
25V10μF电容
0.4
30PF电容
0.1
9012三极管
1.2
4.7k电阻
10K电阻
导线
芯片插槽
合计
31
附录2(作品成品照片)
附录3(软件程序清单)
;
*****************************************
AT89C2051秒表/时钟程序;
定时器T0、T1溢出周期为MS,T0为秒计数用,T1为调整时闪烁用,
P3.7为调整按钮,P1口为字符输出口,采用共阳显示管。
中断入口程序;
ORG0000H;
程序执行开始地址
LJMPSTART;
跳到标号START执行
ORG0003H;
外中断0中断程序入口
RETI;
外中断0中断返回
ORG000BH;
定时器T0中断程序入口
LJMPINTT0;
跳至INTT0执行
ORG0013H;
外中断1中断程序入口
外中断1中断返回
ORG001BH;
定时器T1中断程序入口
LJMPINTT1;
跳至INTT1执行
ORG0023H;
串行中断程序入口地址
串行中断程序返回
;
主程序;
START:
MOVR0,#70H;
清70H-7AH共11个内存单元
MOVR7,#0BH;
CLEARDISP:
MOV@R0,#00H;
INCR0;
DJNZR7,CLEARDISP;
MOV20H,#00H;
清20H(标志用)
MOV7AH,#0AH;
放入“熄灭符数据”
MOVTMOD,#11H;
设T0、T1为16位定时器
MOVTL0,#0B0H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 89 单片机 数码管 时钟 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)