电子设计报告国旗升级系统.docx
- 文档编号:12057408
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:15
- 大小:256.58KB
电子设计报告国旗升级系统.docx
《电子设计报告国旗升级系统.docx》由会员分享,可在线阅读,更多相关《电子设计报告国旗升级系统.docx(15页珍藏版)》请在冰豆网上搜索。
电子设计报告国旗升级系统
河北联合大学电子设计大赛
设计报告
题目:
H题:
自动控制升降旗系统
学校:
河北联合大学信息学院
参赛队员姓名:
路赞扬陈光汇彭琳
目录
1.摘要
2.设计任务与要求
1.1设计任务
1.2设计要求
3.方案设计与比较
3.1控制系统选择
3.2执行系统选择
3.3系统电源选择
3.4控制系统显示选择
4.系统硬件设计
4.1系统硬件框图
4.2系统硬件介绍
5.系统软件设计
6.附录
6.1键盘按键功能说明
6.2部分程序
1.摘要:
本系统使用单片机配合步进电机等模块实现一个自动控制升降旗系统,该系统能够自动控制升旗和降旗。
该系统旗帜的升降由电动机驱动,在启动同时能够播放国歌,有两个无线控制按键,一个是上升键,一个是下降键。
系统能够过数码管或LCD实时显示旗帜高度,上升下降速度,通过键盘输入指定高度和半旗指令,实现非正常升降旗,而且,对该程序进行控制时操作简单易行,且数据具有断电保护功能。
关键字:
STC12C5A60S单片机,步进电机,语音电路模块,DS18B20,DS1302,EEPROM,LED\LCD显示
2.设计任务与要求
2.1任务
设计一个自动控制升降旗系统,该系统能够自动控制升旗和降旗。
升旗时,在旗杆的最高端自动停止;降旗时,在最低端自动停止。
该系统旗帜的升降由电动机驱动,有两个控制按键,一个是上升键,一个是下降键。
2.2要求
2.2.1基本要求
1、按上升键后,国旗匀速上升,同时流畅的演奏国歌,上升到最高端自动停止上升,国歌停奏;按下降键后,不放国歌,国旗匀速下降,到最低端后自动停止。
2、能在指定位置自动停止。
3、为避免误操作,国旗在最高端时,按上升键不起作用;在最低端时,按下降键不起作用。
4、升降旗的时间均为43秒,与国歌的演奏时间相等。
5、数字即时显示旗帜所在高度,以厘米为单位,误差不大于2厘米。
2.2.2发挥部分
1、按键实现无线控制。
2、设定指定时间自动升降旗。
3、显示升降旗速度,环境温度,系统时间。
4、数据实时存储,断电恢复记忆功能。
5、升降旗时间在20~180秒内可调,歌曲内容可变。
6、输入指定高度自动到达。
3.方案论证
3.1控制系统选择
采用STC12C5A60S2单片机实现控制功能,该单片机程序空间大,内部资源丰富,价格便宜,I/O口丰富,集成了内部看门狗、MAX810专用复位电路、2路PWM、8路高速10位A/D转换(250K/S,即25万次/秒),4个16位定时器等功能,ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,软硬件调试方便,对于电子设计竞赛时间紧、任务多的开发来说是极为有利的。
3.2执行系统选择
方案一:
采用普通直流电机控制升降旗能获得较大的启动转矩,转动速度快,但由于存在机械触点,直流电机容易产生噪声,而且单独使用时不能完成位置控制,需要配以传感器才能控制定位。
方案二:
采用步进电机控制升降旗运动,步进电机不需要使用传感器就能精确定位,而且通过给定的脉冲周期,能够以任意速度转动,定距运动较精确。
基于上述理论分析,我们拟选择方案二。
3.3系统电源选择
方案一:
采用开关电源,优点是输出功率大、体积小、效率高;缺点是输出纹波系数较大、对电网易产生干扰。
方案二、采用传统的线性稳压电源,优点是输出电压可以随意调节、输出电压纹波系数较小;缺点是效率低、体积大、电路较为复杂,成本较高。
综合制作难易程度以及成本和本系统使用实际情况,我们选用第一套方案。
3.4控制系统显示选择
方案一:
用LED数码管显示旗帜所在的高度和升降旗时间,本系统中只需要6只LED数码管进行动态显示即可以显示高度和时间。
优点是接口简单,易于控制,对电压电流的要求低,价格便宜,寿命长;缺点是只能显示0~9的数字和一些简单的字符且工作电流大。
方案二:
用LCD液晶显示,优点是能显示更多的字符和汉字,有着良好的人机界面,体积小,功耗极低;缺点是成本高,控制复杂。
基于上述考虑,所以我们拟选选择方案一。
4.系统硬件设计
4.1系统硬件框图
4.2部分硬件原理图:
4.2系统硬件介绍
开关电源作为整个系统电源,提供5V直流电源,
单片机做为系统控制核心,通过PWM信号输出作为步进电机控制信号,通过专用驱动电路实现电机正反转及调速输出,进而带动国旗实现升降,EEPROM作为系统状态及数据的掉电存储,
LCD实时显示当前系统状态:
国旗所在位置、国旗升降速、环境温度、系统时间等信息。
环境温度由单总线数字温度传感器DS18B20采集,时间由DS1302提供。
按键作为系统控制输入,分为无线升降控制按键和系统高级功能控制按键,前者共四个,分别为上升按钮,下降按钮,电源开关按钮。
后者实现定时升降旗时间设定,升旗高度设定,歌曲选择等功能。
MP3语言电路实现播放国歌功能,可以读取SD卡和U盘上的歌曲,方便多种场合使用。
5.系统软件设计
系统软件由KeilC51作为编译环境,全部使用C语言编写。
开发速度快。
部分内容见附录。
6.附录
键盘按键功能说明:
键盘如图所示:
数字输入区:
0~9为数据输入区
功能区:
A:
当前环境温度查询
B:
当前时间查询
C:
指定国旗高度设置
D:
系统参数设置/时间设置
*:
取消
#:
确认
遥控按键如图所示:
A:
升旗
B:
降旗
C:
空
D:
空
部分程序:
1.Lcd:
voidsend_command(ucharcommand_data)
{
uchari;
uchari_data,temp_data1,temp_data2;
i_data=0xf8;
delay_1ms(10);
CS=1;
SCLK=0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=command_data;
temp_data1=i_data&0xf0;
temp_data2=i_data&0x0f;
temp_data1>>=4;
temp_data2<<=4;
i_data=temp_data1|temp_data2;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
CS=0;
}
voidsend_data(ucharcommand_data)
{
uchari;
uchari_data,temp_data1,temp_data2;
i_data=0xfa;
delay_1ms(10);
CS=1;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=command_data;
temp_data1=i_data&0xf0;
temp_data2=i_data&0x0f;
temp_data1>>=4;
temp_data2<<=4;
i_data=temp_data1|temp_data2;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
CS=0;
}
voidlcd_init()
{
ucharcommand_data;
delay_1ms(100);
command_data=0x30;
send_command(command_data);/*功能设置:
一次送8位数据,基本指令集*/
command_data=0x04;
send_command(command_data);/*点设定:
显示字符/光标从左到右移位,DDRAM地址加1*/
command_data=0x0C;
send_command(command_data);/*显示设定:
开显示,显示光标,当前显示位反白闪动*/
command_data=0x01;
send_command(command_data);/*清DDRAM*/
command_data=0x02;
send_command(command_data);/*DDRAM地址归位*/
command_data=0x80;
send_command(command_data);/*把显示地址设为0X80,即为第一行的首位*/
}
2.Ds1302:
//===================================================================================//
//单字节写子程序RC0(SCLK),RC1(I/O),RC2(RST)
//名称:
inputdata
//说明:
先写地址,后写数据
//功能:
往DS1302写入时钟数据
//===================================================================================//
voidinputdata(unsignedchartmaddr,unsignedchartmdata)
{
ucharloop;
CLOCK_DATA=0;//设置为输出;
CLOCK_RST=0;
CLOCK_SCLK=0;
CLOCK_RST=1;
for(loop=0;loop<8;loop++)//送地址
{
tmaddr=tmaddr>>1;//右移一位
CLOCK_DATA=CY;//输出移位标志位
CLOCK_SCLK=1;
CLOCK_SCLK=0;
}
for(loop=0;loop<8;loop++)//送数据
{
tmdata=tmdata>>1;//右移一位
CLOCK_DATA=CY;//输出移位标志
CLOCK_SCLK=1;
CLOCK_SCLK=0;
}
CLOCK_SCLK=1;
CLOCK_RST=0;
CLOCK_DATA=1;//设置为输出;
}
//===================================================================================//
//单字节读子程序RC0(SCLK),RC1(I/O),RC2(RST)
//名称:
outputdata
//说明:
读数据
//功能:
从DS1302读取1Byte数据
//===================================================================================//
unsignedcharoutputdata(unsignedchartmaddr)
{
ucharloop;
uchartmdata=0;
//inputdata(0x8E,0x00);
CLOCK_DATA=0;//设置为输
CLOCK_RST=0;
CLOCK_SCLK=0;
CLOCK_RST=1;
for(loop=8;loop>0;loop--)//送地址
{
tmaddr=tmaddr>>1;
CLOCK_DATA=CY;
CLOCK_SCLK=1;
CLOCK_SCLK=0;
}
CLOCK_DATA=1;//设置为输入;
CLOCK_DATA=1;
CLOCK_SCLK=1;
CLOCK_SCLK=0;
for(loop=8;loop>0;loop--)//读数据
{
tmdata=tmdata>>1;
if(CLOCK_DATA==1)
tmdata=tmdata|0x80;
CLOCK_SCLK=1;
CLOCK_SCLK=0;
}
tmdata=tmdata<<1;//由于在开始读是已经是第二个时钟下降延所以要进行左移处理
if(CY==1)
tmdata=tmdata|0x01;
CLOCK_SCLK=1;
CLOCK_RST=0;
return(tmdata);
}
2010年4月20日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子设计 报告 国旗 升级 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)