收藏 分享(赏)

单片机电子钟 2.doc

上传人:cjc2202537 文档编号:7008025 上传时间:2019-04-30 格式:DOC 页数:11 大小:181KB
下载 相关 举报
单片机电子钟 2.doc_第1页
第1页 / 共11页
单片机电子钟 2.doc_第2页
第2页 / 共11页
单片机电子钟 2.doc_第3页
第3页 / 共11页
单片机电子钟 2.doc_第4页
第4页 / 共11页
单片机电子钟 2.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、单片机原理及应用课程设计任务书 14系(部):电信系 专业: 指导教师:课题名称 数码管显示电子钟设计设计内容及要求1、课题内容:设计一种基于 AT89S52单片机的数码管显示电子时钟,要求如下:(1) 、能正确显示时间,时钟由数码管显示,显示格式为:XX 小时XX 分XX 秒。(2) 、时间能够由按键调整,误差小于 1S。(3) 、闹钟功能:时间运行到与闹钟设定时间时,闹钟响(持续响 5秒) 。(4) 、报时功能:时间运行到正点时间时,闹钟响,几点钟就响几声(每声持续响 2秒,每两声之间时间间隔 2秒) 。 2、要求:完成该系统的硬件和软件的设计,在 Proteus软件上仿真通过,提交一篇课

2、程设计说明书。设计工作量1、汇编或 C51语言程序设计;2、程序调试;3、在 Proteus上进行仿真成功;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调试过程,参考文献、设计总结等。起止日期(或时间量) 设计内容(或预期目标) 备注第一天 课题介绍,答疑,收集材料,C51 介绍第二天 设计方案论证,练习编写 C51 程序第三天第六天 程序设计第六天第八天 程序调试、仿真进度安排第九天第十天 系统测试并编写设计说明书教研室意见年 月 日系(部)主管领导意见年 月 日目 录摘 要 51、 设计任务与要求 51.1 基本设计任务 51.2 功能要求说明 52、 方

3、案论证与选择 62.1 单片机的型号选择 62.2 控制选择方案 63、 总体设计 63.1 主程序 63.2 显示子程序 83.3 定时闹钟与整点报时程序 93.4 定时器 T0 中断服务程序 93.5 按键功能设置 104、系统主要元件介绍 114.1 AT89C51 单片机的介绍 .114.2 LED 数码管介绍 .115、 仿真及测试 125.1 程序调试及仿真 125.2 程序测试及结果分析 126、程序设计体会 13参考文献 13摘 要该电子时钟由 AT89C51,BUTTON,七段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒

4、为一分钟,六十分钟为一小时,满二十四小时重新计时。而电路中的四个控制键拥有多种不同的功能,可以实现电子钟精确到秒的调整和闹钟的调整,应用 Proteus 的 ISIS 软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。关键词:数码管;单片机;电子钟;键盘控制1、设计任务与要求本任务为:数码管显示电子钟。设计任务具体内容如下:1.1 基本设计任务依据命题题意,本设计采用 AT89C51 进行 24 小时计时并用数码管显示。要求其显示时间范围是 00:00:0023:59:59,具备有时分秒校准功能。电子钟上面要带有闹钟,闹钟与时钟之间能随时切换,闹钟具备时分秒设

5、置功能。1.2 功能要求说明设计一个具有特定功能的电子钟。该电子钟具有设定闹钟(持续响 5 秒) ,及整点报时功能。时间运行到正点时间时,闹钟响,几点钟就响几声(每声持续响 2 秒,每两声之间时间间隔 2 秒) 。2、方案论证与选择2.1 单片机的型号选择通过对多种单片机性能的分析,最终认为 AT89C51 是最理想的电子时钟开发芯片。AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能 CMOS8 位微处理器,器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个

6、芯片中,ATMEL 的 AT89C51是一种高效微控制器,而且它与 MCS-51 兼容,且具有 4K 字节可编程闪烁存储器和 1000 写/擦循环,数据保留时间为 10 年等特点,是最好的选择。2.2 控制选择方案直接加减:使用 7 按键,1 按键切换闹钟,6 按键对时分秒分别加减,控制方式相当简单,但需要较多按键与 I/O 口,功能一般,成本较高。矩阵键盘:使用 16 按键对时分秒直接设置,能最为灵活的对数字钟进行设置,功能强大,但控制方式相对困难,成本较高,需要较多按键与 I/O 口。换位加减:使用 4 按键,1 键切换闹钟,1 键换位,另两键加减,控制方式相对简单,占用 I/O 口少,成

7、本低廉,但功能一般。经过反复比较,在 3 种方案中选取了第 3 种换位加减,此方案成本低,功能已经足够满足电子钟的需要,而且硬件软件均比较简单。3、总体设计3.1 主程序设计中计时采用定时器 T0 中断完成。主程序循环调用显示子程序和查键,当端口有开关按下时,转入相应的功能程序。流程图如图 3-1 所示。图 3-1 主程序流程/*主函数*/void main(void)TMOD=0x11; /time0 为定时器,方式 1TH0=0x3c; /预置计数初值,50msTL0=0xb0;TH1=(65535-50000)/256;TL1=(65535-50000)%256;EA=1; /总中断开E

8、T0=1; /允许定时器 0 中断TR0=1;ET1=1;TR1=1;buzz=0; /开启定时器 0while (1)keyscan(); /按键扫描dinshi(); /定时闹钟 switch(temp2) /显示时间case 0:display(hour1,minite1,seconde1);break;case 1:display(hour2,minite2,seconde2);break; 3.2 显示子程序显示子程序每次显示 6 个连续内存单元的十进制 BCD 码数据。由于采用 7 段共阳 LED数码管动态扫描实现数据显示,显示十进制 BCD 码数据对应段码存放在 ROM 中。显示

9、时取内存地址中数据,然后查表得对应显示段码从 P0 口输出,P2 口将为对应的数码管供电,于是数码管就会显示该地址单元的数据。void display(uchar hour,uchar minite,uchar seconde) /*显示子程序*/uchar h1,h2,m1,m2,s1,s2;s2=seconde/10;s1=seconde%10;m2=minite/10;m1=minite%10;h2=hour/10;h1=hour%10;P2=0XFE; /1111 1110if(temp1=1) /功能选项,通过点提醒来调节相应位的时间P0=dispcodes1|0x80; /点提醒e

10、lseP0=dispcodes1;/秒个位delay(1);P2=0XFD;/1111 1101P0=dispcodes2;/秒十位delay(1);P2=0XFB; /1111 1011P0=dispcode10;/间隔符 -delay(1);P2=0XF7; /1111 0111if(temp1=2)/P0=dispcodem1|0x80;elseP0=dispcodem1;/分个位delay(1);P2=0XEF; /1110 1111 P0=dispcodem2;/分十位delay(1);P2=0XDF; /1101 1111P0=dispcode10;/间隔符 -delay(1);P

11、2=0XBF; /1011 1111if(temp1=3)P0=dispcodeh1|0x80;/时个位elseP0=dispcodeh1;delay(1);P2=0X7F; /0111 1111P0=dispcodeh2;/时十位delay(1);3.3 定时闹钟与整点报时程序void dinshi( ) /*定时闹钟 */ uint i; if(hour1=hour2i20;i+)buzz=1;buzz=0;void zhengdian (void)/*整点报警*/if(seconde1=0flag=1; /标记buzz=1;3.4 定时器 T0 中断服务程序定时溢出中断周期设为 50MS

12、,中断进入后先进行定时中断初值校正,当中断累加到 20次时,对秒计数单元进行加 1 操作。时钟最大计时值为 23 时 59 分 59 秒。#7FH 存放“熄灭符”数据,用于时间调整时的闪烁功能。在计数单元中,采用十进制 BCD 码计数,满十进位。在程序中采用 12MHZ 晶振频率,精度为 1MS,定时初值为 50MS,用循环程序进行 20 次循环可到 1S。当 1S 到时调用加 1 程序并判断秒、分是否为 60,当秒为 60 时,秒清零,分加 1;当分为 60 时,分清零。终端结束时,分时计时单元数据移入对应显示单元。void timer0(void) interrupt 1 /定时器 0 方

13、式 1,50ms 中断一次TH0=0x3c; /手动加载计数脉冲次数TL0=0xb0;mstcnt+;zhengdian(); /用于计算时间,每隔 50ms 加 1if(mstcnt=20) /mstcnt 满 20 即为一秒seconde1+; /秒+1time_pro( ); /时间处理mstcnt=0; /对计数单元的清零,重新开始计图 3-4 定时器 T0 中断服务流程图3.5 按键功能设置电子时钟设置 4 个按键通过程序控制来完成电子时钟的时间调整。调整时钟时只设计了加键、减键、模式键、闹钟键。K1 键为模式设置;k2 键加一键;K3 键减一键;k4 键闹钟设置键。(1) 、k1

14、键:模式设置键,直接按下模式键时可以调节时间,多次按键时,调节在秒、分、时之间变换。(2) 、k2 键:进入模式后,调节位出现一个标志点,按一下 k2 键则该位加一。同理,按下 k3 键该位减一。(3) 、k4 键:按下 k4 键,数码管显示程序既定的闹钟时刻,按下模式键,出现标志点后按 k2、k3 调节闹钟。4、系统主要元件介绍4.1 AT89C51 单片机的介绍AT89C51 单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器(CPU) 、数据存储器(RAM)、程序存储器(ROM)、并行 I/O 口(4 个 8

15、位 I/O 口)、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是微处理器(CPU)加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式,以实现不同的功能。AT89C51 单片机如图 4-1 所示。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RX

16、D10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U4AT89C51图 4-1 单片机4.2 LED 数码管介绍LED 数 码 管 实 际 上 是 由 七 个 发 光 管 组 成 8 字 形 构 成 的 , 加 上 小 数 点 就 是 8 个 。这 些 段 分 别 由 字 母 a,b,c,d,e,f,g,dp 来 表 示 。 当 数 码 管 特 定 的

17、段 加 上 电 压 后 , 这 些特 定 的 段 就 会 发 亮 , 以 形 成 我 们 眼 睛 看 到 的 字 样 了 。 如 : 显 示 一 个 “2”字 , 那 么 应当 是 a 亮 b 亮 g 亮 e 亮 d 亮 f 不 亮 c 不 亮 dp 不 亮 。 LED 数 码 管 有 一 般 亮 和 超 亮 等 不同 之 分 , 也 有 0.5 寸 、 1 寸 等 不 同 的 尺 寸 。 小 尺 寸 数 码 管 的 显 示 笔 画 常 用 一 个 发 光 二极 管 组 成 , 而 大 尺 寸 的 数 码 管 由 二 个 或 多 个 发 光 二 极 管 组 成 ,一 般 情 况 下 , 单 个

18、 发 光 二 极 管 的 管 压 降 为 1.8V 左 右 , 电 流 不超 过 30mA。 发 光 二 极 管 的 阳 极 连 接 到 一 起 连 接 到 电 源 正 极 的称 为 共 阳 数 码 管 , 发 光 二 极 管 的 阴 极 连 接 到 一 起 连 接 到 电 源负 极 的 称 为 共 阴 数 码 管 。 常 用 LED 数 码 管 显 示 的 数 字 和 字 符是 0、 1、 2、 3、 4、 5、 6、 7、 8、 9、 A、 B、 C、 D、 E、 F。ED 的 7 段数码管利用单只 LED 组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出 0-9

19、的数字。在这次的设计中采用的均是共阴极的 LED 显示,当 I/O 口输出为高电平的时候,对应段就被点亮。图 4-2 LED 数码管5、仿真及测试5.1 程序调试及仿真本程序通过Keil单片机开发平台实现程序的编译,链接,生成HEX文件。程序再编译过程中可以发现错位,并及时改正,在设计时非常重要,使错误被扼杀在摇篮中。通过Keil和硬件仿真平台Proteus的联合,可以将设计效果仿真出来,根据效果,有目的的改变设计,优化程序。仿真图如下:图 5-1 电子钟仿真图5.2 程序测试及结果分析测试步骤:1) 加载程序。2) 设定闹钟为 05:01:00,并试听闹钟是否准确。3) 试听每次整点报时是否

20、准确。4) 试验各按键功能是否正常。测试结果如下闹钟与整点报时功能均正确无误,各按键功能均正常。测试结果分析通过对测试数据的分析,可以看出,数字钟能实现时钟计时,并带有闹钟与整点报时功能,即数字钟已经实现了题目所给出的所有要求。6、程序设计体会通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,尤其是对程序设计语句的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。损耗了过多的内存资源。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学

21、的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。我知道,今后我的路还是很长,我要学的东西也有很多。通过这次实习,我深刻的认识到计算机专业的路的不平坦,但我会以一种良好的态度去迎接每一个挫折和挑战。参考文献1 谢自美电子线路设计实验测试M武汉:华中理工大学出版社,1992.2 何立民单片机应用系统设计M北京:北京航空航天大学出版社,1993.3 楼然笛单片机开发M北京:人民邮电出版社,1994.4 付家才单片机控制工程实践技术M北京:化学工业出版社 2004.3.5 李光才单片机课程设计 实例指导M 北京:北京航空航天大学出版社 2004.6 朱定华单片机原理及接口技术实验M北京:北方交通大学出版社 2002.11.7 刘湘涛江世明单片机原理与应用M. 北京:电子工业出版社,2006.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报