资源描述
Protues电路设计与仿真
结
课
论
文
姓 名 吕雪锋
学 号 5011212204
学 院 信息工程学院
专 业 计算机科学与技术
班 级 计算机16-2班
指导老师 孟洪兵
国旗升降自动控制系统
目 录
设计任务........................................................2
摘要.............................................................4
第 1 节 系统方案论证与比较..................................5
1.1 设计思路...............................................5
1.2 方案选择与论证.........................................5
1.2.1、电机的选择与论证.....................................5
1.2.2、电机驱动方案的选择与论证.............................5
1.2.3、显示部分方案的选择与论证.............................6
第 2 节 电路框图设计....................................... 8
2.1 总体框图设计..........................................8
2.2 整体程序流程图........................................9
第 3 节 系统的具体设计...............................10
3.1 系统的硬件设计........................................10
3.1.1、电机驱动模块.........................................10
3.1.2、键盘与显示模块.......................................11
3.2 系统的软件设计.......................................12
3.2.1、主体电路图.....................................12
第 4 节 结论.................................................13
第 5 节 心得.................................................14
参考文献...........................................................14
附录.........................................................15
国旗升降系统控制设计报告
设计任务
设计一个国旗升降旗系统,该系统能够控制升旗和降旗,升旗时,在到固定时间时自动停止;降旗时,在到达固定时间自动停止。
旗帜的升降由电动机驱动,该系统有三个控制按键,一个是上升键,一个是下降键,一个是复位按键。
基本功能
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的数字和一些简单的字符,电路复杂,占用资源较多且信息量小。
方案二:用LCD AMPIRE12864液晶显示,其优点是能显示更多的字符,工作电流比LED小几个数量级,故其功耗低,且有着良好的人机界面,体积小,功耗极低。
基于上述考虑,所以我们选择方案二
第 2 节 电路框图设计
2.1 总体框图设计
根据设计要求,本系统可由图所示的几个部分组成:
电源电路
单片机
LCD显示
方向驱动电机
按键输入
根据设计要求,可得本系统的程序主流程图如图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、键盘与显示模块
在本设计中使用了四个按键,分别用来控制升降旗和随意停止及其复位,时间的调节,其键盘摸板如图,显示部分采用液晶LCD AMPIRE12864,因为在本设计中只要求显示时间与汉子字符,其键盘与显示模块的电路原理图如图所示。
图3-1-2 键盘摸板
键盘与显示电路
3.2 系统的软件设计
整个系统的主要任务是执行升降旗、时间调整两种运动。
主体软件电路图:
此电路包括按键控制部分、单片机控制部分、步进电机驱动控制电路部分。电路采用AT89C52单片机作为控制系统的核心。单片机通过对按键的扫描,识别出外部命令,并通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过驱动电路来驱动步进电机运转。当按上升键时,步进电机正转;当按下降键时,步进电机反转;按停止键时,步进电机停转
第 4 节 结论
本系统的特色:本设计在硬件上,使用了步进电机控制和利用接近开关实现停止的双重保险,在软件上,利用C语言的简单精练特点,实现起来更加简单,现将题目要求指标及系统实际性能列表如下:
基本要求
发挥要求
实际性能
升旗时,匀速上升 同 时电机顺时针转动,到达顶端时能自动停止。降旗时,电机逆时针转动,到达低端时自动停止。
当时间设定为43S、时,电机匀速转动并且开始计时,到达指定时间停止转动。
能在随意的时间上手动停止
当到达任意时间,都可以选择停止,并且保持此位置,知道下一个动作。
LCD AMPIRE12864显示汉字字符,且显示升旗需要的时间,及此刻升旗的动态时间
通过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.Models UT550/UT520 Digital Indicating Controllers Users Manunal.Tokyo.Yokogawa.2003
[9] 陈爱萍,何智勇,羊四清,电子显示屏的单片机控制系统[M].北京.自动化与仪表[J].1999(7):54~57
[10] 楼然苗,李光飞,51系列单片机设计实例[M].北京.北京航空航天大学出版社.2003
[11] 卢艳君,单片机原理与应用[M].北京.机械工业出版社.2008
[12] Kavanagh R C. Improved Digital Tachometer with Reduced Sensitivity to Sensor Nonideality. IEEE Trans.Ind. Elect ron. , 2000 ,47 (4) : 890 – 897
[13] Prokin M. Ext remely Wide range Speed Measurement Using a Double2buffered Method. IEEE Trans. Ind. Electron. , 1994 ,41 (5) :550 – 559
[14] 吴丙申,卞祖富,模拟电路基础[M].北京.北京理工大学出版社.2007
[15] 李响初, 数字电路基础与应用[M].北京.机械工业出版社.2008
附录
材料清单
LCD AMPIRE12864
AT89C52
BUTTON
CAP
CAP-ELEC
CRYSTAL
MOTOR-STEPPER
POT-HG(主要用于调节液晶屏的背光)
RES
RESPACK-8
UNL2003A
部分程序
#include<reg52.h>
#include<intrins.h>
#include<source.h>
#include<LCD12864.h>
#define uchar unsigned char
#define uint unsigned int
sbit KEY2=P3^0;
sbit KEY3=P3^1; //三个按键控制口
char min,sec,tt=0,flag=0;
int num=0; //相序存放处
bit dir=1; //方向标志(默认为顺时针)
uchar code forward[]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//正转
uchar code reveser[]={0x0e,0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c};//反转
void delay(uint i)
{
while(--i);
}
void key_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右) 页(0 2 4 8) 列(0 1 2 3)
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右) 页(0 2 4 8) 列(0 1 2 3)
Display_SZ(2,4,8,3);
Display_HZ(2,4,1,miao);
}
}
}
void main()
{
init_LCD(); //初始12864
ClearScreen(0); //清屏
Set_line(0); //显示开始行
EA=1; //开启总中断
IT0=1;
EX0=1;
ET0=1; //允许定时器0中断
ET1=1;
TMOD=0x11; //设置定时器工作方式1 16位计数
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右) 页(0 2 4 8) 列(0 1 2 3)
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右) 页(0 2 4 8) 列(0 1 2 3)
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右) 页(0 2 4 8) 列(0 1 2 3)
Display_SZ(2,6,8,sec%10);
Display_HZ(2,6,1,miao);
}
key_scan();
}
}
void key() interrupt 0 //定时器0中断服务程序
{
TR0=!TR0;
TR1=!TR1;
}
void timer0() interrupt 1 //定时器0中断服务程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
void timer1() interrupt 3 //定时器1中断服务程序
{
TH0=(65536-60000)/256;
TH0=(65536-60000)/256;
if(num>=8) num=0;
if(dir==1) P1=forward[num++]; //正转
else P1=reveser[num++]; //反转
}
其中专业理论知识内容包括:保安理论知识、消防业务知识、职业道德、法律常识、保安礼仪、救护知识。作技能训练内容包括:岗位操作指引、勤务技能、消防技能、军事技能。
二.培训的及要求培训目的
安全生产目标责任书
为了进一步落实安全生产责任制,做到“责、权、利”相结合,根据我公司2015年度安全生产目标的内容,现与财务部签订如下安全生产目标:
一、目标值:
1、全年人身死亡事故为零,重伤事故为零,轻伤人数为零。
2、现金安全保管,不发生盗窃事故。
3、每月足额提取安全生产费用,保障安全生产投入资金的到位。
4、安全培训合格率为100%。
二、本单位安全工作上必须做到以下内容:
1、对本单位的安全生产负直接领导责任,必须模范遵守公司的各项安全管理制度,不发布与公司安全管理制度相抵触的指令,严格履行本人的安全职责,确保安全责任制在本单位全面落实,并全力支持安全工作。
2、保证公司各项安全管理制度和管理办法在本单位内全面实施,并自觉接受公司安全部门的监督和管理。
3、在确保安全的前提下组织生产,始终把安全工作放在首位,当“安全与交货期、质量”发生矛盾时,坚持安全第一的原则。
4、参加生产碰头会时,首先汇报本单位的安全生产情况和安全问题落实情况;在安排本单位生产任务时,必须安排安全工作内容,并写入记录。
5、在公司及政府的安全检查中杜绝各类违章现象。
6、组织本部门积极参加安全检查,做到有检查、有整改,记录全。
7、以身作则,不违章指挥、不违章操作。对发现的各类违章现象负有查禁的责任,同时要予以查处。
8、虚心接受员工提出的问题,杜绝不接受或盲目指挥;
9、发生事故,应立即报告主管领导,按照“四不放过”的原则召开事故分析会,提出整改措施和对责任者的处理意见,并填写事故登记表,严禁隐瞒不报或降低对责任者的处罚标准。
10、必须按规定对单位员工进行培训和新员工上岗教育;
11、严格执行公司安全生产十六项禁令,保证本单位所有人员不违章作业。
三、 安全奖惩:
1、对于全年实现安全目标的按照公司生产现场管理规定和工作说明书进行考核奖励;对于未实现安全目标的按照公司规定进行处罚。
2、每月接受主管领导指派人员对安全生产责任状的落
展开阅读全文