丫型路口編程
⑴ 西門子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 的輸入輸出功能。