单片机作息时间控制器设计方案.docx

上传人:b****1 文档编号:31486 上传时间:2022-10-01 格式:DOCX 页数:29 大小:323.98KB
下载 相关 举报
单片机作息时间控制器设计方案.docx_第1页
第1页 / 共29页
单片机作息时间控制器设计方案.docx_第2页
第2页 / 共29页
单片机作息时间控制器设计方案.docx_第3页
第3页 / 共29页
单片机作息时间控制器设计方案.docx_第4页
第4页 / 共29页
单片机作息时间控制器设计方案.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

单片机作息时间控制器设计方案.docx

《单片机作息时间控制器设计方案.docx》由会员分享,可在线阅读,更多相关《单片机作息时间控制器设计方案.docx(29页珍藏版)》请在冰豆网上搜索。

单片机作息时间控制器设计方案.docx

单片机作息时间控制器设计方案

单片机作息时间控制器设计方案

第1章总体方案设计

1.1设计要求

本课题要求以单片机为核心,设计一个具有定时和计数功能的智能化作息时间控制器,用于学校教学楼的时间控制,实现时间基准定时,并配合“启动”、“复位”等按键的操作,并按作息时间显示的内容要求有有以下功能:

(1)按作息时间接通/断开电铃;

(2)课间接通/断开播放音乐设备;

(3)时间的设置与值显示(显示的内容要求有时、分、秒各两位)

1.2优点及意义

本课题要求设计一个具有定时和计数功能的智能化作息时间控制器,用于学校教学楼的时间控制,实现时间基准定时。

数码管显示电路采用LED动态控制方式,显示时分秒。

按键电路控制定时计时。

闹铃指示电路控制铃声。

1.3系统硬件电路设计

本方案采用一种是用以STC89C52为核心,外加8位数码管,蜂鸣器,继电器和按键完成系统的设计要求。

系统硬件设计框图。

根据设计要求,确定系统的设计方案,图1-1为系统总体设计计框图。

硬件电路由6个部分组成,即单片机时钟电路、复位电路、键盘输入电路、LED数码管显示电路、蜂鸣器电路、继电器电路。

 

图1-1系统设计框图

1.4初步设计思路

(1)定义一组数表,存字形码

(2)定义4个数据缓冲区,对应4个数码管,将要显示的字符的偏移量存入。

通过查表指令从P1口输出。

(3)LED数码管通过驱动电路,显示相应的状态。

位选由P2口高四位产生,

(4)通过P3口接通继电器和蜂鸣器。

(5)系统设置3个按键,分别是选择键、时间加键、时间减键。

 

 

第2章硬件电路设计

2.1时钟电路设计

单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图2-1所示。

图2-1时钟电路

电路中器件选择可以通过计算和实验确定,也可以参考一些典型电路参数。

电路中,电容器C1和C2对振荡频率有微调作用,同时帮助晶振起振,通常取值范围在22±0.1PF,一般晶振为12MHZ,电容取22PF。

石英晶体选择12MHZ。

2.2复位电路设计

表2-2复位电路设计

单片机系统的复位电路在可以采用的是按钮式上电复位电路形式,其中电阻R采用10KΩ的阻值,电容采22μF的电容值。

2.3键盘电路设计

为了减少键盘与单片机接口时所占用的I/O线的数目,独立是键盘。

由于只要使用3个按键,按键分别接p2.7p2.6p2.5。

J6跳线帽短接,是按键按下是接通到地。

 

图2-3按键电路设计

2.4显示电路设计

根据显示器显示接口的驱动方式采用动态显示。

显示器的选择位接P2口高四位P2.0-P2.3。

用动态扫描的方法进行显示,即逐个循环点亮各位显示器,实现4位共阳极LED的动态显示。

每次显示完4位,就判断时间是否超出,若超出则修改。

图2-4显示电路设计

2.5继电器电路

图2-5继电器电路

通过与设定时间比较,相等时P3.5接通继电器,继电器常闭断开,常开闭合,蜂鸣器接通,开始响铃。

同时接通D2是LED灯点亮作为指示灯。

2.6I/O接口的分配

表2-1I/O借口分配表

PO

数码管显示

P3.7

蜂鸣器

P2.7

K1

P2.0

数码管位选

P2.6

K2

P2.1

数码管位选

P2.5

K3

P2.2

数码管位选

P3.5

继电器

P2.3

数码管位选

 

第3章应用软件设计

3.1主程序设计

作息时间控制器的基本功能就是时间显示,要准确定时,就使用了定时器T0,定时50ms,同时用R2做软件计数,计数20次。

完成1s定时。

在主程序中对定时器赋初值,数据缓冲区初始化,同时对显示子程序、按键子程序、时间修改子程序、和响铃子程序的一次循环调用。

 

 

图3-1主程序流程图

3.2子程序设计

3.2.1显示子程序

采用动态显示,通过P2口P2.0-P2.3实现显示器位的控制。

令P2=0F7H,开始时取第一位待显参数(缓存区30H单元中的数,字形码的偏移量),将位控数据输出到P2口,将30H单元中的数转换为段码送入P0口。

再取下一位位控数,缓存区指针加一,延时。

循环显示,显示4次后结束循环。

LED数码管显示流程图:

开始

位控信号给P2口

查表后待显字符给P0口

将秒显示与入后显示

直接显示

R0指向数据缓冲区30H

指针R0加1位控信号左移

R0是否大于34H

显示结束

位控指向第3位没

 

是否

图3-2显示程序流程图

3.2.2响铃子程序

每次显示完4位时间后,就依次和预设的时间进行比较,看是否相等,若相等则对P3.7置1,开始响铃,同时判断20s时间完成没。

当20s响铃完成后,对P3.7口置0,响铃结束。

开始

响铃

当前时间与设定比较

响铃20s完成

 

 

 

否是

图3-3响铃子程序流程图

3.2.3键盘扫描子程序

系统设计中需要用到3个按键。

按键个数少,采用独立式键盘可以节约硬件资源。

编程也相对简单一点。

当读取到有按键按下时,加上延时去抖动,防止误读。

开始

调用显示程序

延时去抖动

读键值

执行功能

返回

按键按下?

按键按下?

按键松开?

 

 

 

 

图3-4按键子程序流程图

第4章系统调试与性能分析

先按电路原理图把线连接好,通过STC软件下载好程序后就可以进行硬件调试了。

(1)开机显示时间

电源接通后按下开机键,单片机开始工作,时间显示为16:

09。

其中小时的个位下面的点的闪烁用来表示秒针的自加。

闪烁30次后系统默认1分钟,时钟自加1。

图4-1开机时间显示

(2)定时响铃

当时间到设定值时如16:

40,上课打铃开始,蜂鸣器发出20s的声音。

图4-2定时打铃上课

 

(3)播放音乐。

当时间到大课间时,系统就会播放音乐,这里用第2位LED的点亮来代替音乐的播放。

图4-3课间休息放音乐

(4)修改时间,按下S1键后根据按下的次数,会分别点亮左边LED6LED5LED4LED3

分别表示可以修改时间个4位。

图4-4修改时间

在按键修改时出现过一些小问题,如可以调出24点25点等不存在的时间,经过后续的修改,这些问题都得到了解决

第5章总结

2周的课程设计就有结束了,对与自己能设计出一个作息时间控制器,并且功能也都基本实现感到高兴。

但是设计的东西也还只是试验阶段,做出来用还是会有好多毛病的,比如说音乐,就是用了个led代替,并不会真正唱歌。

还有就是调时间的时候,我想调第4位的话,要按4次,还不可以连续按4次,按太快的话系统读取不到按键。

总的来说,真真使用还是有好多小毛病需要改进的。

同时通过这次课程设计,然我们对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。

在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。

 

除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。

 

参考文献

[1]王迎旭等.单片机原理及及应用[M].2版.机械工业出版社,2012

[2]胡汉才.单片机原理及其接口技术[M].3版.清华大学出版社,2010.

[3]戴灿金.51单片机及其C语言程序设计开发实例[M].清华大学出版社,2010

附录

附录A硬件电路原理图

 

附录B程序清单

ORG0000H

SJMPMAIN

ORG000BH

AJMPDVT0

ORG0030H

MAIN:

MOV30H,#09H

MOV31H,#00H

MOV32H,#06H

MOV33H,#01H

MOV34H,#7FH

MOV20H,#0FFH

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

SETBET0

SETBEA

MOVR3,#10

MOVR4,#60

MOVR5,#00

MOVR7,#2FH

MOVR2,#0FFH

SETBTR0

W1:

LCALLPAN

LCALLSHIJIAN

LCALLSHIJIAN1

LCALLLO

LCALLANJIAN

LJMPW1

DVT0:

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZR3,RTN

CPL20H.7

MOVR3,#10

DJNZR4,RTN

INC30H

MOVR4,#60

RTN:

RETI

LO:

MOVA,#00H;显示子程序

MOVP2,A

MOVA,#0FFH

MOVP0,A

MOVR0,#30H;指针指向数据缓冲区

MOVR1,#0F7H;数码管位控制

LOOP1:

MOVA,R1;位信号给p2点亮对应的位

MOVP2,A

MOVDPTR,#TABLE

MOVA,R0

CJNEA,#32H,LOOP4;判断R0是否指向第3位,若指向则将32H单元的数和20H单元数ANL后在显示

MOVA,@R0

MOVCA,@A+DPTR

ANLA,20H

SJMPLOOP5

LOOP4:

MOVA,@R0;不等于32H则跳转下来,将30H单元的数给A,后查表

MOVCA,@A+DPTR

LOOP5:

MOVP0,A;显示出来

LCALLDELY

INCR0;指针自加指向下一位

MOVA,R1

SETBC

RRCA

MOVR1,A

JCLOOP1;判读4次是否显示完成

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

SHIJIAN:

MOVA,30H

CLRC

SUBBA,#0AH

JNZLP1

MOV30H,#00H

INC31H

MOVA,31H

CLRC

SUBBA,#06H

JNZLP1

MOV31H,#00H

INC32H

MOVA,33H

CLRC

SUBBA,#02H

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1