ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:103.85KB ,
资源ID:11179488      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11179488.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子时钟单片机完整版.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子时钟单片机完整版.docx

1、电子时钟单片机完整版烟台南山学院单片机课程设计题目 姓 名: 所在学院 所学专业: 班 级: 学 号: 指导教师: 完成时间: 摘要随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术 的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方也会愈来愈多,因 此,设计开发数字时钟具有良好的应用前景。由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。本设计利 用Atmel公司的AT89S52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路, 应用汇编语言进行软件编程,并用实验板进行演示、验证。在介绍本单片机的发展情况基础上, 说明了本设计实现的功

2、能, 以及实验板硬件情况, 并对各功能电路进行了分析。主要工作放在软件编程上,用实验板实现时间、日期、定时 及它们的设定功能,详细对软件编程流程以及调试进行了说明,并对计时误差进行了分析 及校正,提出了定时音与显示相冲突问题及解决方案。 实验证明效果良好, 可以投入使用。本次仿真设计的目的就是让同学们在理论学习的基础上,通过完成一个涉及 MCS51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够 将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制 电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器 设备的使用

3、技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系 统的开发设计工作打下一定的基础。在本学期的开始我们进行了计算机工程实践,在实践 中我们以微机原理与接口技术课程中所学知识为基础,设计了电子时钟系统。本系统为多 功能数字钟的系统。本设计以单片机 AT89c51为控制核心,选用DS1302串行时钟芯片, RT1602液晶显示器实现液晶显示当前时间、 日期、星期。 本电子时钟具有日期、时、分、秒的显示、调整功能,采用的时间制式为 24 小时制,时间显示格式为时(十位、个位) 、 分(十位、个位)、秒(十位、个位) 。关键词:单片机 AT89S52 电子时钟 汇编语言绪论. 错误!

4、未定义书签1.总体设计 . 错误!未定义书签设计目的 . 错误! 未定义书签总体设计 . 错误! 未定义书签2.硬件设计 . 错误!未定义书签总体接线 . 错误! 未定义书签22 硬件连接 . 错误! 未定义书签3.软件设计 . 错误!未定义书签主程序流程图及程序设计 错误! 未定义书签键盘非法性检测 . 错误!未定义书签断服务程序流程 . 错误!未定义书签4.仿真调试 . 错误! 未定义书签总结. 错误!未定义书签参考文献 . 错误! 未定义书签绪论单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域 中。在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。单

5、片机电子 时钟系统,是利用单片机作为系统的主控制器,采用 AT89S52单片机作为控制核心对时钟芯片DS1302的控制,同时读取时间,并队输入信号作出处理。该单片机具有集成度高, 运算快速快,体积小、运行可靠,价值低廉的特点。鉴于这样的重要性 ,我们打算设计一种基于单片机的电子时钟系统,实现对时间的调整。 本设计以单片机AT89C5伪控制核心,由实时时钟模块,键盘模块组成其中实时时钟采用 DS1302可实现对时间的显示,设置,计时等功能在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常 用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理 想,

6、现在基本上都是基于数字技术的新一代产品,随着单片机性价比的不断提高,新一代 产品的应用也越来越广泛。大则可以构成复杂的工业过程控制系统,完成复杂的控制功能; 小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大、体积小、质量轻、灵 活好用,配以适当的接口芯片,可 以构成各种各样、功能各异的微电子产品。近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不 断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等 特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器, 仪表,数据采集,军工产品以及家用电器等各个领域,单片机往

7、往是作为一个核心部件来 使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。数子时 钟在日常生活中最常见,应用也最广泛。本次设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程 来实现,电路简单明了,系统稳定性高。同时,该时钟系统还具有功耗小、成本低的特点, 具有很强的实用性,而且系统具有一定的可扩展性。1.总体设计设计目的应用单片机控制技术,设计出以89c51单片机为核心的电子时钟,电子时钟能够显示 时、分、秒显示时间的功能,还可以进行时和分的校对,而且其片选的灵活性强。设计一个电子时钟,可以查询日历,可以设置时间,掉电时间不丢失;时钟必须有 定闹功能,

8、定闹设置掉电不丢失。总体设计该电子时钟由89C51, BUTTON1602 LCD液晶屏等构成,采用晶振电路作为驱动 电路,利用单片机内部定时计数器 0通过软件扩展产生的一秒定时,达到时分秒的计时, 六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。闹钟和时钟的时分秒的调节 是由一个按键控制,而另外一个按键控制时钟和闹钟的时间的调节。图1系统结构框图该电子时钟由STC89C51 BUTTOJN1602 LCD液晶屏等构成,采用晶振电路作为驱动 电路,晶振电路的晶振频率为12MHZ使用的定时器/计数器工作方式0,通过软件扩展产 生的一秒定时,达到时分秒的计时,60秒为一分钟,60分钟为一小时

9、,24小时为一天, 又重00:00:00开始计时。没有按键按下时,时钟正常运行,当按下调节时钟按键 K1,就会关闭时钟,当按下闹钟按键 K3时时钟就会进入设置时间界面,但是时钟不会停止工作, 按K2键,就可以对时钟和闹钟要设置的时间进行调整。2.硬件设计总体接线装有UNSPTMID仿真软件的PC机一台,UNSPT十六位单片机实验箱一台8pin排线两 根、短路块若干。本程序用到的实验箱硬件模块为:SPCE061舷心及实验箱中提供的4*4键盘模块和6 位LED数码管显示模块。SPE061A共提供两个16位通用的并行I/O 口: IOA0-IOA15 IOB0-IOB15。两个口的每一位都可以通过编

10、程单独定义为输入或输出口, 本实验采用IOA15 IOA8连接 4*4 键盘,IOA0-IOA7、IOA0 IOA15连接数码管。图总体接线图这部分的主要接线如下:IOA8-15接液晶显示模块DB0-DB7I0B4接液晶显示模块AOI0B5接液晶显示模块的R/WI0B6接液晶显示模块的EPDB0-DB7为双向数据口,A0为数据/使命控制位,R/w为读/写信号,EP是全能端(低 电平有效)要这部分工作时Key接线与IOA低八位相连就可以了。本实验中,定义每个键的功能,包括数字键、功能键和一些保留键,其中标“ 0-9 ”为数字键,标“ F2-F4”为保留键,标“ F1”为重新设置时间键,标“ EN

11、T为确认键,标“ DEL为删除键。运行程序后,按常规的显示方法,从数码管的第一位开始显示,六位 数码管一次显示时、分、秒的十位、个位。设置错误按 DEL键即可重新设置,设置完成按ENT,重新设置按F1键。2. 2硬件连接利用4*4键盘和6位LED数码管分别与SPCE061A单片机IOA 口、IOB 口的相关引脚相 接,IOA0IOA7连接和6位数码管的ag、dp,IOA 口的高八位IOA15IOA8连接4x4键盘 的L1L4 C1C4 IOB15IOB12连接数码管的位信号14,IOB2IOB1连接数码管的位信 号56,IOB0连接数码管的分隔符信号 DD几把JP4、JP5的引脚全部用跳线短接

12、起来, 用一根排线连接J27和JP7。时间的设置可以通过4*4键盘的数字键来完成,时间的显示 通过6位数码管来完成,以实现计时的功能。硬件连接图如下:IOAOIOA1IOA2IOA3IOA4IOA14IOA5IOA13IOA6IOA12IOA7SPCE061AIOB15IOA11图硬件接线图3.软件设计主程序流程图及程序设计本系统软件设计程序主要分为主程序(其中包括键盘非法性检测、时钟数据处理、键 值转换等子模块)、中断服务子程序、键盘子程序、数码管显示子程序及中断定义子程序 主程序对程序框架进行设计在调用各个子程序实现系统时钟的设置及重置功能,下面分别 详细介绍。图主程序流程图主程序代码:#

13、i nclude #i nclude #i nclude 061Atypedef un sig ned char uchar;#define KEY_DEL 11#define KEY_ENT 12#define KEY_F1 13#define YESCarryFlag 1#define ClearCarryFlag 0#define YES In tFlag 1#define ClearI ntFlag 0#defi ne true 1#define false 0 unsigned int INTflag; unsigned int KeyVal; unsigned int KeyDow

14、nTimes; unsigned int KeycodeLED6 ; unsigned int EnterFg ;unsigned int F1flag ;unsigned int secFlag,minFlag,hourFlag; void clockPro(void);unsigned int SetKeyValPro(void);unsigned int KeyDataChange(unsigned int Key_Data); unsigned int g_Data11 = 0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,

15、0x007f,0x006f; int main()unsigned int i;KeyDownTimes = 0; INTflag = 0;EnterFg = 0;i = 0;Key_Init(); DIG_Init(); while(1)KeyVal = Key_Get();KeyVal = KeyDataChange(KeyVal) switch(KeyVal)case KEY_F1: INT_IRQ5(); if(KeyDownTimes=6) KeyDownTimes=0;F1flag = true; EnterFg = false;case KEY_DEL: if (F1flag =

16、 true)if ( KeyDownTimes0) KeyDownTimes-;break; case 0xff:break; case KEY_ENT: if(KeyDownTimes=6)SP_INT_IRQ5(); F1flag = false;EnterFg = true break;default: if(F1flag = true) if(KeyDownTimes6)KeycodeLEDKeyDow nTimes = KeyVal; if(SetKeyValPro()= true)KeyDow nTimes+;break;for(i=0;i6;i+)DIG_Set(i+1,g_Da

17、taKeycodeLEDi); clockPro();F_ClearWatchdog();键盘非法性检测开始X1数字键数字键按下次按下次数为1数为2判断数字键按下 的次数数字键数字键按下次按下次数为3数为4T按下数 字键小 于6时 有效按下数如果前一次字键小按下数字键于3时2,按下的数有效字键小于四才有效数字键按下次数为6返回检测结果图键盘非法性检测子程序流程图void SetKeyValPro(void)un sig ned int SetKeyValPro(void) uchar flag;switch(KeyDow nTimes)case 0 : if(KeycodeLEDKeyDow

18、nTimes3) flag = true; else flag = false; break;case 1: if(KeycodeLEDKeyDow nTimes-1=2 )if(KeycodeLEDKeyDow nTimes5) flag = true;elseflag = false;elseflag = true; break;if(KeycodeLEDKeyDow nTimes6)开始N秒的个位是不是9YN秒的十位是不是5秒的十位加1,个位回零Y秒回零秒的个位加1N分的个位是不是9YN分的十位是不是5分的十位加1,个位回零Y分回零分的个位加1NY时的十位不为2时的个位是不是9YN分的十

19、位加1,个位回零N时的个位是不是3Y时的个位加1时回零返回图时钟数据处理子程序流程图void clockPro(void)while(INTflag=1)INTflag = ClearIntFlag; if(KeycodeLED4 = 5 & KeycodeLED5 = 9) KeycodeLED4 = 0;KeycodeLED5 = 0;secFlag = YESCarryFlag; else if(KeycodeLED5=9)KeycodeLED5= 0; KeycodeLED4+; else KeycodeLED5+; while(secFlag=1)secFlag = ClearCar

20、ryFlag; if(KeycodeLED2 = 5 & KeycodeLED3 =9) KeycodeLED2 = 0;KeycodeLED3 = 0;minFlag = YESCarryFlag; else if(KeycodeLED3=9) KeycodeLED3= 0; KeycodeLED2+;else KeycodeLED3+; while(minFlag=1) minFlag = ClearCarryFlag; if(KeycodeLED0=2 & KeycodeLED1 =3) KeycodeLED0 = 0;KeycodeLED1 = 0;hourFlag = YESCarr

21、yFlag; else if(KeycodeLED1=9) KeycodeLED1= 0; KeycodeLED0+;else KeycodeLED1+;断服务程序流程图IRQ5中断服务程序流程图寄存器入栈保护程序说明:在IRQ5_2HZ中断里定时1s的时间,在IRQ6_TMB中断里调用键盘程序扫 描键盘,而IRQ4的1KHZ中断当中,进行数码管显示的动态扫描。中断服务程序代码:N CLUDE 061ANCLUDENCLUDE.IRAM.PUBLIC sum;.VAR sum=0.PUBLICRQ5;.PUBLIC _IRQ6;xterna IN Tflag;.exter nal F_Key_

22、Sca n.PUBLIC _IRQ4 _IRQ4:push r1,r5 to sp r1 = C_IRQ4_1KHz test r1,PN T_Ctrl jnz L_IRQ4_1KHz r1 = C_IRQ4_2KHz test r1,PN T_Ctrl jnz L_IRQ4_2KHz L_IRQ4_4KHz:call F_DIG_Drive r1 = C_IRQ4_4KHz PNT_Clear = r1 pop r1,r5 from sp retiL_IRQ4_2KHz: P_INT_Clear = r1 pop r1,r5 from sp retiL_IRQ4_1KHz: P_INT_Cl

23、ear = r1 pop r1,r5 from sp retiRQ5:push r1,r4 to sp; r1 =0x0008;test r1,P _IN T_Ctrl; jnz L_4Hz;本系统是通过4*4键盘的数字键来完成时、分、秒的准确计时,通过数码管显示出来。 按确认键完成设置,重置键重新设定时间,删除键删除上一步操作,重新设置。单片机课程设计已经接近尾声,留给我印象最深的不是我最后做成了什么或者我的设 计实现了什么功能,我认为最重要的是设计的过程。因为设计的过程在整个过程中所占时 间最多,锻炼我们的价值也是最大的。设计开始的时候我真的是毫无头绪,甚至有过放弃 的想法,但终于坚持了下

24、来。我明白了要设计一个成功的电路,除了有创新能力之外,必 须要有扎实的知识基础,要熟练地掌握课本上的知识,只有这样才能对试验中出现的问题 进行分析解决。在整个电路的设计过程中,花费时间最多的方案设定,很多就属于那种想 法很好但是要实现非常困难的设计以及超出能力范围的。开始的时候非常着急,但是当选 好了方案后,小组成员的干劲就起来了。同时通过这次对数字秒表的设计与制作,让我了解了设计电路的程序,也让我了解了 关于电子时钟的原理与设计理念。在此次的电子时钟设计过程中,更进一步地熟悉了 SPCE061A单片机芯片的结构及工作原理,提高了自己的自学能力以及团队合作的能力, 这对今后的学习生活有很大的帮

25、助。到实验室连接电路,调试机器也使我受益匪浅。时下大学生普遍缺陷,就是动手能力 差,这次连接电路锻炼了我的动手能力虽然最终的成果不太理想,有些遗憾,但是这也历练了我的承受能力,毕竟在今后走 出校园后的生活不会是一帆风顺的。这样使我们有了类似的经验,在遇到这种情况也不至 于无所头绪。总体来说,通过这次课程设计学习,让我单片机的许多课外知识都有了大概的了解, 也学会了实验箱的使用,这对以后的找工作也是一个优势。这次课程设计学习也是对平时 理论学习的一个检验。更重要的是培养了我对学习的兴趣,开拓了自己的眼界,为以后的 学习打下了好的开端,我受益匪浅。参考文献1.李晓白凌阳16位单片机C语言开发,北京航空航天大学出版社 20062.康华光 电子技术基础 ,华中科技大学电子技术课程组 20053.李广第 单片机基础,北京航空航天大学出版社4.朱兆优等单片机原理与应用 . 北京电子工业出版社 .5.何立民单片机应用系统设计M 北京:北京航空航天大学出版社,1993.6.楼然笛单片机开发M 北京:人民邮电出版社,1994.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1