课程设计(论文)-基于单片机控制的时钟控制电路.doc_第1页
课程设计(论文)-基于单片机控制的时钟控制电路.doc_第2页
课程设计(论文)-基于单片机控制的时钟控制电路.doc_第3页
课程设计(论文)-基于单片机控制的时钟控制电路.doc_第4页
课程设计(论文)-基于单片机控制的时钟控制电路.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的时钟电路设计 目 录1 引言12 总体设计方案1 2.1 设计思路1 2.2 总体设计框图13 单元电路分析2 3.1 at89c51简介2 3.2串行显示电路3 3.3整点报时电路3 3.4 校时电路4 3.5 复位电路及晶振电路 44 主程序流程图55 总结与体会6参考文献6附图1 总体电路图7附录1 源程序8摘要:本设计是基于单片机控制的时钟控制器,通过向单片机输入不同的指令可以实现24小时制时钟的基本显示和连续的调时,调分和调秒的功能,同时又扩展了定时闹铃功能。该电路硬件较为简单、计时精度高、可控性好,可以随时调整和设定时间,并且调时间的误差小,操作简单、通用性强。关键词:中断 单片机 定时器 时钟控制器 六位串口数码管显示设计目的:(1)学习输出口的使用方法;(2)学习定时/计数器的使用;(3)学习中断的使用 设计要求:电路的基本功能应包括数码显示时、分、秒时间、可以手动调节时间、 定时闹铃等。1 引言随着科技的发展,电子技术得到了飞速的发展,尤其是近些年来单片机的应用更为普遍。嵌入式系统与单片机已深入到国民经济众多技术领域,从军事、工业到家庭日常生活,单片机因其体积小、功能强、价格低廉而得到广泛应用。在此基础上,越来越多各式各样的时钟也逐渐走进我们的生活,它们设计精巧、方便、耐用、美观,深得各层领域的厚爱随着科技的进步,而单片机控制的数字时钟的出现则打破了人们对时钟的传统概念,因为数字时钟不仅可以通过数字直观地显示出时间,还可以定时发出各种声、光、电信号,以启动各种设备实现实时控制、时间顺序控制。该设计既有一般时钟的基本显示和调整功能,同时又增加了整点报时功能。所使用的单片机,低功耗,具有实时时钟功能。2 总体设计方案2.1 设计思路本电子钟有5部分组成,分别是调时电路,复位电路,晶振电路,报警电路和6位数码管串口显示电路,调时电路四个轻触式按键,分别命名为:确定键k1.模式设定键k2、加调整键k3、减调整键k4。,报警电路采用了一只npn型的三极管及蜂鸣器为报警电路。复位电路的功能是只要按下手动按纽,无论电路处于何种状态,电路都会恢复到初始状态的显示。电源电路由桥式整流、电容滤波和三端稳压器7805的构成,可以用交流电压供整个系统工作。此数字钟可与任何612v/100ma的交直流电源适配器配合工作,适应性强。使用at89c51和其他的附属电路组成电子钟。显示部分的基本原理:显示电路采用静态数码显示技术,由于一次只能让一个数码管显示,然而要显示6位的数据,必须由数码管一个一个轮流显示才可以实现,人的视觉暂留的时间为0.1秒,所以每位显示的间隔不必超过20ms,为了保证正确显示,必须每隔2ms,就要刷新一个数码管。本电路使得每个数码管显示的时间大约在2ms,而这刷新时间我们采用软件延时程序.每隔12ms对数码管刷新一次。分别用于调节时.分.秒。在软件设计方面,应完成时钟控制电路的各项要求整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”计数器的输出,通过六个七段led显示器显示出来。校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。2.2 总体设计框图。如图1所示。at89c51单片机晶振电路复位电路调时按纽四端接口六个数码管串口显示电路报警电路图1 基于单片机的时钟控制器总体设计框图3 单元电路分析3.1 at89c51简介at89c51是一种带4k字节闪烁可编程、可擦除的8位只读存储器(fperomflash programmable and erasable read only memory),可在低电压下工作。该器件采用atmel高密度非易失存储器技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。at89c51提供以下标准功能:4k字节闪速存储器,128字节ram,32根i/o引线,两个16位定时器/计数器,五个中断源,两个中断优先级,一个全双工串行口,一个精密模拟比较器以及片内振荡器和时钟电路。此外,at89c51是用可降到0频率的静态逻辑操作设计的并支持两种可选的软件节电工作方式。空闲方式停止cpu工作但允许ram,定时器/计数器,串行口和中断系统继续工作。掉电方式保存ram内容但振荡器停止工作并禁止所有其它部件的工作直到下一个硬件复位。at89c51的管脚排列如图2所示。vcc:电源; gnd:接地;p0p3口:四个并行双向口;x1、x2:外接12m晶振;rst/proog:复位端;ale/p:地址锁存端;psen:外部程序读选通端; 图2 at89c51管脚排列图ea/vp:访问片内rom使能端。p3口也可作为at89c51的一些特殊功能口; p3.0:rxd(串行输入口); p3.1:txd(串行输出口); p3.6:wr(外部数据存储器写选通);p3.7:rd(外部数据存储器读选通)。 3.2显示电路显示电路采用静态数码显示技术,用74ls164作为数码管的驱动芯片,74hc164是串行输入并行输出的移位寄存器,并带有清除端,其中q0-q7为并行输出端,mr为清除端,当它为零电平时使74hc164清零,a、b为串行输入端,clk为时钟脉冲输入端,在脉冲的上升沿实现移位。当clk=0、mr=1时,74hc164保持原来的数据状态。图中外接6片74hc164作为6位led显示器的静态连接口,74hc164的低电平输出电流为8ma,可直接驱动共阳极led。采用软件译码向74hc164输出字型码,由于显示器是静态的主程序可不必扫描显示器。直接由单片机的串行口输出数据和时钟控制信号达到静态显示的目的如图3。 图3 6位数码管串口显示电路3.3报警电路 该电路由p2.0口外接串联3.3k电阻、5.6k电阻、三极管8550以及蜂鸣器构成,该电路可以实现时钟电路的整点报时功能,每到一整点的时候,该电路就工作,蜂鸣器就发出声音。如图4所示。图4 报警电路3.4 校时电路。如图5所示。本电子钟设计有四个轻触式按键,分别命名为:确定键k1.模式设定键k2、加调整键k3、减调整键k4。由p1.0口外接校时转换按钮,p1.1口外接确定按钮,p1.2口外接加一按钮, p1.3口接减一按钮。该电路可以实现连续的调时,调分和调秒的功能,误差可以控制在2秒以内,可以在任何时候达到准确调时,调分和调秒的功能具体实现过程是:按下复位按纽,6个数码管显示全部是零,按k2可以调秒,加调整键k3,减调整键k4,按下k1就可以确定,再次按下模式设定键k2,就可以调分,在按一次模式设定键k2,就可以调时,和调秒一样,最后调好按下模式设定键k2。图5校时电路3.5 复位电路晶振电路该电路采用上电复位和按钮复位,有一个22uf的电容、一个按钮、一个10k的电阻和一个220欧电阻构成。手动按k1,无论电路处于何种状态,电路都会恢复到初始状态的显示。晶振电路可以给单片机提供所需要的时钟频率。复位电路及晶振电路图6所示。 图6复位电路及晶振电路4 主程序流程图 主程序首先是初始化部分,主要是计时单元清零,中断初始化,启动定时器工作,然后是调用显示子程序,接着是判断有无按键。无按键则回到调用显示子程序处;有按键,则执行按键处理子程序,执行完后回到调用显示子程序处,重复循环。流程图7和8。为了保证系统的可靠运行,在主程序之外还增加了定时中断程序。本电子钟的记时是用单片机内部的定时计数器t0,定时50ms,即,0.05s,20次中断即为1s,60s为1min,60min为1h,24h为1天,如此循环,从而实现记时功能。t0中断 保护现场开始n到1s了吗?y记时单元初始化,t0初始化秒单元加1到60s了吗?n启动定时器t0工作y调用显示程序秒单元清零,分单元加1n调按键判断子程序到60分了吗?nn有键按下?y分单元清零,时单元加1y到24时了吗?按键处理ny时单元清零恢复现场 中断返回图7 主程序流程图 图8中断程序流程图 5总结与体会经过两周的课程设计,我设计的时钟电路实现了它最基本的功能,在设计过程中遇到了许多意想不到的困难,但通过自己的努力和许多同学的帮助最终一一得到解决。 经过两个星期紧张的实习设计,我受益非浅,更加熟练的掌握了protel99,ewb及eda软件的用法,从最基本的找元件,查资料做起,更一步了解了完整的电子设计的一般步骤,在此次实习中,也使我充分看到了自己的专业知识的浅薄,在查阅资料的时候,很多的东西是以前闻所未闻的,充分的暴露了自己的专业知识的狭窄和其它文化科知识的欠缺。通过本次的实习设计我更清楚的认识到单片机是一门很有用的课程,通过这次实习我对这门课程有了更深的了解,懂得了学习什么都不容易,感到了学习的快乐和压力,我在以后的学习中我会更加的努力去学习和研究,以取得更好的成绩。当然,设计的完成离不开老师认真负责的指导,最后衷心感谢老师在本次课程设计中的辛勤工作。这次课程设计让我把学过的知识和实际的应用有机的结合在了一起。更使自己明确了以后努力的目标。 参考文献1 李朝青 编著.单片机原理及接口技术.北京:北京航空航天大学出版社,199912 肖玲妮 袁增贵编著.protel 99 se印刷电路板设计教程.北京:清华大学出版社20033 曹巧援编著.单片机原理及应用.北京:电子工业出版社,1997.7 4 佟为民 周瑾晖 24小时内任意定时的精密定时器j 电子技术 1996(6) 5 陈客松 焦仁喜 sram在定时器设计中的应用j 电子技术 2003(3)附图 1 基于单片机时钟控制器的原理图附录1 基于单片机设计的时钟控制器的实现程序 org 0000h ljmp main org 000bh ljmp toint;*主程序* org 58hmain:mov ie,#82h ;开t0,t1中断 mov tmod,#01h ;定时器方式1 mov th0,#0d8h mov tl0,#0f0h ;初值 mov a,#0 mov 59h,a mov 60h,a mov 61h,a mov 62h,a mov 63h,a mov 64h,a mov 65h,a m_sec equ 20h ;毫秒单元 sec equ 21h ;秒单元 min equ 22h ;分单元 hour equ 23h ;时单元 setb tr0 clr a mov r0,a mov r1,a mov r2,a mov r3,a mov r5,a mov r6,a mov r7,a mov m_sec ,#00 ;毫秒单元清零 mov sec ,#00 ;秒单元清零 mov min ,#00 ;分单元清零 mov hour ,#00 ;时单元清零 mov 70h,a mov 71h,a mov 72h,a mov 73h,a mov 74h,a lcall xs ;调用显示程序;*数字钟按键程序*;*调时钟按键*net1:jb p1.0,net2 lcall ys10ms jb p1.0,net2 setb p2.0 jnb p1.0,$ clr p2.0 setb tr0 ;开中断 mov 59h,#00 mov r7,#00;*调整时间部分切换键*net2:mov a ,59h cjne a ,#00h ,net3 jb p1.1 ,net1 ;数字钟调整时间部分切换键 lcall ys10ms jb p1.1 ,net1 setb p2.0 jnb p1.1 ,$ clr p2.0 inc 59h inc r7 clr tr0 sjmp net4net3: jb p1.1 ,net4 lcall ys10ms jb p1.1 ,net4 setb p2.0 jnb p1.1 ,$ clr p2.0inc 59hinc r7net4: cjne r7 ,#1 ,net5 lcall ssh ;秒闪烁 sjmp net9net5: cjne r7 ,#2 ,net6 lcall msh ;分闪烁 sjmp net9net6: mov r7 ,#0 lcall hsh ;时闪烁 sjmp net9net8: lcall xs net111: ljmp net1 ;*调整时间加1键*net9: jb p1.2 ,net115 ;数字钟调整时间键 lcall ys10ms jb p1.2 ,net115 setb p2.0 jnb p1.2 ,$ cjne r7 ,#1 ,net10 clr p2.0 inc sec ;秒单元加1 mov a ,sec cjne a ,#60 ,net8 ;不等60时跳转显示,等60时将秒单元清零 mov sec ,#00 lcall xs ljmp net9 net115: ljmp net15net10: cjne r7 ,#2 ,net11 clr p2. inc min ;分单元加1 mov a ,min cjne a ,#60 ,net8 ;不等60时跳转显示,等60时将分单元清零 mov min ,#00 lcall xs ljmp net9net11: clr p2.0 inc hour ;时单元加1 mov a ,hour cjne a ,#24 ,net8 ;不等24时跳转显示,等24时将时单元清零 mov hour ,#00 lcall xs ljmp net9 net13: sjmp net15 net14: lcall xs;*调整时间减1键*net15: jb p1.3 ,net19 ;数字钟调整时间键 lcall ys10ms jb p1.3 ,net19 setb p2.0 jnb p1.3 ,$ cjne r7 ,#1 ,net16 clr p2.0 dec sec ;秒单元减1 mov a ,sec cjne a ,#0ffh ,net14 ;不等60时跳转显示,等60时将秒单元清零 mov sec ,#59 lcall net14 ljmp net15net16: cjne r7 ,#2 ,net17 clr p2.0 dec min ;分单元减1 mov a ,min cjne a ,#0ffh ,net14 ;不等60时跳转显示,等60时将分单元清零 mov min ,#59 lcall net14 ljmp net15net17: clr p2.0 dec hour ;时单元减1 mov a ,hour cjne a ,#0ffh ,net14 ;不等24时跳转显示,等24时将时单元清零 mov hour ,#23 lcall net14 ljmp net1net19: ljmp net1;*时钟中断程序*toint: push psw push acc ;保护现场 mov th0 ,#0d8h mov tl0 ,#0f0h ;重新赋计数初值 inc m_sec ;毫秒单元加1 mov a ,m_sec cjne a ,#100 ,next1 mov m_sec ,#00 inc sec ;秒单元加1 mov a ,sec cjne a ,#60 ,next1 mov sec ,#00 inc min ; ; mov a ,min mov a ,min cjne a ,#60 ,next1 mov min ,#00 inc hour ; mov a ,hour cjne a ,#24 ,next1 mov hour ,#00 next1: lcall xs pop acc pop psw ;恢复现场 reti ;中断返回;*数字钟显示程序*xs: mov a ,sec ;将秒送a mov b ,#10 div ab mov 60h ,b ;秒的个位 mov 61h ,a ;秒的十位 mov a ,min ;将分送a mov b ,#10 div ab mov 62h ,b ;分的个位 mov 63h ,a ;分的十位 mov a ,hour ;将时送a mov b ,#

温馨提示

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

评论

0/150

提交评论