VB语言实现模拟交通灯灯程序

合集下载

vb编程精彩实例推荐(初级)

vb编程精彩实例推荐(初级)

一个实用的VB屏幕程序本文来自: 站长() 详细出处参考:/web/165/18547.htm在VB5.0具有面向对象的程序设计思想及可视化的编程方式,可开发出各种多媒体应用程序,颇得软件设计者青睐。

笔者最近应用VB5.0编制了一程序,成功实现了“图文并茂”的屏幕效果,即:屏幕出现用户选定的一幅赏心悦目的图像,在图像下方有一行字幕缓缓地从屏幕右边向左边移动,全部文字移至左边消失后,从右边又平滑拖出字幕,字幕移动过程中既不影响图像的整体效果又能对图像进行提示、说明,使应用程序界面充满“活性”。

现将设计的整个过程介绍如下:(1)创建一个新目标文件(Project1),并建立一个窗体Form1。

(2)在Form1上配置一个计时器控件Timer1、标签控件Label1、图像控件Picture1。

(3)各控件属性设置:Timer1的Enabled设置为“True”。

用Label1的Font设置屏幕下方循环移动的提示信息字体及大小,ForeColor设置字体颜色,AutoSize设置为True,BackStyle设置为“0-transparent”。

Picture1的AutoSize设置为False,Height设为5435,Width设为8235,Scalemode设置为“3-pixel”。

(4)程序代码清单:PrivateSubForm_Load()′设置图像控件Picture1属性,在屏幕显示图像Picture1 Picture=LoadPicture(″C:\Pwin95\Setup.bmp″)Picture1 ForeColor=RGB(255,10,110)Picture1 FontItalic=TruePicture1 FontBold=TruePicture1 Top=155Picture1 Left=635′将标签控件Label1的Caption属性设置为屏幕下方循环移动的提示信息Label1 Caption=″江西省黎川县职业中专电脑室设计″Label1 Left=WidthLabel1 Top=5653Timer1 Interval=375Form1 Windowstate=2EndSubPrivateSubTimer1_Timer()IfLabel1 Left<0-Label1 WidthThenLabel1 Left=WidthEndIfLabel1 Left=Label1 Left-255EndSub程序中的图像及移动字幕可依自己喜好灵活设计,以达到最佳效果。

用VB绘制 闪烁的霓虹灯——调色板动画实例

用VB绘制 闪烁的霓虹灯——调色板动画实例

用VB绘制闪烁的霓虹灯——调色板动画实例
孙志刚
【期刊名称】《新潮电子》
【年(卷),期】1998(000)008
【总页数】4页(P60-63)
【作者】孙志刚
【作者单位】无
【正文语种】中文
【中图分类】TP311.52
【相关文献】
1.VB可视化编程绘制平面四杆机构的连杆曲线动画 [J], 周英
2.怎样用VB绘制动画 [J], 陈可
3.巧用VB绘制阿基米德螺线的图案和动画 [J], 谢世芳;黄文兵
4.VB中实现高级无闪烁动画的一种方法 [J], 宋艳玲;吕洪柱
5.非真实感绘制技术在动画中的应用与创新——浅析非真实感绘制技术在数字动画媒介中的创新型应用 [J], 徐鹏程
因版权原因,仅展示原文概要,查看原文内容请购买。

计算机二级VB实例编程 红绿灯控制程序

计算机二级VB实例编程 红绿灯控制程序

计算机二级VB实例编程红绿灯控制程序实验要求(1)掌握有关Shape形状控件的使用;(2)进一步掌握定时器控件(Timer)的使用方法.实验内容用Visual Basic制作一个红绿灯程序,程序界面如图8—1、图8—2、图8-3所示。

图8-1 运行界面效果 1 图8—2 运行界面效果2一、程序说明程序的用户界面如图8—4所示,当用户在图8-1的控制台上选择“自动”时,红、黄、绿三灯将按一定的时间依次亮,如图8-2所示,并有时间显示;当选择“手动”后,红灯、黄灯、绿灯这3个按钮可用,点哪个按钮,相应灯亮,如图8-1所示。

图8—3 设计界面图1图8-4设计界面图2二、技术分析Shape形状控件通过设置其Shape属性值,主要用于方便显示矩形、正方形、椭圆、圆形、圆角矩形或者圆角正方形几何图形。

本程序利用形状控件设置两组红黄绿灯,一组颜色较暗,一组颜色较亮,利用对象的Visible可见属性和Timer控件的Timer属性实现对红黄绿三灯变换的控制。

三、创建用户界面如图8-4所示,其中,三个比较亮的红色、黄色和绿色圆,分别是名称为Shape2、Shape3和Shape4的图形控件;三个比较暗的红色、黄色和绿色圆,分别是名称为Shape6、Shape7、Shape8的图形控件,这6个图形控件对应互相重合,Shape2、Shape3和Shape4在上面,Shape6、Shape7、Shape8在下面。

所有控件及其属性设置情况如下表所示.表实验八对象及其属性四、编写程序代码Dim s As IntegerDim n As Integer’单击“红灯”按钮Private Sub Command1_Click()Shape6。

Visible = True : Shape7.Visible = False : Shape8.Visible = False End Sub’单击“黄灯”按钮Private Sub Command2_Click()Shape6。

交通信号灯控制系统(汇编语言课程设计)

交通信号灯控制系统(汇编语言课程设计)

汇编语言课程设计交通信号灯控制系统初始界面:实现功能齐全。

思路清晰~~~~~~~~~~~~一、设计要求利用PC机键盘和屏幕实现交通灯信号灯,控制系统。

二、设计内容与要求基本要求:1、完成一个十字路口的红绿灯正常状态的控制:实现日常生活中正常的交通路口的控制功能,实现南北、东西方向的切换。

2、显示时间,精确到秒;灯亮时间长短可变。

3、具有自动和手动控制功能。

提高要求:1、完成夜间状态的控制:由于夜间车辆和行人很少,实现南北、东西方向的黄灯闪烁,进入夜间控制状态。

2、完成紧急状态的控制:南北双方向都设置为红灯,利于执行紧急公务。

3、完成交通堵塞状态的控制:由于交通事故等原因出现南北或东西某一方向堵塞,可人为地调整每个方向的红灯时间,进入手动控制状态。

附加要求:必要的辅助功能(设置、修改等)。

三、编程提示要求用汇编语言进行编程,下面是编写过程中主要涉及的知识点(其中举例只是实现方法之一,同学可根据自己对知识的掌握情况进行设计并调试):1、视频显示程序设计:一般由DOS 或BIOS调用来完成。

有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。

用INT 10H即可建立某种显示方式。

用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用,例:要输出多于一个字符时,利用DOS功能调用9。

2、键盘扫描程序设计:检测键盘状态,有无输入,并检测输入各值。

例:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器。

3、定时器中断处理程序:在此中断处理程序中,计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。

例:在系统定时中断处理程序中,有一条中断指令INT 1CH指令,在ROM BIOS中,1CH的处理仅一条IRET指令,实际上它并没有做任何工作而只是为用户提供了一个软中断类型号,所以INT 1CH指令每秒也将执行18.2次,设计中可用这个定时周期性工作的处理程序来代替原有的1CH程序,实现定时。

00.西部杯VB讲义(补充)

00.西部杯VB讲义(补充)

第一课 设计一组红绿灯设计一组红绿灯,界面如图所示。

功能如下:(1) 红 黄 绿 三灯轮流显示。

(2) 点击颜色按钮,相应的颜色亮起。

本程序设计中所需要用到的控件包括(如图所示)(1)Command (2)Shape该程序的程序代码如下:Private Sub Form_Load() FillColor = RGB(108, 0, 0)FillColor = RGB(126, 75, 0) FillColor = RGB(0, 94, 0) End SubPrivate Sub Command1_Click()Shape1.FillColor = RGB(255, 0, 0) Shape2.FillColor = RGB(126, 75, 0) Shape3.FillColor = RGB(0, 94, 0)End SubPrivate Sub Command2_Click()Shape1.FillColor = RGB(108, 0, 0) Shape2.FillColor = RGB(255, 255, 0) Shape3.FillColor = RGB(0, 94, 0) End SubPrivate Sub Command3_Click()Shape1.FillColor = RGB(108, 0, 0)Shape3.FillColor = RGB(0, 255, 0)End Sub代码窗口(如图)可以补充容器概念窗体、按钮、sharp的属性设置拓展思考:自动控制的红绿灯1.每30秒实行一次交换2.交换时用黄灯过渡3.……方法一:API的sleep:Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click()Text1 = "sleep begin"Sleep 3000Text1 = "sleep end"End Sub方法二:timervb联机手册推荐。

简易交通灯报告(附源程序——汇编语言)

简易交通灯报告(附源程序——汇编语言)

题目:简易交通灯一、设计目的利用TDN微机原理试验箱及单元电路,实现对一道路交通灯的控制。

当通过车辆计数达到50时,绿灯灭,红灯亮,同时数码块倒计时若干秒(此次设计中设为9秒)。

此时,车辆停止,行人可以通过。

二、参加人员及分工李——试验报告霍——调试程序洪——编写程序三、技术要求1、设计完成交通灯的电路2、采用TDN试验箱上的8255、8259、8253完成3、程序设计中采用软件延时四、试验器材TDN-MD86/51实验箱一台,8253一片,8255一片,8259一片,数码管一组,发光二极管一组。

五、设计和调试环境TDN-MD86/51教学试验系统六、题目分析、工作原理、设计思想题目分析我们所做的交通灯是控制单路口处车辆和行人的通过及停止的简易交通灯。

因此需要两个灯和一块用于显示倒计时的数码块来控制车辆和行人的通行、停留问题。

其中两个灯分为红绿色,主要根据两只灯的亮灭情况来控制车辆,当红灯灭绿灯亮的时候车辆可以通过,而红灯亮绿灯灭时车辆就要停止通行。

数码块用于显示倒计时的时间以控制人,当倒计时开始时人通行,倒计时结束后行人就要等待。

根据题目分析得出以下设计思想及工作原理:设计思想在一开始启动交通灯时设置为红灯灭绿灯亮,让车辆先通行,行人等待,当通过50辆车后,红绿灯都同时灭然后红灯亮绿灯灭且数码快开始倒计时,此时为行人通行时间。

然后当数码块倒计时到0时行人通行的时间结束。

转而红灯灭绿灯亮又改为车辆通行时间。

红绿灯和数码块如此反复工作就构成的交通灯。

工作原理通过向8259写入程序来控制其他器件的工作。

在程序一开始写入中断向量和各芯片的控制方式字,以确保发生中断是正确的响应中断及芯片正确的工作状态。

接下来的程序就是控制8255和8253,8255选择工作方式1,A、B、C、口都做基本的输入输出。

通过8255A 口先让红灯灭绿灯亮。

8253选择工作方式2:计数停止中断,通过8253对车辆的计数达到50辆车是就发出中断请求。

VB信号灯的控制

VB信号灯的控制

一、设计一个窗体,要求每单击一个按钮,即可变换出不同颜色的交通信号等图标。

要求窗体界面和程序功能如“交通信号灯.exe ”文件所示。

参考代码:Private Sub Command1_Click() Imagered.Visible = True Imageyellow.Visible = False Imagegreen.Visible = False Label1.Caption = "红灯亮" End Sub Private Sub Command2_Click()Imageyellow.Visible = True Imagered.Visible = False Imagegreen.Visible = False Label1.Caption = "黄灯亮" End Sub Private Sub Command3_Click() Imagegreen.Visible = True Imageyellow.Visible = False Imagered.Visible = False Label1.Caption = "绿灯亮"End SubPrivate Sub Form_Load()Imagered.Left = Imageyellow.Left Imagered.Top = Imageyellow.Top Imagegreen.Left = Imageyellow.LeftImagegreen.Top = Imageyellow.Top End Sub二、用inputbox 函数输入一个整数,若该数能被7整除,则用msgbox 输出“该数是7的倍数”,否则显示“该数不能被7整除”,界面和效果如下图所示:Private Sub Form_Load()a = InputBox("请输入一个整数", "整数输入")If a Mod 7 = 0 ThenMsgBox"该数是7的倍数", , "判断界面"Else: MsgBox"该数不能倍7整除", , "判断界面"End IfEnd Sub部分同学的界面设计:参考代码:Private Sub Command1_Click()If Text1.Text Mod 7 = 0 ThenMsgBox "该数是7的倍数", 0, "判断界面"ElseMsgBox "该数不能被7整除", 0, "判断界面"End IfEnd Sub三、三、制作一个个人所得税的计算程序:从2006年1月1日起,个人所得税起征点调整为1600元。

用VB实现并行接口模拟实验

用VB实现并行接口模拟实验

用VB实现并行接口模拟实验摘要:可视化方法编程,第一步是“画”界面,第二步是合理安排事件,第三步才是“写”代码。

VB的集成开发环境界面,主要包括六个部分:标题栏、工具箱、属性窗口、代码编辑器窗口、工程资源管理器窗口和窗体布局窗口。

使用VB让这个接口能够接收、发送数据,并且可以有LED的工作方式和数码管的工作方式;通过简单的程序语言可以让接口实现很多的功能。

主要的功能就是可以利用滚动条的左右滑动来调整8个灯泡的循环连续速度,并且在连续循环中灯泡的颜色呈七彩色变化。

关键词:可视化编程、集成开发、控件、属性、方法、事件、变量、实验步骤。

VB语言特点:传统编程与可视化编程有较大的区别,按传统的“纯”结构化方法编程,自始至终都在“写”代码;而采用可视化方法编程,第一步是“画”界面,第二步是合理安排事件,第三步才是“写”代码,思维方式发生了非常大的变化。

人们一般用Visual一词表示可视化,这个词的英文原意是“视觉化”。

“可视的语言”这个名字可能抽象了点,但实际上它却是最直观的编程方法。

之所以叫做“可视”,是指无须编程,仅通过直观的操作方法即可完成界面的设计工作。

因此,可视化语言是目前最好的Windows应用程序开发工具。

在这种语言中引入了控件的概念,按钮、文本框都可称为控件,Command1是按钮控件,而Text1、Text2、Text3则属于文本框控件。

可视化语言把这些控件模式化、对象化,每个控件都有若干方法和事件,并通过一系列的属性来控制控件的外观。

利用这些控件,编程过程就如同画画,随意点几下鼠标,一个按钮就完成了,这些工作在使用传统编程语言的情况下,需要编写大量复杂的程序代码才能实现。

归纳起来,可视化编程语言的特点主要表现在两个方面:一是基于面向对象的思想,引入了控件的概念和事件驱动;而是程序开发过程一般遵循以下步骤,即先进行界面的绘制工作,再基于事件编写程序代码,以响应鼠标、键盘的各种动作。

VB的集成开发环境界面,主要包括六个部分:标题栏、工具箱、属性窗口、代码编辑器窗口、工程资源管理器窗口和窗体布局窗口。

基于VB的交通管理系统的设计与实现

基于VB的交通管理系统的设计与实现
5 7 消费电子 2 0 1 3
( O L E )将每个应用程序都看作是一个对象 ( o b j e c t ),将 不 同的对 象链接 ( 1 i n k )起来 ,再嵌 入 ( e m b e d )某 个 应用程 序 中,从而 可 以得到具有 声音 、影像、图像、动画 、文字 等 各种 信息 的集合式 的文件 。0 L E技术 是 M i c r o s o f t公司对象 技术 的战略,它把多个应用程序 合为一体 ,将每个应用程 序 看作 是一个对象进行链接和 嵌入,是一种应用程序一体化 的 技术 。利用 0 L E技术,可 以方便地建立复合 式文档 ( c o m p o u n d d o c u m e n t ),这种文档 由来 自多个不同应用程序 的对象组成 , 文档 中的每个对象都与原来 的应用程序相联系 ,并可执行 与 原 来 应 用 程 序 完 全 相 同 的操 作 。 ( 五 )动态链接 库 ( D L L )。V i s u a l B a s i c是一种 高级 程序 设计语言 ,不具备低 级语 言的功能,对访 问机器硬 件的 操 作不太容 易实现 。但它 可 以通过动 态链接库 技术将 C / C + + 或汇编语言编写的程序加入到 V i s u a l B a s i c 应用程序 中,可
消费 电子
2 0 1 3年 1 1月下
C o n s u me r E l e c t r o n i c s Ma g a z i n e
计算机科 学 基于 V 源自的交通管理系统的设计与实现 梁 红颖
( 辽 宁现代服务职业技术 学院 ,沈阳 1 1 0 1 6 4 ) 摘 要 :本文介绍 了在 V i s u a l B a s i c 6 . 0环境 下开发一款 用于管理城 市交通信 息的应 用软件 ,该软件能 实现对机动 车信 息查询 ,并能在查询 结果 上实现增加、删除、修 改等信 息的功 能。并通过 分析部 分服 务管理 中心对 自身信息 的 管理 , 创建 了一套行之有 效的管理 方案 。 文中详 细介绍 了交通管理 中心管理 系统的 系统分析部分 , 包括 系统需求分析 、 可行 性分析 、系统 实现功 能分析 等 ;数据库设计部分主要介 绍 了数 据库 结构、数据表 设计等 ;系统 实现部分主要说 明 了系统功能设计和几个主要模 块的算法及代码设计 。

(vb课程设计)模拟交通灯

(vb课程设计)模拟交通灯

模拟交通灯报告学院材料学院班级材料074 学号072996 姓名李金鹏成绩一、设计思路1.要达到的目的①培养综合利用VB语言进行程序设计的能力,重要是培养利用VB的标准控件进行应用程序设计的技能。

②多次锻炼控件数组的使用。

③了解各个控件属性,培养对控件属性的设置。

④了解各个控件间的联系以及熟练应用各种控件。

⑤程序界面美观,能够完成主要的功能。

2.关键问题的解决①红绿灯的进度显示通过用picrurebox和label组合,使label的长宽与picturebox相等。

并使label的长度随着时间变化增长来达到模拟交通灯进度条的目的②白天模式与夜间模式的转换通过定义的NSV 和NIGHT两个逻辑变量,并规定两个模式下的不同,最终达到区分白天模式和夜间模式的交通灯变化的目的二、部分程序关键源代码及注释1. 实现数码到字形码的转换rivate Sub Form_Load()timeleft = bgn.Textled(0) = "1011111"led(1) = "0000011"led(2) = "1110110"led(3) = "1110011"led(4) = "0101011"led(5) = "1111001"led(6) = "1111101"led(7) = "1001011"led(8) = "1111111"led(9) = "1111011"End SubSub Draw(k As Long)For i = 1 To 7ln(i - 1).Visible = -Val(Mid(led(k \ 10), i, 1))NextFor i = 8 To 14ln(i - 1).Visible = -Val(Mid(led(k Mod 10), i - 7, 1))NextEnd Sub实现数码到字形码的转换与任务书上的方法略有不同,大同小异,基本思想一致。

选择结构——红绿灯

选择结构——红绿灯
c 程序设计
VB
程 序 设 计 选 择 结 构
选择结构程序设计 (简单的红绿灯)
安徽省怀远第一中学信息技术教研组 常玉
1
——
茂 怀
名 远
院 一
学 中
用VB做一如下图所示。
VB
程 序 设 计 选 择 结 构
红绿灯
——
茂 怀
名 远
院 一
学 中
VB
程 序 设 计 选 择 结 构
VB程序的三种结构 1、顺序结构 2、选择结构 3、循环结构
——
茂 怀
名 远
院 一
学 中
选择结构的定义
先对条件测试,根据测试的结果选择执行不同的分支
VB
程 序 设 计 选 择 结 构
——
茂 怀
名 远
院 一
学 中
1: IF选择块结构
如果条件成立
(1)标准格式: IF <条件表达式> Then
VB
程 序 设 计 选 择 结 构
VB
程 序 设 计 选 择 结 构
——
茂 怀
名 远
院 一
学 中
程 序 设 计 选 择 结 构
谢谢
VB ——
<语句组A>
Else <语句组B > 否则
<语句组A >
<语句组B >
——
End if (2)执行方式:流程图
T 语句组A
判断结束
条件表达式
F
语句组B
Endif之后的语句
茂 怀
名 远
院 一
学 中
合作探究 完成红绿灯整体程序的设计
简单的红绿灯代码
Private Sub Command1_Click() Timer1.Enabled = True s1.Visible = True End Sub If s1.Visible = True Then s2.Visible = True s1.Visible = False ElseIf s2.Visible = True Then s3.Visible = True s2.Visible = False s1.Visible = False Else s1.Visible = True s3.Visible = False s2.Visible = False End If

VB和VISSIM二次开发文档

VB和VISSIM二次开发文档

检测车辆数
Dim vehi(1 to 4) as vehicles Dim 1ks(1 to 4) as link
声明车辆集合对象 声明路段对象
Set Nt = vis. Net
定义路网对象
Set lkss = vis. Net. Links
定义路段集合,表示路网对象中的所有路段
Set lks(1) = lkss. GetLinkByNumber(1) 取出路段集合中某条路段,赋值给lks(1)
定义信号机集合
Set con = cons. Getsignalcontrollerbynumber(1)
选择编号为1的信号机
Set sgs = con. Signalgroups
选择信号机的信号灯组所有信息
Set sg(1) = cons. Getsignalgroupbynumber(1)
选择第1个信号灯组
Vehiipts(1). Attvalue(“volume”)=3000 将路网车流输入端1的流量/小时设为3000
改变前后对比 改变前
改变后
改变信号灯
Dim sg(1 to 4) as signalgroup
声明信号灯组变量
Set cons = vis. Net. Signalcontrollers
岱哥出品 2015.03.31
使用VISSIM 4.30建立单十字交叉口 画出一条路段
生成反方向路段
以此类推,得到四个方向的所有路段
画出路段间连接线
拓扑结构完成
设置路径决东西南北两相位,周期120秒,黄灯4秒,全红2秒,绿灯时间两相位平分
设置信号灯组
VB和VISSIM 4.30的COM接口设置
打开路网

(vb课程设计)模拟交通灯

(vb课程设计)模拟交通灯

模拟交通灯报告学院材料学院班级材料074 学号072996 姓名李金鹏成绩一、设计思路1.要达到的目的①培养综合利用VB语言进行程序设计的能力,重要是培养利用VB的标准控件进行应用程序设计的技能。

②多次锻炼控件数组的使用。

③了解各个控件属性,培养对控件属性的设置。

④了解各个控件间的联系以及熟练应用各种控件。

⑤程序界面美观,能够完成主要的功能。

2.关键问题的解决①红绿灯的进度显示通过用picrurebox和label组合,使label的长宽与picturebox相等。

并使label的长度随着时间变化增长来达到模拟交通灯进度条的目的②白天模式与夜间模式的转换通过定义的NSV 和NIGHT两个逻辑变量,并规定两个模式下的不同,最终达到区分白天模式和夜间模式的交通灯变化的目的二、部分程序关键源代码及注释1. 实现数码到字形码的转换rivate Sub Form_Load()timeleft = bgn.Textled(0) = "1011111"led(1) = "0000011"led(2) = "1110110"led(3) = "1110011"led(4) = "0101011"led(5) = "1111001"led(6) = "1111101"led(7) = "1001011"led(8) = "1111111"led(9) = "1111011"End SubSub Draw(k As Long)For i = 1 To 7ln(i - 1).Visible = -Val(Mid(led(k \ 10), i, 1))NextFor i = 8 To 14ln(i - 1).Visible = -Val(Mid(led(k Mod 10), i - 7, 1))NextEnd Sub实现数码到字形码的转换与任务书上的方法略有不同,大同小异,基本思想一致。

实训:PLC控制实例

实训:PLC控制实例

PLC控制实例实例导读●五星彩灯闪烁控制程序设计。

●交通信号灯控制。

●四层电梯PLC控制系统。

●自动送料装车控制实训1 五星彩灯控制实训内容1. 五星彩灯分布图(如图1. 1所示)图1.1 五星彩灯分布图2. 控制要求:十只发光二极管L1-L10 的亮暗规律如下:1 ) 花样1先使全部彩灯复位(熄灭),然后L1 到L10 按图1.2所示的顺序每隔0.5s点亮一个彩灯,直到所有彩灯全部亮起为一个循环,重复轮回三次。

图1.2 花样1流程图2)花样2两组灯亮灭交替,循环闪烁三次。

图1.3 花样2流程图3 ) 花 样 3先 L1 灯亮,延时0.5s 后 L2 灯亮L1 灯灭,延时0.5s 后 L3 灯亮L2 灯灭,依次类推,形成单灯跑马 效果,反复循环三次。

(L10L2 L9L3 L8L4 L7L5 L6图1.4花样3流程图根据以上控制要求,将三种花样连贯起来,完成PLC VO 地址分配、硬件连线和控制程序 的设计。

根据五星彩灯的控制要求,为使程序简单,本实例不使用输入信号, 一通电,彩灯即开始 进行花样循环;使用10个输出点接 L1~L10 十个彩灯,具体 VO 地址分配如表1 所示。

表 1 / O 地址分配表输入元件I/O 地址输出元件 I/O 地址①卫 ③ 四 5 → 6 7④(四L101.主程序梯形图Network 4三个计数器清零SM0.1 C0R3Network 2SM0.0调用花样1子程序3次C0<1 +3SBR O_ENNetwork 3 调用花样2子程序3次SM0.0 C1 C0< ==1+4 +3Network 4 调用花样3子程序3欲SM0.0 C2 C11+4 +424VOC 电源L ⁶1 17 L 81 19 L 10[十>1M 1L+ 0.0 0.10.2 0.3 0. 4 2M 2L + 05 0. 6 0.7 M L+ DCS7-200 CPU224 DC/DC/DC>1M 0.00.10.203040.50.60.72M 1.01.11213141.5 L+L11 L2 L3[ L4| L5|DC24V+PLC 接线图SBR 1_ ENSBR 2 ENNetwork 5C2 ==1 +4 彩灯熄灭Q0.0R10图1.6 彩灯PLC 梯形图控制程序(主程序)2.花样1子程序梯形图图1.7 彩灯PLC 梯形图控制程序(花样1子程序) 3. 花样2子程序Network 1SM0.1让所有彩灯熄灭MOV W EN ENO MOV WENO15#0000=IN OUT □V/0 15#0000-OUT -LWONetwork Z 网络2到网络3为脉冲振荡电路SM0.0 T40 M0.1T39N TON+5{ PTNetwork 3T39 T40 M0.2M0.2T40TONNetwork 4M0.1Network 5M0.2+5{PT网络4到网络5为五星彩灯内圈外圈闪烁电路Q0.5S500.0R )5Q0.55Q0.0SEN5 Network 6Q0.0闪烁次数计数器CU C1CTU]10.4+5+Network 7 子程序运回C1==1 P K—(RET)+4图1.8彩灯PLC 梯形图控制程序(花样2子程序)4.花样3子程序Hctwork1SMM0.1Metwork2C2==1+1 Metwork 3C2+2 Hctwork4SM0.0Network 5,W¹.°Metwork 6T37M11.5(第一次循坏前)辅助继电器复位M¹0.1R )14(第二次循环前)辅助些电器复位M10.1P —(R )14(第三次循环前)辅助继电器复位M10.1P —(R)14同路4到网络9为脉冲生成电路T37 M1.0()T37TOM+2{M10.0)M¹0.1Network12M10.2Network13M10.3Network14M10.4Network15M10.5Network16M10.5Network17M10.7Network18M11.0Network 19M11.1同路11到网路20,形灯单灯跑马效果Q0.0)Q0.1)00.200.3—()Q0.4()Q0.5)Q0.600.7Q10Network 7SI/0.0Network20M11.2M0.1Q1.1)Metwork BM.1Network 9T38 MM⁰0M0.0丽+2世M2.—()循环达数计数器C2CUCTU1.5RNotwork 10MM0.0奇存器移位ENO+4{FVNetwork 23 子程序近回M11.5M1001|DATA ——(RET)M10.1 S BIT+14{图1.8 彩灯PLC 梯形图控制程序(花样3子程序)Network 21Network 22T0H]T38实训2交通信号灯控制1. 交通灯示意图(如图2. 1所示)北西实训内容2东南图2.1 交通灯示意图2.控制要求:SB1位自锁型按钮,功能为手动/自动切换,按下为自动状态,自动状态时SB2,SB3 不起作用。

史上最简单易懂的PLC控制交通灯案例,还不快来收藏!

史上最简单易懂的PLC控制交通灯案例,还不快来收藏!

史上最简单易懂的PLC控制交通灯案例,还不快来收藏!
蓝字 "技成PLC课堂”关注我们哦!
动作描述
交通灯控制有很多程序的写法,这次介绍一种可能是最简单的编程方法:
1.现有东西方向和南北方向交通灯,东西方向或者南北方向上的两组灯的亮灯逻辑一致;
2.东西方向和南北方向交通灯亮灯逻辑如图所示,东西方向红灯10秒,同时南北方向先绿灯亮5秒,再绿灯闪烁3秒,再黄灯亮2秒;反之亦然;
3.整个交通灯由一个总控开关控制。

硬件设备
一台装有博途及其仿真软件
软件
1.西门子plc编程软件:TIA 博途V16
2.博途仿真软件:PLCSIM V16
I/O分配
程序编写及思路
同样,为便于后期修改,我们把交通灯程序做成一个功能块,块
接口如图:
开始写程序,首先判断是否被激活:
定义一个定时器,自循环一个周期的时间,这里是20秒:
然后利用时间的当前值,来判断每个灯的状态:
然后,程序写完了。

是的,你没看错,就只有这么长。

在主程序里调用赋值实际I/O点即可:
总结
交通灯案例较简单,可以用很多种方法来实现。

在此案例中用定时器来判断各个交通灯状态,简单易懂易操作,可以供大家参考。

(来源:技成培训网,作者:张志强,未经授权不得转载,违者必究!)。

基于单片机与VB的汽车尾灯控制(附程序代码)

基于单片机与VB的汽车尾灯控制(附程序代码)

课程设计(论文)设计课题:基于单片机的汽车尾灯控制学校院系:海南师范大学物电学院专业:学生姓名:学号:指导教师:摘要本次的课题是基于单片机的汽车尾灯控制器,该设计课题主要由STC89C52RC单片机为核心展开的汽车尾灯控制电路的设计方法,用发光二极管模拟汽车尾灯,可以用VB上位机界面和按键开关作为转弯等控制信号,,并且把信息显示在LCD1602上。

在VB6.0环境下,上位机利用MSCOMM通信控件与单片机之间串口通信实现上位机控制汽车尾灯。

设计电路能很好的综合运用我们所学习到的单片机、C语言、VB上位机编程,熟悉电子电路设计的基本方法。

关键词:STC89C52RC;发光二极管;单片机;C语言;VB上位机;MSCOMM控件目录引言 (2)一. 设计任务 (3)1.1 任务说明 (3)1.2 任务分析 (3)二. 设计方案选择及论证 (4)2.1 方案一:采用555定时器等构成的汽车尾灯电路 (4)2.2 方案二:由STC89C52RC及其外围电路构成的汽车尾灯控制器 (4)2.3 方案比较和选择 (4)2.4 系统框图 (5)三. 系统硬件原理介绍 (7)3.1 单片机STC89C52RC介绍 (7)3.2LCD1602液晶屏介绍 (8)3.3系统结构原理图、器件选择 (9)3.4 硬件电路总原理图 (15)3.5硬件设计原理及状态图 (16)四.程序流程 (17)4.1下位机软件程序 (17)4.1.1 键盘扫程序设计流程图 (17)14.2.1 显示程序设计流程图 (19)4.2 VB上位机界面设计 (21)4.2.1设计方案原理与设计特点分析 (21)五.仿真图实物调试 (23)5.1仿真图 (23)5.2实物图 (25)六.课设总结 (25)参考文献 (26)附录一 (27)引言汽车作为现代交通工具已经大量进入人们的生活,随着电子技术的发展,对于汽车的控制电路也已经从过去的全人工开关控制发展到了智能化的控制。

AutoCADVBA自编路灯编号应用程序简析

AutoCADVBA自编路灯编号应用程序简析

AutoCADVBA⾃编路灯编号应⽤程序简析摘要:本⽂主要介绍在城市照明⼯程设计时,利⽤AutoCAD VBA⼆次开发⼯具,找出⼀条利⽤⾃编程序编号的捷径,在设计中快速对城市照明设施进⾏编号的应⽤⽅法。

关键词 AutoCAD ⼯程⽂件编号程序⽬前城市照明的计算机设计⼀般采⽤AutoCAD软件,在设计过程中,技术⼈员会对所设计的城市照明设施进⾏编号,以便确定造价、编制施⼯预算、购置材料等。

但设施的编号⽐较繁琐,需要⼀⼀对应,逐⼀编号,或者采取复制的办法,确定⼀个模板,再逐⼀修改编号数值。

如果遇到设计修改、⼯程变更,最后的编号⼯作更显繁冗。

针对这⼀问题,结合照明设计的特点,本⼈利⽤AutoCAD VBA⼆次开发⼯具,找出了⼀条利⽤⾃编程序编号的捷径,在设计中快速对城市照明设施进⾏编号。

具体介绍如下:⼀、建⽴AutoCAD VBA⼯程⽂件选择【⼯具/宏/Visual Basic编辑器】进⼊AutoCAD VBA的集成开发环境,如下图:然后选择【⽂件/保存】,出现【另存为】对话框,如下图:将⼯程⽂件命名为“路灯编号程序v1.0.dvb”。

⼆、编写AutoCAD VBA代码在【⼯程资源管理器】窗⼝中双击“ThisDraw-ing”,系统会直接弹出代码编辑窗⼝,在此窗⼝中输⼊如下代码:Dim Nums As Integer、Sub Cir( )、Nums=1。

TextHeight=ThisDrawing.Utility.GetString(0,vbCrLf & “请输⼊编号⽂字⾼度[2500]:”)If TextHeight=“”Then TextHeight =2500Dim HeadText As StringHeadText=ThisDrawing.Utility.GetString(0, vbCrLf &“请输⼊编号起始符号[T]:”)If HeadText=“”Then HeadText=“T”RETRY:Dim PPck As VariantDim textobject(0) As AcadObjectDim ppt(0 To 2) As Double: Dim Numbersl As StringOn Error Resume NextNumbersl=ThisDrawing.Utility.GetString(0,vbCrLf & “请输⼊编号数字(上⼀编号为“& Nums -1&”)“&”[“& Nums &”]:)‘截取输⼊编号”PPck=ThisDrawing.Utility.GetPoint(,“请指定路灯编号位置:”)If Err<> 0 ThenErr.ClearThisDrawing.Utility.Prompt“没有指定编号位置,退出”Exit SubEnd Ifppt(0)=PPck(0):ppt(1)=ppck(1):ppt(2)=ppck(2)’指定插⼊点的X、Y、Z轴坐标If Numbersl=""Then Numbers1=NumsSet textobject(0)=ThisDrawing.Mode1Space.AddText(HeadText&Numbersl,ppt,TextHeight)’指定⽂字内容、插⼊点、⾼度Nums=Numbersl'使提⽰与上⼀编号关联Nums=Nums+1GoTo RETRYEnd Sub选择[⽂件/保存],然后退出。

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

im ErrCde As Long ' Error code 保存函数调用错误时的代码Dim szErrMsg As String * 80 ' Error string 长度为80,用于保存错误信息Dim DriverHandle As Long '用于保存设备句柄Dim DioReadPortByte As PT_DioReadPortByte '模拟通道配置时需要的结构体变量,结构中的参数可以查手册获得Dim DioWritePortByte As PT_DioWritePortByte '模拟量输入时需要的结构体变量,结构中的参数可以查手册获得Dim flag As LongDim output As LongDim output1 As LongDim output2 As LongPrivate Sub Command1_Click()Timer2.Enabled = TrueEnd SubPrivate Sub Command2_Click()Timer1.Enabled = FalseTimer2.Enabled = FalseDioWritePortByte.Port = 0DioWritePortByte.Mask = 255DioWritePortByte.state = 255ErrCde = DRV_DioWritePortByte(DriverHandle, DioWritePortByte) '调用函数完成设置EndEndEnd SubPrivate Sub Timer1_Timer()ErrCde = DRV_DeviceOpen(1, DriverHandle) ' Make sure device number = 0,调用函数打开设备,函数参数含义见手册DioWritePortByte.Port = 0DioWritePortByte.Mask = 255DioWritePortByte.state = 255ErrCde = DRV_DioWritePortByte(DriverHandle, DioWritePortByte) '调用函数完成设置DioReadPortByte.Port = 0DioReadPortByte.value = DRV_GetAddress(output)ErrCde = DRV_DioReadPortByte(DriverHandle, DioReadPortByte) '调用函数完成设置output = output And 1If (output = 0) Thenflag = 1End IfWhile flag = 1DioWritePortByte.state = 115Shape1.FillColor = &HFF&Shape2.FillColor = &H0&Shape3.FillColor = &H0&Shape4.FillColor = &H0&Shape5.FillColor = &H0&Shape6.FillColor = &HFF00&Shape7.FillColor = &HFF&Shape8.FillColor = &H0&Shape9.FillColor = &H0&Shape10.FillColor = &H0&Shape11.FillColor = &H0&Shape12.FillColor = &HFF00&Shape13.FillColor = &HFF00&Shape14.FillColor = &H0&ErrCde = DRV_DioWritePortByte(DriverHandle, DioWritePortByte) '调用函数完成设置Call MySleep(5000)DioWritePortByte.state = 235Shape1.FillColor = &H0&Shape2.FillColor = &HFFFF&Shape3.FillColor = &H0&Shape4.FillColor = &H0&Shape5.FillColor = &H0&Shape6.FillColor = &HFF00&Shape7.FillColor = &H0&Shape8.FillColor = &HFFFF&Shape9.FillColor = &H0&Shape10.FillColor = &H0&Shape11.FillColor = &H0&Shape12.FillColor = &HFF00&Shape13.FillColor = &HFF00&Shape14.FillColor = &H0&ErrCde = DRV_DioWritePortByte(DriverHandle, DioWritePortByte) '调用函数完成设置Call MySleep(2000)DioWritePortByte.state = 158Shape1.FillColor = &H0&Shape2.FillColor = &H0&Shape3.FillColor = &HFF00&Shape4.FillColor = &HFF&Shape5.FillColor = &H0&Shape6.FillColor = &H0&Shape7.FillColor = &H0&Shape8.FillColor = &H0&Shape9.FillColor = &HFF00&Shape10.FillColor = &HFF&Shape11.FillColor = &H0&Shape12.FillColor = &H0&Shape13.FillColor = &H0&Shape14.FillColor = &HFF00&ErrCde = DRV_DioWritePortByte(DriverHandle, DioWritePortByte) '调用函数完成设置Call MySleep(5000)DioWritePortByte.state = 221Shape1.FillColor = &H0&Shape2.FillColor = &H0&Shape3.FillColor = &HFF00&Shape4.FillColor = &H0&Shape5.FillColor = &HFFFF&Shape6.FillColor = &H0&Shape7.FillColor = &H0&Shape8.FillColor = &H0&Shape9.FillColor = &HFF00&Shape10.FillColor = &H0&Shape11.FillColor = &HFFFF&Shape12.FillColor = &H0&Shape13.FillColor = &H0&Shape14.FillColor = &HFF00&ErrCde = DRV_DioWritePortByte(DriverHandle, DioWritePortByte) '调用函数完成设置Call MySleep(2000)WendErrCde = DRV_DeviceClose(DriverHandle) '调用函数关闭设备End SubPrivate Sub Timer2_Timer()DioReadPortByte.Port = 0DioReadPortByte.value = DRV_GetAddress(output)ErrCde = DRV_DioReadPortByte(DriverHandle, DioReadPortByte) '调用函数完成设置'If (flag = 0) Thenoutput1 = output And 1If (output1 = 0) ThenTimer1.Enabled = True'Else'Timer1.Enabled = FalseEnd If'output2 = output And 2'If (output2 = 2) Then'Timer1.Enabled = False'End'End If'End SubEnd Sub。

相关文档
最新文档