基于单片机控制的时钟控制器_第1页
基于单片机控制的时钟控制器_第2页
基于单片机控制的时钟控制器_第3页
基于单片机控制的时钟控制器_第4页
基于单片机控制的时钟控制器_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理与应用技术课程设计报告(论文)基于单片机控制的时钟控制器专业班级: 姓 名: 时 间: 指导教师: 2015年12月18日基于单片机控制的时钟控制器课程设计任务书1.设计目的与要求设计出一个基于单片机控制的时钟控制器。通过向单片机输入不同的指令可以实现24小时制时钟的基本显示和连续的调时,调分和调秒的功能,同时又扩展了整点报时功能。该电路硬件较为简单、计时精度高、可控性好,可以随时调整和设定时间,并且调时间的误差小,操作简单、通用性强。(一) 基本功能(1)显示: 可以显示时、分和秒(2)调时功能:时(0-24)、分和秒(0-60)可以连续可调(二)性能 时间日误差< 2秒(三

2、)扩展功能(1)增加整点报时功能(2)增加闹钟任意设定功能2设计内容 (1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)SCH文件生成与打印输出;3编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。4.答辩在规定时间内,完成叙述并回答问题。 目录1.引言12. 总体设计方案12.1设计思路12.2方案设计12.3 设计方框图23.设计原理分析23.1外接晶振电路23.2复位电路23.3数码管显示电路33.4键盘控制电路33.5系统设计流程图43.6 Proteus仿真电路43.7单片机程序的编写43.8电路的检测54.结束语5参考文

3、献5附录51.原理图52.PCB图63.参考汇编程序6基于单片机控制的时钟控制器电气000摘要:本STC89C52单片机为控制系统的核心,模型采用单片机作为主控制器,以汇编语言为程序设计的基础,设计的一个用三个二位一体数码管串口显示的时钟控制电路,包含了时钟控制电路的基本功能:数码显示,时间调整,闹钟设定,秒表显示等,按照二十四小时循环,具有调节方便,简单实用,可靠性强的优点,有很高的利用价值。关键词:单片机 STC89C52 共阴数码管 发光二极管 蜂鸣器 Proteus软件 KEIL编译软件 中断 1.引言随着科技的发展,电子技术得到了飞速的发展,尤其是单片机的应用更为普遍。单片机的应用已

4、深入众多技术领域,从军事、工业到家庭日常生活,单片机因体积小、功能强、价格低廉而得到广泛应用。在此基础上,越来越多各式各样的时钟也逐渐走进我们的生活,它们设计精巧、方便、耐用、美观,深得各领域的厚爱。随着科技的进步,基于单片机控制的时钟控制器的出现则打破了人们对时钟的传统概念,因为数字时钟不仅可以通过数字直观地显示出时间,还可以定时发出各种声、光、电信号,以启动各种设备实现实时控制、时间顺序控制。该课程设计既有一般时钟的基本显示和调整功能,同时又增加了整点报时功能,复位功能及实时时钟控制功能。2. 总体设计方案2.1设计思路本设计采用单片机STC89C52为控制核心,来控制数码管显示电路来进行

5、数码显示,外围电路主要有复位电路,键盘控制电路,显示电路,蜂鸣电路组成;复位电路可及时的对单片机进行复位,恢复到初始的状态,定时电路对闹钟进行定时,显示电路可以显示时间,键盘控制电路可进行时、分、闹钟进行设置调整,蜂鸣电路可对闹钟到点时进行报警。该电路硬件较为简单、计时精度高、可控性好,可以随时调整和设定时间,并且调时间的误差小,操作简单、通用性强。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。本设计由单片机STC89C52芯片和3个两位一体的共阴

6、极的数码管为核心,辅以必要的电路,构成了一个单片机时钟控制器。2.2方案设计方案一:采用 FPGA模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:成本高,大材小用。方案二:采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。采用方案二单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。基本要求:1.显示: 可以显示时、分和秒2.调时功能:时(0-24)、分和秒(0-60)可以连续可调并进行校准3.能够完成时间的显示、定时闹钟、整点报时及复位功

7、能2.3 设计方框图键盘控制电路显示电路STC89C52显示电路 复位电路显示电路晶振电路 蜂鸣电路图1 整体设计框图3.设计原理分析3.1外接晶振电路晶振连接电路图如图3,以12MHZ晶振为基准。图2 外接晶振电路连接图XTAL1、XTAL2:XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择,一般选用12MHZ晶振,电容取30PF左右。3.2复位电路图3 复位电路连接图在振荡器运行时,

8、有两个机器周期(24个振荡周期)以上的高电平出现在此引:脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。3.3数码管显示电路图4 数码管显示电路连接图3.4键盘控制电路图5 时钟按键控制电路图通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。按下S4键显示闹钟,松开后显示时间;按下S1键进入时间修改模式,再按S1键时间的时加1,按S3分加1,调整结束后按下S4恢复正常显示;按下S2键进入闹钟修改模式,再按S3键闹钟的时加1,按S3分加1,调整结束后按下S4恢

9、复正常显示。在按键按下和放开时会出现抖动现象。通过延时程序,可以进行去抖动设计。3.5系统设计流程图设计流程图如2图所示:图6 系统设计流程图3.6 Proteus仿真电路图7 Proteus仿真电路图3.7单片机程序的编写用KEIL编译软件进行程序的设计、编译并生成可执行文件。3.8电路的检测电路连接完毕后,应用单片机程序烧录工具进行程序烧录,然后单击运行按钮进行仿真,检测电路是否有误。4.结束语经过三周的实习设计,我设计的时钟控制器实现了它最基本功能, 三个星期的紧张实习,让我获益非浅,更加熟练的掌握了Proteus软件、KEIL软件及CAD软件的应用,使我看到了自己专业知识的浅薄与不足。

10、通过本次的课程设计,我对单片机这门课程有了更深的了解,单片机课程设计则是人生课程,我学到了很多课堂上无法学到的东西,懂得了学习的不容易,在以后的学习中我会更加努力的去学习和研究,以取得更好的成绩。参考文献1王建校,杨建国. 51系列单片机及C51程序设计. 北京:科学出版社, 2002.2吴金戊, 沈庆阳等. 8051单片机实践与应用. 北京:清华大学出版社, 2002.3李建忠. 单片机原理及应用(第二版). 西安:西安电子科技大学出版社, 2008.2.4张毅刚. 新编MCS-51单片机应用设计(第3版). 哈尔滨: 哈尔滨工业大学出版社, 2006.10.5李学礼. 基于Proteus的

11、8051单片机实例教程. 电子工业出版社出版时间, 2008.6.附录1.原理图图8原理图2.PCB图图9 PCB图3.参考汇编程序ORG 0000HLJMP STARTORG 000BHLJMP TIME;*初始化*START: MOV SP, #50H MOV 20H,#00H ;定义秒 MOV 21H,#00H ;定义分 MOV 22H,#00H ;定义时 MOV 23H,#01H ;定义闹钟分钟 MOV 24H,#01H ;定义闹钟小时 MOV 25H,#00H MOV 26H,#01H MOV 30H,#00H ;BCD SECOND MOV 31H,#00H MOV 32H,#00

12、H ;BCD MINUTE MOV 33H,#00H MOV 34H,#00H ;BCD HOUR MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV 50H,#00H ;按键次数 MOV TMOD,#01H ;16位计数器 MOV TH0, #03CH ;赋初值 MOV TL0, #0B0H MOV IE, #87H ;中断允许 SETB TR0 ;启动T0 MOV R2,#14H MOV P2,#0FFH;*主程序*MAIN: JB P1.4,GB LCALL TIMEPRO ;调用闹钟判断GB: LCA

13、LL DISPLAY1;调用时间显示 JB P1.3,M1 ;P1.3=1时转移 S4没有按下 LCALL SETTIME ;调用SETTIME调时子程序 LJMP MAINM1: JB P1.2,M2 ;P1 g.2=1时转移S3 LCALL SETATIME ;调用SETATIME子程序 LJMP MAINM2: JB P1.0,M4 ;P1.01时转移 S1 LCALL LOOKATIME ;调用LOOKATIME显示闹钟子程序M4: LJMP MAIN;*延时子程序*DELAY: MOV R4,#030HDL00: MOV R5,#0FFHDL11: MOV R6,#9HDL12: D

14、JNZ R6,DL12 DJNZ R5,DL11 DJNZ R4,DL00 RET;*时间调整*SETTIME: ;设置时间L0: LCALL DISPLAY1MM1: JB P1.3,L1 ;P1.3=1时转移 MOV C,P1.3 JC MM1 LCALL DELAY1 ;延时 JC MM1MSTOP1: MOV C,P1.3 ;P1.3为0时转移 JNC MSTOP1 LCALL DELAY1 ;延时 MOV A,50H INC 50H CJNE A,#00H,HJ1 LJMP L0HJ1: MOV C,P1.3 JNC MSTOP1 INC 22H ;小时自加一 MOV A,22H C

15、JNE A,#18H,GO12 ;小时计数循环 MOV 22H,#00H ;复位 MOV 34H,#00H MOV 35H,#00H LJMP L0L1: JB P1.1,L2 ;P1.1=1时转移 MOV C,P1.1 JC L1 LCALL DELAY1 ;延时 JC L1MSTOP2: MOV C,P1.1 ;P1.10时转移 JNC MSTOP2 LCALL DELAY1 ;延时 MOV C,P1.1 JNC MSTOP2 INC 21H ;分钟加一 MOV A,21H CJNE A,#3CH,GO11 ;分钟计数循环 MOV 21H,#00H ; 复位 MOV 32H,#00H MO

16、V 33H,#00H LJMP L0 GO11: MOV B,#0AH DIV AB MOV 32H,B ; 将A的低4位存入32单元 MOV 33H,A ; 将A的高4位存入33单元 LJMP L0GO12: MOV B,#0AH DIV AB MOV 34H,B ;将A的低4位存入34单元 MOV 35H,A ; 将A的高4位存入35单元 LJMP L0L2: JB P1.0,L0 ; P1.01时转移 MOV C,P1.0 JC L2 LCALL DELAY1 ;延时 MOV C,P1.0 JC L2STOP1: MOV C,P1.0 ; P1.00时转移 JNC STOP1 LCALL

17、 DELAY1 ;延时 MOV C,P1.0 JNC STOP1 MOV 50H,#00H LJMP MAIN;*设置闹钟*SETATIME:LCALL DISPLAY2 ; 调用DISPLAY2显示闹钟N0: LCALL DISPLAY2MM2: JB P1.2,N1 ;P1.2=1时转移 MOV C,P1.2 JC MM2 LCALL DELAY1 ; 延时 JC MM2MSTOP3: MOV C,P1.2 ; P1.20时转移 JNC MSTOP3 LCALL DELAY1 ; 延时 MOV A,50H INC 50H CJNE A,#00H,HJ2 LJMP N0HJ2: MOV C,

18、P1.2 JNC MSTOP3 INC 24H ;小时加一 MOV A,24H CJNE A,#24,GO22 ;小时计数循环 MOV 24H,#00H ;复位 MOV 38H,#00H MOV 39H,#00H LJMP N0N1: JB P1.1,N2 ;P1.11时转移 MOV C,P1.1 JC N1 LCALL DELAY1 ;延时 JC N1MSTOP4: MOV C,P1.1 ;P1.10时转移 JNC MSTOP4 LCALL DELAY1 ;延时 MOV C,P1.1 JNC MSTOP4 INC 23H ;分钟加一 MOV A,23H CJNE A,#60,GO21 ;分钟

19、计数循环 MOV 23H,#00H ;复位 MOV 36H,#00H MOV 37H,#00H LJMP N0GO21: MOV B,#0AH DIV AB MOV 36H,B ;将A的低4位存入36单元 MOV 37H,A ;将A的高4位存入37单元 LJMP N0GO22: MOV B,#0AH DIV AB MOV 38H,B ;将A的低4位存入38单元 MOV 39H,A ;将A的高4位存入39单元 LJMP N0N2: JB P1.0 ,F1 ;P1.01时转移 MOV C,P1.0 JC N2 F1:AJMP LCALL DELAY1 ;延时 MOV C,P1.0 JC N2STO

20、P2: MOV C,P1.0 JNC STOP2 LCALL DELAY1 MOV C,P1.0 JNC STOP2 MOV 50H,#00H LJMP MAIN;*闹钟判断*TIMEPRO: MOV A,21H MOV B,23H CJNE A,B,BK ;判断定时闹钟的分钟 MOV A,22H MOV B,24H CJNE A,B,BK ;判断定时闹钟的小时 SETB 25H.0 MOV C,25H.0 LCALL TIMEOUT ;调用TIMEOUT BK:RET;*喇叭报警*TIMEOUT: X1: LCALL BZ ;调用喇叭响应程序 CLR 25H.0 ;调用喇叭响应程序结束 LC

21、ALL DELAY ;延时 CLR 25H.0 LJMP DISPLAY1 BZ:MOV C,25H.1 MOV P1.6,C CLR P1.7 MOV R7,#0FFH ;喇叭响应时间 T2: MOV R6,#0FFH T3: DJNZ R6,T3 DJNZ R7,T2 SETB P1.7 RET;*显示闹钟时间*LOOKATIME:LCALL DISPLAY2 MM: JNB P1.0,LOOKATIME LCALL DELAY1 LJMP MAINDELAY1: MOV R4,#14H ;时间延时DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R

22、4,DL001 RET;*定时*TIME: PUSH ACC ;保护现场 PUSH PSW MOVTH0,#03CH ;初值 MOVTL0,#0B0H DJNZ R2,RET0 MOVR2,#14H MOV A,20H CPL 25H.1 CLR C INC A ;秒自加一 CJNE A,#3CH,GO1 ;秒计数循环 MOV 20H,#0 ;复位 MOV 30H,#0 MOV 31H,#0 MOV A,21H INC A ;分钟自加一 CJNE A,#3CH,GO2 ;分钟计数循环 MOV 21H,#0H ;复位 MOV 32H,#0 MOV 33H,#0 MOV A,22H INC A ;

23、小时自加一 CJNE A,#18H,GO3 ;小时计数循环 MOV 22H,#00H ;复位 MOV 34H,#0 MOV 35H,#0 AJMP RET0GO1:MOV 20H,A MOV B,#0AH DIV AB MOV 31H,A ;将A的低4位存入31单元 MOV 30H,B ;将A的高4位存入30单元 AJMP RET0GO2: MOV 21H,A MOV B,#0AH DIV AB MOV 33H,A ;将A的低4位存入33单元 MOV 32H,B ;将A的高4位存入32单元 AJMPRET0GO3:MOV 22H,A MOV B,#0AH DIV AB MOV 35H,A ;将A的低4位存入35单元 MOV 34H,B ;将A的高4位存入34单元 AJMPRET0RET0: POP PSW ;恢复现场 POP ACC RETI;*显示子程序*DISPLAY1:MOV R0,#30H

温馨提示

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

评论

0/150

提交评论