第7章-微電腦控制應用實例P7-1第7章.微電腦控制應用實例7.1紅綠燈控制7.2機電控制應用7.3保全系統與家電控制7.4數位類比轉換應用7.5步進馬達控制應用7.5直流馬達控制應用本章將引入VB模組程式設計觀念,將前兩章經常使用到的輸出入副程式,加入模組程式,提昇程式效能。此外,本章將綜合前兩章的8255,LCD與4×4鍵盤等輸出入界面,學習VB控制程式的進階技巧。微電腦控制-使用VBP7-27.1紅綠燈控制十字路口交通號誌控制的時序控制,是經常用來做為微電腦控制的應用範例。將紅綠燈區分為[主幹道]與[支幹道]兩組,每組分別有紅,綠,黃個燈,共有6個燈號,簡稱為”主綠”(主幹道綠燈),”主紅”(主幹道綠燈),”主黃”(主幹道綠燈),”支綠”(主幹道綠燈),”支紅”(主幹道綠燈),”支黃”(支幹道綠燈),正常時段:6個燈區的燈號明暗的時序,如圖7-1所示的規劃,區分為T1,T2,T3,T4四個時段的明暗變化,將這四個時段的燈號變化編碼,如表7-1,並賦與美個時段狀態停留的秒差。交通尖峰:原理與編碼方式與[正常時段]相同,唯一不同的是[秒差]做了調整。讓主幹道的綠燈比支幹道間隔時間略長,以疏緩流量較大的主幹道。如表7-1將夜間時段:夜間交通流量少,主幹道閃黃燈,支幹道閃紅燈,以提醒車輛減速慢行。例如表7-1規劃Tx1與Tx2兩種狀態以0.5秒間隔做交錯閃爍。手動控制:在特殊的交通管制狀況下,可使用手動按鈕控制紅綠燈狀態。例如主幹道紅表7.1:指示燈支幹道主幹道秒差(時段)輸出資料16進位自/手動紅黃綠紅黃綠8255輸出埠PA.7PA.6PA.5PA.4PA..3PA..2PA..1PA..0正常尖峰ShapeIndex76543210T1(正常/尖峰)□□■□□□□■101021HT2(正常/尖峰)□□■□□□■□2222HT3(正常/尖峰)□□□□■■□□1060CHT4(正常/尖峰)□□□■□■□□2114HTx1(夜間閃爍)□□■□□□□□0.520HTx2(夜間閃爍)□□□□□□■□0.502H-■□xxxxxx+&H80KB0(4x4鍵盤)■□■□□□□■手動A1HKB1(4x4鍵盤)■□□□■■□□手動KB2(4x4鍵盤)■□手動KB3(4x4鍵盤)■□手動第7章-微電腦控制應用實例P7-3圖7.1:紅綠燈正常時段T3T4T2T1支紅支黃支綠主紅主黃主綠微電腦控制-使用VBP7-4我們藉由以下的範例7-1練習,熟悉此邏輯運算控制接點狀態的功能。【範例7-1】紅綠燈監控依照表7-1的規劃功能,使用VB建立一紅綠燈監控程式,操作程序如下(1)開啟VB程式,並新建一個[專案],在新表單加入控制項,並設定其屬性,表單上的控制項清單如表7-1。表7-:範例6-6的控制項清單物件物件名稱(name)功用備註列示方塊List1提供展示功能選項清單計時器Timer1提供一個延遲時間Enabled=False,Interval=10計時器Timer2提供一個延遲時間Enabled=False,Interval=10計時器Timer3提供一個延遲時間Enabled=False,Interval=10計時器Timer4提供一個延遲時間Enabled=False,Interval=10形狀Shape1(0~7)使用8個形狀陣列的填入色彩Shape1(i).FillStyle顯示PA輸出埠狀態預設Shape1(i).Color=RedShape1(i).Shape=0-矩形(i=0~7)工具列Toolbar1加入四個按鈕,分別執行廣告燈的正轉,反轉,暫停等功能操作步驟參考第3章範例3-6。圖片清單ImageList1提供工具列顯示圖示操作步驟參考第3章範例3-6。文字標籤Label2提示使用者選取功能選項屬性Caption=”展示功能選單”通訊埠MSComm1建立與實驗板的通訊第7章-微電腦控制應用實例P7-5(2)加入[基本輸出]主功能表的F_BIO_Click()事件程式,利用功能表索引(Index),分別執行全部開啟(&HFF),全部關閉(&H0),反相(NotWR_dat1),並將執行動作顯示在狀態列上,程式碼如下:PrivateSubF_BIO_Click(IndexAsInteger)SelectCaseIndexCase0:WR_dat1=&HFF'強制PA埠全部開啟Case1:WR_dat1=&H0'強制PA埠全部關閉Case2:WR_dat1=NotWR_dat1'強制PA埠反相EndSelectCallCALLDisp_Led(ch6_2.shape1,8,WR_dat1)CallWR_8255(ch62,PA,WR_dat1)'將執行動作顯示在狀態列上StatusBar1.Panels(2).Text=F_BIO.Item(Index).CaptionEndSub說明表單上的副程式與模組檔案的副程式,最大的差異是前者只能在自己表單上使用,後者則可提供所有表單使用。這對副程式的修改與維護,也有極大便利性。微電腦控制-使用VBP7-67.2機電控制應用微電腦控制應用在工業本節將整合第三章的輸出控制與本章前半部的輸入即時監控,應用在一般機電控制系統上。驅動,隔離與制動技術微電腦輸出的小電流、小電壓控制信號,若要應用在大功率負載的工業用機電開關,必須考慮電氣隔離技術,以避免兩個系統間的干擾。繼電器:輸入端為一組電磁鐵,當導通電流產生磁性,會感應輸出接點的閉合或斷開,當電流消失,輸出接點又回復原始狀態。微電腦控制繼電器,一般採用電晶體驅動固態繼電器:簡稱SSR,是一種半導體電路組成的無接點繼電器。功能與傳統繼電器相同,但沒有機械式接點,輸入端與輸出端兩者間採光耦合電路做隔離,具有壽命長,反應快,低雜訊,低功率消耗,可靠度高等優點,是目前常用到。SSR具有4支接腳,編號1,2為輸出端,無極性;編號3,4為輸入端,3為正(接5V),4為負(接驅動信號)。一般SSR的驅動方式可採用TTLIC直接驅動,如使用7404反相器驅動。第7章-微電腦控制應用實例P7-7【範例7-2】機電控制應用將8255的PA埠規劃為八個負載輸出,將PC埠規劃為八個開關輸入。讀者可以先使用實驗板上的LED顯示,觀察輸出狀態﹔使用指撥開關模擬輸入開關。如圖所示。圖2.29:總電源開關總電源開關指示燈1號開關指示燈1號開關R1號開關S2號開關指示燈2號開關暫停工作指示燈對應輸出接點PA.7PA.6PA.5PA.4PA.3PA.2PA.1PA.0功能1開啟電源等待11000001功能2開啟1號開關11110xx0功能3開啟2號開關11xxx110功能4關閉1號開關11001xx0/1功能5關閉2號開關11xxx000/1功能6關機00000000註:x表示0與1皆可由附表的規劃功能,輸出資料必須先做下列的運算:功能1,執行開啟電源處於等待狀態,經編碼得知為&HC1(11000001),因此可將此資料直接輸出到PA埠。功能2,執行開啟1號開關,其中四個接點狀態必須分別設為PA.5=ON,PA.4=ON,PA.3=OFF,PA.0=OFF。先將PA埠狀態與&H30(00110000)做OR運算,再和&HF6(11110110)做AND運算。運算的結果再輸出到PA埠。功能3,執行開啟2號開關,其中三個接點狀態必須分別設為PA.2=ON,PA.1=ON,PA.0=OFF。先將PA埠狀態與&H06(00000110)做OR運算,再和&HFE(11111110)做AND運算。運算的結果再輸出到PA埠。功能4,執行開啟1號開關,其中四個接點狀態必須分別設為PA.5=ON,微電腦控制-使用VBP7-8PA.4=ON,PA.3=OFF,PA.0=OFF。先將PA埠狀態與&H30(00110000)做OR運算,再和&HF6(11110110)做AND運算。運算的結果再輸出到PA埠。在功能3,若要關閉啟2號開關,將PA埠狀態與&HF6做AND運算。其它功能以此類推。範例執行的結果可由PA埠對應的LED的明暗狀態觀察得知。操作步驟如下:(3)開啟VB程式,並新建一個[專案],在新表單加入三個物件,並設定其屬性,表單與物件功能與設定如下表6-6:第7章-微電腦控制應用實例P7-9表4-6物件物件名稱(name)功用備註表單Form1本程式的主表單Caption=”8255基本輸出練習2”指令按鈕Command1執行功能1(開啟電源等待狀態)屬性Caption=”開啟電源”指令按鈕Command2執行功能2(開啟1號開關)屬性Caption=”開啟1號開關”指令按鈕Command3執行功能3(開啟2號開關)屬性Caption=”開啟2號開關”指令按鈕Command4執行功能4(關閉1號開關)屬性Caption=”關閉1號開關”指令按鈕Command5執行功能5(關閉2號開關屬性Caption=”關閉2號開關”指令按鈕Command2執行功能6(開啟1號開關)屬性Caption=”執行”文字標籤Label1顯示目前工作狀態屬性Font.size=20通訊埠MSComm1建立與實驗板的通訊在實際電機應用場合中,控制接點大部份是110V以上的交流負載。因此在輸出端還必須加裝一般的繼電器(Realy),或工業電子元件,如SSR(固態繼電器)、SCR、TRIAC等。如圖所示。輸入輸出1.單一開關控制一個負載2.兩個串聯開關控制一個負載3.兩個並聯開關控制一個負載4.兩個互斥開關控制一個負載5.三開關串並聯控制一個負載6.三開關串並聯控制兩個負載微電腦控制-使用VBP7-10第7章-微電腦控制應用實例P7-117.3家電控制與保全系統表7.1:指示燈資料處理洗衣機冰箱電視陽台燈大門燈浴室燈主臥室燈客廳燈8255輸出埠PA.7PA.6PA.5PA.4PA..3PA..2PA..1PA..0ShapeIndex76543210電燈全部開啟×××■■■■■Or&H1F電燈全部關閉×××□□□□□And&HE0開啟電視××■×××××Or&H20關閉電視××□×××××And&HDF開啟冰箱×■××××××Or&H40關閉冰箱×□××××××And&HBF開啟洗衣機■×××××××Or&H80關閉洗衣機□×××××××And&H7F微電腦控制-使用VBP7-12【範例7-3A】家電控制依照表7-1的規劃功能,使用VB建立一紅綠燈監控程式,操作程序如下(4)開啟VB程式,並新建一個[專案],在新表單加入控制項,並設定其屬性,表單上的控制項清單如表7-1。表7-:範例6-6的控制項清單物件物件名稱(name)功用備註列示方塊List1提供展示功能選項清單計時器Timer1提供一個延遲時間Enabled=False,Interval=10計時器Timer2提供一個延遲時間Enabled=False,Interval=10計時器Timer3提供一個延遲時間Enabled=False,Interval=10計時器Timer4提供一個延遲時間Enabled=False,Interval=10形狀Shape1(0~7)使用8個形狀陣列的填入色彩Shape1(i).FillStyle顯示PA輸出埠狀態預設Shape1(i).Color=RedShape1(i).Shape=0-矩形(i=0~7)工具列Toolbar1加入四個按鈕,分別執行廣告燈的正轉,反轉,暫停等功能操作步驟參考第3章範例3-6。圖片清單ImageList1提供工具列顯示圖示操作步驟參考第3章範例3-6。文字標籤Label2提示使用者選取功能選項屬性Caption=”展示功能選單”通訊埠MSComm1建立與實驗板的通訊第7章-微電腦控制應用實例P7-13感測元件微電腦輸出的小電流、小電壓控制信號,若要應用在大功率負載的工業用機電開關,必須考慮電氣隔離技術,以避免兩個系統間的干擾。類別溫度感測溫度開關TH125,TH85隨溫度變化而改變導通(On)與不導通(Off)狀態的開關。一般應用在家用電熱器與工業上熱敏阻器VEI31