电子时钟毕业设计.docx
《电子时钟毕业设计.docx》由会员分享,可在线阅读,更多相关《电子时钟毕业设计.docx(22页珍藏版)》请在冰点文库上搜索。
电子时钟毕业设计
电子时钟毕业设计
毕业设计(论文)
题目单片机的电子时钟设计与发展
英文题目SCMelectronicclockdesignanddevelopment
学生姓名******
班级******
专业***********
指导教师*******
东华理工大学
二0一二年四月
1引言
单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。
单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。
因此,它应用广泛前景美好,它的实用性大大地提高了我对毕业设计的兴趣。
数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。
数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。
不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
而且是控制的核心部分。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。
这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点。
2整体设计思路
这部分主要介绍工作安排和整体设计的思想。
工作过程规划如下:
图2.1整体设计思路
针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。
运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。
3主要元件的简介
下面就本次设计中用到的主要元件的所有功能进行简单的介绍,包括AT89C51单片机、74LS07芯片、以及数码管的特性和用法。
3.1AT89C51单片机:
单片机的结构如下:
图3.1单片机引脚图
在使用时VCC接电源电压,GND接地。
P0,P1,P2,P3可作为输入或输出端口,RST是复位输入,接复位电路。
XTAL1和XTAL2接复位电路。
这些可以在硬件设计部分体现出来。
3.27407驱动器
7407是集电极开路六正相高压驱动器,引脚1入2出,3进4出,5进6出,9进8出,11进10出,13进12出,7接地,14接高电平。
7407引脚图:
图3.27407引脚图
3.3数码管:
使用共阴极数码管时将6个数码管按相同功能连接起来,3与8相连当选通端所接管脚为低电平时该数码管选通。
单片机的P2口作为选端连接各数码管的3、8引脚轮流显示,连接时要加7407和上拉电阻。
单片机的P1口作为功能段,通高电平的引脚会使相应段亮起,同样的也要与7407和电阻连接使用。
4电路设计
4.1整体设计
此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:
显示电路用六个数码管分别显示小时(年份)、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,使电路更加简单。
单片机采用AT89C51系列,这种单片机应用简单,适合电子钟设计。
电路的总体设计框架如下:
图4.1电路模块图
4.2分块设计
这部分介绍各模块电路的设计方法和成果,主要分为:
输入部分、输出部分、复位和晶振电路。
4.2.1输入部分
在电子钟的输入部分,设置相应的置数功能,通过外部设备的输入,如按键,实现时间的修改。
除此之外,调整闹铃、定时、日期时也需要按键进行输入。
在选用输入端口时,将P3引脚与按键相连进行输入。
设计的输入部分如下:
图4.2输入部分
各按键功能在后面的部分将会介绍到
4.2.2输出部分(显示电路)
该部分电路图如下所示:
图4.3显示部分
在实际电路中采用单个数码管相连进行显示,先把数码管的1、2、4、5、6、7、9、10对应相连,然后把各晶体管的3和8引脚各自相连,P1.6~P1.0分别接a~g,P2作为选通端P2.0~P2.5分别从左到右接各数码管的3、8端。
采用动态显示,即一位一位地轮流点亮各位显示器,因此P2.0~P2.5轮流置0。
持续时间为1ms,这点在程序部分还会讲到。
4.2.3晶振与复位电路:
图4.4晶振与复位电路
5程序设计
5.1程序思路
图5.1程序设计思路
结合电路,程序的总体思路是:
1、点复位键后,进行时间显示,从0时0分0秒开始。
2、按下按键1时,进行调时,此时按下4调整时,按下5调整分,若2秒钟未按键,则不再等待,恢复走时,持续按键时大约0.3秒步进1,下同。
3、按下2键时进行闹铃调整,用4、5键分别调时和分,此时只有前四位进行显示,即闹铃功能精确到分,2秒钟无按键则返回时间显示,时间到达闹铃所定时间时P0.7输出高电平,蜂鸣器响,按下按键2或3时蜂鸣器停止。
4、按3键时进行定时的设定,同样,分别通过4、5调整分和秒,若两秒未按键则不进行定时,设定之后再次按下3键则进行倒计时,倒计时时间未到时若按下1键则进行时间显示;若倒计时时间到则P0.7为高电平,蜂鸣器响。
定时的最大值为59分59秒。
5.2程序设计步骤
在程序设计过程中,我遇到了很多困难,这部分也是让我学到很多东西的地方。
首先,我学习了定时器的相关知识,计数器的使用是很重要的组成部分,在这个设计中选择计数器T0。
T0的工作方式有:
方式0:
不推荐
方式1:
16位计数器,常用
方式2:
自动重装初值的8位定时/计数器
方式3:
T0相当于两个独立的8位定时/计数器
此程序采用方式1,方式1的定时时间t为t=(216-M)*12/fosc。
其中M为定时器初值,fosc为12MHz,若M为0则t=65536*12/2*106=65.536ms。
因此可取50ms为计时单位,初值M应为50*10-3*106=216-M。
M=15536=11110010110000=3CB0。
即定时器初值为TH0=03CH,TL0=0B0H。
定时器中断20次为一秒,这部分在中断程序中用到。
其次,我参看了文献中的设计思路,做到胸有成竹后再进行具体的程序书写工作。
认真学习了教科书中关于汇编语言编程的问题,熟悉了汇编语言的编程方法和语法习惯。
第三步就是进行具体的程序编写工作。
5.3程序的主要模块
5.3.1延迟程序
在动态扫描时,必然用到延迟程序,这里使用延迟1ms的程序,此程序需要反复调用。
D_1MS:
MOVR7,#2
D_5:
MOVR2,#250
DJNZR2,$
DJNZR7,D_5
RET
5.3.2中断服务子程序
中断服务程序中,总体思路是:
由于初值是3CB0H,所以装满定时器需要50ms的时间,从而20次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。
包括日期显示的功能也是如此。
另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。
基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。
再显示走时部分。
流程框图如下:
图5.2中断程序思路
5.3.3主程序
主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用声音程序,该段程序如下:
MAIN:
JNBP3.0,DATETZ;按下0键时,显示日期并可对日期进行调整
JNBP3.1,ZSTZ1;按下1键时,显示时间,并可调时
JNBP3.2,NLTZ1;按下2键进行闹铃设置
JNBP3.3,DSTZ;按下3键进行定时设置
ACALLDISP;
MOVA,HOUR;
SUBBA,38H;
JZFEN;
AJMPDSPD2;
FEN:
MOVA,MINUTE;
SUBBA,37H;
JZSHENGYIN1;
DSPD2:
MOVA,R4;
JZS_PD;
AJMPMAIN;
S_PD:
MOVA,R3;
JZSHENGYIN1;
AJMPMAIN;
5.3.4显示程序
6个晶体管轮流进行显示,分别显示1ms,这依赖的是人们视觉的惰性,该段程序如下:
DISP:
;走时的显示程序,包括调时时的显示
MOVDPTR,#LEDTAB
MOVA,SECOND
MOVB,#10
DIVAB;A存十位B存个位
MOVCA,@A+DPTR
MOVP1,A
CLRSEC_S
ACALLD_1MS;显示秒十位
SETBSEC_S
MOVA,B
MOVCA,@A+DPTR
MOVP1,A
CLRSEC_G
ACALLD_1MS;显示秒个位
SETBSEC_G
……
以此类推,进行时和分的显示
RET
另外,调闹铃和定时时间、进行日期显示时,有各自的显示程序,但不能成为独立子程序,分别柔和在闹铃、定时、和日期程序中。
5.3.5闹铃程序和定时程序
这两段程序分别包含了各自的显示、调整程序。
程序思路是对照,走时部分的程序,进行编写,包括显示程序,与显示时间的程序是相似的,闹铃和定时的调整程序与走时调整程序相似。
5.4程序调试
程序写完以后必须进行调试,以验证程序是否正确。
在程序调试时,出现了很多问题,比如跳转距离过长、打错字母、逻辑有错等,发现问题后,利用两天时间进行了改正,但即使编译通过,最后也不一定能够实现功能。
以为程序的调试只能检查出语法错误,而不能检查出逻辑的错误。
要真正把程序写对,要通过仿真发现并且改正错误。
6功能仿真
这部分工作可能遇到的困难是很多的,程序庞大很可能出现各种问题。
在仿真工作中,首先要对仿真软件有足够的了解并能够正确熟练地运用
6.1软件介绍
在这部分工作中用到了Uvision4和Proteus两个软件,其中Uvision4用来编译程序并生成hex文件,装入Proteus仿真图的芯片中,通过仿真结果一步步进行调整最后达到预期的功能。
6.2仿真过程:
6.2.1仿真图的绘制
在使用Proteus进行仿真时,仿真图不用画出数码管驱动程序,其他部分与设计的硬件图相仿。
绘制结果如下:
图6.1仿真图
6.2.2功能的实现
在绘制仿真图之后,要向单片机装入程序,从而使单片机开始工作并带动整个电路工作,装入过程为:
点击单片机,选择所编译程序的输出hex文件,确定即可。
此时单片机会按照程序所设定的功能进行工作,在仿真过程中会遇到各种问题。
这里列出仿真结果:
(1)走时仿真:
图6.2走时状态下的仿真结果
(2)闹钟设定的仿真:
图6.2.3闹铃仿真结果
可见所定闹钟时间为10点15分。
(3)定时钟倒计时的仿真:
图6.2.3倒计时仿真
可见,倒计时进行到3分3秒。
7日历功能的实现
在设计的开始阶段,我主要考虑了日期的逻辑算法。
首先,要考虑年份是不是闰年,闰年的判断方法是:
将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。
只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。
其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。
在电路方面:
用按键的输入决定6个数码管显示日期还是时间,按键控制为:
按下1键时,显示日期,并且用4、5、6键分别调整年、月、日;按下2键时,进行走时和时间调整;3键位闹铃键;4键为定时键。
程序思路如下:
图8.1扩展部分思路
按键形式:
图8.2按键图示
结论
通过对数字时钟的设计,更加深了对单片机功能的了解以及各个模块程序的调用,编程。
在实物设计时候遇到了更多的问题,比如芯片的质量问题不能得到保证。
由于用万能电路板搭建,飞线数量特别多,整个实物给人的印象十分复杂,在焊接的过程中难免出现各种错误,经过老师和同学等的帮助,最终实现了部分功能,在此对他们真挚的感谢。
致谢
当我以学子的身份踏入大学校门的那天起,便已注定我将在这里度过人生中最美丽的青春年华。
提笔写下“谢辞”,我才惊觉自己即将真正离开,人生亦从此展开新的画卷。
尽管不舍,却更珍惜,因为我的生命中有那么多可爱的人值得感激。
他们使我的大学生活充满了色彩,无论收获、遗憾,对我来说都是一笔宝贵的财富。
三年的大学生活不知不觉中就要结束了,在这段难忘的生活中,有我许多美好的回忆。
在这份大学的最后一页里,首先感谢党、感谢学院给我们提供这个能自我展示的平台,感谢我们的指导教师,江伟老师,你们从一开始的论文方向的选定,到最后的整篇文论的完成,都非常耐心的对我进行指导。
给我提供了大量数据资料和建议,告诉我应该注意的细节问题,细心的给我指出错误,修改论文。
谢谢我们班主任老师,从大一到大二是你的悉心教导、孜孜不倦我们才能顺利的完成学业。
我要感谢在我二年的学习中无私传授我知识的各位老师,是你们将自己宝贵的财富无私地奉献给了我们,让我们能在学业上有所成绩;是你们让我倍感教师职业的伟大,交给我们知识,又不忘教育我们如何做人!
在此,我还要感谢寝室的兄弟们在我完成论文的过程中给予我的帮助和鼓励,也是他们陪我度过这三年的生活
参考文献
1H.G.Cragon.TheElementsofSingle-ChipMicrocomputerArchitecture.
Computer,1980(13)
2李全利.《单片机原理及应用技术》第三版,高等教育出版社2009.
(1)
3何立民.《我国单片机应用技术发展趋势及展望.自动化与仪表》,1992
(1)
4向继文,廖立新.《基于AT89S51的电子钟系统设计》.机电产品开发与创新,2007
(2)
5张静.《基于单片机数字钟的设计》.办公自动化杂志,2006(89)
6樊金荣,谢智文.《数字倒计时秒表的设计与实现》.中南民族大学计算机科学学院院报,2005
(1)
7魏立峰,王宝兴.《单片机原理与应用技术》[M].北京:
北京大学出版社,2006.
8马立国.《AD7888与AT89C51单片机接口应用技术》.集成电路通讯,2007(25)