自动升降旗控制器1

合集下载

国旗升降自动控制系统

国旗升降自动控制系统

目录设计任务........................................................2 摘要.............................................................4 第 1 节系统方案论证与比较..................................51.1 设计思路...............................................51.2 方案选择与论证.........................................51.2.1、电机的选择与论证.....................................51.2.2、电机驱动方案的选择与论证.............................51.2.3、显示部分方案的选择与论证.............................61.2.4、语音部分的方案选择与论证.............................6 第 2 节电路框图设计.......................................82.1 总体框图设计..........................................82.2 整体程序流程图........................................9第 3 节系统的具体设计...........................103.1 系统的硬件设计........................................103.1.1、电机驱动模块.........................................103.1.2、键盘与显示模块.......................................113.1.3、语音模块.............................................12 3.2 系统的软件设计.......................................133.2.1、各部分程序流程图.....................................14 第 4 节测试方法与仪器...............................164.1 测试设备.............................................16 4.2 测试方法.............................................16第 5 节测试数据及测试结果析............................19第 6 节结论.................................................21 第 7 节心得.................................................22 附录.............................................................23 参考文献.........................................................24自动控制升降旗系统设计报告设计任务设计一个自动控制升降旗系统,该系统能够自动控制升旗和降旗,升旗时,在旗杆的最高端自动停止;降旗时,在最低端自动停止。

自动控制升降旗系统设计报告简介

自动控制升降旗系统设计报告简介

自动控制升降旗系统设计报告简介一、引言自动控制升降旗系统是一种应用于国旗、团旗、校旗等场景的创新技术,旨在替代传统手动升降旗的方式,实现旗帜的自动升降,提升升旗效率,并确保仪式的隆重性和庄重性。

本报告将详细介绍自动控制升降旗系统的设计及相关实施方案。

二、设计目标1. 提高升降旗的效率:通过自动控制升降旗系统,可以实现快速、准确的旗帜升降,节省人力资源,提高效率。

2. 确保升旗仪式的庄重性和隆重性:系统设计应考虑鲜明的升降旗动作,并配合相应的音乐效果,营造出庄严肃穆的仪式氛围。

3. 安全可靠:系统设计必须满足严格的安全标准,确保旗帜、支架等元素在升降过程中的稳定性和不会对周围环境造成损害。

三、系统设计方案1. 硬件设计:(1) 材料选择:选用耐候性强、防水、抗风性能好的材料制作支架,确保旗帜在恶劣天气条件下的稳定性。

(2) 电机驱动:采用高效、低噪音的电机,结合传感器和控制器,实现旗帜升降的自动化控制。

(3) 安全装置:配置相关传感器和安全装置,如限位开关、风力传感器等,以确保系统运行时的安全性。

(4) 音乐效果:集成音响系统,设计合适的音乐片段,通过音乐的播放来增加升旗仪式的庄重感。

2. 控制系统设计:(1) 控制单元:选用先进的微控制器作为控制单元,具备高性能、可靠性和良好的扩展性。

(2) 控制算法:采用PID控制算法,根据传感器获取的信息,实时调节升降旗的速度和位置,保证平稳、精确的升降动作。

(3) 远程控制:考虑到未来可能需要远程操控升降旗系统的需求,可以添加无线通信模块,实现远程控制和监测功能。

3. 软件设计:(1) 界面设计:开发友好的用户界面,通过直观的图形界面展示当前的控制状态和相关参数,便于操作和监测。

(2) 系统逻辑:设计合理的系统逻辑,实现旗帜的自动升降功能,并能对异常情况进行处理,保持系统的稳定性和可靠性。

(3) 数据管理:记录系统的运行日志和状态数据,方便后期分析和故障排除。

大型体育场升降旗控制系统设计方案

大型体育场升降旗控制系统设计方案

大型体育场升降旗控制系统设计方案一、引言随着大型体育赛事的不断增多,体育场升降旗已经成为一种重要的仪式和视觉效果。

为了实现体育场升降旗的顺利、自动化和安全运行,我们设计了一套大型体育场升降旗控制系统。

二、系统组成该系统由以下几个主要的组成部分构成:1.控制器:负责接收外部指令并控制升降旗的运行;2.电机和传动系统:负责升降旗杆的运动;3.传感器系统:负责检测升降旗杆的位置和状态;4.人机界面系统:负责提供用户与系统交互的界面。

三、系统功能1.升降旗控制:通过控制器接收用户指令,控制电机和传动系统实现升降旗杆的运动。

可以实现升降旗杆的单次升降和连续升降两种运动方式。

2.位置检测:通过传感器系统检测升降旗杆的位置,可以准确判断旗杆是否到达指定位置。

3.状态检测:通过传感器系统检测升降旗杆的状态,可以判断旗杆是否卡阻、运行是否正常等。

4.自动保护:当检测到旗杆卡阻或者异常状态时,控制器会自动停止旗杆的运动,以保护设备和人员安全。

5.报警功能:当升降旗杆发生故障或异常时,系统会发出警报以提醒操作人员。

四、系统设计1.控制器设计:控制器采用嵌入式系统,通过接收用户指令控制升降旗杆的运动。

控制器还可以接收传感器系统的数据,并对数据进行处理和判断。

同时,控制器具备自动保护功能,可以在检测到升降旗杆异常时立即停止旗杆运动。

2.电机和传动系统设计:电机和传动系统负责将控制器的指令转换为升降旗杆的运动。

电机可以采用步进电机或直流电机,传动系统可以采用齿轮传动或链条传动,保证旗杆运动的平稳和可靠性。

3.传感器系统设计:传感器系统主要包括位置传感器和状态传感器。

位置传感器可以采用光电编码器或者测距传感器,用于检测旗杆的位置。

状态传感器可以采用霍尔传感器或者光电传感器,用于检测旗杆的运行状态。

4.人机界面系统设计:人机界面系统采用触摸屏或按钮和显示屏的形式,提供直观的操作界面和实时的运行状态显示。

用户可以通过界面实现对升降旗的控制,并监控旗杆的位置和状态。

自动控制升降旗系统设计方案分析

自动控制升降旗系统设计方案分析

自动控制升降旗系统设计方案分析摘要:本文主要针对自动控制升降旗系统的设计方案进行了分析和探讨。

首先介绍了自动控制升降旗系统的基本原理和作用,然后对系统的设计要求进行了详细的说明,并提出了相应的解决方案。

接着,分析了系统设计中的关键技术和难点,并提出了解决这些问题的方法和思路。

最后,给出了系统测试和优化的建议,以及未来的发展方向。

1.介绍自动控制升降旗系统是一种用于控制旗帜的升降的装置,可以实现对旗帜的自动升降。

该系统主要由传感器、控制器、电机和旗杆等组成。

其作用是提高升降旗的效率,减少人工操作,实现自动化。

2.设计要求在设计自动控制升降旗系统时,需考虑以下几个方面的要求:2.1 稳定性要求系统需要具备良好的稳定性,能够在各种环境条件下正常运行,以保证旗帜的合理升降。

2.2 快速度要求系统需要具备较快的升降速度,能够在短时间内完成旗帜的升降操作,提高效率。

2.3 灵活性要求系统需要具备较高的灵活性,能够根据不同的需求进行调整,满足不同场合下的升降旗要求。

2.4 安全性要求系统需要具备良好的安全性能,能够在升降旗过程中避免事故的发生,保证人员和设备的安全。

3.设计方案为了满足上述设计要求,我们提出了以下设计方案:3.1 传感器选择选用高精度的旗帜位置传感器,用于检测旗帜的升降位置,并将信号传输给控制器进行处理。

3.2 控制器设计设计一个高效可靠的控制器,用于接收传感器的信号,判断旗帜的位置,并控制电机的运行,实现旗帜的自动升降。

3.3 电机选型选用适合的电机,具有较高的转速和扭矩,以确保旗帜的快速升降。

3.4 旗杆设计设计合理的旗杆结构,确保旗帜的稳定升降,并考虑到安全因素,防止旗帜在风力较大时晃动或倒下。

4.关键技术和难点分析在自动控制升降旗系统的设计过程中,存在以下几个关键技术和难点:4.1 传感器信号处理传感器信号的准确处理是保证旗帜升降准确性的关键,需要设计合适的算法进行信号处理。

4.2 控制器的稳定性控制器的稳定性对系统的性能和安全性至关重要,需要选用高品质的元器件,并进行稳定性测试和优化。

自动升旗装置的原理

自动升旗装置的原理

自动升旗装置的原理
自动升旗装置是一种自动化设备,通常用于国旗升降、升旗仪式、特殊场合升旗等场合。

它能够通过电脑控制或手动控制,达到升降旗杆、展开旗帜的目的。

其原理是通过电机控制斜杆的上下运动,实现旗杆的升降;同时通过电脑程序,控制对应的开关,展开或收回旗帜。

自动升旗装置主要由控制系统、升降系统、旗帜展开系统,以及安装结构等部分组成。

控制系统包括计算机、控制器、电源、传感器等元件。

通过传感器检测旗帜、旗杆的位置,控制升降系统的升降动作;通过开关控制旗帜展开、收回的动作。

升降系统主要由电机、减速器、斜杆、滑轮等组成。

电机和减速器提供动力,使斜杆上下运动,实现旗杆的升降。

滑轮通过拉动绳索,使旗帜展开或收回。

旗帜展开系统主要由绳索、轮组、固定框等组成。

通过控制滑轮运动、绳索拉动,完成旗帜的展开或收回。

固定框固定旗帜,使旗帜不会摇晃。

安装结构主要是将自动升旗装置、旗杆、旗帜与地面固定连接。

一般采用钢制结构,保证承重能力、稳定性。

自动升旗装置的优点是自动化程度高,操作简便、准确;节省了人力、物力,提
高了效率;同时可以通过计算机软件进行程序控制,方便实现各种复杂的旗仪式动作,可以广泛应用于各个领域。

这是自动升旗装置的原理简介。

此款电动旗杆电1

此款电动旗杆电1

安装和使用说明书(安装前请认真阅读本说明书)特别请详细阅读说明书第六部分(升旗高度学习)和第七部分(速度设置)一、产品简介本控制系统由旗杆电机和控制器二部分组成,本系统为本公司的最新产品,运用了多项智能传感技术,与传统的旗杆电机相比有以下新特点:1、采用24V低电压控制,杜绝了在旗杆管子闷气潮湿的环境里漏电的危险;2、采用精密的位置传感器,哪怕停电后手动升旗或降旗到任何位置,来电后正常遥控操作都能使旗帜精确到位,绝不会出现乱绳或者不到位的现象;3、具有过载保护功能,在大风天气等极端条件下万一发生钢丝绳、机械部件卡住的情况下,装置的自动过载保护功能会让电机停下来,保护系统不会造成机械性破坏;4、用高灵敏传感器替代了传统的升旗限位开关,使安装和调试更简单,基本实现傻瓜式操作;5、小型化,本控制系统A型产品最小可以在直径160mm的旗杆中使用,并且旗杆高度可以达到13米左右;6、新型离合装置,可以让旗杆电机在手动操作时完全脱离减速箱的阻力,使手动操作变的更轻松;7、采用稀土材料电机,力矩超大;8、无级调速功能,可以让升旗时间跟任何一个国家的国歌同步;二、产品参数使用电压:输入AC220V,输出DC24V功率:根据旗杆高度20-100旗杆高度:30米以内(特殊高度可以定制)速度:根据国歌时间可以任意调节升降旗速度遥控距离:大于30米(天线引出金属管、开阔地)提升力矩:大于10公斤使用环境:温度-30℃-70℃,湿度85%以下三、遥控器和控制面板功能说明(如图)1、遥控器:遥控器按键操作说明:按上升键(A):升旗;按下降键(B):降旗;按停止键(C):停止;按学习键(D):按8秒以上,进入旗帜高度学习。

2、控制面板:升旗时间显示:显示升旗时间和速度设定值;设置指示灯:当进入学习状态或速度设置状态时,指示灯亮;四、控制器插座说明(如图)五、安装1、根据旗杆直径和材质加装安装面板;2、钢丝绳穿过导线器小孔,把钢丝绳用所配螺丝固定在卷筒上(如图一);3、用摇把把钢丝绳在卷筒上绕上1-2圈(如图二);4、接好电源线,并把旗杆电机插头跟控制器连接好,注意一定要插紧;5、把旗杆电机固定到旗杆上,然后用摇把手动升旗降旗一次;6、通电,进行升旗位置学习(参考说明书第六项);7、学习完毕就可以正常升降操作,如果升旗时间跟国歌不同步,太快或者太慢,请参考说明书第七项调节升旗速度)六、升旗高度学习1、旗杆电机安装好以后,先用手动功能进行升旗降旗一次,以保证机械部分和钢丝绳没有故障,然后把旗帜降到一个合适的初始位置;2、检查旗杆电机滑块是不是在初始位置,准确初始位置应该在靠近手动摇杆这边,如果不在初始位置,请手动调到初始位置;3、把电机引出线插头跟控制器插座连接起来,并插紧,然后通电;4、长按遥控器学习键8秒以上或控制器上手动学习键3秒,听到控制器蜂鸣器发出长滴---的声音,面板上设置指示灯亮,显示器显示“000”代表进入学习状态,按遥控器或手动上升键,旗帜自动上升,到位后会自动停止,蜂鸣器鸣一声,设置指示灯熄灭,显示器显示上升时间,表示自动完成学习,然后用遥控器或手动按键就能正常操作。

国旗升降自动控制系统

国旗升降自动控制系统

Protues电路设计与仿真结课论文姓名吕雪锋学号**********学院信息工程学院专业计算机科学与技术班级计算机16-2班指导老师孟洪兵国旗升降自动控制系统目录设计任务........................................................2摘要.............................................................4 第 1 节系统方案论证与比较..................................51.1 设计思路...............................................51.2 方案选择与论证.........................................51.2.1、电机的选择与论证.....................................51.2.2、电机驱动方案的选择与论证.............................51.2.3、显示部分方案的选择与论证.............................6第 2 节电路框图设计.......................................82.1 总体框图设计..........................................82.2 整体程序流程图........................................9第 3 节系统的具体设计...............................103.1 系统的硬件设计........................................103.1.1、电机驱动模块.........................................103.1.2、键盘与显示模块.......................................11 3.2 系统的软件设计.......................................123.2.1、主体电路图.....................................12第 4 节结论.................................................13 第 5 节心得.................................................14 参考文献...........................................................14 附录.........................................................15国旗升降系统控制设计报告设计任务设计一个国旗升降旗系统,该系统能够控制升旗和降旗,升旗时,在到固定时间时自动停止;降旗时,在到达固定时间自动停止。

一种自动控制升降旗帜系统的设计

一种自动控制升降旗帜系统的设计

一种自动控制升降旗帜系统的设计发布时间:2021-01-13T07:08:52.070Z 来源:《中国科技人才》2021年第1期作者:王先富黄杰毛帅茗高进李伟伟[导读] 自动控制升降旗系统的设计采用STM32单片机作为主控芯片,使用芯片来驱动步进电机工作和播放国歌,LED在按键输入时做出相应的状态指示。

配备可拆卸2000mAh锂电池为单片机、驱动电机等供电。

控制过程中,单片机采集音频信号的时间以及频段,通过L298N 驱动器驱动电机正转和反转控制旗帜升降。

宜宾学院智能制造学部四川宜宾 644000摘要:自动控制升降旗系统的设计采用STM32单片机作为主控芯片,使用芯片来驱动步进电机工作和播放国歌,LED在按键输入时做出相应的状态指示。

配备可拆卸2000mAh锂电池为单片机、驱动电机等供电。

控制过程中,单片机采集音频信号的时间以及频段,通过L298N驱动器驱动电机正转和反转控制旗帜升降。

关键词:自动控制升降旗;STM32单片机;L298N驱动电机1、背景目前国家大力发展高精尖技术,计算机行业随之发展,自动控制行业也迎来了高潮,如今计算机相关行业由于技术更新不断发展,产业链越来越完善,各大企业都在寻求高效优质低成本的生产方式[1]。

自动化控制技术在计算机技术与电子技术结合下不断更新换代,自动控制智能系统广泛应用于各个领域,如机器人、工业电子自动化设备、医疗、广告、舞台灯光、印刷、计算机外部应用等,因此对自动控制系统的研究具有重要的现实意义和实用意义。

同时,升旗代表一个组织或团体独立和尊严的重要标志旗帜作为代表团体的象征,就有重大的意义。

举行升降旗仪式是对每个公民进行爱国主义教育、国旗意识教育,团体意识教育的重要途径;是衡量一个公民是否心存国家观念,是否爱国的重要标志;同时在相当程度上也成为衡量国民素质的重要标准[2]。

因此举行升降旗仪式绝不是一种形式,而是一项十分庄重、严肃的活动。

五星红旗是中华人民共和国的标志和象征。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创新实验报告课程名称:单片机开发与应用创新实验设计题目:自动升降旗控制器专业班级:电气13-1 测控13-2学生姓名:刘小波刘武全指导教师:刘霞段志伟开课院系:电气信息工程学院测控技术与仪器系实验中心名称:测控创新实验中心2015年6月14日一、实验目的1、掌握利用单片机C语言编写5V四相五线步进电机的控制程序;2、掌握利用单片机编写ULN2003电机驱动芯片的操作输出程序;3、掌握利用单片机C语言编写独立按键控制程序;4、掌握数码管的静态和动态显示程序的编写;5、掌握利用单片机C语言编写与操作逻辑的控制程序;二、设计任务以51单片机为核心设计一种具有自动控制升降旗功能的控制器,该系统是有步进电机、电机驱动芯片、数码管及按键部分组成。

三、设计要求基本要求(1)手动按下“UP”键,四位数码管上显示“H-20”,“H”表示上升状态,20表示步进电机需要转动20圈后,到达旗杆顶部。

在此过程,蜂鸣器以一定间隔发生响声,表示演奏国歌,同时,步进电机每转过1圈,数码管上计数减“1”,直到四位数码管上显示“H-00”,步进电机停止转动,蜂鸣器响声关闭。

当国旗上升过程中,按下“DOWN”按键操作无效。

(2)当确定国旗升至最高点时,手动按下“DOWN”键,四位数码管上显示“L-20”,“L”表示下降状态,20表示步进电机需要转动20圈后,到达旗杆底部。

在此过程,蜂鸣器不工作,步进电机每转过1圈,数码管上计数减“1”,直到四位数码管上显示”L-00”,步进电机停止转动,蜂鸣器发出一声响声。

当国旗下降过程中,按下“UP”按键操作无效。

发挥部分在完成基本要求的基础上,可以通过“DOWN”按键完成对国旗下降过程中,步进电机的加速控制操作。

按下一次“DOWN”按键,步进电机转动加快一次,加速等级自定义。

四、设计方案图4-1 系统硬件方框图五、硬件电路设计1、电源电路2、单片机晶振与复位电路(1)STC单片机简介8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

(2)电路连接3、程序下载电路USB电源线接到计算机USB口;下载线连接如表所示;4、数码管显示电路5、蜂鸣器电路6、按键控制电路7、步进电机控制电路六、系统调试1. 启动Keil C 软件:双击桌面上图标,;2. 新建工程:Project →New →uVision Project.. ,输入工程名字,不加后缀,保存;3. 选择单片机型号:左侧选项卡中的“Atmel ” →“AT89C52”,然后点击“确定”;4. 新建文件: File →New, 输入程序内容,保存**.C ;5. 添加文件到工程:左侧Project Workspace →Target 1→Source Group 1→鼠标右键点击Source Group 1 →选择选项卡中Add Files to Group ‘Source Group 1;6. 编译: Project →Rebuild all target files ;7. Hex 文件的输出: Project →Options for Target ‘Target 1’ → Output, 8. 将“Creat Hex Files ”前面对话框内选择“√”,点击“确定”;9. 下载程序:启动下载软件。

七、实物展示八、程序代码(1)基本要求1程序 #include<reg52.h>#define uchar unsigned char #define uint unsigned int uchar code table[]=//数码管{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x89};sbit w1=P2^4;sbit w2=P2^5;sbit w3=P2^6;sbit w4=P2^7;sbit beep=P1^4;sbit a=P2^0;sbit b=P2^1;sbit c=P2^2;sbit d=P2^3;uchar tim;void delay(uint y) //延时{uint m,n;for(m=0;m<112;m++)for(n=0;n<y;n++);}void init() //定时器初始化{TMOD=0X01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;}void display1(uchar s){uchar ge,shi;ge=s%10;shi=s/10;w1=0;P0=table[shi];delay(5);w1=1;w2=0;P0=table[ge];delay(5);w2=1;}void display2(uchar s) //显示数字{uchar ge,shi;ge=s%10;shi=s/10;w3=0;P0=table[shi];delay(5);w3=1;w4=0;P0=table[ge];delay(5);w4=1;}void bujin2() //步进电机反转{a=0;b=0;c=0;d=1;delay(1);a=0;b=0;c=1;d=0;delay(1);a=0;b=1;c=0;d=0;delay(1);a=1;b=0;c=0;d=0;delay(1);}void bujin1() //步进电机正转{a=1;b=0;c=0;d=0;delay(1);a=0;b=1;c=0;d=0;delay(1);a=0;b=0;c=1;d=0;delay(1);a=0;b=0;c=0;d=1;delay(1);}main(){uint tt;tim=20;init();while(1){while(tim>0){ //步进电机正转while(tt<=512){bujin1();tt++;}tim--;tt=0;}}}void time() interrupt 1{uchar t;TH0=(65535-50000)/256;TL0=(65535-50000)%256;t++;if(t==20){t=0;}display2(tim); //显示}(2)基本要求2程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table[]= //数码管{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x89};sbit w1=P2^4;sbit w2=P2^5;sbit w3=P2^6;sbit w4=P2^7;sbit beep=P1^4;sbit a=P2^0;sbit b=P2^1;sbit c=P2^2;sbit d=P2^3;sbit up=P1^0;sbit down=P1^1;uchar tim,temp;void delay(uint y) //延时{uint m,n;for(m=0;m<112;m++)for(n=0;n<y;n++);}void init() //定时器初始化{TMOD=0X01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;}void display1(uchar s) //显示H-if(s==0){w1=0;P0=0x89;delay(5);w1=1;w2=0;P0=0xbf;delay(5);w2=1;}if(s==1){w1=0;P0=0xc7;delay(5);w1=1;w2=0;P0=0xbf;delay(5);w2=1;}}void display2(uchar s) //显示数字{uchar ge,shi;ge=s%10;shi=s/10;w3=0;P0=table[shi];delay(5);w3=1;w4=0;P0=table[ge];delay(5);w4=1;void bujin2() //步进电机反转{a=0;b=0;c=0;d=1;delay(1);a=0;b=0;c=1;d=0;delay(1);a=0;b=1;c=0;d=0;delay(1);a=1;b=0;c=0;d=0;delay(1);}void bujin1() //步进电机正转{a=1;b=0;c=0;d=0;delay(1);a=0;b=1;c=0;d=0;delay(1);a=0;b=0;c=1;d=0;delay(1);a=0;b=0;c=0;d=1;delay(1);}main(){uint tt;tim=2;init();while(1){if(up==0) //检测up键{delay(5);if(up==0){temp=1;tt=0;tim=20;}}if(down==0) //检测down键{delay(5);if(down==0){temp=2;tt=0;tim=20;}}if(temp==1) //步进电机正转{while(tim>0){while(tt<=512){bujin1();tt++;}beep=0;tim--;tt=0;delay(5);beep=1;}}if(temp==2) //步进电机反转{while(tim>0){while(tt<=512){bujin2();tt++;}beep=0;tim--;tt=0;delay(5);beep=1;}}}}void time() interrupt 1{TH0=(65535-50000)/256;TL0=(65535-50000)%256;if(temp==1) //显示{display1(0);display2(tim);}if(temp==2){display1(1);display2(tim);}}(3)拓展部分程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table[]= //数码管{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x89};sbit w1=P2^4;sbit w2=P2^5;sbit w3=P2^6;sbit w4=P2^7;sbit beep=P1^4;sbit a=P2^0;sbit b=P2^1;sbit c=P2^2;sbit d=P2^3;sbit up=P1^0;sbit down=P1^1;uchar tim,temp,k=5;void delay(uint y) //延时{uint m,n;for(m=0;m<112;m++)for(n=0;n<y;n++);}void init() //定时器初始化{TMOD=0X01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;}void display1(uchar s) //显示H- {if(s==0){w1=0;P0=0x89;delay(5);w1=1;w2=0;P0=0xbf;delay(5);w2=1;}if(s==1){w1=0;P0=0xc7;delay(5);w1=1;w2=0;P0=0xbf;delay(5);w2=1;}}void display2(uchar s) //显示数字{uchar ge,shi;ge=s%10;shi=s/10;w3=0;P0=table[shi];delay(5);w3=1;w4=0;P0=table[ge];delay(5);w4=1;}void bujin2() //步进电机反转{a=0;b=0;c=0;d=1;delay(k);a=0;b=0;c=1;d=0;delay(k);a=0;b=1;c=0;d=0;delay(k);a=1;b=0;c=0;d=0;delay(k);}void bujin1() //步进电机正转{a=1;b=0;c=0;d=0;delay(k);a=0;b=1;c=0;d=0;delay(k);a=0;b=0;c=1;d=0;delay(k);a=0;b=0;c=0;d=1;delay(k);}main(){uint tt,temp2;tim=2;init();while(1){if(up==0){ //检测up键delay(5);if(up==0){temp=1;tt=0;tim=20;}}if(down==0&&temp==0){ //检测down键delay(5);if(down==0&&temp==0){temp=2;tt=0;tim=20;temp2=1;}}if(down==0&&temp==1){ //检测down键delay(5);if(down==0&&temp==1){k--;}}if(temp==1){ //步进电机正转while(tim>0){while(tt<=512){bujin1();tt++;}beep=0;tim--;tt=0;delay(5);beep=1;}}if(temp==2) //步进电机反转{while(tim>0){while(tt<=512){bujin2();tt++;}beep=0;tim--;tt=0;delay(5);beep=1;}}}}void time() interrupt 1{ //显示TH0=(65535-50000)/256;TL0=(65535-50000)%256;if(temp==1){display1(0);display2(tim);}if(temp==2){display1(1);display2(tim);}}东北石油大学创新实验成绩评价表指导教师:年月日20。

相关文档
最新文档