基于单片机电子时钟设计说明_第1页
基于单片机电子时钟设计说明_第2页
基于单片机电子时钟设计说明_第3页
基于单片机电子时钟设计说明_第4页
基于单片机电子时钟设计说明_第5页
已阅读5页,还剩24页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、广西农业职业技术学院题 目:基于单片机的学 院:信息工程学院专业班级:学 号:姓 名:设计题目:电子时钟设计目的:应用单片机控制技术,以 89c51 单片机为 核心的电子时钟 设计目标:在数码管上显示相应的时间,并通过一个控 制键来实现时间的调整和是否进入省电模式的转换 任务下达时间: 2010 年 3 月 1 日任务完成时间: 2010 年 3 月 11 日指导教师评语:年月日设计成绩:摘要; 该电子时钟由 89C51 , BUTTON ,六段数码管等构成,采用晶振电 路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计 时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天

2、。而电路中 唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码 管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分 钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时 的调节,同样每按一次小时加一并通过一个控制键用来实现时间的调节和是 否进入省电模式的转换。应用 Proteus 的 ISIS 软件实现了单片机电子时钟 系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。关键词: 单片机;电子时钟;键盘控制引言: 1957 年,Ventura 发明了世界上第一个电子表, 从而奠定了电子 时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是

3、基于单片机的 一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过 计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清 零。从而达到计时的功能,是人民日常生活补课缺少的工具。现在高精度的 计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都 采用了石英技术, 因此走时精度高, 稳定性好, 使用方便, 不需要经常调试, 数字式电子钟用集成电路计时时,译码代替机械式传动,用 LED 显示器代 替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时 间的功能,还可以进行时和分的校对,片选的灵活性好。1 设计要求 功能:电子时钟能够显示时、分、秒

4、显示时间的功能,还可以进行时和分的 校对,而且其片选的灵活性强。并且是以单片机为核心来设计的。2 方案论证与对比2 1 单片机的型号选择通过对多种单片机性能的分析,最终认为 89C51 是最理想的电子时钟 开发芯片。89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压, 高性能 CMOS8 位微处理器, 器件采用 ATMEL 高密度非易失存储器制造技 术制造, 与工业标准的 MCS-51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 89C51 是一种高效微 控制器,而且它与 MCS-51 兼容,且具有 4K 字节可编程闪

5、烁存储器和 1000 写 / 擦循环,数据保留时间为 10 年等特点,是最好的选择。2 2 数码管显示工作原理数码管是一种把多个 LED 显示段集成在一起的显示设备。 有两种类型, 一种是共阳型,一种是共阴型。共阳型就是把多个 LED 显示段的阳极接在 一起,又称为公共端。共阴型就是把多个 LED 显示段的阴极接在一起,即 为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极, 又称为负极。通常的数码管又分为 8 段,即 8 个 LED 显示段,这是为工程 应用方便如设计的,分别为 A、B、C、D、E、F、G、DP ,其中 DP 是小 数点位段。而多位数码管,除某一位的公共端会连接

6、在一起,不同位的数码 管的相同端也会连接在一起。即,所有的 A 段都会连在一起,其它的段也是 如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示 两种。静态显示就是数码管的 8 段输入及其公共端电平一直有效。动态显示 的原理是, 各个数码管的相同段连接在一起, 共同占用 8 位段引管线; 每位 数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个 数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。3 系统硬件电路的设计总体硬件原理图如图 1 所示U4XTAL118293031123456XTAL2

7、RSTPSEN ALE EAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617AT89C51图 1 系统电路原理图

8、AT89C51 因为其含一个可擦除的 ROM ,以及其存储数据的时间长度 可达 10 年之久所以选其作为该设计的核心控制部件。3.1 键盘电路设计该设计只用了一个键盘,但实现的功能却是比较完善,减少了硬件资源 的损耗,该键盘可以实现小时和分钟的调节以及控制是否进入省电模式。当 按键按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接 按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续 两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。达到 时间调节的目的。选择的多功能按键如图 2 所示。图 2 多功能控制键3.2 主控模块 89C5189C51 是一个 8

9、 位单片机,片内 ROM 全部采用 FLASH ROM 技术, 晶振时钟为 12MHz 。 89C51 是标准的 40 引脚双列直插式集成电路芯片, 有4个八位的并行双向 I/O 端口,分别记作 P0 、P1 、P2 、P3 。第31 引脚 需要接高电位使单片机选用内部程序存储器; 第 40 脚为电源端 VCC ,接+5V 电源,第 20 引脚为接地端 VSS ,通常在 VCC 和 VSS 引脚之间接 0.1 F 高频滤波电容。4 系统软件设计4.1 系统软件概述在主程序的开始定义了一组固定单元用来存储计数的分、秒、时的存储 单元。在主程序中,对不同的按键进行扫描,实现秒表,时间调整。系统总

10、体流程图如图 3 所示。系统子程序流程图如图 4 所示。5 系统测试本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整程 序、延时程序四大模块。在程序设计过程中,加强了部分软件抗干扰措施, 下面对部分模块作介绍。系统开始仿真的仿真图如图 5 系统仿真图所示。图 5 系统仿真图6 总结通过这次的设计使我认识到本人对单片机方面的知识知道的太少了,对 于书本上的很多知识还不能灵活运用, 尤其是对程序设计语句的理解和运用, 不能够充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要 的存储空间增大。损耗了过多的内存资源。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实

11、践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂 的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活 中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、 生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也 学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队 精神的积极性和重要性有了更加充分的理解。我知道, 今后我的路还是很长, 我要学的东西也有很多。 通过这次实习, 我深刻的认识到计算机专业的路的不平坦, 但我会以一种良好的态度去迎接 每一个挫折和挑战。参考文献1 谢自美电子线路设计实验测试 M 武汉:华中理工大

12、学出版社,1992.2 何立民单片机应用系统设计 M 北京:北京航空航天大学出版社,1993.3 楼然笛单片机开发 M 北京:人民邮电出版社, 1994.4 付家才单片机控制工程实践技术 M 北京:化学工业出版社 2004.3.5 李光才单片机课程设计 实例指导 M 北京:北京航空航天大学出版 社 2004.6 朱定华单片机原理及接口技术实验 M 北京:北方交通大学出版社 2002.11.7 刘湘涛江世明单片机原理与应用 M. 北京 :电子工业出版社 ,2006.附录一 部分程序清单源程序ORG 0000H;程序执行开始地址LJMPSTART;跳到标号 START 执行ORG0003H;外中断

13、 0 中断程序入口RETI; 外中断 0 中断返回ORG000BH;定时器 T0 中断程序入口LJMPINTT0;跳至 INTTO 执行ORG0013H;外中断 1 中断程序入口RETI; 外中断 1 中断返回ORG001BH;定时器 T1 中断程序入口LJMPINTT1;跳至 INTT1 执行ORG0023H;串行中断程序入口地址RETI; 串行中断程序返回START: MOVR0,#70H;清 70H-7AH 共 11 个内存单元MOV R7,#0BH ;CLEARDISP: MOV R0,#00H ;INCR0 ;DJNZR7,CLEARDISPMOV20H,#00H;清 20H (标志

14、用)MOV7AH,#0AH;放入熄灭符 数据MOVTMOD,#11H;设 T0 、T1 为 16 位定时器MOVTL0,#0B0H;50MS定时初值( T0 计时用)MOVTH0,#3CH;50MS定时初值MOVTL1,#0B0H;50MS定时初值( T1 闪烁定时用)MOVTH1,#3CH;50MS定时初值SETBEA;总中断开放SETBET0;允许 T0 中断SETBTR0;开启 T0 定时器MOV R4,#14HSTART1: LCALL DISPLAYJNB P3.7,SETMM1SJMP START1SETMM1:LJMP SETMMINTT0: PUSHACCPUSH PSWCLR

15、 ET0CLR TR0MOV A,#0B7HADD A,TL0MOV TL0,AMOV A,#3CHADDC A,TH0 ;MOV TH0,ASETB TR0DJNZ R4, OUTT0ADDSS: MOV R4,#14HMOV R0,#71H;1 秒定时用初值(50MS 20 );调用显示子程序;P3.7 口为 0 时转时间调整程序;P3.7 口为 1 时跳回 START1;转到时间调整程序 SETMM 1 秒计时程序;累加器入栈保护;状态字入栈保护; 关 T0 中断允许; 关闭定时器 T0;中断响应时间同步修正;低 8 位初值修正;重装初值(低 8 位修正值);高 8 位初值修正; 重装初

16、值(高 8 位修正值);开启定时器 T0;20 次中断未到中断退出;20 次中断到( 1 秒)重赋初值ACALL ADD1;调用加 1 程序(加 1 秒操作)MOV A,R3;秒数据放入 A(R3 为 2 位十进制数组合)CLR C;清进位标志CJNE A,#60H,ADDMMADDMM: JCOUTT0; 小于 60 秒时中断退出;指向秒计时单元( 71H-72H )ACALL CLR0;大于或等于 60 秒时对秒计时单元清MOV R0,#77H; 指向分计时单元( 76H-77H )ACALL ADD1; 分计时单元加 1 分钟MOV A,R3; 分数据放入 ACLR C;清进位标志CJN

17、E A,#60H,ADDHHADDHH: JCOUTT0; 小于 60 分时中断退出ACALL CLR0;大于或等于 60 分时分计时单元清MOV R0,#79H; 指向小时计时单元( 78H-79H )ACALL ADD1;小时计时单元加 1 小时MOV A,R3;时数据放入 ACLR C;清进位标志CJNE A,#24H,HOURHOUR: JC OUTT0;小于 24 小时中断退出ACALL CLR0; 大于或等于 24 小时小时计时单元清OUTT0: MOV 72H,76H;中断退出时将分、时计时单元数据移MOV 73H,77H;入对应显示单元MOV 74H,78HMOV 75H,79

18、HPOP PSW;恢复状态字(出栈)POP ACC;恢复累加器SETB ET0;开放 T0 中断RETI;中断返回闪动调时 程 序000;T1 中断服务程序,用作时间调整时调整单元闪烁指示INTT1:PUSHACC ;中断现场保护PUSHPSW ;MOVTL1, #0B0H;装定时器 T1 定时初值MOVTH1, #3CHDJNZR2,INTT1OUT;0.3 秒未到退出中断 (50MS 中断 6 次)MOVR2,#06H;重装 0.3 秒定时用初值CPL02H;0.3 秒定时到对闪烁标志取反JB02H,FLASH1;02H 位为 1 时显示单元 熄灭 MOV72H,76H;02H 位为 0

19、时正常显示MOV73H,77HMOV74H,78HMOV75H,79HINTT1OUT: POPPSW;恢复现场POPACCRETI;中断退出FLASH1:JB 01H,FLASH2 ;01H 位为 1 时,转小时熄灭控制MOV72H,7AH;01H 位为 0 时, 熄灭符 数据放入分MOV73H,7AH; 显示单元( 72H-73H ),将不显示分数据MOV74H,78HMOV75H,79HAJMPINTT1OUT;转中断退出FLASH2:MOV 72H,76H ;01H 位为 1 时, 熄灭符 数据放入小时MOV73H,77H; 显示单元( 74H-75H ),小时数据将不显示MOV74H

20、,7AHMOV75H,7AHAJMPINTT1OUT;转中断退出加1子 程 序ADD1: MOV A,R0;取当前计时单元数据到 ADECR0;指向前一地址SWAPA;A 中数据高四位与低四位交换ORLA,R0; 前一地址中数据放入 A 中低四位ADDA,#01H;A 加 1 操作DAA;十进制调整MOVR3,A;移入 R3 寄存器ANLA,#0FH;高四位变 0MOVR0,A;放回前一地址单元MOVA,R3;取回 R3 中暂存数据INCR0;指向当前地址单元SWAPA;A 中数据高四位与低四位交换ANLA,#0FH;高四位变 0MOVR0,A;数据放入当削地址单元中RET;子程序返回清零程序

21、 ;CLR0:CLR A;清累加器MOVR0,A;清当前地址单元DECR0;指向前一地址MOVR0,A;前一地址单元清 0RET;子程序返回时钟调整程序;当调时按键按下时进入此程序SETMM: CLR ET0;关定时器 T0 中断CLRTR0; 关闭定时器 T0LCALLDL1S; 调用 1 秒延时程序JBP3.7,CLOSEDIS;键按下时间小于 1 秒,关闭显示(省电)MOVR2,#06H;进入调时状态,赋闪烁定时初值SETBET1;允许 T1 中断SETBTR1;开启定时器 T1SET2:JNB P3.7,SET1;P3.7 口为 0(键未释放) ,等待SETB00H;键释放,分调整闪烁

22、标志置 1SET4:JB P3.7,SET3;等待键按下LCALLDL05S; 有键按下,延时 0.5 秒JNBP3.7,SETHH;按下时间大于 0.5 秒转调小时状态MOVR0,#77H; 按下时间小于 0.5 秒加 1 分钟操作LCALLADD1;调用加 1 子程序MOVA,R3;取调整单元数据CLRC;清进位标志CJNEA,#60H,HHH;调整单元数据与 60 比较HHH: JCSET4;调整单元数据小于 60 转 SET4 循环LCALLCLR0; 调整单元数据大于或等于 60 时清 0CLRC;清进位标志AJMPSET4; 跳转到 SET4 循环CLOSEDIS:SETB ET0

23、;省电( LED 不显示)状态。开 T0 中断SETBTR0;开启 T0 定时器(开时钟)CLOSE:JB P3.7,CLOSE; 无按键按下,等待。LCALLDISPLAY;有键按下,调显示子程序延时削抖JBP3.7,CLOSE;是干扰返回 CLOSE 等待LJMPSTART1;返回主程序( LED 数据显示亮)SETHH:CLR 00H;分闪烁标志清除(进入调小时状态)SETHH1: JNB P3.7,SET5;等待键释放SETB01H;小时调整标志置 1SET6:JB P3.7,SET7;等待按键按下LCALLDL05S; 有键按下延时 0.5 秒JNBP3.7,SETOUT; 按下时间

24、大于 0.5 秒退出时间调整MOVR0,#79H; 按下时间小于 0.5 秒加 1 小时操作LCALLADD1;调加 1 子程序MOVA,R3CLRCCJNEA,#24H,HOUU; 计时单元数据与 24 比较HOUU:JC SET6;小于 24 转 SET6 循环LCALLCLR0; 大于或等于 24 时清 0 操作AJMPSET6; 跳转到 SET6 循环WAITH:JNBP3.7,WAITH;等待键释放SETOUT: JNB P3.7,SETOUT1 ; 调时退出程序。等待键释放LCALLDISPLAY;延时削抖JNBP3.7,SETOUT; 是抖动,返回 SETOUT 再等待CLR01H;清调小时标志CLR00H;清调分标志CLR02H;清闪烁标志CLRTR1;关闭定时器 T1CLRET1; 关定时器 T1 中断SETBTR0;开启定时器 T0SETBET0;开定时器 T0 中断(计时开始)LJMPSTART1;跳回主程序SET1:LCALLDISPLAY ; 键释放等待时调用显示程序(调分)AJMPSET2;防止键按下时无时钟显示SET3:LCALLDISPLAY ; 等待调分按键时时钟显示用AJMPSET4SET5:LCALLDISPLAY ; 键释放等待时调用显示程序(调小时)AJMPSET

温馨提示

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

最新文档

评论

0/150

提交评论