计时时钟终极版

上传人:仙*** 文档编号:114258588 上传时间:2022-06-28 格式:DOC 页数:20 大小:382KB
收藏 版权申诉 举报 下载
计时时钟终极版_第1页
第1页 / 共20页
计时时钟终极版_第2页
第2页 / 共20页
计时时钟终极版_第3页
第3页 / 共20页
资源描述:

《计时时钟终极版》由会员分享,可在线阅读,更多相关《计时时钟终极版(20页珍藏版)》请在装配图网上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流计时时钟终极版.精品文档.燕山大学课程设计说明书 课程名称 单片机原理及应用 题 目 计时电子钟 学院(系) 电气工程学院 年级专业 2012级检测技术与仪器1班 学 号 120103020100 学生姓名 吴梦娟 指导教师 吴希军 教师职称 副教授 燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位:仪器科学与工程系 学 号120103020100 学生姓名吴梦娟 专业(班级)12级检测1班 设计题目计时电子钟设计技术参数 设计一个具有时分秒显示的实时时钟,时分之间、分秒之间有冒号显示,并随秒信号闪烁,通过键盘可以修正时间。

2、设计要求设计6位数码管和4个发光二极管的显示电路、键盘输入电路;编制相应程序。工作量设计的内容满足课程设计的教学目的与要求,设计题目的难度和工作量适合学生的知识和能力状况,工作量饱满。工作计划查阅资料进行设计准备、设计硬件电路、编制程序,编制程序、验证设计、撰写任务书。参考资料单片微型计算机接口技术及其应用 张淑清 国防工业出版社单片机原理及应用技术 张淑清 国防工业出版社单片机应用技术汇编指导教师签字基层教学单位主任签字说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。2015年01月05日 摘要 单片机是集CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。它体积

3、小、成本低、功能强,精度高,稳定性好,使用方便,不需要经常调校,用LED显示器代替指针显示进而显示时间,减小了计时误差,广泛应用于智能产品和工业自动化上。而51系列的单片机是各单片机中最为典型和最有代表性的一种。 本次单片机设计以STC89C51芯片为核心,辅以必要的外围硬件设备,设计了一个计时电子钟,它是由5v直流电流供电。在硬件方面,除了CPU外,用八位LED数码管来进行显示,LED数码管采用的是动态扫描显示。通过LED数码管能够比较准确显示时、分、秒、冒号。通过矩阵键盘S1、S2、S3、S4能完成时间的显示、调节、复位和选位等功能。关键词: STC89C51 LED数码管 矩阵键盘 时间

4、与冒号显示目 录引 言5第1章 计时时钟的原理5第2章 设计方案和选择102.1 计时方案 102.2 显示方案 11第3章 计时时钟系统设计 153.1 总体设计 5 3.11 系统总体说明 53.12 系统框图53.2 硬件部分设计 6 3.21 时钟电路模块 3.22 单片机系统模块 3.23 动态数码管模块 63.24 键盘按键模块73.3 软件部分设计 8 3.31 主程序模块83.32 定时中断子程序模块8 3.33 按键模块3.34 显示模块10第4章 调试分析及说明第5章 心得体会 23参考文献 23附录 I 总电路图 23附录 II 程序清单 23燕山大学课程设计评审意见表

5、23引言 随着科学技术的不断发展 , 人们对时间计量的要求越来越高 。在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。本作品是以STC89C51单片机 作为主控芯片,使用 12MHZ的晶振,时间精确。软件部分以C语言为主体,用8位LED数码管显示输出信息,输出信息量多,更直观、人性化。该时钟可实现人机交互,可通过提供的键盘对其进行调整。系统具有以下功能:时、冒号、分、冒号、秒显示,采用24小时模式。本次设计的电子时钟系统由单片机最小系统,LED数码管,内部时钟,调整按键,电源五大部分组成。第1章 计时时钟原理 该电子时钟由STC89C51, 44键盘,八位数码管等构成,由

6、内部定时器T0产生一秒定时达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,二十四小时为一天,而按键S3具有暂停功能;按键S4具有选位功能,按下S4由按下次数不同,可以实现对时、分、秒各位选中的功能;按键S1具有调节功能,按下S1使选中的时、分或秒增加显示的数值;按键S2可以使正在调节中的显示恢复,总之,通过键盘可以直接达到修改时间的目的。第2章 设计方案的选择本次设计时钟电路,使用了STC89C51单片机芯片控制电路,单片机芯片控制电路单且省去了很多复杂的线路,使得电路简明易懂,使用键盘上的按键来调整时钟的时、分、秒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过三个模

7、块:键盘、芯片、数码管显示即可以满足设计要求。2.1计时方案方案1:采用实时时钟芯片现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。方案2:使用单片机内部的可编程定时器。利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,但程序设计较为复杂。由于实验条件的限制,本设计采用STC89C51内部定时的可编程定时器。2.2 显示方案对于实时时钟而言

8、,显示显然是另一个重要的环节。通常数码管显示有两种方式:静态显示和动态显示。方案一:静态显示静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但占有I/O口线多,每一个数码管引脚都要占有一个I/O口,硬件开销大,电路复杂,程序编写比较麻烦。方案二:动态显示数码管动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。本系统需要采用8位LED数码管来分别显示时、冒号、分、冒号、秒,因数码管个数较多,故本系统选择动态显示方式。第3章 计时时钟系统设计3.1 总体设计 3.11 系统总体说明 利用单片机ST

9、C89C51制作简易计时时钟,由8位LED数码管分别显示小时十位、小时个位、冒号、分钟十位、分钟个位、冒号、秒钟十位、秒钟个位。按键S3具有暂停和启动功能;按键S4具有选位功能,由按下S4的次数不同选择的标志位不同,可以实现对时、分、秒各位选中的功能;按键S1具有调节功能,按下S1使选中的时、分或秒增加显示的数值;按键S2可以使正在调节中的显示恢复,总之,通过键盘可以直接达到修改时间的目的。3.12 系统框图图 1 总设计框图3.2 硬件部分设计 3.21 时钟电路模块单片机利用外部12MHZ晶振构成振荡电路作为时钟源,利用MCS-51内部的振荡电路,并在和两引脚间外接晶体以及电容和构成的并联

10、谐振电路,使内部振荡器产生自激振荡。组成时钟电路的晶体振荡器的频率大小决定了单片机系统的工作频率,即决定着单片机的工作速度,可以在之间,本设计选用的晶振。晶体电容和可以在之间选择,本设计选取电容,电容的大小对振荡频率有微小影响,可起频率微调作用。内部方式时钟电路的原理如下图。图 2 时钟电路图 3.22 单片机系统模块 主CPU电路选用STC89C52RC系列单片机,STC89C52RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-

11、51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C52RC系列单片机是单时钟/机器周期 (1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/精简指令集结构,内部集成MAX810 专用复位电路。外形及引脚排列如下图:图 3 单片机外形及系统图 3.23 动态数码管模块V0 (a) (b)图 4 数码管(a)外形和引脚图(b)共阴极机构数码管(1) 数码管工作原理共阴极数码管的8

12、个发光二极管的阴极(二极管负端)连接在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。(2) 数码管字形编码 要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。字型码各位定义为:数据线D0与a字段对应,D1与b字段对应,依此类推。使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮。如要显示“0”,共阴极数码管的字型编码应为:001111

13、11B(即3FH)。依此类推。3.24 键盘按键模块矩阵键盘按键处理设置为:当有没键按下时,时钟正常运行;当按一次S3,时钟停止走动;当S4按下1次时,按S1对秒进行调整,当S4按下2次时,按S1 对分进行调整,当S4按下3次时,按S1对小时进行调整;当按下S2时,校时完毕,时钟按设定的时间进行正常走时。电路图如下图图 5 键盘引脚连线3.3 软件部分设计根据上述电子时钟的工作流程,软件设计可分为以下几个功能模块3.31 主程序模块 主程序主要用于系统初始化:设置8051的工作方式、定时器的工作方式和计数初值等参数。主程序流程如下图所示:图 6 主程序图3.32 定时中断子程序模块系统使用12

14、MHz的晶振,定时器T0工作在方式1则定时器的最大定时时间是,远远小于1s。因此本系统采用定时器与软件循环相结合的定时方法。设定时器T0工作在方式1,即16位的计数器,TL1作为低8位,TH1作为高8位,定时器50000us中断一次,所以定时常数的设置可按一下方法计算: 机器周期=1212MHz=1us (65536-)1us=50000us =15536,即TH0=3CH;TL0=B0H,然后对50000us中断次数计数20次就是1秒钟。上述过程重复60次为1分,分计数60次为1小时,小时计数24次则时间重新回到00:00:00。经过测试,定时器T0重装的计数初值设为3CB0H,可以满足精度

15、要求。另外,MCS-51单片机只有二进制加法指令,而时间是十进制递增,因此用加法指令后必须进行二十进制转换,T0中断服务程序流程图如图5所示。图7 定时中断服务程序流程图 3.33 按键模块 (1)矩阵键盘动态扫描工作原理: 行扫描法:行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法. 判断键盘中有无键按下:将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。 判断闭合键所在的位置:在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线

16、置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 8051单片机的P1口用作键盘I/O口,键盘的行线接到P1口的低4位,键盘的列线接到P1口的高4位。把行线P1.0-P1.3设置为输出线,行线P1.4-P.17设置为输入线。4根行线和4根列线形成16个相交点。 1、检测当前是否有键被按下。检测的方法是P1.0-P1.3输出全“0”,读取P1.4-P1.7的状态,若P1.4-P1.7为全“1”,则无键闭合,否则有键闭合。 2、去除键抖动。当检测到有键按下后,延时一段时

17、间再做下一步的检测判断 3、若有键被按下,应识别出是哪一个键闭合。方法是对键盘的列线进行扫描。P1.0-P1.3按下述4种组合依次输出: P1.0 1 1 1 0 P1.1 1 1 0 1 P1.2 1 0 1 1 P1.3 0 1 1 1 在每组列输出时读取P1.4-P1.7,若全为“1”,则表示为“0”这一列没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值 (2)按键去抖动 为保证CPU对键的闭合做一次且仅做一次处理,必须去除抖动,在键的稳定闭合或断开时读键的状态,并判断出键由闭合到释放时,再作键输入处理。 软件上采取的措

18、施是:在检测到有按键按下时,执行一个10ms的延时程序后,再确认该按键电平是否仍保持闭合状态电平。若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也用相同的步骤进行确认,从而可清除抖动的影响。3.34 显示模块该模块完成时、冒号、分、冒号、秒8位数码管的动态显示。首先,通过P2.0,P2.1,P2.2口外接74HC138译码器对8位数码管进行位选,即当P2.0,P2.1,P2.2分别为000;001;010;011;100;101;110;111时对应数码管1,2,3,4,5,6,7,8,然后再通过对P0口赋值对数码管进行段选进而显示时间, 为保证数码管端口的电平为TT

19、L逻辑,P0口外接上拉电阻再接数码管,当按下S4键后,选择时、分、秒;按下S1时,修改当前时间,P1口输出电平控制整个计时时钟的时间调节。电路图如下图:图 8 数码管显示电路图图9 显示程序流程图第4章 调试分析及说明1、始终正常运行调试仿真图图 10 正常运行仿真图2、时间调整仿真图 11 未调整前仿真图图 12 调整秒仿真图图 13 调整分仿真图图 14 调整小时仿真图第5章 心得体会一周的课程设计终于做完了,通过此次课程设计,我学到了很多东西,更加扎实的掌握了有关单片机方面的知识,在设计过程中遇到过很多困难,但经过一次又一次的思考,查阅资料,向老师同学请教,最终都解决了。同时,这次课程设

20、计也暴露了我在这方面的知识欠缺和经验的不足,提醒我在以后的学习中要更加仔细、认真,用心去学,要学以致用,才能更好的掌握所学的知识。其次,这次课程设计让我感受到了我对所学习的内容是多么的不熟练,在设计过程中总是需要翻书,还总是会出现问题,同时这些问题也提醒了我那些地方没学好,加深了对这部分知识的印象。这次的课程设计还让我熟练掌握了isis仿真,keil,isio等软件,我想在我以后的学习和工作中,这都将为我提供一定的优势和便利。课程设计不仅仅是一门专业课,同时也是一门提升自我综合能力的课程,给了我莫大的发展空间,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高;更重要的是,在课程

21、设计中,我们学会了很多学习的方法,而这些都将为日后做准备,会使我们终身都受益匪浅。面对社会的挑战,只有不断的学习、实践,再学习、再实践,才能在最大程度上发掘自己。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。参考文献(1)张淑清单片微型计算机接口技术及其应用国防工业出版社(2)张淑清单片机原理及应用技术国防工业出版社(3)单片机应用技术汇编附录 I 总电路图附录 II 程序清单#include#include#define uint unsigned int #define uchar unsigned charuint count

22、,shi,fen,miao,flag; / count计数flag标志位uchar code tablea=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delays(uint xms) /1ms延时 uint a,b; for(a=xms;a0;a-) for(b=148;b0;b-);void key()/按键扫描 uchar temp; P1=0xfe; temp=P1; temp=temp&0xf0; if(temp!=0xf0) delays(10);temp=P1;temp=temp&0xf0;if(temp!=0xf

23、0) temp=P1; switch(temp) case 0xee:switch(flag) case 1:miao+; if(miao=60) fen+;miao=0;if(fen=60) fen =0; shi+; break; case 2:fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; break; case 3:shi+; if(shi=24) shi=0; break;break;case 0xde:flag=0;break;case 0xbe:TR0=TR0;break;/定时器中断case 0x7e:flag+; if(flag

24、=4) flag=1; break; while(temp!=0xf0) temp=P1;temp=temp&0xf0;void time() /定时器初始化 TMOD=0X01;/定时器模式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;void time0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+; if(count=20) miao+;count=0;if(miao=60) miao=0; fen+; if(fe

25、n=60) shi+;fen=0;if(shi=24) shi=0;void display() /数码管显示 if(miao%2) P2=7; P0=tableamiao%10; delays(2); P2=6; P0=tableamiao/10; delays(2); P0=0X09;P2=5;delays(1); P2=4; P0=tableafen%10; delays(2); P2=3; P0=tableafen/10; delays(2);P0=0X09;P2=2;delays(1); P2=1; P0=tableashi%10; delays(2); P2=0; P0=table

26、ashi/10; delays(2); if(miao%2=0) P2=7; P0=tableamiao%10; delays(2); P2=6; P0=tableamiao/10; delays(2); P0=0X00; P2=5; delays(1); P2=4; P0=tableafen%10; delays(2); P2=3; P0=tableafen/10; delays(2); P0=0X00; P2=2; delays(1); P2=1; P0=tableashi%10; delays(2); P2=0; P0=tableashi/10; delays(2);void main(

27、) uint p,q; time(); while(1) key(); display();while(flag=1) for(p=0;p10;p+) display();key(); for(q=0;q10;q+) key();P2=7; P0=0; delays(2); P2=6; P0=0; delays(2); P2=5; P0=0x40; delays(2); P2=4; P0=tableafen%10; delays(2); P2=3; P0=tableafen/10; delays(2); P2=2; P0=0x40; delays(2); P2=1; P0=tableashi%

28、10; delays(2); P2=0; P0=tableashi/10; delays(2);while(flag=2) for(p=0;p10;p+) display();key(); for(q=0;q10;q+) key();P2=7; P0=tableamiao%10; delays(2); P2=6; P0=tableamiao/10; delays(2); P2=4; P0=0; delays(2); P2=3; P0=0; delays(2); P2=1; P0=tableashi%10; delays(2); P2=0; P0=tableashi/10; delays(2);

29、while(flag=3) for(p=0;p10;p+) display();key(); for(q=0;q10;q+) key();P2=7; P0=tableamiao%10; delays(2); P2=6; P0=tableamiao/10; delays(2); P2=4; P0=tableafen%10; delays(2); P2=3; P0=tableafen/10; delays(2); P2=1; P0=0; delays(2); P2=0; P0=0; delays(2);燕山大学课程设计评审意见表指导教师评语:该生学习态度 (认真 较认真 不认真) 该生迟到、早退现象 (有 无)该生依赖他人进行设计情况 (有 无)平时成绩: 指导教师签字: 2014 年 月 日图面及其它成绩:答辩小组评语:设计巧妙,实现设计要求,并有所创新。 设计合理,实现设计要求。 实现了大部分设计要求。 没有完成设计要求,或者只实现了一小部分的设计要求。 答辩成绩: 组长签字: 2014 年 月 日课程设计综合成绩:答辩小组成员签字: 2014年 月 日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!