作息时间控制器的设计报告.docx
- 文档编号:11205487
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:30
- 大小:312.28KB
作息时间控制器的设计报告.docx
《作息时间控制器的设计报告.docx》由会员分享,可在线阅读,更多相关《作息时间控制器的设计报告.docx(30页珍藏版)》请在冰豆网上搜索。
作息时间控制器的设计报告
河南理工大学
单片机课程设计报告
作息时间控制器设计
姓名:
杜敬彬焦涛涛
学号:
310608020316&09
专业班级:
自动化06-3班
指导老师:
杨凌霄
所在学院:
电气工程与自动化学院
2009年6月14日
摘要
本设计是作息时间控制器的设计,由单片机AT89s52芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子作息时间控制器。
该功能的实现主要通过软件编程来完成,降低了硬件电路的复杂性,成本也有所降低。
设计内容包括了秒信号指示(由发光二极管来表示)、时间“时”和“分”显示电路(由四位数码管显示)、按键调整电路、供电电源以及闹铃指示电路等几部分的设计。
采用四个开关来控制作息时间控制器的工作状态,分别为:
K1、设置时间和闹钟的小时;K2、设置时间以及设置闹钟的分;K3、设置完成退出;K4、显示定时时间及进入闹钟设置。
当作息时间控制器达到课程设计的要求,在到达设定的定时时间时蜂鸣器便被控制立即发出声音,持续一分钟,而后恢复时钟状态。
显示采用的四位数码管电路,定时提示采用蜂鸣器发声指示。
本设计方案也可以经过改进作为实现定时控制系统的控制定时电路。
关键词:
作息时间单片机显示定时
目录
1概述3
1.1课程设计的目的和意义3
1.2单片机课程设计的要求3
1.3作息时间控制器的设计要求3
2系统总体方案及硬件设计4
2.1系统总体设计4
2.2系统各个部分的电路设计5
3软件的设计8
3.1概述8
3.2主模块的设计8
3.3显示模块设计9
3.4时间设定模块设计9
3.5闹铃功能的实现10
4Proteus软件仿真12
4.1仿真结果12
4.2性能及误差分析14
5课程设计体会15
参考文献15
附1程序源代码16
附2原理图26
1概述
1.1课程设计的目的和意义
综合利用所学单片机知识完成一个单片机应用系统设计并仿真、由硬件实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下良好基础。
1.2单片机课程设计的要求
1、进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤;
2、掌握单片机仿真软件Proteus的使用方法;
3、掌握键盘和显示器在的单片机控制系统中的应用。
4、掌握撰写课程设计报告的方法。
1.3作息时间控制器的设计要求
1、设计制作一个单片机数字钟及控制电路。
2、使用4位七段显示器来显示现在的时间。
显示格式为“时-分”,由LED闪动作为秒计数表示。
3、可以设定作息时间,并进行到时提示。
4、能够根据预先设定好的作息时间表自动启停控制电路,完成对外部设备的实时控制。
5、可以设置现在的时间及显示定时设置时间。
2系统总体方案及硬件设计
2.1系统总体设计
1、方案比较
方案一:
采用数字电路实现。
数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
方案二:
用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,
经过上面的对比本设计采用单片机作为设计的主体。
2、单片机的选型
AT89s52是低功耗、高性能的CMOS型8位单片机。
片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外,AT89s52的指令系统和引脚与MCS-51完全兼容,片内有256B的RAM、32条I/O口线、3个16位定时计数器、8个中断源、一个全双工串行口等。
基于以上优点,本设计采用AT89S52单片机。
3、总体电路的设计
电子闹钟的主体电路应包括秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分。
按键功能说明:
K1,设置时间和闹钟的小时;K2,设置时间以及设置闹钟的分;K3,设置完成推出;K4;显示定时时间及进入闹钟设置。
电子闹钟的系统框图1如下所示:
图1
2.2系统各个部分的电路设计
1、系统复位电路的设计
单片机系统一般应有手动或上电自动复位电路。
复位电路的实现通常有两种方式:
1)RC复位电路;2)专用µP监控电路。
前者实现简单,成本低,但复位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复位。
对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。
复位电路主要用来在单片机的程序进入死循环后,能使单片机重新从头执行程序而不会无休止的执行程序。
本设计采用了上电按钮电平复位电路,如图2
图2
2、系统时钟电路设计
对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。
但由于实际工作过程中的C1、C2电容起着系统时钟频率微调和稳定的作用,因此,在实际应用中一定要注意正确选择参数(30±10PF),并保证对称性(尽可能匹配),这两个电容元件对闹钟的走时误差有很大关系,并且选用正规的瓷片或云母电容,如果可能的话,温度系数要尽可能低。
另外,瓷片电容的实际焊接距离不应该离单片机太远否则误差较大。
具体的时钟电路如图三所示:
图3
3、闹钟指示电路设计
闹铃指示可以有声或光两种形式。
本系统采用声音指示。
关键元件是蜂鸣器。
蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可,元件内部已封装了音频振荡电路,在得电状态下即起振发声。
市场上的有源蜂鸣器分为3V、5V、6V等系列,以适应不同的应用需要。
闹钟电路是用比较器来比较计时系统和定时系统的输出状态,如果计时系统和定时系统的输出状态相同,则发出一个脉冲信号,再和一个高频信号混合,送到放大电路驱动扬声器发声,从而实现定时闹响的功能。
其电路设计参见系统原理图。
4、显示电路的设计
本设计采用了4位数码管显示电路。
在4位LED显示时,为了简化电路,降低成本,采用动态显示的方式,4个LED显示器共用一个8位的I/O,4位LED数码管的位选线分别由相应的P2.4~P2.7控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。
由于采用了四位数码管,所以数码管显示“时”、“分”;秒的显示选用了一个发光二极管,两灭周期为两秒,即点亮和熄灭时间均为一秒。
到达定时时间时,由计时系统的输出状态产生一脉冲信号,然后去触发蜂鸣器实现闹铃。
校时电路是用来对“时”、“分”显示数字进行校对调整的。
具体的电路设计如图4示:
图4
5、定时和调时电路的设计
本设计因为使用到的键数目比较少,不宜采用矩阵式键盘,采用了功能直观简洁方便的独立式键盘,而且考虑了键盘的消抖问题。
比较容易理解。
每个键的具体功能如下:
K1,设置时间和闹钟的小时;K2,设置时间以及设置闹钟的分;K3,设置完成退出;K4;显示定时时间及进入闹钟设置。
按键定义如图5所示:
3软件的设计
3.1概述
软件设计的重点在于秒脉冲信号的产生、显示的实现、以及按键的处理等方面。
基于软件的秒脉冲信号通常有延时法和定时中断法。
延时法一般采用查询方式,在延时子程序前后必然需要查询和处理的程序,导致误差的产生,因此其秒脉冲的精度不高;中断法的原理是,利用单片机内部的定时器溢出中断来实现。
本设计使定时器每50ms中断1次,则20次的周期为1s。
这种实现法的特点是精度高,秒脉冲的发生和其他处理可以并行进行。
本系统中所使用的晶振频率为12MHZ。
3.2主模块的设计
主模块是系统软件的主框架。
结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。
它的合理与否关系到程序最终的功能的多少和性能的好坏。
本系统的主模块的程序框图如下图6所示:
图6
3.3显示模块设计
显示是由显示代码取得相应的段码,显示段码数据的并行发送,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
程序流程如图7所示。
图7
3.4时间设定模块设计
时间设定模块的设计要点是按键的去抖处理与多种状态公用一个键的处理问题。
即只涉及4个键完成了4位时间参数的设定。
软件法去抖动的实质是用延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否还保持着,如是则作为按键处理,否则,视为抖动,不予理睬。
去抖中的延时时间一般参考资料多描述为10ms左右,实际应用中,应大于20ms,否则,会导致按一次作多次处理,影响程序正常执行。
按键消抖流程图原理如图8所示:
图8
3.5闹铃功能的实现
闹铃功能的实现涉及到两个方面:
闹铃时间设定和是否闹铃判别与相应处理。
闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与处理模块的设计问题。
闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。
在每次循环扫描的过程中,判断现在的时间和定时的时间是否一致。
一致的话,闹铃电路根据计时系统的输出状态产生一脉冲信号,然后加上一个高频或低频信号送到放大电路驱动蜂鸣器发声实现报时。
时间调节电路根据不同状态下的具体按键意义将相对应的计数器加以改变,并通过数码管显示出来。
具体如图9示:
图9
在该电子钟的设计中修改定时或调整时间时采用了闪烁。
在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一组固定单元用来存储计数的秒,分,时以及定时时间的序号等。
在显示程序段中主要进行了闪烁的处理,采用定时器中断置标志位,再与位选相互结合的方法来控制调时或定时中的闪烁。
时,分,秒显示则是用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。
初始化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数,使得蜂鸣器工作。
4Proteus软件仿真
本次课程设计所采用的程序调试软件为wave6000集成调试软件,所采用的仿真软件为protus6professional软件。
本设计在Proteus软件上进行了仿真,实现了设计所要求的具体内容。
4.1仿真结果
1、定时初值(如图10)
图10
2、调整后的定时值(如图11)
图11
3、时钟显示时间初值(如图12)
图12
4、调整后的时间值(如图13)
图13
4.2性能及误差分析
该作息时间控制器有四个按键:
K1,K2,K3和K4。
初始加电时数码管显示时钟计数初值并运行。
按K1键进行校时,可以分别按K2和K3键进行对时及分进行单独校时,使其校正到标准时间;并按K4键退出。
时钟正常显示运行状态时,按K2键显示闪烁并进行定时时间设置,按K1键和K3进行分和时的定时时间设定;并按K4键退出。
该电路显示的误差主要由晶振自身的误差所造成,晶振的误差约为0.0001~0.000001。
在软件的编程过程中所产生的误差比较小,另外在中断的过程中,只会在第一次计时时产生时间的偏移,而它所产生累计误差很小,可以忽略。
综合以上分析,本次设计时钟误差较小,能得到比较理想结果,性能稳定。
5课程设计体会
本次是基于单片机的开发设计,通过此次硬件和软件的设计,可以对单片机开发设计有了更多的心得体会和了解,并掌握了一定的设计思想和硬件安装分析调试技巧,对整个单片机开发设计的流程有了更深刻的认识和掌握。
分析题目并结合实际,我们选择了自己感兴趣而且有很实用的电子时钟作息控制器作为本次课程设计的题目。
通过近两周时间的学习和探索,使我对所学的知识进行了系统的复习和巩固,并得到了有效的应用。
在以前的学习过程中不够清晰的概念得到了更好的理解。
本次课程设计我们不但进行了程序的编写调试和设计报告的整理,更重要的是,我们做出了实际的设计作品,很好的培养和锻炼了我的动手能力,提高了分析软硬件之间的差别和联系的技巧。
这不仅对我以后的学习有帮助,还可以为以后的工作打下一定的基础。
在此期间,通过与老师和同学们之间的交流,加强了自身的分析问题、解决问题的能力,并掌握了基本的设计思想,对以后的设计有很大的指导意义。
此次软硬结合的设计要求,充分调动了我的积极性,对硬件的设计是最难忘的;调试硬件对设计者来说是很有挑战意义,更能考验设计者的耐心与毅力。
当然硬件需要软件相结合,改变硬件后只要稍改程序就可以实现相同的功能要求。
更可以通过本次的设计把设计思想应用到更大的系统控制设计中。
软硬结合使我真正认识到了理论与实际的区别,这在以后的工作和学习中给予我更好的提示,注重理论与实际相结合,注重分析选择解决问题的思路和方法,注重设计方案的分析选择和设计思想的分析选择。
总之,本次设计让我受益匪浅。
参考文献
[1]余发山,王福忠编著.单片机原理及应用技术.徐州:
中国矿业大学出版社,2008.
[2]陈奥初,窦振中等编著.单片机应用系统设计与实践.北京:
北京航空航天大学出版社,1991.
[3]陈伟人编著.MCS-51系列单片机实用子程序集锦[M].北京:
清华大学出版社.1993.
附1程序源代码
K1EQUP1.0;在程序开始前定义变量
K2EQUP1.1
K3EQUP1.2
K4EQUP1.3
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIME
ORG0100H
;主程序:
MAIN:
MOVSP,#50H
MOV20H,#00H;时间PINSECOND
MOV21H,#00H;PINMINUTE
MOV22H,#00H;PINHOUR
MOV23H,#05H;闹铃PINMINUTE
MOV24H,#06H;PINHOUR
MOV25H,#00H;定义一个标志位
MOV30H,#00H;时间BCDSECOND
MOV31H,#00H;
MOV32H,#00H;BCDMINUTE
MOV33H,#00H;
MOV34H,#00H;BCDHOUR
MOV35H,#00H;
MOV36H,#05H;闹铃BCDMINUTE
MOV37H,#00H;
MOV38H,#06H;BCDHOUR
MOV39H,#00H
CPLP3.0;
MOVTMOD,#01H;16位计数器T0,方式
MOVTH0,#03CH;赋初值
MOVTL0,#0B0H
MOVIE,#87H;开中断T0,EA=1
SETBTR0;T0启动计数
MOVR2,#14H;计数器
MOVP2,#0FFH
LOOP:
LCALLTIMEPRO;调用现在时间与闹铃时间比较程序
LCALLDISPLAY1;调用现在时间显示子程序
JBK1,M1;判断按键是否按下
LCALLXIAODOU1;调用消抖程序
MOVC,25H.0
JCA1
A1:
CLR25H.0
LCALLSETTIME;调用设置现在时间子程序
LJMPLOOP
M1:
JBK2,M2;判断P1.1键是否按下
LCALLXIAODOU2
MOVC,25H.0
JCA2
A2:
CLR25H.0
LCALLSETATIME;调用设置闹钟的程序
LJMPLOOP
M2:
JBK4,M3
A3:
LCALLXIAODOU3
MOVC,25H.0
JCA4
A4:
CLR25H.0
M3:
LJMPLOOP
SETTIME:
L0:
LCALLDISPLAY1
JBK2,L1
LCALLXIAODOU4
MOVC,25H.0
JCA5
A5:
CLR25H.0
INC22H
MOVA,22H
CJNEA,#18H,GO12
MOV22H,#00H
MOV34H,#00H
MOV35H,#00H
LJMPL0
L1:
JBK3,L2
LCALLXIAODOU5
MOVC,25H.0
JCA6
A6:
CLR25H.0
INC21H
MOVA,21H
CJNEA,#3CH,GO11
MOV21H,#00H
MOV32H,#00H
MOV33H,#00H
LJMPL0
GO11:
MOVB,#0AH
DIVAB
MOV32H,B
MOV33H,A
LJMPL0
GO12:
MOVB,#0AH
DIVAB
MOV34H,B
MOV35H,A
LJMPL0
L2:
JBK4,L0
LCALLXIAODOU3
MOVC,25H.0
JCAX
AX:
CLR25H.0
RET
SETATIME:
LCALLDISPLAY2;调用闹钟设置,闹铃响时的显示程序
N0:
LCALLDISPLAY2
JBK3,N1
LCALLXIAODOU6
MOVC,25H.0
JCA7
A7:
CLR25H.0
INC24H
MOVA,24H
CJNEA,#24,GO22
MOV24H,#00H
MOV38H,#00H
MOV39H,#00H
LJMPN0
N1:
JBK1,N2
LCALLXIAODOU7
MOVC,25H.0
JCA8
A8:
CLR25H.0
INC23H
MOVA,23H
CJNEA,#60,GO21
MOV23H,#00H
MOV36H,#00H
MOV37H,#00H
LJMPN0
GO21:
MOVB,#0AH
DIVAB
MOV36H,B
MOV37H,A
LJMPN0
GO22:
MOVB,#0AH
DIVAB
MOV38H,B
MOV39H,A
LJMPN0
N2:
JBK4,N0
LCALLXIAODOU3
MOVC,25H.0
JCA9
A9:
CLR25H.0
RET
TIMEPRO:
MOVA,21H
MOVB,23H
CJNEA,B,BK
MOVA,22H
MOVB,24H
CJNEA,B,BK
SETB25H.0
MOVC,25H.0
JCXX
XX:
LCALLTIMEOUT
BK:
RET
TIMEOUT:
X1:
LCALLBZ
LCALLDISPLAY2
CLR25H.0
JBK4,X1
RET
BZ:
SETBP3.0
MOVR7,#250
T2:
MOVR6,#124
T3:
DJNZR6,T3
DJNZR7,T2
CLRP3.0
JBK4,XY
LCALLXIAODOU3
MOVC,25H.0
JCXY1
XY:
RET
XY1:
LJMPLOOP
XIAODOU1:
LCALLDISPLAY1
JBK1,XIAODOU1
MOVC,K1
JCXIAODOU1
LCALLDELAY
MOVC,K1
JCXIAODOU1
STOP1:
MOVC,K1
JNCSTOP1
LCALLDELAY
MOVC,K1
JNCSTOP1
SETB25H.0
RET
XIAODOU2:
LCALLDISPLAY2
JBK2,XIAODOU2
MOVC,K2
JCXIAODOU2
LCALLDELAY
MOVC,K2
JCXIAODOU2
STOP2:
MOVC,K2
JNCSTOP2
LCALLDELAY
MOVC,K2
JNCSTOP2
SETB25H.0
RET
XIAODOU3:
LCALLDISPLAY1
JBK4,XIAODOU3
MOVC,K4
JCXIAODOU3
LCALLDELAY
MOVC,K4
JCXIAODOU3
STOP3:
MOVC,K4
JNCSTOP3
LCALLDELAY
MOVC,K4
JNCSTOP3
SETB25H.0
RET
XIAODOU4:
LCALLDISPLAY1
JBK2,XIAODOU4
MOVC,K2
JCXIAODOU4
LCALLDELAY
MOVC,K2
JCXIAODOU4
STOP4:
MOVC,K2
JNCSTOP4
LCALLDELAY
MOVC,K2
JNCSTOP4
SETB25H.0
RET
XIAODOU5:
LCALLDISPLAY1
JBK3,XIAODOU5
MOVC,K3
JCXIAODOU5
LCALLDELAY
MOVC,K3
JCXIAODOU5
STOP5:
MOVC,K3
JNCSTOP5
LCALLDELAY
MOVC,K3
JNCSTOP5
SETB25H.0
RET
XIAODOU6:
LCALLDISPLAY2
JBK3,XIAODOU6
MOVC,K3
JCXIAODOU6
LCALLDELAY
MOVC,K3
JCXIAODOU6
STOP6:
MOVC,K3
JNCSTOP6
LCALLDELAY
MOVC,K3
JNCSTOP6
SETB25H.0
RET
XIAODOU7:
LCALLDISPLAY2
JBK1,XIAODOU7
MOVC,K1
JCXIAODOU7
LCALLDELAY
MOVC,K1
JCXIAODOU7
STOP7:
MOVC,K1
JNCSTOP7
LCALLDELAY
MOVC,K1
JNCSTOP7
SETB25H.0
RET
DELAY:
MOVR4,#14H
DL00:
MOVR5,#0FFH
DL11:
DJNZR5,DL11
DJNZR4,DL00
RET
TIME:
PUSHACC
PUSHPSW
MOVTH0,#03CH
MOVTL0,#0B0H
DJNZR2,RET0
MOVR2,#14H
MOVA,20H
CPLP3.5
CLRC
INCA
CJNEA,#3CH,GO1
MOV20H,#0
MOV30H,#0
MOV31H,#0
MOVA,21H
INCA
CJNEA,#3CH,GO2
MOV21H,#0H
MOV32H,#0
MOV33H,#0
MOVA,22H
INCA
C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作息 时间 控制器 设计 报告