1、自动控制升降旗系统摘 要本系统是由单片机(AT89S52)、步进电机、ISD2560 语音芯片、时钟芯片 PCF8563、显示电路、遥控电路、按键等基本的部分组成的控制国旗升降系统。采用由单片机控制的步进电机带动国旗升降,实现对国旗升降的自动控制。采用接近开关 FR12-4DN,防止旗帜在最高点或最低点误动作,从而实现了双重保险的作用。使用抱闸装置保证步进电机在不通电的时候静止不动。本系统具有以下特点:1、可手动、可遥控。即可以通过按键来控制旗帜的匀速升降,也可以通过遥控器来实现远距离控制;2、可以按照用户的要求上升或下降到指定位置,并可在任意位置停止;3、国旗在上升过程中能准确与国歌乐曲同步
2、;4、能实现半旗的升降功能;5、具有断电保护功能;在实现以上功能的过程中,升降旗时间在 30120 秒内可调,通过改变步进电机的转动速度来改变旗帜上升或下降的速度,并通过 LED显示上升或下降时间和旗帜所在高度。旗帜达到顶端后,由鼓风机提供风源使旗帜始终处于飘扬的状态。测试表明,该系统无论在功能上、性能上都完全达到了题目的要求,(包括发挥部分的设计要求),并设计了其他创新功能,且误差较小,操作方便,经济实用,美观大方。关键字:单片机 步进电机 遥控 接近开关 抱闸装置ABSTRACTThe national movements control system is made up of MCU
3、(AT89S52), stepper motor, ISD2560 voice chip, clock chip PCF8563 and display circuits, remote control circuit, keyboards and other basic components. With the stepper which is controlled by MCU, to driver the flag rising and lowering, thus to achieve the flag automatic controlling. With automatic app
4、roach device FR12-4DN to prevent the flag malfunction at the highest or lowest point, thus realizing the dual role. Brake device used in stepper motor to ensure the static electricity. The system has the following features: First .Can be manually operated, can be remote-controlled. That is, through
5、the buttons to control movements can be achieved, and through remote control device can also achieved.Second. in accordance with the requirements of the user to the designated location and may increase or decrease in any position to stop; Third. Arrive the appoint position according to customers req
6、uire, and stop at the any position.Forth. Achieve the half-mast to functional movements; Fifth. Power outages protective function; In the process of achieving the above functions, 30-120 seconds for the flag rising is adjustable, by changing the rotational speed of the step motor, the flag raising s
7、peed can be changed, and the time & tallness will be showed on the LED. After the flag reached the top, the wind provided by the blower will make the flag in fluttering state.The test results show that the system in functional and performance requirements have been fully attained (including the desi
8、gn requirements of play), and other innovations are designed. And which is less error and easy to use, economical and practical, attractive and unaffected.Keywords: MCU Step motor Remote control一、方案的论证:1、单片机的选择采用 AT89S52单片机实现,该单片机内部资源丰富,集成了内部看门狗、双数据指针、在系统编程(串行下载目标程序)等功能,软硬件调试方便,对于电子设计竞赛时间紧、任务多的开发来说是
9、极为有利的。 2、电机的选择方案一:采用直流电机控制升降旗运动,直流电机力量大,能获得较大的启动转矩,转动速度快,但由于存在机械触点,直流电机容易产生噪声,而且单独使用时不能完成位置控制,需要配以传感器才能控制定位。方案二:采用步进电机控制升降旗运动,步进电机不需要使用传感器就能精确定位,而且通过给定的脉冲周期,能够以任意速度转动,定距运动较精确。虽然步进电机不能高速转动,但根据题目要求的时间和移动距离,步进电机完全能够符合要求,是该种要求下广泛使用的一种电机。基于上述理论分析,我们拟选择方案二。3、 系统工作电源的选择直流稳压电源的制作方案较多,而且可供选择的余地较大,我们本着简单、实用、安
10、全、可靠的原则,着重从以下几个方案中进行了选择:方案一:采用开关电源,优点是输出功率大、体积小、效率高;缺点是输出纹波系数较大、对电网易产生干扰。方案二、采用传统的线性稳压电源,优点是输出电压可以随意调节、输出电压纹波系数较小;缺点是效率低、体积大、电路较为复杂,成本较高。综合制作难易程度以及成本和本系统使用实际情况,我们选用了第一套方案。4、显示的选择方案一:用 LED数码管显示旗帜所在的高度和升降旗时间,本系统中只需要 6只 LED数码管进行动态显示即可以显示高度和时间。优点是接口简单,易于控制,对电压电流的要求低,价格便宜,寿命长;缺点是只能显示 09 的数字和一些简单的字符。方案二:用
11、 LCD液晶显示,优点是能显示更多的字符和汉字,有着良好的人机界面,体积小,功耗极低;缺点是成本高,亮度不高,夜晚不易清晰观察数据。基于上述考虑,所以我们选择方案一。二、系统设计1、系统框图根据题目要求和上述论证,本系统的系统框图如图一所示:微控制器(AT89S52)通过键盘输入控制信号,实现要求的运动控制,较好地实现了人机对话,并且可以通过 LED数码管实时地显示运动状态,国旗当前运动所处的高度以及到此高度所用的时间,升降国旗时间在 30秒到 120秒内可调。 电机采用步进电机与其配套的电机驱动器。步进电机的型号为42BYG028,为了降低 CPU的负载,避免让 CPU产生步进电机的驱动脉冲
12、节拍以及驱动步进电机的功率驱动电路,我们直接购置了与步进电机配对的驱动器,该驱动器型号为 WZM-2H042M,为两相混合式微控制器EEPROM 步进电机接近开关LED 数码显示电机驱动器无线遥控键盘负载鼓风机定时电路图一 系统结构框图,细分的步距角有 0.45、0.225、0.9等 3档。步进电机可以根据算法,按指定的高度计算步数,实现正转或反转。2、系统硬件设计(1)系统主控制电路:(见图二)(2)复位电路和步进电机驱动: 图二 系统主控制电路图我们采用 P2.0、P2.1 控制步进电机。P2.0 控制电机的步进脉冲信号,P2.1 控制电机的正反转。复位包括上电复位和按键复位。(见图三)图
13、三 复位电路和步进电机驱动电路(3)按键与显示电路:考虑成本、熟悉程度、器件等众多因素,我们选择了最常用的 74HC164 作为显示器的驱动器件,用 74HC165 作为键盘输入寄存器,我们设置的 8 个键通过并入串出接口芯片 74HC165 串行接入到单片机。 (见图四)(4)语音电路:采用 ISD公司生产的性能良好,使用方便的 ISD2560语音芯片来播放国歌。该芯片录音时间为 60S,可重复 10万次。该芯片采用多电平直接模拟量存储专利技术,每个采样值可直接存储在片内单个 EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,从而避免了一般固体录音电路因量化和压缩造成
14、的量化噪声和“金属声”;该器件的采样频率为 8.0KHz,同一系列的产品采样频率越低,录放时间会越长,但通频带和音质会有所降低。此外,ISD2560 还省去了 A/D和 D/A转换器。我们把国歌音乐录制在 ISD2560语音芯片中,然后用它的单次播放功能播放国歌。(见图五)图四按键与显示电路图五 语音录放电路(5)无线遥控电路PT2262 将 A0A5 和A6/D5A11/D0 决定的地址和数据进行编码,当 TE 为低电平时,从 DOUT 输出编码信号,编码信号提供给RF 或 IR 电路发射,由 RF或 IR 接收电路接收后,经PT2272 解码,实现遥控编码和解码。一块无线发射芯片 PT22
15、62 和接收芯片 PT2272 设计的电路有 4 个输入信号,完全满足设计要求的 3 按键遥控。(6)定时电路的设计我们在系统的设计上,对题目的功能要求进行了发挥,不仅显示旗帜运动时位置而且显示运动时间,使得系统更加直观。对于时间的控制,尽管 CPU 内部能进行定时控制,但为了提高精度和节省 CPU 的资源,我们专门设计了外部定时电路,选择 PHILIPS 公司的实时时钟芯片 PCF8563,它是一款工业级内含 I2C 总线功能的具有极低功耗的多功能时钟芯片,只需 2 条线即可与单片机通信。尽管 PCF8563具有万年历、时间报警、定时器等功能,且 8563 具有四个可编程时钟输出,频率分别为
16、 32.768KHz、1024Hz、32Hz 、1Hz,由于系统只对物体的运动计时,我们只运用 32 分频脉冲输出即可,该方波信号 1/32S 向 CPU申请一次中断,CPU 在中断服务程序中,对运动的时间加 1 处理并显示。 (见图六)图六 8563 定时电路(7)接近开关电路的设计我们选用 FR12-4DN 电感式的接近开关检测国旗在最高端和最低端,避免冒顶发生。 (见图七)图六 接近开关电路3、软件设计整个系统主要任务是使国旗执行升降旗、半旗、时间调整、高度调整四种运动,这样系统软件设计就可以分块完成。主程序部分,主要是查键盘,通过查键,检测应该做什么运动,键值不同调用不同的子程序。子程
17、序包括上、下运动、半旗、运动时间调整和高度调整等。(程序流程图见附录)三、系统原理与理论分析1、单片机系统组成单片机系统是整个自动控制升降旗系统的核心部分,它主要用于键盘按键或遥控管理、步进电机控制国旗的升降以及与国歌的同步、升降旗时间调整等。主要包括 AT89S52单片机、步进电机、步进电机驱动器、鼓风机、数码管显示译码芯片 74LS164与 74LS165等器件。2、控制原理(1)步进电机驱动脉冲数的计算为了准确实现可调节的时间和高度控制的匀速升降,需要精确计算在人眼不能识别的时间内的步进电机的脉冲数。步进电机我们选用的细分的步距角 0.9度的档,步进电机的定轴直径为 1.27324cm,
18、则每步拉出的线长为 0.01cm,完全符合精度的要求。高度可调步长为 1cm,时间可调时间间隔为 1s。在程序设计中,我们运用时间精度很高的 PCF8563产生 32Hz的脉冲方波输出接单片机的外部中断 1。在整个上升或下降过程中,high 为总高度,可通过公式:步进电机要转动的总步数:总步数=高度(high)/0.01, 分次转动的次数为: 次数=总时间(time)*32,每(1/32 s)走的步数: 步数=总步数/次数,除后余数的步数为: 余步数=总步数%次数。这样步进电机在转动时需要每 1/32 s走一次,程序中对余步数采用补偿的方法进行处理。分 2种情况考虑,余步数为 0时,每次按计算
19、的步数走计算出的对应次数就能满足要求;当余步数不为 0时,先在循环程序中分余步数次走步数加 1的步长,然后再按步数走(步数余步数)次。开始走时打开外部中断 1,每次走完后等待中断到来,中断到来时,清中断标志位进入下一次循环,循环完成时关外部中断 1。上升和下降通过步进的方向输入端子控制。在步进电机运动的过程中,实时显示运行时间和所在位置,保护现场数据。(2)国旗运动的控制在主程序中,循环查键。系统的按键 8个,但主程序中扫描按键时只优先扫描上升键、半旗键、调时间键、调高度键。A上升键按下时,对 ISD2560输出播音控制信号播放国歌,国旗经 43s的时间匀速上升至旗杆顶端,国歌播放完毕。此时程
20、序只扫描下降键,下降键按下有效时,国旗经 43s的时间匀速下降至地端。B半旗键按下时,对 ISD2560输出播音控制信号播放国歌,国旗经 43s的时间匀速从最低端上升到最高端之后,国歌停奏,然后自动经 14s的时间匀速下降到总高度的 2/3高度处(120cm)停止;此时程序只扫描下降键,下降键按下时,可以使国旗先从 2/3高度处经 14s的时间匀速上升到最高端,再自动从最高端经 43s的时间匀速下降到底之后自动停止,此时国歌停奏。C调时间键按下时,此时第二优先级的增量键、减量键、调时间键有效,时间可以通过加减键以 1s步长设置,范围为 30s120s,加减键可单按,也可连加连减。如第二次按下调
21、时间键时,时间调整确认,此时上升键有效,当按上升键时,国旗以设定时间匀速上升,国歌不演奏,当到达顶端时等待下降键按下,下降键按下后以同样的速度下降至底端,程序返回。如果不是上升键按下,不演示时间调整的运动过程,而调时间键第三次按下时,时间调整取消。返回扫描键程序。C设置高度键按下时,此时第二优先级的增量键、减量键、调高度键有效,高度可单按键或连加连减,高度的调整范围为 1cm180cm,如第二次按下调高度键时,高度调整确认,此时上升键有效,如果此时按下上升键时,此时国旗上升到达设定的位置,所用时间为(高度/4)s,此时国歌也不演奏。到达设定的位置后,等待上升键,上升键按下时,国旗以同样的速度下
22、降至底端,程序返回。不是上升键按下而是调高度键第三次按下时,高度设置取消,程序返回至查键程序。系统通过按键使能的有效时段防止误操作。(3)掉电现场的保护为了保障断电后再次加电时,国旗所在的高度和数据显示不变。在每次中断数据改变时,把国旗所在的精确位置和状态写在 24HC16中。掉电或断电时,国旗的位置保持原位,同时步进电机通过电磁阀制动。在下次上电时,首先读 24HC16的数据,检查国旗所在的位置。细分状态如下:A如果在 0cm位置,不做处理。B如果在 180cm位置,此时为升旗状态上升的最高点,查询下降键,等待下降键按下。当下降键按下时,国旗经过 43s的时间匀速下降至 0cm最低端处。C如
23、果在 120cm位置,此时为半旗状态上升的停止点,则查询下降键,等待下降键按下。当下降键按下时,国旗经过 14s的时间先升至最高点 180cm,后经过 43s的时间下降至 0cm最低端处。D在其它任意位置,上电后,直接自动下降至最低点,所需时间为(高度/4)s,不需要键控制。这整个过程中,24HC16 所存的位置数据一定要精确,确保不出现误差积累现象。(4)无线遥控无线遥控升、降旗及停止功能,设计在键盘扫描状态中,同时扫描遥控输入状态,无线遥控控制国旗的上升、下降和暂停。我们选用的无线模块控制范围为 200m,为了防止外部遥控器的干扰,我们对 SC2272-L4和 SC2262设置相同的地址,
24、屏蔽其它相同类型控制器的干扰。国旗运动时的停止功能,在 32Hz中断中查询是否有暂停键包括无线遥控中的暂停按键按下,如有暂停按键按下,关外部中断,等待停止键再次按下后继续工作。(5)创新功能A检测端点功能。在顶端和最低端安装接近开关,为防止程序跑飞和干扰,程序检测到顶端接近开关有信号时,强制步进电机制动国旗不再上升;程序检测到最低端接近开关有信号时,强制步进电机制动国旗不再下降。B抱闸功能。用电磁阀制作一个停电或断电自动抱闸功能,根据电磁阀的原理,220 交流电有电时,线圈有磁,铁心弹出顶住定滑轮制动,保证断电时国旗的位置不变。C国旗飘扬功能。在国旗非半旗状态下上升到达顶端时,通过继电器打开风
25、机,吹动国旗飘扬,国旗开始下降时,关闭风机。四、操作说明1、数码管显示说明:(1)在国旗上升或下降过程中数码管的编号和功能如下1号 2号 3号 4号 5号 6号 7号 8号时间百位时间十位时间个位运动状态标志位 位置百位 位置十位 位置个位A 1、2、3 号数码管分别显示在某一种运行状态下,运动的时间,半旗状态下,上升和下降时间不累计。时间以 s为单位,当高位为零时自动消隐。B 4 号数码管显示运动状态。状态说明如下:非半旗上升 非半旗上升 半旗上升 半旗上升时下 1/3 半旗下降U d L 左 l T半旗下降时升 1/3 任意高度上升 任意高度下降 上电时高度处理 上 T 上口 下口 倒 F
26、 C5 号数码管只显示中间的行线。D6、7、8 号键显示此时国旗所在高度,以 cm为单位。当高位为“0”时,只显示中间的行线,不消隐。(2)调键状态下编号和功能如下A当调时间时,1、2、3 号数码管显示时间调整的数据,当调高度时显示高度调整的数据。B4 号键只显示中间的行线。C5 号键显示键盘位置和键号为:D、6、7、8 号键全部显示“0”;2、按键操作说明:1号 2号 3号 4号 5号 6号 7号 8号复位 上升键 下降键 半旗键 调时键 增量键 减量键 调高度键 暂停键按键优先级表: 从左至右优先级由高到低上升键 下降键半旗键 下降键增量键减量键上升键 下降键调时键调时键调时键增量键减量键
27、上升键 下降键扫描键调高键调高键调高键1号 2号 3号 4号 5号 6号 7号 8号时间百位 时间十位 时间个位(s)位置百位 位置十位 位置个位(cm) 键号 0 0 01号 2号 3号 4号 5号 6号 7号 8号A B C D E F H J3、具体操作方法和实现的功能(1)升旗。国旗在非运动状态下的最底端时,按下上升按键后,国歌起,国旗缓缓上升, 1、2、3 号三位数码管显示工作时间,6、7、8 号三位数码管显示国旗所在位置,43s 后到达顶点,国歌停,国旗停止,运动时间显示 43s,位置显示 180cm,状态位显示 U,键号只显示中间的横线。国旗在顶端随风机的吹动飘扬。此时除下降键以
28、外的其它键都不工作,等待下降键按下,当下降键按下时,运动时间显示 0s,国旗开始匀速下降,43s 后到达低端。(2)半旗。国旗在非运动状态下的最底端时,当按下半旗键时,升半旗,具体过程是:国歌起,国旗缓缓上升,43s 后到达顶点,国歌停,然后国旗自动匀速下降,经 14s 后到达 120cm 处,在整个运动过程中除暂停键外,其它键无效。到达 120cm 位置后,此时只有下降键有效,当按下下降键时,降半旗,具体过程为:国旗先经14s 到达顶端,再自动下降到底端,降半旗全过程中不演奏国歌。(3)国旗到达指定位置。国旗在 0cm 位置时,按下调高度键,此时加减键有效,可以通过加减键调整高度,默认高度为
29、 180cm,指定位置可在 1 至 180cm 范围调整,加减键调整时,可根据要调整的高度选择用加键还是用减键,如要调整为 20cm,可以长按住加键时 180 cm 调为 1 cm 再加为 20 cm 左右后,再综合用加减键调为 20cm,调整好位置时第二次按下调高度时,位置确认,此时可以演示到达设定高度,方法和升旗过程一样,但整个过程不演奏国歌。(4)升国旗时间的调整。国旗在 0cm 位置时,按下调时间键,此时加减键有效,可以通过加减键调整时间,默认时间为 43s,时间可在 30s 至 120s 范围调整,具体调整方法同上面调位置操作。调整时间确认后可升国旗,但整个过程不演奏国歌。(5)开机
30、时的上次运行状态的处理。当开机时如位置显示为 0,则不处理可以按键;当位置显示 180cm,表示上次断电时国旗在顶端,此时升旗、半旗、调时、调高无效,必须先按下下降键把国旗降下,才能进行其它功能操作;当位置显示 120cm,按下下降键,国旗以降半旗的方式降至底端,才能进行其它功能操作;当位置显示非 120cm、180cm、0cm 时,开机后,国旗自动下降至底端,开始进行其它功能操作。(6)无线遥控。无线发射模块有 ABCD 四个按键,A 键按下时升旗,B 键按下降旗,C 键按下升半旗,D 键按下暂停。与键盘实现的功能一样,但无线遥控的优先级低于键盘的优先级。(7)抱闸。在升旗或降旗过程中,如果
31、断电或关闭电源,电磁阀可自动紧急抱闸,防止旗帜滑落,同时旗帜高度和时间显示不变。(8)防冒顶。利用接近开关装置防止旗帜在升、降旗过程中到达顶端和低端时发生失控冒顶事故。并在顶端处同时反馈信号启动鼓风机,让旗帜始终处于迎风飘扬状态。五、系统调试与测试结果1、调试步骤(1)将各个模块的电路制作完成后,我们对其进行单独的测试。a最小系统,键盘和显示。b调试步进电机的正转、反转、转速,以及每步绳子拉伸的长度。c调试 PCF8563产生 32Hz中断方波脉冲。d AT24C16 的字节读写,页读写。e 无线信号的接收。f调接近开关信号的检查。g电磁阀。(2)综合调试编写主程序逐次添加子程序,逐个调试其功
32、能,把软件和硬件连接后进行整体调试,得到了所需要的控制效果。2、测试结果根据题目要求,下面几项测试是必须要完成的内容,从我们测试的结果看,都达到了题目的基本要求和发挥要求,旗帜运动的参数都在要求范围内,而且所有的运动均在规定的时间内完成。各项的测试情况如下。(1)升旗时间和位置测试以测试国旗上升的运动时间和所到达位置为例,检测运动是不是匀速运动,实际位置和理论位置是否对应,升旗 43s到达 180cm的位置和时间是否精确。(如下表)理论位置(cm 10.0020.00 40.00 80.00 100.00 120.00 160.00 170.00 180.00)实际位置(cm)10.0020.
33、01 39.9680029996 12001159961699717998误差值(cm) 0 0.01 004002 004001 004003002理论时间(s) 2.3894.778 9.55619.111 23.889 28.667 38.222 40.61143000实际时间(s) 2.4 4.8 9.5 190 230 28.6 38.0 40.5 432误差值(s) 0.0110.022 -0.056-0.111 -0.889 -0.067 -0.222 -0.111 0(2)高度调整测试设定不同的高度,检测所到达位置是否精确,时间是否按(h/4)s的时间到达。(以升旗为例)理论位
34、置(cm) 30 60 100 140 150 170 179实际位置(cm) 2999 5997 9998 13995 150 16999 179误差值(cm) -0.01 -0.03 -0.02 -0.05 0 -0.01 0理论时间(s) 7.5 15 25 35 37.5 42.5 44.75实际时间(s) 7.51 14.98 24.97 35.04 37.51 41.48 44.7误差值(s) 0.01 -0.02 -0.03 0.04 0.01 -0.02 -0.05(3)时间调整测试 设定不同的时间,检测所到达顶点位置时间是否精确。理论时间(s) 30 40 80 100 11
35、0 120实际时间(s) 30.01 40 80.02 99.97 109.99 120.02误差值(s) 0.01 0 0.02 -0.03 -0.01 0.023、误差分析上述的各项运动测试中,尽管都在规定的允许误差范围内,但还是存在着一定的误差,我们从以下几个方面对误差产生的原因进行了分析:(1)滑轮的半径理论上滑轮的直径1.27324cm,机械加工上精度有限不能达到理想要求,不可避免地为后面地计算带来误差。(2)悬挂装置用线的形变在本系统中,系统的用线最好是不变形的,但实际上是不可能的,而且,它的变形随着线长的增加而增加。(3)机械制作工艺上的其他部分除了上述分析的因素外,还有诸如电机安装时的位置不合理,电机绕线时的斜绕的问题,叠绕的问题等,都会引起最后物体运动定位精度不够的结果。六、 结论经过几天的努力,我们完成了系统的设计和制作,实现了设计目标,达到了预期的目的。系统除能实现题目的基本要求外,还能满足其发挥部分的要求。附图:流程图部分