最新基于STC89C52单片机的国旗自动升降系统设计Word文件下载.docx
《最新基于STC89C52单片机的国旗自动升降系统设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新基于STC89C52单片机的国旗自动升降系统设计Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。
![最新基于STC89C52单片机的国旗自动升降系统设计Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/7/337e8b2b-2662-4956-97d2-75e60d8e710d/337e8b2b-2662-4956-97d2-75e60d8e710d1.gif)
有时一些错误的操作可能会出现一些尴尬局面,严重影响了庄严的升旗仪式。
随着现代科技的进步,自动控制系统已经逐渐广泛应用,尤其是单片机应用的普及,它以其极高的性价比,受到人们的重视和关注。
单片机具有体积小、重量轻、功能强、抗干扰能力强、价格低廉、灵活性好、较易开发等优点。
由于具备很多的优点,单片机已经被十分广泛的应用,小到电子生活用品,大到机器人、航天、医疗、工业电子设备等领域。
图1.1国旗升降装置原理图
1.1国旗自动升降系统国内外发展状况
目前像有些学校、机关单位升旗大部分还停留在人工升旗的阶段,用最原始的办法人为地来一步步完成,在升旗的过程中不可避免的会出现升降国旗与国歌演奏时间不协调,为了解决这个难题,这就需要自动化的装置来完成这项工作,它把整个升降旗的过程作为一个可控的装置来运行,要求自动控制系统像神经系统一样,具备系统性、全面性、准确性。
国内相关技术的发展为自动化控制产业的升级提供了技术的支持。
所以研究与完善国旗升降系统很有必要。
对于国外单片机自动化控制技术的发展,使国旗升降更加平稳和精确。
自动控制升降旗系统主要用一个电机控制旗帜自动升降,所以系统的主要功能就是控制电机的运转,而国外步进电机最早是由英国人所开发的。
后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易,后来发展到对步进电机的控制和驱动主要是采用专用芯片,结果大大缩小了驱动器的体积,明显提高了升旗装置的性能。
现在的装置则设计的的更为合理。
1.2选题目的和意义
随着电子技术日益发展,自动控制升降旗系统也在向前发展,然而传统的国旗升降存在着国歌的播放与国旗上升步调不一致现象,易受环境因素影响等弊端。
为了解决国旗升降中的众多问题,提高升旗的质量和效率,可以使用自动控制升降系统来完成国旗的升、降控制,使升降旗速度与国歌演奏时间准确配合,从而避免了人为升降国旗与国歌演奏时间不协调而出现的尴尬场面发生,保证了国旗升、降仪式的顺利进行。
并且由于实际的需要,对它的精度和功能要求也越来越高,这样不仅可以规范升旗过程,使升旗更加方便更加实用,而且可以通过不同的设置满足不同的需求。
另外减少了人力资源的使用,大大减少资金的投入。
系统最主要的是控制电机的转动,目前应用最多的是步进电机。
由于步进电机系统控制精度高,控制形式较为简单,易于实现数字化控制等特点使得步进电机的应用范围非常广泛,成为目前不可缺少的电机组件。
通过单片机控制的步进电机使得设计更加简单。
在技术的不断进步下,越来越多的保护和监控系统的出现,以及安全可靠性的提高和对室外环境的适应范围扩大,使现代升降系统总的发展趋势从自动化变得更加智能化和柔韧灵活性。
让单片机用于升降系统中,使控制技术和单片机技术相结合,从而可实现机电一体化控制,提高升降系统的自动化程度及运行可靠性和稳定性。
单片机的应用,使得许多领域和自动化得以提高,也使生产效率得到有效提升。
由于电子电源的集成化、模块化、智能化的发展、功率集成技术已模糊了整机与器件的界限。
自单片机问世以来,在升旗装置上的应用也日益完善,现如今的自控升降集成了越来越多的功能,结构更加合理、美观、实用,越更具有开阔的市场前景;
步进电机的出现,在结合了单片机后让自动升降国旗系统变得更加精准和便捷。
因此在升降国旗的问题上,自控系统也能与之高效的结合,采用单片机可以实现国旗的自动升降,解决了传统升降国旗方式遇到的不便,以保证升旗仪式的庄重和严肃性。
采用单片机为控制核心的国旗自动升降系统,不仅实现了演奏国歌与升旗同步,由按键控制步进电机的正反转,来操作国旗的升降,采用的接近开关能够防止误触操作,与此同时LCD能够实时显示国旗的位置,在国旗到达顶部后能自动打开鼓风机对国旗吹风使其飘扬。
2整体设计方案与理论分析
2.1系统装置理论分析
本文在实际应用的国旗自动升降系统的原理上,以STC89C52单片机为控制核心,设计了一套模拟装置,实现国旗自动升降的主要功能。
该控制系统由单片机STC89C52作为升降旗系统的控制和检测核心,通过键盘控制、液晶显示及语音等几个部分,实现国旗的自动升降。
该系统主要包括电机驱动模块、键盘与显示模块、语音模块等几个部分。
系统方案的整体思路是:
设置上升高度为1m,按键对单片机执行命令,然后单片机对步进电机进行控制实现国旗升降动作,LCD能够显示国旗的当前状态。
当按下升旗按键后,电机正转,升旗LED指示灯亮,LCD显示国旗高度,语音芯片是播放国歌且升旗的动作同步,当国旗升到顶部时国歌刚好演唱完毕;
当按下降旗按键,语言模块静音,降旗LED指示灯亮,步进电机反转,LCD显示国旗高度,国旗自动下降到底部。
图2.1为本设计的整体框图。
图2.1系统整体框图
本问设计的系统的控制器采用STC公司的STC89C52,因为考虑到编写的繁简程度,所以在此使用C语言进行软件编写,这样可以大大提高程序编写时的效率。
2.2电机的选择可以有两种方案
方案1:
采用直流减速电机。
上电即转动,掉电后惯性较大,停机时还会转动一定的角度后才会停下来;
转矩小,无抱死功能,如要求准确停在一个位置,其闭环算法复杂。
方案2:
采用交流电动机。
交流电动机具有结构简单、运行可靠、成本低廉等优点;
但对交流电动机进行调速需要比较高的技术和成本
方案3:
采用步进电动机。
步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变为角位移,即给一个脉冲,步进电机就转一个角度,因此非常合适单片机控制,在轻载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,累积误差小,控制精度高。
方案4:
采用普通的直流电机。
普通直流电动机具有优良的启动特性和调速性能,调速平滑、方便,调整范围广,过载能力强,热动和制动转矩较大,能承受频繁的冲击负载,可实现频繁的无级快速启动、制动和反转。
这也是交流电机无法取代的直流电动机的原因。
直流电机只要加上合适的电压就会转,因此在某些大型设备,比如轧钢机上都采用直流电动机拖动。
但它也存在着一个严重的问题,就是换向困难,还会产生火花、寿命短、结构复杂、要经常维护、价格也贵,并且维护检修不方便,转的圈数难以精确控制。
因为步进电机属于脉冲电动机,是靠脉冲信号变换工作,相比较而言步进电机节能,更适合精密仪器或小型产品,在本系统中需要精确的转换速度和转换时间且启停要迅速,基于上述理论上的分析,本设计采用方案3的步进电机控制国旗升降运动。
2.3电机驱动选择方案
根据任务书的要求,选用四相步进电动机,因为步进电动机是纯粹的数字控制电动机,有很好的控制精度,易于起停、正反转及变速。
电动机的驱动方法我们比较了以下几种方案:
方案一:
采用继电器对电动机的开或关进行控制,通过控制开关的切换速度实现对电机的运行速度进行调整。
这个电路的优点是电路结构简单,其缺点是继电器的响应时间长,易损环,寿命短,可靠性不是很高。
方案二:
采用由达林顿管组成的H桥型PWM电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态,可精确调整电动机的运动状态(前进,后退,左转,右转)。
这种电路由于工作在管子的饱和截至模式下,效率很高。
H桥电路保证了可以简单的实现转速和方向的控制,但不能很精确的控制步距和速度。
方案三:
采用集成驱动芯片ULN2003。
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。
用单片机控制达林顿管使之输出合适的脉冲信号,可精确调整电动机的运动状态(正转、反转和停止等动作)。
这种电路工作效率高,电机的转动精度可以由机械设计与单片机的程序来保证。
由于该芯片在5V的工作电压下与TTL和CMOS电路直接相连,可以保证负载电流的供给,同时也减少其它驱动芯片被烧毁的事故。
利用该芯片是实现驱动步进电机的一种简单方法,可时控制四相电机,且输出电流可达到2A,可精确控制步距和速度,利用该方法设计的步进电机驱动系统具有硬件结构简单、软件编程容易的特点。
所以综上所述本设计采用方案三。
2.4语音部分方案的选择与论证
采用语音芯片ISD1420。
该芯片采用CMOS技术,内含震荡器、话筒前置放大、自动增益控制、防混肴滤波器、平滑滤波器、扬声器驱动及EEPROM,一个最小的录放系统仅由一个麦克风、一个喇叭、两个按扭、电源及少数电阻电容即可,结构非常简单,且它的音质好、功耗低,但其录放音时间短,只有8到20秒。
采用语音芯片WT588D,它具有抗断电、音质好,使用方便,无须专用的开发系统等优点。
WTW-16P采用WT588D-20SS做为核心控制电路,WTW-16P内部包含了WT588D-20SS外围所需的SPI-FLASH、震荡电路、复位电路。
外部只需要接上电源、控制端以及扬声器(或者功放)就能正常工作。
采用YF1600系列录音IC模块,它是单片机中最简单的录音芯片,可以替代其它录音模块。
YF1600系列录音IC是根据录音产品市场而成功开发的录音IC系列产品,采用主控IC和外挂FLASH的方式实现10秒~780秒可擦写单段录音和掉电存储功能。
由于录音采样频率高,音质好,音量大,负载能够直推动外接扬声器,并且不需要太多的外围元件,成本低、便于生产、应用灵活。
主要功能特点表现在同一颗主控IC中实现录音键和播放键的不同组合应用。
方案四:
ISD系列语音芯片是Winbond公司推出的产品。
该芯片采用多电平直接模拟存储专利技术,声音不需要A/D转换和压缩,模拟信号直接存储在片内的闪烁存储器中,没有A/D转换误差,因此能够真实、自然地再现语音、音乐及效果声。
避免了传统录音电路量化和压缩造成的量化噪声和金属声。
ISD4004系列语音芯片的所有操作由微控制器控制,操作命令通过串行通信接口(SPI或Microwire)送入。
录音采样频率可为4.0Hz、5.3Hz、6.4Hz、8.0Hz,录放时间可为8min、10min、12min、16min。
采样频率越低,录放时间越长,但音质则有所下降。
片内信息存于闪烁存储器中,可在断电情况下保存100年,反复录音10万次(典型值)。
器件工作电压为3V,工作电流为15~25mA,维持电流为1μA。
适用于移动电话机及其它便携式电子产品中。
综上所述,因为在本系统国歌的的演奏时间需要43秒钟,所以在此选用方案四。
2.5单片机选择方案
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
STC89C52参数特性:
1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[1]
2)工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4)用户应用程序空间为8K字节
5)片上集成512字节RAM
6)通用I/O口(32个),复位后为:
P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8)具有EEPROM功能
9)共3个16位定时器/计数器。
即定时器T0、T1、T2
10)外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
11)通用异步串行口(UART),还可用定时器软件实现多个UART
12)工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
13)PDIP封装
2.6LCD显示选择方案
显示屏幕分为动态和静态显示。
1)静态显示:
显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再作用,直到下一次需要更新数据时再传送新数据,静态显示方法比较简单,只将显示段码送至段码口,并把位控字送至位控口即可。
静态显示虽然简单,但实际应用却受到限制。
因为在同一时刻只显示一种字符的场合是不多的,大多数情况下,需要显示的是不同字符,这就要采用动态显示方法。
静态显示编程容易、管理简单、显示亮度高、显示数据稳定、占用很少的CPU时间,但是引线较多,线路复杂,有时占用太多的I\O口,硬件成本较高。
2)动态显示:
动态显示需要CPU时刻对显示器件进行数据刷新,显示数据会有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
采用LED数码管显示旗帜所在的高度以及升降旗所用的时间。
在本系统中需要用到6只LED数码管进行动态显示才可以达到要求。
采用LED的优点是亮度高,醒目,价格便宜,寿命长;
缺点是只能显示0~9的数字和一些简单的字符,电路复杂,占用资源较多且信息量小。
用LCD(RT1602C)液晶显示,其优点是能显示更多的字符,工作电流比LED小几个数量级,故其功耗低,且有着良好的人机界面,体积小,功耗极低。
基于上述考虑,这两种显示方式各有利弊,静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多。
动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
本设计选择方案二。
2.7按键的选择方案
在单片机应用系统中为了控制系统的工作状态,以及向系统输入数据,系统应设有按键或键盘,以实现简单的人机对话。
通常的按键开关为弹性机械开关,由于机械触点的弹性作用,一个按键开关在闭合时并不会马上稳定地闭合,在断开时也不会马上断开,因而机械开关在闭合及断开瞬间均伴随有一连串的抖动。
抖动的时间长短由按键开关的机械特性及按键的人为因素决定,一般为5ms~20ms时间,按键式的抖动如图2.2所示。
按键抖动如果处理不当会引起一次按键被误处理多次,为了确保CPU对键的一次闭合仅作一次处理,则必须消除按键抖动。
在键闭合稳定时取键状态,一般是判断到键释放稳定后在作处理。
消除键抖动可用硬件和软件两种方法。
消除键抖动通常当键数较少时用硬件方法,键数较多时用软件方法。
此处采用软件方法。
消除键抖动的软件方法是当检测出键闭合后执行一个延时程序,产生5ms~20ms的延时,待前沿抖动消失后再次检测键的状态,如果键仍保持闭合状态则可确认为有按键按下。
当检测到按键释放并执行延时程序,待后沿抖动消失后才转入该按键的处理程序。
按键通常是一种常开型按键开关,平时键的两个触点处于断开或开路状态,按下键时它们才闭合或短路。
而键盘是一组按键的集合,从键盘的结构来看,独立式键盘的每个按键单独占用一个I/O接线口,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。
缺点为按键多时将占用的I/O口数目较多,优点为电路设计简单,且编程相对方便。
因电路需要的键盘较少,采用独立式键盘。
图2.2按键时的抖动
3系统硬件设计
本系统由单片机STC89C52作为升降旗系统的控制核心,实现键盘控制、液晶显示、语音以及无线遥控等几个部分,即该系统主要包括电机驱动模块、LED指示灯、键盘与显示模块、语音模块及无线遥控电路模块等几个部分。
现分别对各模块进行分析。
3.1STC89C52单片机及相关电路
3.1.1STC89C52单片机概述
51系列单片机最初是由Intel公司开发设计的,但后来Intel公司把51核的设计方案卖给了几家大的电子设计生产商,譬如SST、Philip、Atmel等大公司。
因此市面上出现了各式各样的均以51为内核的单片机。
这些各大电子生产商推出的单片机都兼容51指令、并在51的基础上扩展一些功能而内部结构是与51一致的。
STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。
STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。
STC89C52单片机的基本组成框图见图3-1。
图3-1STC89C52单片机结构图
1)一个8位的微处理器(CPU)。
2)片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89系列单片机最多提供1K的RAM。
3)片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。
但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。
目前单片机的发展趋势是将RAM和ROM都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。
SST公司推出的89系列单片机分别集成了16K、32K、64KFlash存储器,可供用户根据需要选用。
4)四个8位并行I/O接口P0~P3,每个口既可以用作输入,也可以用作输出。
5)两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。
为方便设计串行通信,目前的52系列单片机都会提供3个16位定时器/计数器。
6)五个中断源的中断控制系统。
现在新推出的单片机都不只5个中断源,例如SST89E58RD就有9个中断源。
7)一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单机与微机之间的串行通信。
8)片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。
最高允许振荡频率为12MHz。
SST89V58RD最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。
图3-2STC89C52单片机管脚图
部分引脚说明:
1)时钟电路引脚XTAL1和XTAL2:
XTAL2(18脚):
接外部晶体和微调电容的一端;
片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。
若需采用外部时钟电路时,该引脚输入外部时钟脉冲。
要检查振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。
XTAL1(19脚):
接外部晶体和微调电容的另一端;
在片内它是振荡电路反相放大器的输入端。
在采用外部时钟时,该引脚必须接地。
2)控制信号引脚RST,ALE,PSEN和EA:
RST/VPD(9脚):
RST是复位信号输入端,高电平有效。
当此输入端保持备用电源的输入端。
当主电源Vcc发生故障,降低到低电平规定值时,将+5V电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
RST引脚的第二功能是VPD,即接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,从而合复位后能继续正常运行。
ALE/PROG(30脚):
地址锁存允许信号端。
当8051上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC的1/6。
CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。
平时不访问片外存储器时,ALE端也以振荡频率的1/6固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。
如果想确定8051/8031芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。
如有脉冲信号输出,则8051/8031基本上是好的。
ALE端的负载驱动能力为8个LS型TTL(低功耗甚高速TTL)负载。
此引脚的第二功能PROG在对片内带有4KBEPROM的8751编程写入(固化程序)时,作为编程脉冲输入端。
PSEN(29脚):
程序存储允许输出信号端。
在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。
此引肢接EPROM的OE端(见后面几章任何一个小系统硬件图)。
PSEN端有效,即允许读出EPROM/ROM中的指令码。
PSEN端同样可驱动8个LS型TTL负载。
要检查一个8051/8031小系统上电后CPU能否正常到EPROM/ROM中读取指令码,也可用示波器看PSEN端有无脉冲输出。
如有则说明基本上工作正常。
EA/Vpp(31脚):
外部程序存储器地址允许输入端/固化编程电压输入端。
当EA引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051为4K)时,将自动转去执行片外程序存储器内的程序。
当输入信号EA引脚接低电平(接地)时,CPU只访问外部EPROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。
对于无片内ROM的8031或8032,需外扩EPROM,此时必须将EA引脚接地。
此引脚的第二功能是Vpp是对8751片内EPROM固化编程时,作为施加较高编程电压(一般12V~21V)的输入端。
3)输入/输出端口P0/P1/P2/P3:
P0口(P0.0~P0.7,39~32脚):
P0口是一个漏极开路的8位准双向I/O口。
作为漏极开路的输出端口,每位能驱动8个LS型TTL负载。
当P0口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。
作输入口使用时要先写1,这就是准双向