pdf版下載地址:http://pan.baidu.com/s/1hrKoza8git
文件名:ccsa1_3算法
第一章編程
1-1 計算機控制系統的硬件由哪幾部分組成?各部分的做用是什麼?安全
硬件包括計算機、過程輸入輸出通道及接口、人機聯繫設備及接口、外部存儲器等。計算機的關鍵部件是中央處理器(CPU),CPU經過接口接收人的指令和工業對象的各類參數,並向系統各部分發送各類命令數據,完成巡迴檢測、數據處理、控制計算、邏輯判斷等工做。網絡
過程輸入通道把工業對象的參數轉換成計算機能夠接受的數字信號,過程輸出通道及接口把計算機處理結果轉換成能夠對被控對象進行控制的信號。過程輸入輸出通道既能夠傳輸數字量信號,也能夠傳輸模擬量信號。模塊化
人機聯繫設備及接口包括顯示操做臺、屏幕顯示器(CRT)或數碼顯示器、鍵盤、打印機、記錄儀等,它們是操做人員和計算機進行聯繫的工具。工具
外部存儲器(外存)包括磁盤、光盤、磁帶,主要用於存儲系統大量的程序和數據。它是內存儲容量的擴充,可根據要求決定外存的選用。性能
1-2 計算機控制系統的軟件由哪幾部分組成?各部分的做用是什麼?測試
軟件是可以完成各類功能的計算機程序的總和,由系統軟件和應用軟件組成。系統軟件是由計算機生產廠家提供的專門用來使用和管理計算機的程序,具備必定的通用性,包括操做系統、程序設計軟件、編譯軟件、系統診斷軟件等。ui
應用軟件是根據用戶要解決的實際問題而編寫的各類程序,包括控制程序、數據採集及處理程序、巡迴檢測程序和數據管理程序等。
在常規模擬控制系統中,系統的控制規律是用硬件電路實現的,改變控制規律須要改變硬件;而在計算機控制系統中,控制規律程序化了,改變控制規律和被控參數,只需改變程序便可。
1-3 計算機控制系統的結構有哪些形式?各形式的含義和工做原理是什麼?
與傳統的控制系統相似,計算機控制系統也可分爲開環控制和閉環控制兩種結構,採用哪一種控制結構取決於被控對象的類型以及對控制性能的要求。通常來說,開關量(順序)控制採用開環控制結構,模擬量控制採用閉環控制結構;對控制性能要求低的控制系統可採用開環控制結構,對控制性能要求高的系統採用閉環控制結構。
1.開環控制結構
開環控制結構,是指控制系統按照給定的輸入信號對被控對象進行單向控制而沒有對被控對象進行測量和反饋,或者只進行數據採集與測量而不直接參與控制的控制方式。如圖1-2所示的計算機順序控制和圖1-3所示的計算機數據採集及處理系統。順序控制只根據人們事先設計的邏輯關係驅動執行機構動做,完成設定的工序;數據採集及處理系統只對被控制對象的各物理量經計算機處理後進行顯示和打印,給操做者提供參考值,二者都不造成迴路,所以屬於開環控制。在實際工業應用中,自動機牀、自動洗衣機、公路交通管理系統、鐵路信號檢測系統等,都是開環控制系統。
圖1-2 計算機順序控制系統結構圖
圖1-3 計算機數據採集與處理系統結構圖
2.閉環控制結構
對於按誤差進行調節的傳統模擬閉環負反饋控制系統,若是把控制器用計算機來代替,就構成了計算機閉環控制系統,如圖1-4所示。計算機把經過測量元件、變送單元和A/D轉換接口送來的數字信號,直接反饋到輸入端與設定值進行比較,而後對其誤差按某種控制算法進行計算,所得數字量輸出信號經D/A轉換接口直接驅動執行裝置,對控制對象進行調節,使其保持在設定值上。
計算機閉環控制系統的工做過程可概括爲如下三個步驟:①實時數據採集,對來自測量元件和變送單元的被控量的瞬時值進行檢測和輸入;②實時數據處理,對採集到的被控量進行分析和處理,按必定的控制規律運算,進行控制決策;③實時控制輸出,根據控制決策,適時地對執行裝置發出控制信號,完成工做任務。工程實際中上述過程不斷重複。「實時」,是指信號的輸入、運算處理和輸出能在必定的時間內完成,即要求計算機對輸入信號要以足夠快的速度進行測量與處理,並在必定的時間內做出反應或產生相應的控制。超過這個時間,就會失去控制時機。「實時」概念不能脫離具體過程,如鍊鋼的爐溫控制,因爲時間慣性很大,輸出延遲幾秒仍然是「實時」的;而軋鋼機的拖動電機控制,通常需在幾毫秒或更短的時間內完成對電流的調節,不然,電流失控將形成事故。
圖1-4 計算機閉環控制結構
1-4 與傳統的模擬控制系統相比,計算機控制系統有哪些特色?
與傳統的模擬控制系統相比,計算機控制系統有以下突出特色:
(1)技術集成和系統複雜程度高。計算機控制系統是計算機、控制、通訊、電子等多種高新技術的集成,是理論方法和應用技術的結合。因爲信息量大、速度快和精度高,所以能實現複雜的控制規律,從而達到較高的控制質量。計算機控制系統實現了常規系統難以實現的多變量控制、智能控制、參數自整定等。
(2)可靠性高和可維護性好,這兩個因素決定着系統的可用程度。因爲採起有效的抗干擾、冗餘、可靠性技術和系統的自診斷功能,計算機控制系統的可靠性高,並且可維護性好。若有的工控機,一旦出現故障,能迅速指出故障點和處理辦法,便於當即修復。
(3)環境適應性強。工業環境惡劣,要求工業控制機適應高溫、高溼、腐蝕、振動、衝擊、灰塵等環境。工業環境電磁干擾嚴重,供電條件不良,通常的工業控制機有較高的電磁兼容性。
(4)控制的多功能性。計算機控制系統具備集中操做、實時控制、控制管理、生產管理等多種功能。
(5)應用的靈活性。因爲軟件功能豐富,編程方便和硬件體積小,重量輕以及結構設計上的模塊化、標準化,系統在配置上有很強的靈活性。如一些工控機有操做簡易的結構化、組態化控制軟件,硬件的可裝配性、可擴充性也很好。
此外技術更新快、信息綜合性強、內涵豐富、操做便利等,也都是計算機控制系統的一些特色。
1-5 根據應用特色、控制功能和系統結構,計算機控制系統的分類有哪些類型?
計算機控制系統種類繁多,命名方法也各有不一樣。根據應用特色、控制功能和系統結構,計算機控制系統主要可分爲六種類型:計算機操做指導控制系統、直接數字控制系統、監督計算機控制系統、集散型控制系統、現場總線控制系統、計算機集成制造系統。
1-6 計算機控制系統的發展趨勢如何?
因爲微處理器成本的降低以及網絡通訊技術的進步,目前32位微處理器已廣泛應用於計算機控制系統,其功能更強,速度更快,存儲器容量也不斷增大;交互圖形、複合窗口及觸摸屏幕等技術的應用,令人機交互更爲便捷;專用集成電路和表面安裝技術在硬件設計上的使用,使板級上的元件數量更少,硬件的可靠性大大提升;直接數字傳感器、光纖傳感器和智能執行器等智能儀表應用到工業現場;標準化的數據通訊鏈路和通訊網絡技術的應用改進了計算機控制系統的網絡體系結構。另外,各類公共網絡體系的創建和通訊網絡技術的普及,在網絡環境下新的各種控制系統已成爲可能。
在整個計算機控制系統的發展過程當中,應該說DDC和DCS最具表明性。DDC實現了真正意義上的閉環控制,確立了計算機控制的基本結構;DCS將計算機網絡引入到了控制系統,確立了計算機控制系統的分層結構,爲企業實現廠級自動化奠基了基礎,FCS和CIMS能夠看做是DCS向基礎控制級和上層管理級的進一步延伸。所以,這裏主要介紹DCS的發展前景:開放化,小型化,智能化。
第二章
2-1 什麼是人-機接口?該接口有何做用?
計算機控制系統要完成對生產過程進行檢測和控制的任務,首先需配置與操做人員進行信息交換的輸入、輸出設備或器件,這種人機聯繫的設備或器件稱爲人—機接口。由人—機接口完成各類控制操做,顯示生產過程的工藝情況與運行結果。人—機接口的典型裝置是一個操做顯示臺或操做顯示面板。因爲生產過程要求控制和管理的內容不一樣,操做顯示臺或操做顯示面板也有較大差別。
操做臺除開關、旋鈕、撥盤及各類打印機、繪圖儀類的I/O設備之外,通常必不可少的是鍵盤與LED顯示器或LCD顯示器或CRT顯示器。
顯示器件是計算機控制系統的重要組成部分,用於顯示各類參數的值,以便現場工做人員可以及時掌握生產過程。工業控制系統經常使用的顯示器件有LED、LCD、CRT等,CRT體積較大,能夠進行字符和畫面顯示,能方便地實現生產過程的管理和監視,適合與板卡、PLC、智能儀表等相結合,進行計算機控制系統的集成。LED和LCD體積小,功耗低,與基於單片機的控制系統易於匹配,應用普遍。本章主要講述LED顯示器數碼顯示和液晶顯示器(LCD)數碼顯示。
鍵盤是計算機控制系統中不可缺乏的輸入設備,是人機對話的紐帶,只有經過鍵盤,操做人員才能對系統狀態進行干預。本章經過講述鍵盤接口及程序,使讀者瞭解鍵盤管理的原理和方法,在編碼式鍵盤接口電路一節,介紹既能管理鍵盤又能管理LED顯示器的集成芯片Intel8279。
2-2 LED顯示器的發光二極管有幾種接法?各有何特色?
LED顯示器由7個發光二極管組成顯示字段,並按「曰」字形排列,這7段發光管分別稱爲a、b、c、d、e、f、g,有的還帶有一個小數點dp,7段LED由此得名,將7段發光二極管陰極都連在一塊兒,稱爲共陰極接法,當某個字段的陽極爲高電平時,對應的字段就點亮。共陽極接法是將LED顯示器的全部陽極並接後連到+5V電源上,當某一字段的陰極爲0時,對應的字段就點亮,如圖2-1所示。
圖2-1 7段LED顯示器件
2-3 簡述LED動態顯示方式與靜態顯示方式的工做原理及其特色。
點亮LED顯示器有兩種方式:靜態顯示和動態顯示。下面以共陰極接法爲例說明:
⑴LED靜態顯示方式
所謂靜態顯示就是將N位共陰極LED顯示器的陰極連在一塊兒接地,每一位LED的8位段選線與一個8位並行口相連,當顯示某一個字符時,相應的發光二極管就恆定地導通或截止。一個4位靜態顯示電路如圖2-2所示。
圖2-2 4位靜態LED顯示電路
在圖中,每一位LED可獨立顯示。因爲每一位LED由一個8位輸出口控制段選碼,故在同一時間裏每一位顯示的字符能夠各不相同。靜態顯示的優勢是所需驅動電流較小,能夠由8155或8255直接驅動,顯示穩定。缺點是N位LED要求有N×8位I/O口線,佔用I/O口線太多,故多在顯示位數較少時使用。
⑵LED動態顯示方式
所謂動態顯示就是用掃描方式輪流點亮LED顯示器的各個位。特色是:將多個7段LED顯示器同名端的段選線復接在一塊兒,只用一個8位I/O控制各個LED顯示器的公共陰極輪流接地,逐一掃描點亮,使每位LED顯示該位應當顯示的字符。恰當地選擇點亮LED的時間間隔(1ms~5ms),會給人一種視覺暫停效應,彷佛多位LED都在「同時」顯示。圖2-3是一個8位動態顯示原理圖。
在圖中,控制每一個LED顯示位輪流接地點亮的代碼稱爲「位選碼」。由I/O(2)口輸出8位代碼控制。特色是,每次輸出只有一位是0(點亮),其他7位均爲1(熄滅),所以每一位LED都有一個惟一的8位「位選碼」。按圖2-3從左向右輪流顯示8位LED的位選碼爲:從左1開始,依次是7FH→BFH→DFH→EFH→F7H→FBH→FDH→FEH,循環往復。
用8031右移循環指令可實現:
MOV A,#7FH ;點亮左1LED的位選碼
LOOP: MOVX @DPTR,A ;從I/O(2)口輸出位選碼
RR A ;右移一位,指向下一個LED位
LCALL DELAY ;調延時3ms子程序
LJMP LOOP ;返回顯示下一位LED
圖2-3 8位LED動態顯示原理圖
動態顯示的操做由軟件完成。每次由I/O(1)口輸出段選碼、再由I/O(2)口輸出位選碼,通過延時,以得到穩定的顯示效果。
2-4 請根據圖2-8所示電路,編寫程序顯示本身學號的後8位。
顯示「CPUready」的程序以下。
圖2-8 用8155實現8位動態LED顯示器
DISP:ORL P1,#80H ;選擇8155爲I/O口
MOV R1,#0F8H ;置8155命令/狀態寄存器地址
MOV A,#0F3H
MOVX @R1,A ;送8155工做方式命令字
START:MOV DPTR,#TAB
MOV R0,#00H ;字型碼地址偏移量
MOV R2,#80H;選擇第1位顯示
SCAN:MOV R1,#0FAH ;置8155PB口地址
MOV A,#00H
MOVX @R1,A ;熄滅顯示器
MOV A,R0
MOVC A,@A+DPTR ;取字型碼
DEC R1;置8155PA口地址
MOVX @R1,A ;送字型碼
MOV A,R2
INC R1
MOVX @R1,A ;送位選碼
ACALL DLlms ;延時lms
INC R0 ;指向下一字型碼
MOV A,R2
CLR C
RRC A ;指向下一位
MOV R2,A
XRL A,#00H ;8位未完,掃描顯示下一位
JNZ SCAN
AJMP START ;開始下一輪掃描
DLlms:SETB D3H
MOV R2,#83H
LL0:NOP
NOP
DJNZ R2,LL0
CLR D3H
RET
TAB:DB 0C6H,8CH,0C1H,0CEH,86H,88H,0A1H,91H;對應顯示字型:CPU ready
;軟件譯碼格式:
h |
g |
f |
e |
d |
c |
b |
a |
表2-1 LED段選碼和顯示字符之間的關係
顯示字符 |
共陰極段選碼 |
共陽極段選碼 |
顯示字符 |
共陰極段選碼 |
共陽極段選碼 |
0 |
3FH |
C0H |
4 |
66H |
99H |
1 |
06H |
F9H |
5 |
6DH |
92H |
2 |
5BH |
A4H |
6 |
7DH |
82H |
3 |
4FH |
B0H |
7 |
07H |
F8H |
8 |
7FH |
80H |
E |
79H |
86H |
9 |
6FH |
90H |
F |
71H |
8EH |
A |
77H |
88H |
P |
73H |
82H |
B |
7CH |
83H |
· |
80H |
7FH |
C |
39H |
C6H |
=· |
C8H |
37H |
D |
5EH |
A1H |
「全滅」 |
00H |
FFH |
2-5 什麼是鍵盤和按鍵?請簡述計算機監測一個按鍵是否閉合的工做原理。
鍵盤是一組按鍵的集合。按鍵是一種按壓式或觸摸式常開型按鈕開關。平時(常態)按鍵的兩個觸點處於斷開狀態,當按壓或觸摸按鍵時兩個觸點才處於閉合連通狀態。
按鍵閉合時能向微型機輸入數字(0~9或0~F)的鍵稱爲數字鍵,能向微型機輸入命令以實現某項功能的鍵稱爲功能鍵或命令鍵。鍵盤上的按鍵是按必定順序排列在一塊兒的,每一個按鍵都有各自的命名。爲了便於CPU區分各個按鍵,必須給鍵盤上的每一個按鍵賦以一個獨有的編號,按鍵的編號或編碼稱爲鍵號或鍵值。CPU知道了按鍵的鍵號或鍵值,就能區分這個鍵是數字鍵仍是功能鍵。若是是數字鍵,就直接將該鍵值送到顯示緩衝區進行顯示;若是是功能鍵則由該鍵值找到執行該鍵功能的程序的入口地址,並轉去運行該程序即執行該鍵的命令。所以,肯定按鍵的鍵值是執行該鍵功能的前提。
鍵盤接口與鍵盤程序的根本任務就是要監測有沒有鍵按下?按下的是哪一個位置的鍵?這個鍵的鍵值是多少?這個任務叫作鍵盤掃描。鍵盤掃描能夠用硬件來實現,也能夠用軟件來實現。帶有鍵盤掃描硬件電路的鍵盤稱爲編碼鍵盤,不帶鍵盤掃描硬件電路的鍵盤稱爲非編碼鍵盤,非編碼鍵盤的掃描靠軟件實現。爲了節省成本起見,通常的計算機控制系統多采用非編碼鍵盤。
爲了能讓CPU監測按鍵是否閉合,一般將按鍵開關的一個觸點經過一個電阻(稱上拉電阻)接+5V電源(這個觸點稱爲「測試端」),另外一個觸點接地或接低電平(這個觸點稱「接零端」),這樣當按鍵開關未閉合時,其測試端爲高電平,當按鍵開關閉合時,其測試端便爲低電平。
2-6 計算機監測鍵盤的工做方式有哪些?簡述獨立式鍵盤和行列式鍵盤的按鍵識別方法。
根據按鍵開關與CPU的鏈接方式不一樣,鍵盤又可分爲獨立式和行列式(或矩陣式)兩大類。
獨立式鍵盤的特色是:各按鍵相互獨立,每一個按鍵的「接零端」均接地,每一個按鍵的「測試端」各接一根輸入線,如圖2-13所示,一根輸入線上的按鍵工做狀態不會影響其餘輸入線上的工做狀態。這樣,經過檢測輸入線的電平狀態就能夠很容易地判斷哪一個按鍵被按下了,所以操做速度高並且軟件結構很簡單。可是,因爲獨立式鍵盤每一個按鍵需佔用一根輸入口線,在按鍵數量較多時,輸入口浪費大,故此種鍵盤只適用於按鍵較少或操做速度較高的場合。
(a) (b)
圖2-13 獨立式鍵盤接口電路
行列式鍵盤的特色是:行線、列線分別接輸入線、輸出線,按鍵設置在行、列線的交叉點上,每一行線(水平線)和列線(垂直線)的交叉處不相通,而是經過按鍵來連通,利用這種矩陣結構只需m根行線和n根列線就可組成m×n個按鍵的鍵盤,所以矩陣式鍵盤適用於按鍵數量較多的場合。因爲矩陣鍵盤中行、列線爲多鍵共用,因此必須將行、列線信號配合起來並做適當處理,才能肯定閉合鍵的位置,所以,軟件結構較爲複雜。
2-7 鍵輸入中會產生哪些問題?任何解決?
鍵輸入中存在的問題及解決辦法
(1)鍵抖動 一般的按鍵所用開關爲機械彈性開關,當機械觸點斷開、閉合時,電壓信號波形如圖2-16所示。因爲機械觸點的彈性做用,一個按鍵開關在閉合時不會立刻穩定地接通,在斷開時也不會一會兒斷開。於是在閉合及斷開的瞬間均伴隨有一連串的抖動。抖動時間的長短由按鍵的機械特性決定,通常爲5~10ms,這是一個很重要的時間參數,在不少場合都要用到。
圖2-16 按鍵時的抖動
按鍵穩定閉合時間的長短則是由操做人員的按鍵動做決定的,通常爲零點幾秒至數秒。
鍵抖動會引發一次按鍵被誤讀屢次,爲了確保CPU對鍵的一次閉合僅做一次處理,必須去除鍵抖動,在鍵閉合穩定時取鍵狀態,而且必須判別到鍵釋放穩定後再做處理。按鍵的抖動,可用硬件或軟件兩種方法消除。
一般在鍵數較少時,可用硬件方法消除鍵抖動,其工做原理如圖3-3(b)所示。若是按鍵較多,則經常使用軟件方法去抖動,即檢測出鍵閉合後執行一個延時程序產生5~10ms的延時,等前沿抖動消失後再一次檢測鍵的狀態,若是仍保持閉合狀態電平則確認爲真正有鍵按下。當檢測到按鍵釋放後,也要給5~10ms的延時,待後沿抖動消失後才能轉入該鍵的處理程序。
(2)重鍵 有時因爲操做不慎,可能會同時按下幾個鍵,這種問題稱爲重鍵,有三種處理辦法:
①「兩個鍵同時按下」最簡單的處理辦法是,當只有一個鍵按下時纔讀取鍵盤的輸出,而且認爲最後仍被按下的鍵是有效的正確按鍵。這種方法經常使用於軟件掃描鍵盤的場合。另外一種方法是當第一個鍵未鬆開時,按第二個鍵不起做用。這種方法常藉助於硬件來實現。
②「n鍵同時按下」處理這種狀況時,或者不理會全部被按下的鍵,直至只剩下一個鍵按下時爲止;或者將按鍵的信息存入內部鍵盤輸入緩衝器,逐個處理。這種方法成本較高。
③「n鍵鎖定」技術 即只處理一個鍵,任何其餘按下又鬆開的鍵不產生任何碼。一般第一個被按下或最後一個鬆開的鍵產生鍵碼。這種方法最簡單也最經常使用。
⑶按鍵持續時間的長短不一 按鍵穩定閉合時間的長短是由操做人員的按鍵動做決定的,通常爲零點幾秒至數秒。爲了保證不管按鍵持續時間長短,CPU對鍵的一次閉合,僅做一次鍵輸入處理,必須等待按鍵釋放以後,再進行按鍵功能的處理操做。
2-8 採用AT89C51單片機、發光二極管(紅、綠、黃各一支)、按鍵3個和電阻等元器件,設計獨立式鍵盤管理電路和程序,要求:
⑴按1#鍵後紅燈點亮,其他燈熄滅;按2#鍵後綠燈點亮,其他燈熄滅;按3#鍵後黃燈點亮,其他燈熄滅;
⑵剛上電時,3個LED燈所有點亮,5秒鐘後熄滅;
⑶畫出電路原理圖,並編寫相應程序(具有去抖動功能)。
#include<reg52.h>
#defineuchar unsigned char
#defineuint unsigned int
voiddelay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidmain()
{
uint temp;
uint i;
P1=0xff;
delay(100);
P0=0xf8;
delay(5000);
P0=0xff;
while(1)
{
temp=P1 & 0xff;
if(temp!=0xff)
{
for(i=0;i<10;)
{
temp=P1& 0xff;
if(temp!=0xff)
{
i++;
delay(200);
}
}
if(i>9)
{
P0=temp;
i=0;
}
}
else
{
i=0;
P0=0xff;
}
delay(20);
}
}
附編程題:
計算機控制技術動態顯示編程題
單片機與數碼管的接口電路如圖所示,請讀懂原理圖,指出74LS245與7407有何做用;並編程實現顯示後六位學號。
第三章
3-1 什麼是開關量輸入通道?它是由哪些部分組成的?
電氣控制系統的繼電器觸點具備閉合與斷開兩種狀態,這種信號形式稱爲開關量。在計算機控制系統中,二進制數的每一位有「0」和「1」兩種狀態,均可以表明被控對象的一種狀態。開關觸點的斷開或閉合、設備的安全情況等,這些狀態都要被轉換成二進制數送往計算機做爲控制時的依據。負責將生產過程當中的開關信號、脈衝信號和數字編碼等,傳遞給計算機的鏈接通道稱爲數字量輸入通道,簡稱DI(Digital Input)。在計算機控制系統中,繼電器的接通與斷開,電動機的啓動與中止,閥門的打開與關閉等,須要靠計算機發出相應命令。負責將計算機的控制命令傳遞給開關類執行機構的的鏈接通道稱爲數字量輸出通道,簡稱DO(Digital Output)。
數字量輸入通道主要由輸入信號調理電路、光電耦合隔離電路和計算機I/O接口電路組成,如圖3-1所示,其功能是將生產現場開關信號轉換成計算機可以接收的電平信號。
計算機控制系統的數字量輸入形式具備多樣性,如生產現場開關觸點的通斷、編碼器的脈衝、各種數字傳感器產生的數碼等。這些信號需通過放大、防抖、整形和電平轉換等措施,轉換成計算機可以接收的邏輯電平信號,這個過程稱爲信號調理。爲了對計算機接口進行保護,採用光電耦合隔離電路將強電部分和弱電部分隔離。
圖3-1 數字量輸入通道結構圖
3-2 根據R-S觸發器的功能,分析圖3-3(b)電路消除開關抖動的工做原理。
在計算機控制系統中,從現場送來的許多開關量都是經過觸點輸入電路輸入的。圖3-3所示爲從開關、繼電器等接點輸入開關信號的硬件連線圖。
圖3-3中,各類開關信號經過接口電路被轉換成計算機所能接收的TTL信號,因爲機械觸點在接觸時有抖動會引發電路振盪,所以,在電路中加入了具備較大時間常數的電路來消除這種振盪。圖3-3(a)爲採用積分電路消除開關抖動的方法,圖3-3(b)爲採用R-S觸發器消除開關屢次反跳的方法。
----
RS觸發器通常用來抵抗開關的抖動。圖1
爲了消除開關的接觸抖動,可在機械開關與被驅動電路間接的接入一個基本RS觸發器,如圖1所示838電子。S爲 =0, R=l,可得出A=l, A‘=0。當按壓按鍵時,S=l,R=0,可得出 A=0,A’=1,改變了輸出信號A的狀態。若因爲機械開關的接觸抖動,則R的狀態會在0和1之間變化屢次,若 R=l,因爲A=0,所以G2門仍然是「有低出高」,不會影響輸出的狀態。同理,當鬆開按鍵時, S端出現的接觸抖動亦不會影響輸出的狀態。所以,圖1所示的電路,開關每按壓一次,A點的輸出信號僅發生一次變化。
3-3 分析圖3-4大功率開關信號輸入電路具有哪些功能,說明其工做過程。
圖3-4 大功率開關信號輸入硬件連線圖
大功率的開關電路通常採用電壓較高的直流電源,在輸入開關狀態信號時,可能對計算機控制系統帶來干擾和破壞,所以,這種類型的開關信號應經光電隔離後才能與計算機相連。圖3-4所示爲大功率開關信號輸入的硬件連線圖,圖中開關信號經光電隔離後才與計算機相連,這樣能使計算機系統不會受到大功率電路部分帶來的干擾和破壞,確保計算機系統的正常運行。
3-4 在計算機控制系統中,爲何大功率輸入輸出接口電路須要加入光電隔離器?而光電隔離器的輸入與輸出端的電源爲何要相互獨立?
爲了隔斷外界電信號對計算機控制系統的干擾,一般採用光電隔離技術,以阻斷外界電信號對電路的串擾。光電隔離器的種類不少,經常使用的有:發光二極管/光敏三極管、發光二極管/光敏複合晶體管、發光二極管/光敏電阻及發光二極管/光觸發可控硅等。其原理圖如圖3-2所示。
圖3-2 光電隔離器原理圖
光電隔離器由GaAs紅外發光二極管和光敏三極管組成。當發光二極管有正向電流流過期,就產生紅外光,其光譜範圍爲700~1000nm。光敏三極管接收到發光二極管產生的紅外光之後便導通。而當發光二極管上電流撤去時,發光二極管熄滅,因而三極管便截止。因爲這種特性,開關信號可經過它傳送。該器件是經過電—光—電轉換來實現開關量的傳送的,器件兩端之間的電路沒有電氣鏈接,於是起到隔離做用。隔離電壓範圍與光電隔離器的結構形式有關,雙列直插式塑料封裝形式通常爲2500V左右,陶瓷封裝形式通常爲5000~10000V。不一樣型號的光電隔離器件,要求輸入的電流也不一樣,通常爲10mA左右。其輸出電流的大小與普通的小功率三極管至關。
3-5 根據圖3-21帶光電隔離器的步進電機控制接口原理圖,分析步進電機六拍工做方式的控制代碼。
圖3-21 帶光電隔離器的步進電機控制接口原理圖
六拍控制方式:通電順序爲A→AB→B→BC→C→CA→A(正轉)或A→AC→C→CB→B→BA→A(反轉)。
若要求在現場開關S1閉合時,電動機正轉;S2閉合時,電動機反轉;S一、S2斷開時,電動機停轉。電動機停轉正、反轉可由8031的P1口輸入開關的通、斷狀態,經軟件處理後,再由該端口輸出控制信號。
圖中A、B、C是三相電動機的三個繞組,分別由功放電路一、二、3通以驅動脈衝。現採用六拍控制方式,端口輸出位的代碼和相應的通電繞組如表3-1所列。
表3-1 輸出代碼和相應的通電繞組
輸出代碼 |
通電繞組 |
×××××001 ×××××011 ×××××010 ×××××110 ×××××100 ×××××101 |
A AB B BC C CA |
由表可知,若電路按必定的節拍依次送出×1H、×3H、×2H、×6H、×4H和×5H輸出代碼,則步進電動機正轉;若電路依次送出×1H、×5H、×4H、×6H、×2H和×3H則步進電動機反轉。採用查表法可方便地編制出三相電機的控制程序。
如下是與單片機8031接口的控制程序。
STEP: |
MOV |
R7,#06H |
;06H→R7 |
LOOP: |
JNB |
P1.6,POS |
;若P1.6=0轉POS |
|
JNB |
P1.7,NEG |
;若P1.7=0轉NEG |
|
AJMP |
LOOP |
|
POS: |
MOV |
DPTR,#TABLE1 |
|
LOOP1: |
MOVX |
A,@DPTR |
|
|
MOV |
P1,A |
;輸出表格1代碼 |
|
INC |
DPTR |
|
|
ACALL |
DELAY |
;延時 |
|
DJNZ |
R7,LOOP1 |
|
|
AJMP |
STEP |
|
NEG: |
MOV |
DPTR,#TABLE2 |
|
LOOP2: |
MOVX |
A,@DPTR |
|
|
MOV |
P1,A |
;輸出表格2代碼 |
|
INC |
DPTR |
|
|
ACALL |
DELAY |
;延時 |
|
DJNZ |
R7,LOOP2 |
|
|
AJMP |
STEP |
|
TABLE1: |
DB |
0F1H,0F3H,0F2H,0F6H,0F4H,0F5H |
|
TABLE2: |
DB |
0F1H,0F5H,0F4H,0F6H,0F2H,0F3H |
|
3-6 根據圖3-22控制步進電動機正反轉的開關量輸入輸出電路,設計程序及其流程圖,實現 以下功能:當開關S1閉合時,電動機可轉動,此時若開關S2閉合,電動機正轉,若開關S2斷開,電動機反轉;當開關S1斷開時,不管S2爲什麼種狀態,電動機停轉。
圖3-22 控制步進電動機正反轉的開關量輸入輸出電路
/*************** code ******************/
#include<reg52.h>
#defineuint unsigned int
#defineuchar unsigned char
ucharcode FFW[]=
{
0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
};
ucharcode REV[]=
{
0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01
};
sbit K1 =P3^0;
sbit K2 =P3^1;
sbit K3 =P3^2;
sbit S1 =P3^4;
sbit S2 =P3^5;
sbit S3 =P3^6;
voidDelayMS(uint ms)
{
uchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
voidSETP_MOTOR_FFW(uchar n)
{
uchari,j;
for(i=0;i<5*n;i++)
{
for(j=0;j<8;j++)
{
if(K3== 0) break;
if(S1 == 1) break;
P1 = FFW[j];
DelayMS(25);
}
}
}
voidSETP_MOTOR_REV(uchar n)
{
uchari,j;
for(i=0;i<5*n;i++)
{
for(j=0;j<8;j++)
{
if(K3== 0) break;
if(S1 == 1) break;
P1 = REV[j];
DelayMS(25);
}
}
}
voidmain()
{
ucharN = 3;
while(1)
{
if(K1 == 0)
{
P0= 0xfe;
SETP_MOTOR_FFW(N);
if(K3 == 0) break;
}
else if(K2 == 0)
{
P0= 0xfd;
SETP_MOTOR_REV(N);
if(K3 == 0) break;
}
else
{
P0= 0xfb;
P1 = 0x03;
}
if(S1 == 0)
{
if(S2 == 0)
{
P0= 0xfe;
SETP_MOTOR_FFW(1);
if(S1 == 1)break;
}
else
{
P0= 0xfd;
SETP_MOTOR_REV(1);
if(S1 == 1)break;
}
}
else
{
P0= 0xfb;
P1 = 0x03;
}
}
}
3-7 根據圖3-14雙向電動機控制接口電路,分析直流電動機工做狀態的控制代碼,在該圖的基礎上,自行設計以單片機爲主控制器的電動機控制電路圖,並設計程序及其流程圖,使直流電動機依次循環實現:正轉—剎車—反轉—自由滑行。
/*************** code ******************/
#include<reg52.h>
#include<intrins.h>
#defineuint unsigned int
#defineuchar unsigned char
sbit K1 = P3^0;
sbitK2 = P3^1;
sbitK3 = P3^2;
sbit LED1= P0^0;
sbit LED2= P0^1;
sbit LED3= P0^2;
sbitMA = P1^0;
sbitMB = P1^1;
sbitS1 = P1^4;
voidDelayMS(uint ms)
{
uchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
voidmain(void)
{
LED1 = 1;
LED2 = 1;
LED3 = 0;
while(1)
{
if(S1 == 0)
{
MA = 0;
MB = 1;
DelayMS(4444);
MA = 1;
MB = 0;
DelayMS(4444);
MA = 0;
MB = 0;
DelayMS(4444);
}
else
{
if(K1 == 0)
{
while(K1== 0);
LED1 = 0;
LED2 = 1;
LED3 = 1;
MA = 0;
MB = 1;
}
if(K2 == 0)
{
while(K1== 0);
LED1 = 1;
LED2 = 0;
LED3 = 1;
MA = 1;
MB = 0;
}
if(K3 == 0)
{
while(K1== 0);
LED1 = 1;
LED2 = 1;
LED3 = 0;
MA = 0;
MB = 0;
}
}
}
}
附編程題:
單片機控制直流電機正反轉的電路如上所示,請讀懂原理圖,並編程實現當K1按下時電機實現正轉,同時發光二極管D1亮;當K2按下時電機實現反轉,同時發光二極管D2亮;當K3按下時電機停轉,同時發光二極管D3亮。