国旗升降自动控制系统Word格式.docx
- 文档编号:17759365
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:17
- 大小:112.53KB
国旗升降自动控制系统Word格式.docx
《国旗升降自动控制系统Word格式.docx》由会员分享,可在线阅读,更多相关《国旗升降自动控制系统Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
第5节心得.................................................14
参考文献...........................................................14
附录.........................................................15
国旗升降系统控制设计报告
设计任务
设计一个国旗升降旗系统,该系统能够控制升旗和降旗,升旗时,在到固定时间时自动停止;
降旗时,在到达固定时间自动停止。
旗帜的升降由电动机驱动,该系统有三个控制按键,一个是上升键,一个是下降键,一个是复位按键。
基本功能
1.按下上升按键后,电机随着时间匀速顺时针转动;
上升到固定时间时自动停止上升,电机停止转动;
按下下降按键后,电机随着时间匀速逆时针下降,下降到固定时间时电机停止转动。
2.能在上升到最大时间后复位,动态时间清零。
3.为避免误动作,国旗在上升到固定时间时,按上升键不起作用;
国旗在下降到时,按下降键不起作用。
4.升降旗的时间均为43秒,升国旗时,电机顺时针转动到时间最大值;
降国旗时,电机逆时针转动到最大值
5.数字即时显示电机转动的时间,以秒为单位,误差不大于1秒。
摘要
本系统采用单片机AT89C51作为自动控制升降旗系统的检测和控制核心,采用由单片机控制的步进电机带动国旗升降,实现对国旗升降的自动控制。
该电路主要分为电机驱动控制模块、键盘与显示模块、语音模块及无线遥控电路模块等几个部分。
电机驱动控制模块采用集成驱动芯片L298,控制与显示部分分别采用键盘作为控制和液晶RT1602C作为显示。
基于这些完备而可靠的硬件设计,使用了一套完善的软件编程,实现了自动升降旗的基本功能及发挥部分的一些功能。
关键字:
步进电机自动控制液晶显示接近开关
具体设计
第1节系统方案论证与比较
1.1思路
题目要求设计一自动控制升降旗系统,该系统能够自动升降旗和自动升降半旗,能够在指定位置停止,升降旗的时间可在30—120秒的范围内自行调整,标准的升降旗时间与国歌演奏时间相等,即为43秒,且具有数字即时显示旗帜所在的高度和无线遥控升、降旗及停止功能。
根据题目要求由一个步进电机来控制旗帜的升降情况,由接近开关来防止旗帜在最高点或最低点停止时出现的误动作,由液晶来显示旗帜所在的高度及升降旗所用的时间,无线遥控电路使用无线发射接收模块SP,语音模块采用集成语音芯片ISD2560。
方案选择与论证
、电机的选择与论证
方案一:
采用普通的直流电机。
普通直流电动机具有优良的调速特性,调速平滑、方便,调整范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无级快速启动、制动和反转。
方案二:
采用步进电机。
步进电机的一个显着特点是具有快速的启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动或反转。
另一个显着特点是转换精度高,正转反转控制灵活。
因为在本系统中需要精确的转换速度和转换时间且启停要迅速,所以在本设计中我们选择方案二
、电机驱动方案的选择与论证
采用继电器对电动机的开或关进行控制,通过控制开关的切换速度实现对电机的运行速度进行调整。
这个电路的优点是电路结构简单,其缺点是继电器的响应时间长,易损环,寿命短,可靠性不是很高。
采用由达林顿管组成的H桥型PWM电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态,可精确调整电动机的运动状态(前进,后退,左转,右转)。
这种电路由于工作在管子的饱和截至模式下,效率很高。
H桥电路保证了可以简单的实现转速和方向的控制,但不能很精确的控制步距和速度。
方案三:
采用集成ULN2003A。
在自动化密集的场合会有很多被控元件如继电器,风机,空调等,这些设备通常由CPU集中控制,由于控制系统不能直接驱动被控元件,这与要有功率来扩展输出电流以满足被控元件的电流与电压。
而ULN2003A功能性强、应用范围广。
所以综上所述我们采用方案三。
、显示部分方案的选择与论证
采用LED数码管显示旗帜所在的高度以及升降旗所用的时间。
在本系统中需要用到6只LED数码管进行动态显示才可以达到要求。
采用LED的优点是亮度高,醒目,价格便宜,寿命长;
缺点是只能显示0~9的数字和一些简单的字符,电路复杂,占用资源较多且信息量小。
用LCDAMPIRE12864液晶显示,其优点是能显示更多的字符,工作电流比LED小几个数量级,故其功耗低,且有着良好的人机界面,体积小,功耗极低。
基于上述考虑,所以我们选择方案二
第2节电路框图设计
总体框图设计
根据设计要求,本系统可由图所示的几个部分组成:
根据设计要求,可得本系统的程序主流程图如图2-2-1所示:
本系统的控制器采用ATMEL公司的AT89C52。
整体程序流程图
第3节系统的具体设计
系统的硬件设计
本系统由单片机AT89C52作为升降旗系统的控制核心,实现键盘控制、液晶显示以及无线遥控等几个部分,即该系统主要包括电机驱动模块、键盘与显示模块及晶振电路模块等几个部分。
现分别对各模块进行分析。
、电机驱动模块
在本设计中采用ULN2003A来驱动电机。
其电路原理图如图所示。
电机驱动电路
其步进电机的控制原理为:
为了准确实现可调节的时间和高度控制的匀速升降,需要精确计算在人眼不能识别的时间内的步进电机的脉冲数。
在此我们选用步距角度,则走一圈所需的步数为400步,因为用于固定绳子的轴的直径为,则平均每步拉出的线长便可计算出来约为L=,在整个上升或下降过程中,high为总高度,可通过公式计算出在此段距离中步进电机需走的步数,即为,步进电机要转动的总步数:
总步数=高度(high)/,在此,时间可调时间间隔为1s。
、键盘与显示模块
在本设计中使用了四个按键,分别用来控制升降旗和随意停止及其复位,时间的调节,其键盘摸板如图,显示部分采用液晶LCDAMPIRE12864,因为在本设计中只要求显示时间与汉子字符,其键盘与显示模块的电路原理图如图所示。
图3-1-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]UT550/UT520DigitalIndicatingControllersUsers陈爱萍,何智勇,羊四清,电子显示屏的单片机控制系统[M].北京.自动化与仪表[J].1999(7):
54~57
[10]楼然苗,李光飞,51系列单片机设计实例[M].北京.北京航空航天大学出版社.2003
[11]卢艳君,单片机原理与应用[M].北京.机械工业出版社.2008
[12]KavanaghRC.ImprovedDigitalTachometerwithReducedSensitivitytoSensorNonideality.IEEE.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<
>
#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按下,降旗
if(KEY3==0)
KEY3);
flag=2;
dir=0;
Display_HZ(1,0,3,jiang);
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);
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);
Display_SZ(2,6,8,sec%10);
Display_HZ(2,6,1,miao);
if(flag==2)//降旗计时显示
key_scan();
voidkey()interrupt0//定时器0中断服务程序
TR0=!
TR0;
TR1=!
TR1;
voidtimer0()interrupt1//定时器0中断服务程序
tt++;
voidtimer1()interrupt3//定时器1中断服务程序
{
TH0=(65536-60000)/256;
if(num>
=8)num=0;
if(dir==1)P1=forward[num++];
//正转
elseP1=reveser[num++];
//反转
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国旗 升降 自动控制系统
![提示](https://static.bdocx.com/images/bang_tan.gif)