国旗升降自动控制系统.docx

上传人:b****7 文档编号:10063788 上传时间:2023-02-08 格式:DOCX 页数:19 大小:148.60KB
下载 相关 举报
国旗升降自动控制系统.docx_第1页
第1页 / 共19页
国旗升降自动控制系统.docx_第2页
第2页 / 共19页
国旗升降自动控制系统.docx_第3页
第3页 / 共19页
国旗升降自动控制系统.docx_第4页
第4页 / 共19页
国旗升降自动控制系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

国旗升降自动控制系统.docx

《国旗升降自动控制系统.docx》由会员分享,可在线阅读,更多相关《国旗升降自动控制系统.docx(19页珍藏版)》请在冰豆网上搜索。

国旗升降自动控制系统.docx

国旗升降自动控制系统

国旗升降自动控制系统

国旗升降系统控制设计报告

设计任务

设计一个国旗升降旗系统,该系统能够控制升旗和降旗,升旗时,在到固定时间时自动停止;降旗时,在到达固定时间自动停止。

旗帜的升降由电动机驱动,该系统有三个控制按键,一个是上升键,一个是下降键,一个是复位按键。

 

基本功能

1.按下上升按键后,电机随着时间匀速顺时针转动;上升到固定时间时自动停止上升,电机停止转动;按下下降按键后,电机随着时间匀速逆时针下降,下降到固定时间时电机停止转动。

2.能在上升到最大时间后复位,动态时间清零。

3.为避免误动作,国旗在上升到固定时间时,按上升键不起作用;国旗在下降到时,按下降键不起作用。

4.升降旗的时间均为43秒,升国旗时,电机顺时针转动到时间最大值;降国旗时,电机逆时针转动到最大值

5.数字即时显示电机转动的时间,以秒为单位,误差不大于1秒。

 

摘要

本系统采用单片机AT89C51作为自动控制升降旗系统的检测和控制核心,采用由单片机控制的步进电机带动国旗升降,实现对国旗升降的自动控制。

该电路主要分为电机驱动控制模块、键盘与显示模块、语音模块及无线遥控电路模块等几个部分。

电机驱动控制模块采用集成驱动芯片L298,控制与显示部分分别采用键盘作为控制和液晶RT1602C作为显示。

基于这些完备而可靠的硬件设计,使用了一套完善的软件编程,实现了自动升降旗的基本功能及发挥部分的一些功能。

关键字:

步进电机自动控制液晶显示接近开关

 

具体设计

第1节系统方案论证与比较

1.1思路

题目要求设计一自动控制升降旗系统,该系统能够自动升降旗和自动升降半旗,能够在指定位置停止,升降旗的时间可在30—120秒的范围内自行调整,标准的升降旗时间与国歌演奏时间相等,即为43秒,且具有数字即时显示旗帜所在的高度和无线遥控升、降旗及停止功能。

根据题目要求由一个步进电机来控制旗帜的升降情况,由接近开关来防止旗帜在最高点或最低点停止时出现的误动作,由液晶来显示旗帜所在的高度及升降旗所用的时间,无线遥控电路使用无线发射接收模块SP,语音模块采用集成语音芯片ISD2560。

1.2方案选择与论证

1.2.1、电机的选择与论证

方案一:

采用普通的直流电机。

普通直流电动机具有优良的调速特性,调速平滑、方便,调整范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无级快速启动、制动和反转。

方案二:

采用步进电机。

步进电机的一个显著特点是具有快速的启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动或反转。

另一个显著特点是转换精度高,正转反转控制灵活。

因为在本系统中需要精确的转换速度和转换时间且启停要迅速,所以在本设计中我们选择方案二

1.2.2、电机驱动方案的选择与论证

方案一:

采用继电器对电动机的开或关进行控制,通过控制开关的切换速度实现对电机的运行速度进行调整。

这个电路的优点是电路结构简单,其缺点是继电器的响应时间长,易损环,寿命短,可靠性不是很高。

方案二:

采用由达林顿管组成的H桥型PWM电路。

用单片机控制达林顿管使之工作在占空比可调的开关状态,可精确调整电动机的运动状态(前进,后退,左转,右转)。

这种电路由于工作在管子的饱和截至模式下,效率很高。

H桥电路保证了可以简单的实现转速和方向的控制,但不能很精确的控制步距和速度。

方案三:

采用集成ULN2003A。

在自动化密集的场合会有很多被控元件如继电器,风机,空调等,这些设备通常由CPU集中控制,由于控制系统不能直接驱动被控元件,这与要有功率来扩展输出电流以满足被控元件的电流与电压。

而ULN2003A功能性强、应用范围广。

所以综上所述我们采用方案三。

1.2.3、显示部分方案的选择与论证

方案一:

采用LED数码管显示旗帜所在的高度以及升降旗所用的时间。

在本系统中需要用到6只LED数码管进行动态显示才可以达到要求。

采用LED的优点是亮度高,醒目,价格便宜,寿命长;缺点是只能显示0~9的数字和一些简单的字符,电路复杂,占用资源较多且信息量小。

方案二:

用LCDAMPIRE12864液晶显示,其优点是能显示更多的字符,工作电流比LED小几个数量级,故其功耗低,且有着良好的人机界面,体积小,功耗极低。

基于上述考虑,所以我们选择方案二

第2节电路框图设计

2.1总体框图设计

根据设计要求,本系统可由图所示的几个部分组成:

 

根据设计要求,可得本系统的程序主流程图如图2-2-1所示:

本系统的控制器采用ATMEL公司的AT89C52。

2.2整体程序流程图

 

第3节系统的具体设计

3.1系统的硬件设计

本系统由单片机AT89C52作为升降旗系统的控制核心,实现键盘控制、液晶显示以及无线遥控等几个部分,即该系统主要包括电机驱动模块、键盘与显示模块及晶振电路模块等几个部分。

现分别对各模块进行分析。

3.1.1、电机驱动模块

在本设计中采用ULN2003A来驱动电机。

其电路原理图如图所示。

电机驱动电路

其步进电机的控制原理为:

为了准确实现可调节的时间和高度控制的匀速升降,需要精确计算在人眼不能识别的时间内的步进电机的脉冲数。

在此我们选用步距角0.9度,则走一圈所需的步数为400步,因为用于固定绳子的轴的直径为2.5cm,则平均每步拉出的线长便可计算出来约为L=0.0234cm,在整个上升或下降过程中,high为总高度,可通过公式计算出在此段距离中步进电机需走的步数,即为,步进电机要转动的总步数:

总步数=高度(high)/0.0234,在此,时间可调时间间隔为1s。

3.1.2、键盘与显示模块

在本设计中使用了四个按键,分别用来控制升降旗和随意停止及其复位,时间的调节,其键盘摸板如图,显示部分采用液晶LCDAMPIRE12864,因为在本设计中只要求显示时间与汉子字符,其键盘与显示模块的电路原理图如图所示。

图3-1-2键盘摸板

键盘与显示电路

3.2系统的软件设计

整个系统的主要任务是执行升降旗、时间调整两种运动。

主体软件电路图:

此电路包括按键控制部分、单片机控制部分、步进电机驱动控制电路部分。

电路采用AT89C52单片机作为控制系统的核心。

单片机通过对按键的扫描,识别出外部命令,并通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过驱动电路来驱动步进电机运转。

当按上升键时,步进电机正转;当按下降键时,步进电机反转;按停止键时,步进电机停转

 

第4节结论

本系统的特色:

本设计在硬件上,使用了步进电机控制和利用接近开关实现停止的双重保险,在软件上,利用C语言的简单精练特点,实现起来更加简单,现将题目要求指标及系统实际性能列表如下:

基本要求

发挥要求

实际性能

升旗时,匀速上升同时电机顺时针转动,到达顶端时能自动停止。

降旗时,电机逆时针转动,到达低端时自动停止。

当时间设定为43S、时,电机匀速转动并且开始计时,到达指定时间停止转动。

能在随意的时间上手动停止

当到达任意时间,都可以选择停止,并且保持此位置,知道下一个动作。

LCDAMPIRE12864显示汉字字符,且显示升旗需要的时间,及此刻升旗的动态时间

通过LCD12864来显示设置的时间、此时的设置的时间、此时运行的时间。

由开关控制是否需要电机停止转动。

通过一个按键来实现是否需要电机停止转动,当达到需要的时间即可选择停止,或者继续。

具有按键控制升、降旗及停止功能

通过按键来实现升旗、降旗及停止。

但效果不是很好。

在旗杆的最顶端与最低端安装了接近开关,防止电机失控。

 

第5节心得

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

作为二十一世纪的大学来说单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了许多在书本上所学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是重要要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

这次设计也让我发现自己的知识严重不足,所以一定要不断充实自己的知识。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。

同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!

同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

参考文献:

[1]扬立,微型计算机原理与接口技术[M].北京.中国铁道出版社.2008

[2]陈伯时,电力拖动自动控制系统[M].北京.机械工业出版社.2009

[3]莫正康,电力电子应用技术[M].北京.机械工业出版社.2007

[4]赵瑞林,单片机原理与应用教程[M].北京.北京大学出版社.2005[1]

[5]张旭涛,单片机原理与应用[M].北京.北京理工大学出版社.2008

[6]赵建领,51单片机开发与应用技术详解[M].北京.电子工业出版社.2009

[7]康维新,MCS-51单片机原理与应用[M].北京.中国轻工业出版社.2009

[8]Yokogawa.ModelsUT550/UT520DigitalIndicatingControllersUsersManunal.Tokyo.Yokogawa.2003

[9]陈爱萍,何智勇,羊四清,电子显示屏的单片机控制系统[M].北京.自动化与仪表[J].1999(7):

54~57

[10]楼然苗,李光飞,51系列单片机设计实例[M].北京.北京航空航天大学出版社.2003

[11]卢艳君,单片机原理与应用[M].北京.机械工业出版社.2008

[12]KavanaghRC.ImprovedDigitalTachometerwithReducedSensitivitytoSensorNonideality.IEEETrans.Ind.Electron.,2000,47(4):

890–897

[13]ProkinM.ExtremelyWiderangeSpeedMeasurementUsingaDouble2bufferedMethod.IEEETrans.Ind.Electron.,1994,41(5):

550–559

[14]吴丙申,卞祖富,模拟电路基础[M].北京.北京理工大学出版社.2007

[15]李响初,数字电路基础与应用[M].北京.机械工业出版社.2008

附录

材料清单

LCDAMPIRE12864

AT89C52

BUTTON

CAP

CAP-ELEC

CRYSTAL

MOTOR-STEPPER

POT-HG(主要用于调节液晶屏的背光)

RES

RESPACK-8

UNL2003A

 

部分程序

#include

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitKEY2=P3^0;

sbitKEY3=P3^1;//三个按键控制口

charmin,sec,tt=0,flag=0;

intnum=0;//相序存放处

bitdir=1;//方向标志(默认为顺时针)

ucharcodeforward[]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//正转

ucharcodereveser[]={0x0e,0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c};//反转

voiddelay(uinti)

{

while(--i);

}

 

voidkey_scan(void)

{

 

if(KEY2==0)//按键2按下,升旗

{

delay(5000);

if(KEY2==0)

{

while(!

KEY2);

ClearScreen(0);

flag=1;sec=0;min=0;dir=1;

TR0=1;TR1=1;//启动定时器

Display_HZ(1,0,3,sheng);

Display_HZ(2,0,0,qi);

Display_SZ(1,4,32,0);

Display_SZ(1,4,40,0);

Display_HZ(1,4,3,fen);

Display_SZ(2,4,0,4);//屏(1左2右)页(0248)列(0123)

Display_SZ(2,4,8,3);

Display_HZ(2,4,1,miao);

}

}

if(KEY3==0)//按键3按下,降旗

{

delay(5000);

if(KEY3==0)

{

while(!

KEY3);

ClearScreen(0);

flag=2;sec=0;min=0;dir=0;

TR0=1;TR1=1;//启动定时器

Display_HZ(1,0,3,jiang);

Display_HZ(2,0,0,qi);

Display_SZ(1,4,32,0);

Display_SZ(1,4,40,0);

Display_HZ(1,4,3,fen);

Display_SZ(2,4,0,4);//屏(1左2右)页(0248)列(0123)

Display_SZ(2,4,8,3);

Display_HZ(2,4,1,miao);

}

}

}

voidmain()

{

init_LCD();//初始12864

ClearScreen(0);//清屏

Set_line(0);//显示开始行

EA=1;//开启总中断

IT0=1;

EX0=1;

ET0=1;//允许定时器0中断

ET1=1;

TMOD=0x11;//设置定时器工作方式116位计数

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=(65536-60000)/256;

TL1=(65536-60000)%256;

TR0=0;//启动定时器

TR1=0;

Display_HZ(1,0,2,kai);

Display_HZ(1,0,3,shi);

Display_HZ(2,0,0,sheng);

Display_HZ(2,0,1,qi);//上电显示:

“开始升旗”

Display_SZ(1,4,32,0);

Display_SZ(1,4,40,0);

Display_HZ(1,4,3,fen);

Display_SZ(2,4,0,4);//屏(1左2右)页(0248)列(0123)

Display_SZ(2,4,8,3);

Display_HZ(2,4,1,miao);

while

(1)

{

if(tt==20)//1秒时间到

{

tt=0;//把重新赋值为0等待下一秒(tt=20)

sec++;//

if(sec==60)

{

min++;

sec=0;

}

}

if(min==0&&sec==43)

{

TR0=0;TR1=0;

Display_HZ(1,0,2,yi);

Display_HZ(1,0,3,shii);

Display_HZ(2,0,0,wan);

Display_HZ(2,0,1,bi);//上电显示:

“开始升旗”

}

if(flag==1)//升旗计时显示

{

Display_SZ(1,6,32,min/10);

Display_SZ(1,6,40,min%10);

Display_HZ(1,6,3,fen);

Display_SZ(2,6,0,sec/10);//屏(1左2右)页(0248)列(0123)

Display_SZ(2,6,8,sec%10);

Display_HZ(2,6,1,miao);

}

if(flag==2)//降旗计时显示

{

Display_SZ(1,6,32,min/10);

Display_SZ(1,6,40,min%10);

Display_HZ(1,6,3,fen);

Display_SZ(2,6,0,sec/10);//屏(1左2右)页(0248)列(0123)

Display_SZ(2,6,8,sec%10);

Display_HZ(2,6,1,miao);

}

key_scan();

}

}

voidkey()interrupt0//定时器0中断服务程序

{

TR0=!

TR0;

TR1=!

TR1;

}

voidtimer0()interrupt1//定时器0中断服务程序

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

tt++;

}

voidtimer1()interrupt3//定时器1中断服务程序

{

TH0=(65536-60000)/256;

TH0=(65536-60000)/256;

if(num>=8)num=0;

if(dir==1)P1=forward[num++];//正转

elseP1=reveser[num++];//反转

}

 

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

当前位置:首页 > 表格模板 > 表格类模板

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

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