本系统采用AT89C51单片机作为主控制芯片,采用光电传感器检测旗帜高度,使用H型驱动电路驱动直流电机,利用8255A和相关电路实现键盘,显示功能, 完成了升降旗控制的基本要求。系统具有集成度高,操作简单方便等特点,能够快速、稳定、安全、可靠地对国旗升降进行智能化控制。

一、设计要求

(1)按下“上升”按键后,国旗匀速上升,同时流畅地演奏国歌;上升到最高端时自动停止上升,国歌停奏;按下“下降”按键后,国旗匀速下降,降旗的时间不放国歌,下降到最低端时自动停止。为避免误动作,国旗在最高端时,按上升键不起作用;国旗在最低端时,按下降键不起作用。

(2)升降旗的时间与国歌的演奏时间相等,为43秒钟,同时旗从旗杆的最下端上升到顶端。

(3)数字即时显示旗帜所在的高度,以厘米为单位,误差不大于2厘米。不论旗帜是在顶端还是在底端,关断电源之后重新合上电源。旗帜所在的高度数据显示不变。

(4)半旗状态。升旗时,按上升键奏国歌,国旗从最低端上升到最高端之后国歌停奏,然后自动下降到总高度的2/3高度处停止;降旗时按下降键,国旗先从2/3高度处上升到最高端,再自动从最高端下降到底之后自动停止,国歌停奏。

(5)具有无线遥控升、降旗及停止功能。

二、系统方案

2.1 系统方案

本系统可以划分为控制部分、高度检测部分、国歌演奏部分和电机驱动等四大部分。其中,控制部分包括控制器单元、显示单元、键盘单元、电机控制单元、状态标志单元和存储单元等。系统总体方框图如下图所示。

(1)存储器、控制器单元。存储芯片采用12C总线标准的容量2K的外部存储芯片24C02,它内含256×8位存储空间,具有工作电压宽、擦写次数多、写入速度快等特点。采用传统89C51作为控制核心,51系列单片机不仅价格低廉,使用简单,而且功能较齐备,运行速度适中,控制相对简单,在外扩设备的协助下,完全满足系统的设计要求。

(2)电机驱动单元。

采用普通直流电机,直流电动机具有优良的调速特性,调速平滑、方便,调整范围广,过载能力强,能承受频繁的冲击负载,可实现频繁的无级快速启动、制动和反转,能满足生产过程自动化系统各种不同的特殊运行要求,并且电路相对简单,价格低廉,可以满足本系统要求。采用继电器组成H型电机驱动电路,H型电路可以简单地实现转向的控制。电子开关的速度很快,稳定性也很强,减少了硬件电路的复杂性。

(3)输入、输出显示单元。采用8255可编程接口芯片。8255属于Intle8080/8088系列的通用可编程并行输入/输出接口芯片。它也可以和MCS-51单片机系统接口,以扩展MCS-51系统的I/O口。这样可完成单片机与外设的数据传送。本系统显示使用传统的数码管,数码管具有低功耗、防晒、防潮、防高(低)温等特点,同时精度比较高,操作简单。

(4)国歌演奏单元。采用用汇编语言根据国歌乐谱编写音乐程序,与采用语音芯片板相比,降低了开发成本,此方法简单易行,且完全可以达到系统设计要求。

(5)光电检测单元。采用光电传感器,光电传感器接收红外辐射后,由于红外光子直接把材料的束缚态电子激发成传导电子,由此引起电信号输出,信号大小与所吸收的光子数成比例,且这些红外光子能量的大小,必须满足一定的要求,才能激发束缚电子,起激发作用。光电传感器受外界影响比较小,抗干扰能力比较强。

2.2 系统硬件组成

根据以上方案分析,该国旗升降控制系统控制器我们采用89C51单片机为控制核心,并附加外部数据存储器及信号采集与处理电路、控制电路、显示电路等共同组成。其框图如下图所示。

本系统硬件电路原理图见下图。

三、系统软件设计与编程

控制器软件使用单片机汇编语言,采用状态矩阵单元化程序思想来设计,程序是在Windows XP环境下采用Keil软件编写的。为便于程序的分析和使用,将软件划分成若干单元,主要包括主程序、系统初始化程序、显示子程序、上升子程序、下降子程序、半旗子程序、自动服务子程序等。

3.1系统主程序

在主程序中,首先设置堆栈,对扩展电路、89C51内部的RAM及各寄存器初始化,并设置有关标志。然后,系统自检,显示开机提示符,读键盘,并根据设置的标志位转到各级处理子程序。其主要流程如下图所示。

3.2 自动运动控制程序

自动运动控制程序,用于实现旗帜的升降运动,主要完成预定值的输入,设定高度与即时高度的比较,进而驱动电机正转、反转、停转等功能。其程序框图如下图所示。

3.3外部中断1服务程序

中断服务程序完成对脉冲累加,处理得到旗帜的实时高度。40H 中累计脉冲个数,41H,42H,44H中以厘米为单位分别存放高度的百位,十位,个位。根据标志位来完成高度的增一或减一,最后将高度送显示缓冲区。外部中断1服务程序框图如下图所示。

文采用AT89C51单片微处理器做主控芯片,配上相应的外部接口电路,设计了国旗升降控制系统。系统设计过程中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,使系统具有集成度高,操作简单方便等特点。经过对升降时间、升降高度、国歌演奏时间、降旗三分之二高度等的测试,系统完全达到了设计要求。

c语言80c51控制系统设计,基于AT89C51的国旗升降控制系统设计相关推荐

  1. 检测噪声大小的c语言程序,单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计.doc...

    单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计 摘 要 本文以AT89S52 单片机为控制核心,通过播音判断电路寻找广播间歇时段,实时采集噪声环境内的噪音信 号,根据A/ D 转换 ...

  2. SpringSecurity系列——其他的权限控制,基于access表达式的权限控制day6-2(源于官网5.7.2版本)

    SpringSecurity系列--其他的权限控制,基于access表达式的权限控制day6-2(源于官网5.7.2版本) 常见权限控制总表 基于access表达式的权限控制 实例1:改写hasRol ...

  3. c语言源程序温室大棚,基于AT89C51的蔬菜大棚控制系统设计

    44780显示模块有8条数据线,3条控制线,可与微处理器或微控制器相连,通过输入数据和指令,就可使模块正常工作.44780显示模块和AT89C51单片机连接电路如图3所示. 2.5 电平转换器MAX2 ...

  4. 基于单片机双路温度检测报警系统设计-基于单片机声光控智能开关控制灯设计-基于单片机热电偶智能体温检测设计-基于单片机小型家用燃气锅炉控制系统设计-基于单片机一氧化碳有毒气体采集报警系统设计

    1628基于单片机双路温度检测报警系统设计(串口上位机控制) 基于pcf8591 tlc2543的双路温度检测报警系统 带串口上位机控制带仿真 源程序 温度传感器是 LM35 两路测温通道所用的ad芯 ...

  5. 【电路】基于单片机智能睡眠枕系统设计-基于单片机音乐喷泉制作设计-基于单片机智能温控风扇调速系统设计-基于单片机智能自动循迹小车控制系统设计-基于数字电路的4人投票系统设计(仿真,报告)毕设课设资料

    1620基于单片机智能睡眠枕系统设计-文档+PPT+PCB图+原理图+源码 智能睡眠枕主要由lcd屏幕.蓝牙.压力传感器.蜂鸣器.单片机等等组成,用户可通过四个独立按键进行操控(四个按键从左至右为1. ...

  6. 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计

    1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告)  摘  要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...

  7. 基于STM32的智能温室控制系统仿真电路设计(温控补光)-基于STM32的智能蓝牙温控风扇控制系统设计-基于STM32的无线蓝牙心电监护仪系统设计【毕设课设分享】

    1609 基于STM32的智能蓝牙温控风扇控制系统设计-毕设课设 1.LCD1602液晶显示当前温度,温度上下限值,风扇等级,自动手动模式: 2.设置有4个按键,按键1可以设置自动和手动2种模式切换: ...

  8. 【资料转发分享】基于STM32智能路灯灯光自动控制系统设计-基于STM32无刷电机BLDC速度控制器系统设计-基于STM32热释人体感应智能门禁报警系统设计-基于STM32居家加湿器控制仿真系统设计

    1604基于STM32智能路灯灯光自动控制系统设计-毕设课设资料 实现的功能如下,下图是仿真原理图: 通过ARM内部的ADC采集光敏电阻电压,判断电压值 电压值低于设定的值,表示光强太弱,开路灯 光强 ...

  9. 【设计方案分享】基于单片机温度监测监控报警系统设计-基于单片机钞票自动智能识别系统设计-基于单片机乒乓球游戏机控制系统设计-基于单片机温度监测监控报警系统设计-基于单片机矩阵键盘的电子密码锁设计

    820基于单片机温度监测监控报警系统设计-设计资料 温度监测器功能描述: 1.主控芯片用的是51单片机(STC89C51). 2.使用温度传感器DS18b20采集温度. 3.用1602液晶显示显示温度 ...

最新文章

  1. 前腾讯员工不堪房价压力回老家进国企!终于过上了清闲的日子,他又担心这个问题?...
  2. 8、奇怪的表达式求值--2017网易春招
  3. sqlserver oracle 数据类型对应关系,SQLSERVER和ORACLE数据类型对应关系详解和对应表格整理...
  4. Python-程序模块化
  5. git使用教程(初次配置+错误提示)
  6. C++实现调用C#(CLI)方法
  7. 定制一款铝合金型材的流程
  8. Unity3d学习之路-简单打飞碟小游戏
  9. SQL Server新增字段并添加描述
  10. 对计算机网络的认识400字,对计算机网络的初步认识
  11. 计算机存储一个像素点需要多少个字节
  12. dnspod动态解析linux,NAS折腾记 篇一:五分钟搞定威联通DNSPOD动态域名解析-简单教程+问题解决...
  13. react中dispatch_react-redux中连续两次dispatch-actions有顺序吗?
  14. 《自控力》读后感——意志力与认识自己
  15. java web实验报告_JavaWeb实验报告
  16. 求与下面谓词公式等值的前束范式_离散数学课后答案
  17. 电子科大互加数据库课程作业——ER图设计
  18. 测试开发工程师到底是做什么的?你真的知道吗
  19. 《资源成本双优化!看 Serverless 颠覆编程教育的创新实践》
  20. React实例响应式设计和数据绑定

热门文章

  1. Binary Tree Upside Down LC解题记录
  2. 在 Kubernetes 上安装和运行极狐GitLab实例
  3. 北大游记——记一次北大暑期课堂(信息科学营计算机类)
  4. 极光推送 (具体步骤,指导操作,推送成功)
  5. 计算机相关的队名,有创意的队名和口号(精选80个)
  6. 【C语言】C语言数据类型
  7. linux上安装Ubuntu (在苹果笔记本上用了移动硬盘装的)
  8. java obervable_了解Java的Observable和JavaFX的Observable
  9. 简单的JavaScript模拟时钟
  10. 一键清除苹果锁屏密码_极品苹果手机解锁软件ios解锁大师苹果手机锁屏密码忘了不用愁...