丫型路口编程
⑴ 西门子S7-200 PLC编程实例精解的目录
绪 论 1
0.1 PLC控制设计的基本原则 1
0.2 PLC控制设计的基本步骤 2
0.3 输入/输出接线图的设计 3
0.4 PLC基本设计编程方法 9
分类一 照明灯、信号灯控制 12
实例1 用一个按钮控制三组灯 12
实例2 用一个开关控制三个照明灯 14
实例3 用三个开关控制一个灯 16
实例4 用四个开关控制四个灯 17
实例5 用四个开关控制一个照明灯 19
实例6 用四个开关控制一个信号灯 20
实例7 用四个按钮分别控制四个灯 22
实例8 用信号灯显示三台电动机的运行情况 23
分类二 圆盘、小车控制 25
实例9 按钮控制圆盘转一圈 25
实例10 定时90°转盘 27
实例11 圆盘180°正反转 28
实例12 圆盘工件箱捷径传送 29
实例13 自动加工机床换刀 33
实例14 五站点呼叫小车 36
实例15 八站点呼叫小车 38
实例16 小车五位自动循环往返运行 41
实例17 小车自动往返控制 47
实例18 圆盘转五圈 52
分类三 电动机顺序控制 57
实例19 三台电动机顺序定时启动,同时停止 57
实例20 三台电动机顺序启动,顺序停止 58
实例21 三台电动机顺序启动,逆序停止 60
实例22 六台电动机顺序启动,逆序停止 62
实例23 两台电动机同时启动,第二台延时停止 64
实例24 两台电动机限时启动,限时停止 66
实例25 电动机定时正转、停止、反转、停止控制 68
实例26 组合钻床 70
实例27 双按钮安全顺序启动三台电动机 74
实例28 四台电动机顺序启动,逆序停止 76
实例29 三台电动机星三角顺序降压启动,逆序停止控制 77
实例30 三相异步电动机限时反转控制 80
分类四 移位控制 84
实例31 八位单点移位 84
实例32 八位单点自动左右移位 85
实例33 点数可调的单点移位 86
实例34 5行8列LED矩阵依次发光控制 88
实例35 条码图 89
实例36 广告灯一 91
实例37 广告灯二 93
实例38 密码锁 95
分类五 电气设备顺序控制 98
实例39 汽车自动清洗机 98
实例40 搅拌器自动定时搅拌 99
实例41 搅拌机控制 101
实例42 钻孔动力头控制 103
实例43 彩灯控制 106
实例44 仓库卷帘电动门自动开闭 108
实例45 两个滑台顺序控制 110
实例46 机床滑台往复、主轴双向控制 114
实例47 滑台控制 118
实例48 液压动力台控制 121
实例49 换气系统 124
实例50 燃烧机与风机连动控制 125
分类六 电梯控制 129
实例51 四层电梯楼层七段数码管显示 129
实例52 四层电梯楼层外部解码数码显示 131
实例53 五层电梯楼层数字信号灯显示 134
实例54 五层电梯控制 135
分类七 报警控制 155
实例55 预警启动 155
实例56 正反转预警启动 156
实例57 预警启动定时运行 157
实例58 预警停车 158
实例59 用一个按钮定时预警启动/停止控制 160
实例60 用一个按钮预警启动/停止控制 161
实例61 门铃兼警铃 162
实例62 跳闸报警 164
分类八 多位开关控制 166
实例63 凸轮控制器 166
实例64 用凸轮控制器控制四台电动机顺启逆停 168
实例65 用凸轮控制器控制四台电动机轮换运行 170
实例66 选择开关 172
实例67 选择开关控制三台电动机顺序启动,逆序停止 174
分类九 传送带控制 176
实例68 传送带产品检测之一 176
实例69 传送带产品检测之二 177
实例70 传送带控制 179
实例71 单条传送带控制 181
实例72 多条传送带接力传送 183
实例73 用一个按钮控制5条传送机的顺序启动,逆序停止 186
分类十 模拟体育比赛及计分控制 189
实例74 乒乓球比赛 189
实例75 具有球速可调、可显示得分的乒乓球比赛 191
实例76 拔河比赛 195
实例77 篮球赛记分牌 198
分类十一 时间设定控制 201
实例78 用十字键设定一个定时器的设定值 201
实例79 用数字键设定多个定时器的设定值 204
实例80 电动机运行时间调整 206
实例81 定时闹钟 208
实例82 整点报时 210
实例83 显示日期时间 212
实例84 通断电均延时定时器 215
实例85 按钮人行道控制 217
实例86 十字路口交通灯 222
实例87 具有通行时间显示的十字路口交通灯 224
实例88 车道人行道十字路口交通灯 228
分类十二 步进电动机控制 236
实例89 四相步进电动机控制 236
实例90 五相步进电动机1-2相激磁控制 240
实例91 五相步进电动机两相激磁可连续调速控制 243
分类十三 随 机 控 制 247
实例92 停车场车辆计数 247
实例93 变频器多速控制 249
实例94 矩阵输入 252
实例95 饮料自动出售机 255
实例96 三人智力抢答 258
实例97 八人智力抢答 260
实例98 测量电压互感器的线电压和相电压 262
实例99 投币洗车机 264
分类十四 三相异步电动机基本控制 267
实例100 三相异步电动机两地可逆控制 267
实例101 四台电动机同时启动停止,单独启动停止 269
实例102 三相异步电动机串电阻降压启动 272
实例103 三相异步电动机星三角(延边三角)降压启动 273
实例104 三相异步电动机可逆星三角形降压启动 276
实例105 三相异步电动机点动启动能耗制动 280
实例106 可逆星三角降压启动、点动、连动、反接制动控制 281
实例107 三相异步电动机自耦变压器降压启动 285
实例108 三相异步电动机双速变极调速控制电路 287
实例109 三相异步电动机双速可逆变极调速控制 288
实例110 三相异步电动机单向反接制动 291
实例111 三相异步电动机可逆反接制动 293
实例112 三相异步电动机具有反接制动电阻的可逆反接制动控制 297
实例113 三相异步电动机单按钮单向能耗制动 298
实例114 三相异步电动机可逆启动能耗制动控制 300
实例115 三相异步电动机点动、连动、能耗制动电路 303
实例116 单按钮启动停止电动机 305
实例117 单按钮控制星三角降压启动电路 309
分类十五 绕线型电动机基本控制 312
实例118 绕线型电动机转子串电阻时间原则启动控制 312
实例119 绕线型电动机电流原则转子回路串接电阻启动控制 314
实例120 绕线型电动机串频敏电阻启动控制电路 317
实例121 用PLC凸轮控制器控制绕线型电动机串电阻调速 319
分类十六 直流电动机基本控制 325
实例122 并励(或他励)电动机电枢串电阻启动调速 325
实例123 直流电动机改变励磁电流调速控制 327
实例124 小型直流电动机改变励磁电压极性正反转控制 330
实例125 直流电动机正反转、调速及能耗制动控制 332
分类十七 典型机械设备传动控制 336
实例126 大小球分拣 336
实例127 电镀自动生产线PLC控制 345
实例128 传送带机械手控制 357
实例129 气动机械手控制 362
实例130 装卸料小车控制 367
附录A S7-200可编程控制器元件表 373
附录B S7-200可编程控制器指令 374
附录C 西门子S7-200可编程控制器特殊寄存器(SM) 380
参考文献 384
⑵ 如何用c语言编程在单片机上做交通信号灯
硬件电路设计
此电中路设计采用AT89C51单片机,74LS47(数码管驱动)74LS373(数码管驱动输出锁存),8个数码管显示其延时值,四个红、黄、绿指示灯。硬件设计关键在于,延时显示时,要考虑到当个位数字显示时,要确保十位数字显示输出的不变。因此,可加输出锁存器。在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。
(1)电路连接图:
三、软件程序(C语言)
以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。
//*****************************//
//程序名:十字路口交通灯控制
//编写人:黄庭剑
//初写时间:2009年1月2日
//程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后3秒黄灯显示2秒钟再实现切换.
//CPU说明:AT89C51型单片机;24MHZ晶体振荡器
//完成时间:2009年1月6日
//*****************************//
#include<stdio.h>
#include<reg51.h>
#include<intrins.h>
sfrp0=0x80;
sfrp1=0x90;
sfrp2=0xA0;
sfrp3=0xb0;//这部分内容其实在“#include<reg51.h>”里已经有,但里面定义的必须区分大小写,在这里,因为我程序采用的是小写,reg51.h里对各个端口与寄存器的定义都是大写,所以在编译连接时,会报错,所以,在本设计程序里,我只用到了端口,在这里也就只定义了四个,而没有去改reg51.h里面的内容。其实两者是一样的。
sbitsw=p0^0;
sbitOE=P0^6;
sbitLE=P0^7;//74LS373锁存器控制端定义
chardisplay[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99};//p1口的数码管时间显示调用,利用74L74BCD码,8位驱动输出;
//函数声明begin
voiddelay1(intcount);
voiddelay_long(intnumber1,intnumber2);
voidpeople_car_drive();
//函数声明end
//***********************//延时子程序
voiddelay1(intcount)
{inti;
for(i=count;i>0;i--)
{;}
}
voiddelay_long(intnumber1,intnumber2)
{
inta,b;
for(a=number1;a>0;a--)
{
for(b=number2;b>0;b--)
{_nop_();}
}
}
//**********************//延时子程序
voidpeople_car_drive()
{
intp_1=2,i,j=9,p_2=6;//****************//行人通行时,延时20秒
p2=0x09;//南北红灯亮
p3=0x24;//东西绿灯亮
while(p_1-->0)
{LE=1;
OE=0;
if(p_1==0){OE=1;}//当十位数减到0时,只显示个位数
p1=display[p_1];
delay1(1000);
LE=0;
j=9;
for(i=10;i>0;i--)
{
if(p_1==0&&j==3)break;//减到3时退出循环,让其黄灯闪烁显示
p1=display[j--];
delay_long(16000,2);
if(sw==1)return;
}
}
//*******************************************************************************//
p2=0x12;//南北黄灯闪烁三秒,以提醒行人注意
p3=0x12;
p1=display[3];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[2];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[1];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
//*****************以下是车辆通行时延时60秒//
p2=0x24;//南北绿灯亮
p3=0x09;//东西红灯亮
while(p_2-->0)
{LE=1;
OE=0;
if(p_2==0){OE=1;}//当十位数减到0时,只显示个位数
p1=display[p_2];
delay1(1000);
LE=0;
j=9;
for(i=10;i>0;i--)
{
if(p_2==0&&j==3)break;//减到2时退出循环
p1=display[j--];
delay_long(16000,2);
if(sw==1)return;
}
}
p2=0x12;//南北黄灯闪烁三秒,以提醒行人注意
p3=0x12;
p1=display[3];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[2];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p2=0x12;
p3=0x12;
p1=display[1];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);//南北黄灯闪烁三秒完毕
}
voidmain()//主函数入口处
{
p0=0x01;
p1=0x00;
p2=0x00;
p3=0x00;//初始化各端口
{while(1)
{
if(sw==0)
{people_car_drive();}
else
{
p2=0x00;
p3=0x00;//关闭所有交通灯
}
}
}
}
⑶ 如何进入编程行业
Q:向我这种情况能够进入这个行业吗?
A:一点基础没有是一个很大的问题 编程实际上不是技术工作。在你掌握了技术之后,工作只是重复的使用这些技术。当然,一个问题,可以多种解决方案。不过先不说这个。想要做程序员,最开始只需要一个条件:就是你能写代码。而想能写代码,你必需从基础开始学,如果有足够悟性,半年你就可以找工作了。学程序没有捷径,或者说学程序最大的捷径就是动手去做。
Q:编程分为哪些方面,总说编程编程,是不是编程都是指网站做软件呢?
A:编程包括了很多东西。但对,编程有两大部分,一种是网络,一种是应用软件,它们适用于不同的环境和条件。做网站是编程,做软件也是编程,但还有其它的形式,例如做windows服务,做网络应用(这个可以先不了解)这都是编程。编程的范围几乎涵盖了计算机的所有功能。
Q:如果我真的要走这个方向,要从哪些方面开始学些呢?学些哪些东西呢?(C语言?C++?或者java 之类的)
A:这要看你要做什么类型的程序员了,而且不同的城市也有不同的需求。你想做游戏引擎,想写自己的操作系统,那你要学C和汇编。如果你就是想做网站,想做应用程序。建议你去学.net。原因?不要听别人说JAVA是主流,JAVA很强大之类的胡扯,JAVA学一年出来也就相当于废物,而且就算有人用VB做CS项目,也不会有人用JAVA去做。JAVA学到J2EE一般你也就想放弃了。不是你多努力能解决的问题。JAVA不实际进到项目,你自己永远不知道MVC有什么用处。你没法理解。而.net是一个框架,包括很多语言,可以开发几乎任何项目,ASP.NET可以做网站,Winform可以做软件。WCF可以做网络服务。XNA可以做游戏开发。M可以做手机开发。我用winform自己做过聊天工具(QQ所有的基础功能都实现了)。用XNA做过山寨版的粘粘世界。所以学什么?学什么快又有效?学.NET吧。而且语言要选C#。之后你还要学网络相关的,例如HTML,JS,AJAX等等。
Q:外面有没有做软件的小工作室呢?里面不要求学历?
A:不要求学历的有的是,但你什么都不会,你去了能做什么?你会发现软件部门都很紧张,扫地的时间都没有。所以你想学,不要考虑去扫地了。不过你可以去应聘一下网管,不是网吧的网管,是软件公司的网管。也就是技术服务部,你不是说你会修电脑么。
Q:招聘网上都是招聘编程工程师等等,看要求都是特别高,要会好多没听过的东西,有没有一些基础点的工作呢?比如:一些人合伙做的软件小工作室之类的。。。
A:软件公司基础的工作,有。文档,录入。再往上就是测试员了,测试员其实不是初级的,但有的公司测试员不需要很正规,所以你可以干。但你起码得知道什么是编程。
然后1L的朋友你说
就工资而言:c>c++>java > C#
我认为吧 就工资而言:
大公司Leader > 小公司Leader > 大公司程序员 > 小公司程序员
你写C#你觉得挣得少 那是因为你没用到C#更深的东西。JAVA有银光没?
JAVA有切面,NET也有了。JAVA有MVC,NET也有了。为什么就要说JAVA比NET强呢?JAVA的优势已经快消失没了,现在的形势要的是更快,更有效,更省力的语言。而做出的东西则要求更高的用户体验度。这些正是NET的发展方向。不要忘记NET的本家是谁。也不要质疑为什么会出现这种形势。
总之在国内挣多少钱和你的能力有关,和语言没关系。大连这JAVA和NET就一样多。而JAVA则都是现成的框架,走到最近,做项目甚至已经不需要编程能力了。试问用C能做的东西,用C#能做,用JAVA能做么?
建议LZ你买本C的基础书看一看,做一做Hello World。当你感觉你能拿C语言写出扫雷了。你可以去买本C#的红皮书,从winform学起,了解什么是GUI。还有一点重要的,要学数据库。要学T-SQL。边学边照着做,然后逐渐的把SQL和GUI联合起来。试着做一两个小项目,我是说十分小的就行。比如学生考勤啊,图书管理这种的。当你感觉可以用winform随手就能实现点小程序,小游戏,做个山寨版QQ之后。恭喜你可以去找工作了。但别着急。初学者的路你才走了一半,你要开始学网络了。ASP.NET,可以用C#语言来编写网站后台,对,就和winform一样,熟悉的语言。这就是我让你学NET的原因---懂一种语言,可以做N种工作。学NET你的选择会很多。而相对其它语言,学习时间也是极短的。性价比问题。当然工作以后,你会有很多时间去继续研究C,如果你不想每个月拿几千块钱的话,一是转型,从写代码的转成管理级的。二是深化技术。
总之祝好运吧,顺便说一下,我也没大学文凭,我85后的。上面几乎是我学编程的过程,我用了一年半多点。我拿过600/月,也拿过5000/月(现在不到3000,因为换公司了)。到现在我还只是工程师级别的(其实就是程序员)。在大连5000/月也算是蓝领里比较高的了。这种东西都说不准。但只要努力了,挣钱是迟早的事。
还有啊,不拿出两年的时间来沉淀,想迅速成长挣到钱,在pg中是不可能的。起初的两年,我只能说你一定会去想,还不如找个地方干保安了。当初我一个月拿600天天加班的时候就是这么想的。但之后的几年,我换了公司,参与到项目中之后,能力和工资几乎都达到了我当初需要的水平了。之后我又想要更多的经验,所以也换了两三家公司。有的很不错,有的很恶心。总之,如果你愿意被人当牛使唤,当猪养(我们把办公室形象的比喻成猪圈,因为都是隔间。你也可以上网搜一个小说看看,讲程序员生活的,叫《隔断里的猪》),抑郁的奋斗三四年。OK,加油吧。因为总有一天,你会比你现在身边的很大部分人风光。
没人说JAVA不好,只是说你没为LZ想想,你在让他学JAVA之前,你不想想你用了多长时间爬到4K的,最主要的是,网上搜的结果,且不说有多少是水份,就你自己想想,那12K个职位中有几个会要没有经验的人,更别说什么都不会的人。我没有说JAVA不好,我只说对于LZ,.NET是更好的选择,原因有三个:
1. .NET容易上手,即使是对于没有基础的人。
2. .NET上手后,找工作不是很难,不用上网上搜,我去过北京,去过青岛,.NET工资是低起点,但也没有上限。别讨论大公司是不是都用JAVA这种问题,扯淡。你能让LZ直接进大公司?东软照样有.NET部门!工资一样!东芝手下的先锋国际也是做.NET,工资不按月计算。就在大连而言,.NET比JAVA多。原因是.NET做小型项目,开发快。而大连的日资居多,他们更多的倾向于.NET。你网上搜的12K岗位,那也是有地区性质的。
3. .NET的潜质远远高于JAVA。这一点不多解释。不要骗自己,仔细想想世界大部分的电脑里都装的什么,仔细想想win7的UI有多成熟。不要当愤青说微软这不好那不好的。好不好的不都在用了么。
最后还是那点,学.NET你可以选择C/S或者B/S。学JAVA能么?别跟我说j2se也能做客户端应用,j2me做移动设备是还行,但概念上差太多了。再加上j2ee,你认为半年一年的从什么都不会到最后,能学成什么?你告诉我你工作了那么多年,你现在能不能通过需求和DB设计搭一套完善的工厂出来?更别说用一年时间去理解这些了。对了还要学SQL,难道放弃SQL?你确定LZ学一年JAVA就能找工作?然后LZ的处境是什么样的?如果有更多的选择的话,谁愿意天天敲代码?话说回来,选JAVA是因为JAVA好,那不如选C了。C多挣钱,一年?开玩笑呢?在说话之前,先考虑上下文,这是程序员的习惯。逻辑不清晰,不了解环境,怎么写代码?不用比较JAVA和.NET。用什么语言都行,你试试用最基础的逻辑代码写一套最短路径算法吧。然后再考虑什么语言好,什么什么语言不好。我是说,编码效率和运行效率上,人和环境才是主要因素。同样的,在如何选择人生方向上,人和环境才是主要因素。而不是当下JAVA岗位比.NET多就选择JAVA了。
⑷ 用C语言编程模拟交通路口(十字路口)红绿灯的控制功能
本系统的设计首先必须了解交通路灯的亮灭规律。设有一个十字路口,1、3 为南,北
方向, 2、4 为东,西方向,初始态为4 个路口的红灯全亮。之后, 1、3 路口的绿灯亮,
2、4 路口的红灯亮, 1、3 路口方向通车。延迟一段时间后, 1、3 路口的绿灯熄灭,而1、
3 路口的黄灯开始闪烁。闪烁若干次后, 1、3 路口的红灯亮, 同时 2、4 路口的绿灯亮, 2、
4 路口方向开始通车。延迟一段时间后, 2、4 路口的绿灯熄灭,而黄灯开始闪烁。闪烁若
干次后,再切换到1、3 路口方向。之后,重复上述过程。对于各组灯的亮灭,我们运用的
是8255A 的输入输出功能。