基于单片机的时钟控制器设计课程设计报告论文.doc_第1页
基于单片机的时钟控制器设计课程设计报告论文.doc_第2页
基于单片机的时钟控制器设计课程设计报告论文.doc_第3页
基于单片机的时钟控制器设计课程设计报告论文.doc_第4页
基于单片机的时钟控制器设计课程设计报告论文.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用技术课程设计报告 基于单片机控制的时钟控制器专业班级: _电气xx班_ _姓名:_ _xxx_ _ 时 间:2013/11/2512/15 指导教师: xxxx xxx 2013年12月11日 基于单片机控制的时钟控制器课程设计任务书1。设计目的与要求设计出一个基于单片机控制的时钟控制器。通过向单片机输入不同的指令可以实现24小时制时钟的基本显示和连续的调时,调分和调秒的功能,同时又扩展了整点报时功能。该电路硬件较为简单、计时精度高、可控性好,可以随时调整和设定时间,并且调时间的误差小,操作简单、通用性强。(1)基本功能、显示:可以显示时、分和秒、调时功能:时(0-24)、分和秒(0-60)可以连续可调(2)性能:时间日误差 2秒(3)扩展功能增加整点报时功能增加闹钟任意设定功能2设计内容 (1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)sch文件生成与打印输出;3编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。4答辩 在规定时间内,完成叙述并回答问题。目录摘要11. 引言12. 设计目的和要求13. 总体设计方案13.1 方案设计要求13.2 方案设计与论证13.3 整体设计框图23.4 系统设计流程图24. 设计原理分析34.1 外接晶振电路34.2 复位电路34.3 数码管显示电路34.4 键盘控制电路44.5 proteus仿真电路44.6 单片机程序的编写54.7 电路的检测54.8 cad电路的连接及pcb电路布线并做出电路板54.9 软件与硬件的调试55. 总结与体会56. 附录56.1 cad电路连接图56.2 pcb电路布线图66.3 时钟控制器参考源程序67. 参考文献13基于单片机控制的时钟控制器班级:电气115班 姓名:赵传阳 摘要:近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点。本次设计的时钟控制器是以单片机(at89c51)为核心,结合相关的元器件(3个2位共阳数码管,一个发光二极管和一个蜂鸣器)和应用程序(在proteus软件和keil编译软件),构成相应的应用系统。关键词:单片机 at89c51 共阳数码管 发光二极管 蜂鸣器 proteus软件 keil编译软件 中断 1.引言随着科技的发展,电子技术得到了飞速的发展,尤其是单片机的应用更为普遍。单片机的应用已深入众多技术领域,从军事、工业到家庭日常生活,单片机因体积小、功能强、价格低廉而得到广泛应用。在此基础上,越来越多各式各样的时钟也逐渐走进我们的生活,它们设计精巧、方便、耐用、美观,深得各领域的厚爱。随着科技的进步,基于单片机控制的时钟控制器的出现则打破了人们对时钟的传统概念,因为数字时钟不仅可以通过数字直观地显示出时间,还可以定时发出各种声、光、电信号,以启动各种设备实现实时控制、时间顺序控制。该课程设计既有一般时钟的基本显示和调整功能,同时又增加了整点报时功能,复位功能及实时时钟控制功能。2.设计目的与要求设计出一个基于单片机控制的时钟控制器。通过向单片机输入不同的指令可以实现24小时制时钟的基本显示和连续的调时,调分和调秒的功能,同时又扩展了整点报时功能。该电路硬件较为简单、计时精度高、可控性好,可以随时调整和设定时间,并且调时间的误差小,操作简单、通用性强。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。本文主要介绍用单片机为核心部件的时钟控制器,本设计由单片机at89c51芯片和3个两位一体的共阳极的数码管为核心,辅以必要的电路,构成了一个单片机时钟控制器。基本要求:1.显示: 可以显示时、分和秒2.调时功能:时(0-24)、分和秒(0-60)可以连续可调并进行校准3.能够完成时间的显示、定时闹钟、整点报时及复位功能3.总体设计方案3.1.方案设计要求设计制作一个时钟控制器,要求能实现基本走时,并以数字形式显示时、分、秒,采用24小时制,能实现校时、校分连续可调、整点报时功能、复位功能以及闹钟任意设定功能。3.2方案设计与论证方案一:采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理解实现。缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。方案二:采用 fpga模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:成本高,大材小用。方案三:采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。经过综合考虑成本问题以及电路实现问题,选择第三种方案实现设计要求。3.3整体设计框图整体设计框图如图1所示:图1 整体设计框图3.4系统设计流程图设计流程图如2图所示:图2 系统设计流程图4.设计原理分析4.1外接晶振电路晶振连接电路图如图3,以12mhz晶振为基准。图3 外接晶振电路连接图xtal1、xtal2:xtal1是片内振荡器的反相放大器输入端,xtal2则是输出端,使用外部振荡器时,外部振荡信号应直接加到xtal1,而xtal2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12mhz,时钟频率就为6mhz。晶振的频率可以在1mhz-24mhz内选择,一般选用12mhz晶振,电容取30pf左右。4.2复位电路常用复位电路图如图4:图4 复位电路连接图在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引:脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后p0p3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器sfr全部清零。4.3 数码管显示电路二位一体共阳极数码管电路连接图如图5,以pnp三极管为驱动。图5 数码管显示电路连接图4.4 键盘控制电路键盘控制电路如图6。图6 时钟按键控制电路图通过s1、s2、s3和s4四个按键,对时间进行修改和闹钟的设置,s0控制闹钟的启动和停止。按下s4键显示闹钟,松开后显示时间;按下s1键进入时间修改模式,再按s1键时间的时加1,按s3分加1,调整结束后按下s4恢复正常显示;按下s2键进入闹钟修改模式,再按s3键闹钟的时加1,按s3分加1,调整结束后按下s4恢复正常显示。在按键按下和放开时会出现抖动现象。通过延时程序,可以进行去抖动设计。4.5 proteus仿真电路 整体电路连接图如图7:图7 整体电路连接图4.6 单片机程序的编写用keil编译软件进行程序的设计、编译并生成可执行文件。4.7 电路的检测电路连接完毕后,应用单片机程序烧录工具进行程序烧录,然后单击运行按钮进行仿真,检测电路是否有误。4.8 cad电路的连接及pcb电路布线并做出电路板待仿真电路检测无误后,则通过cad软件进行电路图的连接并对元件进行封装,确定无误后生成pcb图进行电路的布线,之后做出电路板进行元件的焊接。4.9 软件与硬件的调试单片机应用系统的调试包括硬件和软件两部分,但是它们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软件或硬件故障。软件调试是指用仿真软件进行仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至at89c51芯片中,用焊接好的电路来进行各项功能的验证与检测。需要特别注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的。5总结与体会经过三周的实习设计,我设计的时钟控制器实现了它最基本功能, 三个星期的紧张实习,让我获益非浅,更加熟练的掌握了proteus软件、keil软件及cad软件的应用,使我看到了自己专业知识的浅薄与不足。通过本次的课程设计,我对单片机这门课程有了更深的了解,单片机课程设计则是人生课程,我学到了很多课堂上无法学到的东西,懂得了学习的不容易,在以后的学习中我会更加努力的去学习和研究,以取得更好的成绩。6.附录6.1 cad电路连线图如图8。图8 cad电路连接图6.2 pcb电路布线图如图9。图9 pcb布线电路图(注:未连线的端口用外接线连接)6.3 时钟控制器参考源程序 使用keil软件编写源程序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,#00h ;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: lcall 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: djnz 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 cjne 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 mov 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 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,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 ;分钟计数循环 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 ,n0 ;p1.01时转移 mov c,p1.0 jc n2 lcall delay1 ;延时 mov c,p1.0 jc n2stop2: 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 ;调用喇叭响应程序结束 lcall 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 r4,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 ;小时自加一 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 mov r3,#0feh mov a,r3play1: mov p2,a mov a,r0 ;取要显示的数据 mov dptr,#dseg1 ;指向字形段码首地址 movc a,a+dptr cjne r0,#34h,pa orl a,#80h pa:cjne r0,#32h,pb orl a,#80h pb:cpl a ;查表取字形段码 mov p0,a ;指向p0口 lcall dl1 mov p2,#0ffh mov a,r3 ;判断是否显示到最低位 rl a ;左移一

温馨提示

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

评论

0/150

提交评论