作息时间控制器的设计报告.docx

上传人:b****3 文档编号:5447167 上传时间:2023-05-08 格式:DOCX 页数:30 大小:312.28KB
下载 相关 举报
作息时间控制器的设计报告.docx_第1页
第1页 / 共30页
作息时间控制器的设计报告.docx_第2页
第2页 / 共30页
作息时间控制器的设计报告.docx_第3页
第3页 / 共30页
作息时间控制器的设计报告.docx_第4页
第4页 / 共30页
作息时间控制器的设计报告.docx_第5页
第5页 / 共30页
作息时间控制器的设计报告.docx_第6页
第6页 / 共30页
作息时间控制器的设计报告.docx_第7页
第7页 / 共30页
作息时间控制器的设计报告.docx_第8页
第8页 / 共30页
作息时间控制器的设计报告.docx_第9页
第9页 / 共30页
作息时间控制器的设计报告.docx_第10页
第10页 / 共30页
作息时间控制器的设计报告.docx_第11页
第11页 / 共30页
作息时间控制器的设计报告.docx_第12页
第12页 / 共30页
作息时间控制器的设计报告.docx_第13页
第13页 / 共30页
作息时间控制器的设计报告.docx_第14页
第14页 / 共30页
作息时间控制器的设计报告.docx_第15页
第15页 / 共30页
作息时间控制器的设计报告.docx_第16页
第16页 / 共30页
作息时间控制器的设计报告.docx_第17页
第17页 / 共30页
作息时间控制器的设计报告.docx_第18页
第18页 / 共30页
作息时间控制器的设计报告.docx_第19页
第19页 / 共30页
作息时间控制器的设计报告.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

作息时间控制器的设计报告.docx

《作息时间控制器的设计报告.docx》由会员分享,可在线阅读,更多相关《作息时间控制器的设计报告.docx(30页珍藏版)》请在冰点文库上搜索。

作息时间控制器的设计报告.docx

作息时间控制器的设计报告

河南理工大学

单片机课程设计报告

 

作息时间控制器设计

 

姓名:

杜敬彬焦涛涛

学号:

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2