简易多彩广告灯控制参考模板

合集下载

毕业设计(基于PLC的广告灯控制设计)

毕业设计(基于PLC的广告灯控制设计)

武汉职业技术学院毕业设计(论文)任务书课题名称:基于PLC的广告灯控制设计专业:机电一体化技术班级:设计:指导教师:完成期限:2012年10月至2013年3月2012年10月11日摘要:随着我国经济的高速发展,微电子技术、计算机技术和自动控制技术也得到了迅速的发展,可编程控制器技术已经进入一个崭新的时代,其应用越来越广。

广告灯作为一种现代化的工具,与人们的日常生活紧密相关,随着人们对其要求的提高,广告灯灯光控制得到了快速发展,其逻辑控制已由可编程控制器代替原来的继电器控制。

本文采用可编程逻辑控制器(PLC)对广告灯进行控制,通过合理的选择和设计,提高了广告灯的控制水平,并改善了广告灯灯光控制的可靠性,使广告灯控制达到了较为理想的控制结果。

关键字:可编程控制器(PLC)、广告灯、自动控制。

Abstract: Along with the rapid development of economy,microelectronics technology,computer technology and automatic control technology is also obtained a rapid development and PLC technology has come to a new era, the used more and more widely。

Advertising light as a modern tools, and People’s Daily life closely related, as people to the improvement of its requirements, advertisement lamp lighting control are growing rapidly, its logic control already by programmable controller instead of the original relay control。

9-霓虹灯控制PPT模板

9-霓虹灯控制PPT模板

举例说明: 右图中,当X0为ON时, 调用P0所在的子程序段,执 行至SRET时,子程序结束, 返回CALL指令的下一行继续 执行主程序。
子程序调用与返回
请填写任务单和学习工作单(见书中附录)。
位移位指令 SFTL(ShiFT Left):位左移指令。 SFTR(ShiFT Right):位右移指令。
正序亮灭输出口状态
ROR(ROtation Right):循环右移指令。 ROL(ROtation Left):循环左移指令。 RCR(Rotation Right with Carry):带进位标志的循环右移指令。 RCL(Rotation Left with Carry):带进位标志的循环左移指令。
循环右移指令
下图中当X0出现上升沿时,将D0中的数据左移4位,最后移出的那一位的 状态同时存于进位标志M8022中。
循环左移指令
循环移位是周而复始的移位,在某一扫描周期内,ROR和ROL指令的功能 是将D中的二进制数向右或向左移动n位,移出的最后一位状态存在进位标志位 M8022中。下一扫描周期若X0仍为ON,则将移动后的新数据再移动一次。
位左移指令
位右移指令
可编程控制器应用
用M8000的常开触点驱动,可实现无条件跳转。
举例说明: 左图中,如果X20为ON,则PLC不再继续执行下一行程序,而是直接跳到指针 P10处继续执行。右图中无论X20还是X21为ON,都可以跳转到P9处继续执行。
条件跳转指令
条件跳转指令指针的用法
CALL(sub routine CALL):子程序调用指令。 SRET(Sub routine RETurn):子程序返回指令。 FEND(First END):主程序结束指令。
如下图所示,按任务要求用八段灯管实现霓虹效果需使用八个输出口:Y0~ Y7(K2Y0),根据任务的正序亮灭要求,这八个输出口的状态如45页表所示,逆 序时将次序反过来即可。

简易广告灯(广告灯左移右移)设计

简易广告灯(广告灯左移右移)设计

简易广告灯(广告灯左移右移)设计简易广告灯设计是有Controller、actuator、light、电源锁以及连接等部分组成的系统。

第一步是完成controller的设计,控制器设计主要包括一个触摸按键,当用户按下按钮后,可以实现广告灯的左移或者右移。

控制器也可以实现两个广告灯同时左移右移的功能,并可以设定广告灯的移动速度等。

接着是actuator的设计,actuator的设计主要包括电动马达和一个连接杆,电动马达可以使连接杆向左右双方旋转,推动广告灯左移右移。

actuator可以通过控制器发出的电控信号控制,实现广告灯的左移右移。

灯具的设计需满足安全要求,并且能够经受连续高速的移动。

常用的材料有金属和陶瓷。

一般采用金属外壳材料和陶瓷灯管,将灯具固定在结构体上,使灯具具有足够的抗拉和承重性能,以确保安全性。

灯具还需要有适当的发光特性,为左右移动的广告灯提供充足的发光,让灯光亮得刚刚好。

此外,还需要安装一个电源锁,以确保广告灯正常运行。

电源锁是在执行器结构体和安装着灯具的架子之间固定一个滑轨,在滑轨上安装一个滚针能自由滑动,在架子的两端安装有两个锁槽,留有一定的位置空间可以满足不同的灯具安装要求,它也不会影响灯具的运行。

最后是连接的设计。

执行器的连接方式使用的是常见的连接料,例如螺丝等,它可以固定执行器等部分,也能固定成正方向,以保证整体机器的正确操作。

连接件要考虑机械强度、耐热、耐腐蚀等要求,以确保设备的整体安全性。

综上所述,简易广告灯设计需要controller、actuator、light、电源锁以及连接等部分配合构成,controller实现左移右移功能;actuator设计由电动马达和一个连接杆组成,电动马达使连接杆向左右双方旋转,从而推动广告灯左移右移;light设计采用金属外壳材料和陶瓷灯管,同时还需要安装电源锁;连接要考虑机械强度、耐热、耐腐蚀等要求,以保证设备的故障率低。

经历以上步骤,就可以实现简易的广告灯设计,使其能左移右移,为人们提供更加亮眼的广告效果。

设计简单霓虹灯,要求控制4盏灯

设计简单霓虹灯,要求控制4盏灯

设计简单霓虹灯,要求控制4盏灯【实用版】目录1.设计简单霓虹灯的背景和要求2.控制霓虹灯的方法3.实现 4 盏灯的控制正文一、设计简单霓虹灯的背景和要求在现代城市中,霓虹灯是一种非常常见的装饰性照明设备。

它以独特的色彩和亮度吸引了许多人的目光。

为了满足对霓虹灯的个性化需求,本文将介绍如何设计一个简单的霓虹灯,并实现对 4 盏灯的控制。

二、控制霓虹灯的方法霓虹灯的控制通常分为两种:模拟控制和数字控制。

1.模拟控制:通过模拟信号来控制霓虹灯的开关和亮度。

这种方法较为简单,但精度较低,无法实现精确控制。

2.数字控制:通过数字信号来控制霓虹灯的开关和亮度。

这种方法可以实现高精度控制,但相对复杂。

三、实现 4 盏灯的控制为了实现对 4 盏霓虹灯的精确控制,我们将采用数字控制方法。

具体步骤如下:1.选择合适的微控制器:根据实际需求,选择具有相应性能和接口的微控制器。

例如,可以选择单片机、ARM、MSP430 等。

2.设计电路:根据微控制器的性能和接口,设计相应的电路。

主要包括电源电路、信号处理电路和驱动电路等。

3.编写程序:利用编程语言(如 C 语言、汇编语言等)编写控制程序。

程序应包括以下功能:a.初始化:配置微控制器的接口和定时器,初始化相关寄存器。

b.控制灯的开关:通过程序控制灯的导通与截止,实现灯的开关。

c.控制灯的亮度:通过调节脉冲宽度,实现对灯的亮度控制。

d.实时检测:检测灯的工作状态,确保其正常运行。

4.下载程序:将编写好的程序下载到微控制器中,进行实际运行。

5.调试与优化:根据实际运行情况,对程序进行调试与优化,以实现更好的控制效果。

综上所述,通过以上步骤,我们可以设计一个简单的数字控制系统,实现对 4 盏霓虹灯的精确控制。

基于单片机的七彩广告灯条控制模块设计

基于单片机的七彩广告灯条控制模块设计

主控制器芯片主要是负责控制 L E D七彩灯带 的术 同变化速度 快慢以及变化效果 。主控制器作为整个 系统的控斜核心部分 , 要求 其 功 耗低 、 数据 转 换 速率 快 。S T C 8 9 C 5 2 单 片 机是 一 种 低功 耗 、 可编 程、 高性能 8位微控制处理器 , 其 内部包括微处理器 、 具有 8 K在系 统可编程 F l a s h存储器 、 看 门狗定时器 、 输入/ 输 出 口、 中断系统等 , 具有价格低廉、 技术成熟、 操作简单等特点 , 满足本设计的要求。 3稳 压 电源 电 路设 计 L M 7 8 0 5 稳 压 三极 管 , 可 以支 持 5 V到 1 2 V的 电源 输 入 , 经 过 降 压 之后 , 稳定输出 5 V的直 流 电压 。 一 般 在输 人 电源 的正负 极 之 间并 上 两个 2 2 u F无极 性 陶 瓷 电容 , 起到 对 电源 滤 波 的作 用 。 单 片 机要 求 在稳定的电源下才能正常工作 , 本身单片机工作在 晶振 1 2 M下 , 产 生 的干扰信号也是大的。 所以需要提供一个稳定的直流电源给单片 参 考 文献 机, 这 样才 能保 证 单 片机 的 稳定 工作 。 f 1 ] 康华光. 电子技 术基础数字部分 ( 第五版 ) f M1 . 北京. 高等教育 出版 4灯条设计 社 。 2 0 0 5 . ( 1 ) 电压 : 这是指 L E D灯 条 的 输 入 电 压 , 一 般 常 用 的 规 格 是 直 [ 2 】张灿 . 单 片机 在 舞 台灯 光控 制 系统 中的应 用 [ J ] .电子测 量技 术 . 流 1 2 V , 也有的是 2 4 V 。工 作 电压 : D C 1 2 V, 功率 : 每米 1 4 . 3瓦/ 每 米 2 o o3 . 1 8 . 2 瓦 可选 。 【 3 】 王硕 . 多媒体 机 房 温度 调 节 系统设 计 [ J 】 . 信 息通 信 , 2 0 1 4 . ( 2 ) 色温 : 是指 将 一标 准 黑 体通 过 加 热 , 当 温度 逐 步 升 高到 一 定 作者简介: 董绪 哲 ( 1 9 9 8 , 4 一 ) , 男, 山冻 省 东平 县人 , 黑龙 江八 一 程 度 时颜 色 开 始慢 慢 的 由深 红 一 浅 红一 橙黄一 白一 蓝, 发生改变 , 当某 农 垦 大 学本科 在读 , 研 究方 向 : 电气 工程 及 其 自动 化 、 单 片机 应 用 以 光 源与 标 准黑 体 的颜 色相 同时 , 我 们将 黑 体 当此 时 的绝对 温 度 称 为 及 开 发 。 该光 源 之 色温 。 一 般 来说 色 温不 作 为考 核 L E D灯 条 的 一个 指 标 , 但 是 国外 很 多 客 户 因 为对 其 使 用 环 境 的要 求 ,会 做 出 一 个 特别 的 要

(完整word版)霓虹灯广告屏装置PLC控制

(完整word版)霓虹灯广告屏装置PLC控制

学号10750219(电气控制技术课程设计)设计说明书霓虹灯广告屏装置PLC控制的设计起止日期:年月日至年月日学生姓名班级10 级电气 2 班成绩指导教师 ( 签字 )控制与机械工程学院年代日天津城市建设学院课程设计任务书控制与机械工程学院气工程及其自化班姓名学号程名称:气控制技目:霓虹灯广告屏装置 PLC控制达成限期:自 2012年 12 月 24 日至 2012 年 12月 28日共 1周依照、要求及主要内容:一.程的目的能依据功能要求 PLC的型及其依据 I/O 点的要求 PLC的型号。

依据所的 PLC的型,掌握 PLC的程件并能利用件制的梯形。

依据 I/O 点的定,制 PLC外面气接。

依据制的梯形,写完好的程序清。

二.程的基本要求1、控制要求广告屏共有 8 根灯管, 24 只流水灯,每 4 只灯一,以下所示:ⅥⅤ24 23 222120 1918 17116215Ⅰ12345678Ⅳ314413567891011 12ⅡⅢ( 1)广告屏中 8 根灯管亮的序:第 1 根亮→ 2 亮→ 3 亮→⋯⋯→第 8 根亮,隔 1s,全亮后,示 10s,再反来从 8→7→⋯⋯→ 1 按 1s隔序熄,全后停亮 2s;再从第 8 根开始亮,序点亮 7→ 6→⋯⋯→ 1,隔 1s,示 5s,再从 1→ 2→⋯⋯→ 8 按 1s 隔序熄,全后停亮 2s,而后重复运转,循环往复。

(2)24 只流水灯, 4 个一分红 6 ,从Ⅰ→Ⅱ→⋯⋯→Ⅵ按1s 隔依次向前移。

(3)系有步 / 控制,有起和停止按。

(4)起,灯管和流水灯同起,关,可同也可分关。

(5)要求有移位指令的用2、画出系作流程3、外面入 / 出点( I/0 )4、画出 PLC外面接5、完好的梯形三、告程告要做到次清楚,述清楚,表正确,写工整;“程告写作要求”。

四.参照料[1]王阿根 . 气可程序控制原理与用 . 清大学第一版社 .2010[2]何有 . 可程序控制器及常用控制路 . 冶金工第一版社 .2002[3]郭生 . 可程序控制器程与提升 . 子工第一版社 .2006[4]克明夏路易 . 可程控制器 . 子工第一版社 .2003指教(字):教研室主任(字):同意日期:年月日目录第一章序言 (1)1.1 课程设计的目的 (1)1.2设计内容及目标 (1)第二章霓虹灯PLC控制的系统整体方案设计 (2)2.1硬件的配置及其构成原理 (2)2.2系统接线图 (2)2.3统靠谱性 (2)第三章控制系统的设计 (3)3.1 I/O估量 (3)3.2 PLC 选型 (3)3.3 I/O分派表设计 (3)3.4外面接线图设计 (4)3.5控制程序流程图设计 (5)3.6控制程序设计 (6)第四章总结 (8)参照文件: (9)第一章序言1.1 课程设计的目的1、霓虹灯广告屏装置PLC 控制梯形的与广告屏共有 8 根灯管, 24 只流水灯,每 4 只灯一,以下所示:ⅥⅤ24 23 222120 1918 17116215Ⅰ12345678Ⅳ314413567891011 12ⅡⅢ2、控制要求:( 1)广告屏中 8 根灯管亮的序:第 1 根亮→ 2 亮→ 3 亮→⋯⋯→第 8 根亮,隔 1s,全亮后,示 10s,再反来从 8→7→⋯⋯→ 1 按 1s 隔序熄,全后停亮 2s;再从第 8 根开始亮,序点亮 7→ 6→⋯⋯→ 1,隔 1s,示 5s,再从 1→ 2→⋯⋯→ 8 按 1s 隔序熄,全后停亮 2s,而后重复运转,循环往复。

霓虹灯广告屏装置的PLC_控制

霓虹灯广告屏装置的PLC_控制

河南机电高等专科学校课程实训报告书课程名称:《机电传动与控制技术》课题名称:霓虹灯广告屏装置的PLC 控制系部名称:机电工程系专业班级:机电122班姓名:学号:2015年 04月15日目录一、设计方案 (1)二、硬件电路设计、I/O地址分配 (1)三、软件设计 (3)四、程序调试 (3)五、心得体会 (3)附录1、参考文献 (4)附录2、程序清单 (4)一、设计方案1.设计目的:设计一个霓虹灯广告屏装置的PLC 控制系统。

该广告屏共有 8 根灯管,每根灯管显示一个汉字,如下图所示:2.设计要求:该广告屏 8 根灯管亮灭的基本时序为:第 1 根亮→ 2 亮→ 3 亮→……→第 8 根亮,时间间隔为 1s ,全亮后,显示 3s ,再反过来从 8 → 7 →……→1 按 1s 间隔顺序熄灭,全灭后停亮 2s ;再从第 8 根开始亮,顺序点亮 7 →6 →……→ 1 ,时间间隔 1s ,显示 5s ,再从 1 → 2 →……→ 8 按 1s 间隔顺序熄灭,全灭后停亮 2s ,然后重复运行,周而复始。

在基本时序外,根据自己的想象,设计该广告屏 8 根灯管亮灭的其它形式的显示时序。

附加时序可加在基本时序后,也可穿插在基本时序中。

二、硬件电路设计、I/O地址分配1、主要选择的设备:确定外围I/O设备:本设计使用2个按键,用于控制霓虹灯的启动和停止,彩灯8个。

PLC模块的选择:采用s7-300的主机。

2、I/O地址分配表:输入/输出的地址分配表如下编号地址说明功能 8路数字输出1 Q0.0 与灯1相连输出2 Q0.1 与灯2相连输出3 Q0.2 与灯3相连输出4 Q0.3 与灯4相连输出5 Q0.4 与灯5相连输出6 Q0.5 与灯6相连输出7 Q.6 与灯7相连输出8 Q0.7 与灯8相连输出 2路数字输入1 I0.0 按钮,启动循环启动信号2 I0.1 按钮,停止循环停止信号图表1硬件电路图三、软件设计程序见附表四、程序调试1.硬件调试:接通电源,检查S7-300 PLC可编程控制器是否可以正常工作,接头是否接触良好,然后把其与电脑的通信口连接。

霓虹灯广告屏的PLC控制设计

霓虹灯广告屏的PLC控制设计

霓虹灯广告屏的P L C控制设计Newly compiled on November 23, 2020PLC控制霓虹灯摘要:随着改革的不断深入,社会主义市场经济的不断繁荣和发展,大中小城市都在进行亮化工程。

企业为宣传自己企业的形象和产品,均采用广告手法之一:霓虹灯广告屏来实现这一目的.当我们夜晚走在大街上,马路两旁各色各样的霓虹灯广告均可以见到,一种是采用霓虹灯管做成的各种形状和多中彩色的灯管,另一种为日光等管或白炽灯管作为光源,另配大型广告语或宣传画来达到宣传的效果。

这些灯的亮灭,闪烁时间及流动方向等均可以通过PLC来达到控制的要求.关键字:霓虹灯; PLC图1 霓虹灯用PLC对霓虹灯广告屏实现控制,其具体要求如下:(1)该广告屏中间8个霓虹灯字亮灭的时序为“迎”字亮到“接”字亮到“世”字亮……“谐”字亮,时间间隔均为1S,8个霓虹灯字全亮后,显示10S,再反过来从“谐”字到“和”字…“迎”字顺序熄灭.全亮后,停亮2S,再从“谐”字开始亮起,顺序点亮“谐”…“迎”,时间间隔为1S,全亮后显示20S.再从“迎”…“谐”顺序熄灭.全熄灭后,停亮2S,再从头开始运行,周而复始。

(2)广告屏四周的流水灯共24只,4个1组,共分6组,每组灯间隔1S 向前移动一次,且I~VI每隔一组的灯点亮,即从I,III亮;后II,IV亮;后III,V亮;后IV,VI亮…,移动一段时间后(如30S),再反过来移动,即从VI,IV亮;后V,III亮;后IV,II亮;后III,I亮…,如此循环往复。

(3)系统有单步\连续控制,有启动和停止按总体设计I/O分配表及PLC型号选择I/O分配表及PLC型号选择根据控制要求,PLC控制霓虹灯广告显示屏的输入\输出(I\0)地址编排如下表所示,其中SB1(X0)为启动开关,SB2(X1)为停止开关,SB3(X2)为单步\连续选择开关,SB4(X3)为步进按钮开关。

Y0~Y7控制8根霓虹灯字,用发光管LED1~LED8模拟显示,Y10~Y15控制6组流水灯泡,这里用发光管LEDQ~LED,模拟显示。

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

信息与电气工程学院课程设计说明书(2012 /2013学年第二学期)课程名称:单片机原理及接口技术题目:简易多彩广告灯控制设计专业班级:自动化10-03学生姓名:学号: 1004103指导教师:苗敬利、杨怡君等设计周数: 2周设计成绩:2013年 6 月 26 日目录1、课程设计目的1.1原始数据及主要任务 (2)1.2技术要求 (2)2、课程设计正文2.1 硬件设计 (2)2.1.1确定硬件电路总体设计方案 (2)2.1.2单元电路设计 (3)2.1.2.1时钟电路 (3)2.1.2.2复位电路 (3)2.1.2.3键盘输入电路 (4)2.1.2.4数字显示电路 (5)2.1.2.5广告灯电路 (5)2.1.2.6总电路图 (6)2.1.3 系统调试 (7)2.2 软件设计 (7)2.2.1系统分析 (7)2.2.2 系统设计 (8)2.2.2.1 按键确认程序 (8)2.2.2.2 数码管显示程序 (8)2.2.2.3延时程序 (8)2.2.2.4.四种广告灯控制程序 (8)2.2.3系统实施 (9)3、课程设计总结 (17)4、参考文献 (18)1、课程设计目的1.1 原始数据及主要任务设计并制作出一个以单片机为核心的彩灯闪烁控制系统:(1)确定总体设计方案(2)、设计键盘输入电路(3)、设计显示电路(4)、合理分配地址,编写系统程序(5)、利用Protel 设计硬件电路原理图和PCB图(6)、软硬件联机调试1.2 技术要求设计一个以MCS-51单片机为核心的简易多彩广告灯闪烁控制系统,2位数码管显示闪烁控制方案,分别显示01、02、03、和10号方案,初始化为00,彩灯灭;2个控制按键,一个加一数字键,一个确定键,循环10个花型的方案。

方案01为左循环亮一秒闪烁;方案02为右循环亮一秒闪烁;方案03为“100000000、11000000…11111111”递增间隔1秒闪烁;方案10为“01010101,10101010”间隔一秒闪烁;其余方案灯灭。

2、课程设计正文2.1硬件设计2.1.1确定硬件电路总体设计方案根据设计要求,首先确定硬件的主要组成部分,主要包括了单片机最小系统中的时钟电路、复位电路和本课设需要的按键控制电路、LED灯显示电路、广告灯方案显示电路,最后由5V直流电源对各部分电路提供电源。

总的设计框图如图1。

图1 硬件设计总框图2.1.2单元电路设计2.1.2.1时钟电路时钟电路提供的时钟信号是单片机工作时必须的控制信号,只有正确的提供了时钟信号,单片机才能严格按照时序执行指令进行工作。

时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种事外部时钟方式。

本课设采用的是内部时钟方式。

内部是中方式的时钟电路由一个6MHz 的晶振和两个30pF 的电容组成,时钟电路的电路图如图2。

2.1.2.2复位电路 复位是单片机的初始化操作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态,为摆脱死锁状态,也需要复位按键使RST 引脚为高电平使单片机复位。

本课设采用51单片机典型手动复位电路,电路由一个200Ω的电阻、一个1K Ω的电阻和一个22uF 的极性电容组成。

当按下复位键后复位口RST 变为高电平,经过两个机器周期单片机复位,单片机从地址为0000H 处重新执行程序。

复位电路的电路图如图3。

图2 时钟电路图3 复位电路2.1.2.3键盘输入电路本课设的键盘输入电路由一个加一键和一个确定键组成,每个按键都接一个1KΩ的上拉电阻。

加一键控制方案类型,并通过显示电路的显示,共有10种方案类型,其中第01、02、03、10号方案对应有相应的广告灯显示方案,其余为广告灯全灭。

确定键确定方案让广告灯开始闪亮。

键盘输入电路如图4.图4 键盘输入电路2.1.2.4数字显示电路数字显示电路主要有两个共阳极数码管组成,采用静态显示方案,将共阳极数码管的段码由P0、P2口输出,驱动数码管显示。

每条支路加一个200Ω的限流电阻。

显示电路复位后显示00,当不断按下加一键是,数码管分别显示01、02、03、04、05、06、07、08、09、10,分别对应十种相应的显示方案。

显示电路电路图如图5.图5 数字显示电路2.1.2.5广告灯电路广告灯电路为本课设主要控制的电路,由八个发光二极管组成,每个发光二极管接一个200Ω的限流电阻。

广告灯电路如图6.当确定键按下后,广告灯即开始按照数码管显示的数字显示不同的闪亮方案,其中方案01为左循环亮一秒闪烁;方案02为右循环亮一秒闪烁;方案03为“100000000、11000000…11111111”递增间隔1秒闪烁;方案10为“01010101,10101010”间隔一秒闪烁;其余方案灯灭。

图6 广告灯电路2.1.2.6总电路图总电路如图7.图7 总电路图2.1.3 系统调试首先在proteus中画好电路图,加载程序查看仿真效果。

对不满足要求的地方,首先检察设计思路是否正确,在设计思路正确的前提下针对错误的类型检察硬件的选择和对应软件的设计是否正确,发现错误后首先考虑是否可以通过改变软件来实现,软件不能实现的再考虑改变硬件电路实现。

本课设在仿真调试中遇到的难点主要是对加一键的确定,由于在方案运行时要求加一键仍然有效,而每种方案中的延时程序与按键的延时去抖程序相互交错,给确定加一键的一次有效按下带来了很大的困难,经常出现按时间短了没有效果,按时间长了又会确认两次的情况。

最后几经修改才打到了要求的效果,当上一种方案正在运行时,按下加一键不要松开,等广告灯全灭后再松开,可使加一键每次都成功确认一次。

在硬件实物做好后,加载程序调试,对与仿真情况不符的电路检察焊接情况和硬件的好坏。

最后对操作的流畅性进行完善,使硬件电路易于操作,不会出现错误判断。

在硬件调试时,本课设遇到的困难主要是由于查阅资料时的疏漏我们把数码管的c脚和e脚接反了,导致数字无法正常输出。

由于硬件电路已经完成,要改动是比较复杂的。

后来在研究是发现,所谓的数码管段码其实是人为规定的,变动硬件中的c脚和e脚与变动程序中的c、e两脚对应的电平是一样,所以我将书中的共阳极数码管段码“根据”我们电路进行了修改,换了c、e对应的电平。

重新编译加载后,果然显示正常了,从而避免了对硬件的修改。

2.2软件设计2.2.1系统分析本课设的程序主要分为按键确认、延时、数码管显示和四种广告灯控制几部分。

按键确认采用典型的延时去抖法,是按键每次按下都只被有效确认一次。

延时程序主要用于去抖和广告灯闪亮间隔的控制,数码管显示则是给相应的P口赋值段码。

四种广告灯控制用于控制8个发光二极管的闪亮顺序和个数。

程序设计的总框图如图8.图8 程序设计总框图2.2.2 系统设计2.2.2.1 按键确认程序通过void key_detect()子函数采集相应的P口的电平判断按键是否按下,程序见系统实施中的源程序。

2.2.2.2 数码管显示程序通过void display(void)子函数来显示相应的方案数,程序见系统实施中的源程序。

2.2.2.3延时程序通过void delay(unsigned int )子函数来完成延时功能,程序见系统实施中的源程序。

2.2.2.4.四种广告灯控制程序通过分别调用void right_loop()、void left_loop()、void other_program()、void ji_ou()四种子函数来显示相应的闪烁方案,程序见系统实施中的源程序。

2.2.3系统实施本课设所用源程序如下:#include<reg52.h>#include<intrins.h>unsigned char codetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned int flag = 0;void key_detect(void);void display(void);void delay(unsigned int );void right_loop();void left_loop();void other_program();void increase();void ji_ou();sbit k1=P0^0; //加一键sbit k2=P0^1; //确定键void main(){while(1){key_detect();if(flag==11){ flag=0;}display();}}/**************************************** 函数功能:实现任务一:流水灯左循环亮1秒闪烁****************************************/ void left_loop(){unsigned char temp;temp=0x7f;while(1){temp=_crol_(temp,1);delay(100);P1=temp;delay(100);P1=0xff;if(k1==0){P1=0xff; //灯全灭delay(20);if(k1==0){P1=0xff;flag++;delay(10);}while(!k1); //检测是否松开按键rdelay(20);while(!k1);break;}}}/**************************************** 函数功能:实现任务二:流水灯右循环亮1秒闪烁****************************************/ void right_loop(){unsigned char temp;temp=0xfe;while(1){temp=_cror_(temp,1);delay(100);P1=temp;delay(100);P1=0xff;if(k1==0){delay(20);if(k1==0){P1=0xff;flag++;delay(10);}while(!k1); //检测是否松开按键rdelay(20);while(!k1);break;}}}/****************************************** 函数功能:所有灯灭******************************************/ void other_program(){P1=0xff;delay(10);if(k1==0){delay(10);if(k1==0){P1=0xff;flag++;delay(10);}while(!k1); //检测是否松开按键rdelay(20);while(!k1);}}/******************************************* 函数功能:实现任务三:递增间隔1秒闪烁*******************************************/void increase(){unsigned int i = 0;unsigned char a[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};while(1){if(i>8){i=0;}P1=a[i];delay(100);P1=0xff;delay(100);i++;if(k1==0){delay(10);if(k1==0){P1=0xff;flag++;delay(10);}while(!k1); //检测是否松开按键rdelay(20);while(!k1);break;}}}/********************************************函数功能:实现任务十:实现奇偶间隔1秒闪烁********************************************/void ji_ou(){unsigned char a[]={0x55,0xaa};unsigned int i = 0;while(1){if(i>1){i=0;}P1=a[i];delay(100);P1=0xff;delay(100);i++;if(k1==0){delay(10);if(k1==0){P1=0xff;flag++;delay(10);}while(!k1); //检测是否松开按键delay(20);while(!k1);break;}}}/****************************************************函数功能:数码管上的显示****************************************************/void display(void) //显示函数{unsigned int shi,ge;shi=flag/10;//取十位ge=flag%10; //取个位P2=table[shi]; //送十位数delay(1);P3=table[ge]; //送个位数delay(1);}/**************************************************************************** *******************************************函数功能:按键检测***************************************************************************** ******************************************/void key_detect()if(k1==0){delay(10);if(k1==0){flag++;}while(!k1); //检测是否松开按键r }else if(k2==0){delay(10);if(k2==0){switch(flag){case 1:left_loop(); break;case 2:right_loop();break;case 3:increase();break;case 10:ji_ou();break;default:other_program();}}while(!k2); //检测是否松开按键r}}/*********************************************函数功能:延时入口参数:z*********************************************/void delay(unsigned int z){unsigned int x,y;for(x=z;x>0;x--)for(y=619;y>0;y--);}3、课程设计总结经过了两周的忙碌,课程设计圆满结束了,我在本次课程设计中主要负责程序的编写和调试。

相关文档
最新文档