pic單片機范文
時間:2023-03-16 20:16:32
導(dǎo)語:如何才能寫好一篇pic單片機,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
關(guān)鍵詞:pic;USB;單片機;應(yīng)用
中圖分類號:TP368.12 文獻標(biāo)識碼:A 文章編號:1674-7712 (2012) 16-0049-01
肺功能測定是臨床較為常見的一種檢查,對于患者肺及氣道早期檢查具有積極作用,同時可以對患者病情嚴(yán)重程度給予評估。能夠通過檢測呼氣流速實現(xiàn)多項生理參數(shù)評估的醫(yī)學(xué)儀器,由于一些早期肺功能測定儀不支持USB通信,在數(shù)據(jù)導(dǎo)入導(dǎo)出中不夠方便,本研究通過帶有USB模塊的單片機改造,實現(xiàn)了USB通信功能。
一、PIC單片機USB模塊
帶改造肺功能測試儀采用的單片機為PIC18F6720型,為確保兼容性,加快改進速度,本次選用的單片機為PIC18F67J50系列單片機。
(一)USB外設(shè)
PIC18F67J50系列單片機的USB模塊能夠?qū)崿F(xiàn)USB2.0串口兼容,同時可支持全速接口(12Mb/s)和低速接口(1.5Mb/s),可以全面支持中斷、控制及批量傳輸,能夠支持雙向16對端點,最多32個端點(雙向16對),RAM具有CPU和USB模塊雙重存取特性。
(二)USB電源模式
在USB電源配置方面,有著不同的要求和配置,比較常見模式為的電源模式包括Self-Power Only(僅自供電)、Dual Powe(雙電源)、Bus Power Only(僅總線供電)等三種供電模式。其中僅總線供電模式下是最簡單和是最常用的一種供電方式,這種方式電源自USB接口,在供電方式上非常簡單。為符合USB2.0對于浪涌電流的規(guī)范化要求,Vbus同接地端間等效電容應(yīng)在l0uF以下。按照USB2.0的規(guī)范,USB還應(yīng)可以支持低功耗掛起模式。在USB提供V的Vbus線供電過程中,其實際電流消耗應(yīng)在500uA以內(nèi),通信停止至少3ms來實現(xiàn)主機和外設(shè)之間的掛起模式通信。在elf-Power Only(僅自供電)模式中,USB采取自身提供電源的方式,僅有很小電源來自USB,并通常都需要增加相應(yīng)的連接指示器,來顯示USB和主機連接及Vbus供電情況。
(三)振蕩器
USB模塊具有相應(yīng)的時鐘要求。在低速運行狀態(tài)下,需要給予USB模塊6MHz的時鐘脈沖頻率,在全速運行狀態(tài)下,需要USB模塊48MHz的時鐘脈沖頻率為48MHz。然而,無論USB模塊的時鐘脈沖頻率如何,單片機CPU等外設(shè)振蕩器均需要在一定的時鐘速度運行。
二、PIC單片機固件開發(fā)
本研究選擇的PIC單片機程序環(huán)境為MPLAB IDE,改集成開發(fā)環(huán)境平臺中,可全面支持機器碼編譯連接、源程序編寫、開發(fā)調(diào)試工具等功能。軟件可免費通過微芯公司官方網(wǎng)站進行下載,此外,在開發(fā)語言上也完全支持C語言以及第三方語言工具,主要包括:Byte Craft、CCS、B Knudsen Data、HI-TECH等。本研究中原有肺功能檢測儀的采取的程序編譯器為第三方提供的HI-TECH,有因此支持nc器件較少,開發(fā)成本較高,在綜合考慮成本因素和實用因素的基礎(chǔ)上,本研究最終采用的編譯器為微芯公司的MPLAB C18。
而采取微芯公司的MPLAB C18需要對而這需要對肺功能檢測儀原程序的變量定義實施修改,所以必須首先對MPLAB C18的變量的存儲區(qū)進行定義。默認(rèn)狀態(tài)下,編譯器會假定無跨越存儲區(qū)邊界問題。因此在創(chuàng)建超過256字節(jié)的變量中可對鏈接描述文件進行相應(yīng)修改。
三、固件編程
肺功能檢測儀固件改進的目的重要在于通過USB接口實現(xiàn)計算機數(shù)據(jù)處理和本機數(shù)據(jù)提取功能。因此,在主要改進容物就集中在保持原有操作代碼基礎(chǔ)上的USB的HID類通信上,實現(xiàn)USB總線的通信命令傳送和數(shù)據(jù)采集并及時返回。
(一)USB狀態(tài)和控制
在編寫USB模塊固件程序時會用到USB傳輸狀態(tài)寄存器(USTAT)、USB配置寄存器(UCFG)、USB控制寄存器(UCON) 3個寄存器進行當(dāng)前工作狀態(tài)的設(shè)置和查詢,并進入到相應(yīng)的控制流程當(dāng)中。
控制寄存器主要包括零電平復(fù)位、USB模塊等狀態(tài)配置管理;配置寄存器主要包括片上上拉電阻、總線速度、片上收發(fā)器與USB模塊硬件相關(guān)的配置;狀態(tài)寄存器則主要負責(zé)提供串行接口引擎(SIE)中的狀態(tài)報告,一旦發(fā)現(xiàn)中斷信號,應(yīng)首先進行該寄存器的讀取工作,并以此完成傳輸?shù)臓顟B(tài)的確認(rèn)。
(二)USB中斷
USB模塊的絕大部分活動均有中斷進行觸發(fā),和其他單片機中斷源一樣,該模塊也有著自身的特定中斷邏輯結(jié)構(gòu)。能夠通過一組寄存器允許USB中斷,同時可以用一組單獨的標(biāo)志寄存器來實現(xiàn)中斷事件捕獲。在本研究中的單片機中斷邏輯中,USB中斷源均通過頂層的USB中斷請求來反應(yīng)和標(biāo)志位USBIF,在通過中斷第二層寄存器來進行確認(rèn)。
四、系統(tǒng)流程與釆集
當(dāng)肺功能測試儀開啟后,應(yīng)首先對單片機以及液晶屏等進行初始化處理。再通過USB檢測引腳來對高電平情況進行判斷,如果出現(xiàn)高電平則可以說明已連接上了USB線,可以對PIC單片機的USB模塊進行初始化配置工作,在肺功能測試儀液晶屏上出現(xiàn)“連接USB線”提示,在這一期間應(yīng)禁止鍵盤中斷使能,也就是不允許實施本機操作。隨后實施USB枚舉過程,進行接口和端點配置。在完成配置工作后,即可以實施相應(yīng)的計算機操作工作。通過控制輸出端點0上位機將命令向下位機進行發(fā)送。設(shè)備完成對命令的響應(yīng)工作,開始進行數(shù)據(jù)采集工作,通過中斷輸入端點1可實現(xiàn)返回數(shù)據(jù)。
參考文獻:
[1]張巍,鄭建彬.基于VC++實現(xiàn)在線簽名認(rèn)證系統(tǒng)與USB的通信[J].計算機與數(shù)字工程,2007,10.
[2]扶文樹,何軍,陸信如.USB HID數(shù)據(jù)通信接口的設(shè)計與實現(xiàn)[J].工業(yè)控制計算機,2009,22(2).
[3]葉君耀,劉克寧.加密存儲設(shè)備驅(qū)動程序的優(yōu)化設(shè)計[J].軟件導(dǎo)刊,2010,2.
篇2
關(guān)鍵詞 Microchip 單片機 功耗 編程
由美國Microchip公司生產(chǎn)的PIC系列單片機,由于其超小型、低功耗、低成本、多品種等特點,已廣泛應(yīng)用于工業(yè)控制、儀器、儀表、通信、家電、玩具等領(lǐng)域,本文總結(jié)了作者在PIC單片機開發(fā)過程中的一些經(jīng)驗、技巧,供同行參考。
1 怎樣進一步降低功耗
功耗,在電池供電的儀器儀表中是一個重要的考慮因素。PIC16C××系列單片機本身的功耗較低(在5V,4MHz振蕩頻率時工作電流小于2mA)。為進一步降低功耗,在保證滿足工作要求的前提下,可采用降低工作頻率的方法,工作頻率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其電流可減小到15μA),但較低的工作頻率可能導(dǎo)致部分子程序(如數(shù)學(xué)計算)需占用較多的時間。在這種情況下,當(dāng)單片機的振蕩方式采用RC電路形式時,可以采用中途提高工作頻率的辦法來解決。 具體做法是在閑置的一個I/O腳(如RB1)和OSC1管腳之間跨接一電阻(R1),如圖1所示。低速狀態(tài)置RB1=0。需進行快速運算時先置RB1=1,由于充電時,電容電壓上升得快,工作頻率增高,運算時間減少,運算結(jié)束又置RB1=0,進入低速、低功耗狀態(tài)。工作頻率的變化量依R1的阻值而定(注意R1不能選得太小,以防振蕩電路不起振,一般選取大于5kΩ)。
另外,進一步降低功耗可充分利用“sleep”指令。執(zhí)行“sleep”指令,機器處于睡眠狀態(tài),功耗為幾個微安。程序不僅可在待命狀態(tài)使用“sleep”指令來等待事件,也可在延時程序里使用(見例1、例2)。在延時程序中使用“sleep”指令降低功耗是一個方面,同時,即使是關(guān)中斷狀態(tài),Port B端口電平的變化可喚醒“sleep”,提前結(jié)束延時程序。這一點在一些應(yīng)用場合特別有用。同時注意在使用“sleep”時要處理好與WDT、中斷的關(guān)系。
圖1 提高工作頻率的方法
例1(用Mplab-C編寫) 例2(用Masm編寫) Delay() Delay { ;此行可加開關(guān)中斷指令 /*此行可加開關(guān)中斷指令*/ movlw.10 for (i=0; i
INTCON中的各中斷允許位對中斷狀態(tài)位并無影響。當(dāng)PORT B配置成輸入方式時,RB引腳輸入在每個讀操作周期被抽樣并與舊的鎖存值比較,一旦不同就產(chǎn)生一個高電平,置RBIF=1。在開RB中斷前,也許RBIF已置“1”,所以在開RB中斷時應(yīng)先清RBIF位,以免受RBIF原值的影響,同時在中斷處理完成后最好是清RBIF位。
3 用Mplab-C高級語言寫PIC單片機程序時要注意的問題
3.1 程序中嵌入?yún)R編指令時注意書寫格式 見例3。
例3
…… …… while(1) {#asm while(1) { …… #asm /*應(yīng)另起一行*/ #endasm …… }/*不能正確編譯*/ #endasm …… }/*編譯通過*/ …… 當(dāng)內(nèi)嵌匯編指令時,從“#asm”到“endasm”每條指令都必須各占一行,否則編譯時會出錯。
3.2 加法、乘法的最安全的表示方法 見例4。
例4
#include #include unsigned int a, b; unsigned long c; void main() { a=200; b=2; c=a*b; } /*得不到正確的結(jié)果c=400*/ 原因是Mplab-C以8×8乘法方式來編譯c=a*b,返回單字節(jié)結(jié)果給c,結(jié)果的溢出被忽略。改上例中的“c=a*b;”表達式為“c=a;c=c*b;”,最為安全(對加法的處理同上)。
3.3 了解乘除法函數(shù)對寄存器的占用
由于PIC片內(nèi)RAM僅幾十個字節(jié),空間特別寶貴,而Mplab-C編譯器對RAM地址具有不釋放性,即一個變量使用的地址不能再分配給其它變量。如RAM空間不能滿足太多變量的要求,一些變量只能由用戶強制分配相同的RAM空間交替使用。而Mplab-C中的乘除法函數(shù)需借用RAM空間來存放中間結(jié)果,所以如果乘除法函數(shù)占用的RAM與用戶變量的地址重疊時,就會導(dǎo)致出現(xiàn)不可預(yù)測的結(jié)果。如果C程序中用到乘除法運算,最好先通過程序機器碼的反匯編代碼(包含在生成的LST文件中)查看乘除法占用地址是否與其它變量地址有沖突,以免程序跑飛。Mplab-C手冊并沒有給出其乘除法函數(shù)對具體RAM地址的占用情況。例5是乘法函數(shù)對0×13、0×14、0×19、0×1A地址占用情況。
例5
部分反匯編代碼 #include 01A7 081F MOVF 1F,W #include 01A8 0093 MOVWF 13 ;借用 unsigned long Value @0x1 01A9 0820 MOVF 20,W char Xm @0x2d; 01AA 0094 MOVWF 14 ;借用 void main() 01AB 082D MOVF 2D,W {Value=20; 01AC 0099 MOVWF 19 ;借用 Xm=40; 01AD 019A CLRF1A ;借用 Value=Value*Xm 01AE 235F CALL 035Fh ;調(diào)用乘法函數(shù) …… 01AF 1283 BCF 03,5 } 01B0 009F MOVWF 1F ;返回結(jié)果低字節(jié) 01B1 0804 MOVF 04,W 01B2 00A0 MOVWF 20 ;返回結(jié)果高字節(jié) 4 對芯片重復(fù)編程
對無硬件仿真器的用戶,總是選用帶EPROM的芯片來調(diào)試程序。每更改一次程序,都是將原來的內(nèi)容先擦除,再編程,其過程浪費了相當(dāng)多的時間,又縮短了芯片的使用壽命。如果后一次編程的結(jié)果較前一次,僅是對應(yīng)的機器碼字節(jié)的相同位由“1”變成“0”,就可在前一次編程芯片上再次寫入數(shù)據(jù),而不必擦除原片內(nèi)容。
在程序的調(diào)試過程中,經(jīng)常遇到常數(shù)的調(diào)整,如常數(shù)的改變能保證對應(yīng)位由“1”變“0”,都可在原片內(nèi)容的基礎(chǔ)繼續(xù)編程。另外,由于指令“NOP”對應(yīng)的機器碼為“00”,調(diào)試過程中指令的刪除,先用“NOP”指令替代,編譯后也可在原片內(nèi)容上繼續(xù)編程。
另外,在對帶EPROM的芯片編程時,特別注意程序保密狀態(tài)位。廠家對新一代帶EPROM芯片的保密狀態(tài)位已由原來的EPROM可擦型改為了熔絲型,一旦程序代碼保密熔絲編程為“0”,可重復(fù)編程的 EPROM 芯片就無法再次編程了。使用時應(yīng)注意這點,以免造成不必要的浪費(Microchip 資料并未對此做出說明)。
參考文獻
篇3
【關(guān)鍵詞】溫度測量;PIC16F877;DS18B20;仿真測試
在日常生活經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的測溫元件有熱電偶和熱電阻,而熱電偶和熱電阻測出的一般是電壓,在轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的硬件支持,硬件電路很復(fù)雜,軟件調(diào)試也復(fù)雜,制作成本高。而且測出來的溫度精度也沒有技術(shù)成熟的溫度傳感器高。
本文基于PIC單片機來設(shè)計數(shù)字式測溫計,直接采用數(shù)字式溫度傳感器DS18B20,用單片機對18B20進行控制,來進行測溫[1]。顯示部分可用lcd1602,單片機可直接驅(qū)動lcd1602顯示溫度,硬件較簡單,穩(wěn)定。DS18B20采用單總線技術(shù),容易擴展,并且具有轉(zhuǎn)換速度快,轉(zhuǎn)換精度高,可由片機直接讀出溫度并顯示出來等優(yōu)點。
一、設(shè)計目標(biāo)和思路
本文采用PIC16F877的USART異步通信模式,可廣泛應(yīng)用于單片機與PC機,以及單片機與單片機之間的通信。USART接口由RC6、RC7這兩只引腳構(gòu)成。RC6用于數(shù)據(jù)的發(fā)送,RC7用于接收數(shù)據(jù)[2]。
當(dāng)單片機需要通過USART發(fā)送數(shù)據(jù)時,只需將所發(fā)送數(shù)據(jù)送入數(shù)據(jù)緩沖寄存器TXERG,然后系統(tǒng)會自動將TXREG寄存器內(nèi)容送入發(fā)送移位寄存器TSR,接著系統(tǒng)會根據(jù)所設(shè)置的波特率脈沖信號,通過RC6引腳從高位到低位依次發(fā)送出去。當(dāng)系統(tǒng)將TXERG寄存器內(nèi)容加載到TSR中時,會自動將中斷發(fā)送標(biāo)志位TXIF置位,根據(jù)程序決定是否進入中斷。而當(dāng)單片機需要通過USART接受數(shù)據(jù)時,通過RC7引腳將數(shù)據(jù)依次送入接收移位寄存器RSR中,當(dāng)收到一個停止位時,移位寄存器RSR就把收到的8位數(shù)據(jù)自動送入接收數(shù)據(jù)緩沖器RCREG中。在接收數(shù)據(jù)緩沖器RCREG收到一個穩(wěn)定的數(shù)據(jù)后,接收中斷標(biāo)志位RCIF將自動置位,根據(jù)程序決定是否進入中斷。
二、原理結(jié)構(gòu)圖
本文利用PIC16F877和DS18B20傳感器設(shè)計了測溫計,其包含主控器部分、溫度顯示部分、傳感測試部分和按鍵設(shè)計部分[3]。
基于PIC16F877的測溫計原理電路圖結(jié)構(gòu)如圖1所示。
其中,電源部分的S1為復(fù)位按鈕它在被按得時候斷開放開后自動閉合,在其斷開又閉合的瞬間使整套電路中各芯片的供電電壓實現(xiàn)從5V降到0V再升到5V的過程,從而達到復(fù)位的目的。輸入電容C2一般情況不接,但當(dāng)集成穩(wěn)壓器遠離整流、濾波電路時應(yīng)接入一個0.33μf的電容器,它的作用是改善紋波和抑制輸入的瞬時過電壓,保證78L05的輸入與輸出間的電壓差不會超過允許值。輸出電容C3一般不采用大容量的電解電容器,只要接入0.1μf的電容器便可以改善負載的瞬態(tài)響應(yīng)。但是,為了減小輸出的紋波電壓,在輸出端并聯(lián)一只大容量的電解電容C4,會取得更好的效果。然而,這樣將隨之產(chǎn)生一種弊端:一旦78L05的輸入端出現(xiàn)短路時,輸出端上的大電容器上儲存的電荷將通過集成穩(wěn)壓器內(nèi)部電路調(diào)整管的發(fā)射極與基極泄放,因大容量電容器釋放能量較大,會造成集成穩(wěn)壓器內(nèi)部調(diào)整管的損壞,導(dǎo)致電路無法工作。為了防止這一點,在78L05的輸入端與輸出端之間跨接一個二極管,它為C4上電荷的泄放提供了一個分流通路,對集成穩(wěn)壓器起保護作用。
串口接收溫度函數(shù)流程圖如圖2所示。
三、Protues仿真調(diào)試
為調(diào)試和檢驗上述的電路原理圖的正確性和合理性,本文通過Protues軟件仿真來進行波形調(diào)試。
在仿真調(diào)試的過程中,先后對DS18B20測溫模塊、lcd1602顯示模塊、PIC單片機的USART模塊通信等,分別進行了仿真測試。待各部分均測試正確無誤后,方才對整體電路進行測試。圖3所示即為本文對溫度測量部分進行仿真調(diào)試和測試。
從Protues的仿真結(jié)果來看,本文設(shè)計的數(shù)字溫度測量電路,以PIC16F877單片機為工作處理器的核心,外接DS18B20和LCD1602,用單片機處理數(shù)字信號,再把其送入顯示器顯示。在經(jīng)過反復(fù)的仿真調(diào)試和測試后,驗證其使用起來比較方便且結(jié)果簡單易讀。與此同時,如果在本文涉及的基礎(chǔ)上在擴展其功能,如多點測溫、溫度報警等,則只需調(diào)整PIC單片機程序即可。這樣的話,本文設(shè)計的測溫系統(tǒng),在具有電路簡單、維護方便等優(yōu)點的同時,還具有擴展兼容性好、讀數(shù)準(zhǔn)確易懂等特點,能夠滿足日常生活對測溫計的一般基本要求。
參考文獻
[1]劉君華.傳感器技術(shù)及應(yīng)用實例[M].電子工業(yè)出版社, 2008.
[2]彭樹生,莊志洪,趙惠昌.《PIC單片機原理及應(yīng)用》P224-226[M].機械出版社,2001,1.
[3]李榮正.PIC單片機原理及應(yīng)用[M].北京航空航天大學(xué)出版社,2005.
作者簡介:
篇4
實驗操作是理論聯(lián)系實際的重要環(huán)節(jié),實驗報告必須在科學(xué)實驗的基礎(chǔ)上進行,實驗報告的撰寫是知識系統(tǒng)化的吸收和升華的過程,實驗報告應(yīng)該體現(xiàn)完整性、規(guī)范性、正確性、有效性?,F(xiàn)將撰寫實驗報告的有關(guān)內(nèi)容說明如下:
1.實驗名稱
2.實驗?zāi)康?/p>
本次實驗所涉及并要求掌握的知識點。
3.實驗內(nèi)容與實驗步驟
實驗內(nèi)容、原理、原理圖分析及具體實驗步驟。
4.實驗環(huán)境
實驗所使用的器件、儀器設(shè)備名稱及規(guī)格。
5.設(shè)計實驗數(shù)據(jù)表格
6.實驗過程與分析
詳細記錄在實驗過程中發(fā)生的故障和問題,并進行故障分析,說明故障排除的過程及方法。
根據(jù)具體實驗,記錄、整理相應(yīng)數(shù)據(jù)表格、繪制曲線、波形圖等,并進行誤差分析。
7.實驗結(jié)果總結(jié)
對實驗結(jié)果進行分析,完成思考題目,總結(jié)實驗的心得體會,并提出實驗的改進意見。
注:1.前5項必須在做實驗之前完成,并由指導(dǎo)教師簽字后才能做實驗。
2.對于學(xué)生自擬實驗題目、參與科研、創(chuàng)新實驗等形式實驗項目的實驗報告可采用論文、實驗總結(jié)報告等形式完成。
3.此封皮標(biāo)準(zhǔn)頁面為16K,實驗報告:實驗名稱:
熟悉PIC系列單片機的開發(fā)環(huán)境及簡單編程
實驗?zāi)康模?/p>
1. 通過順序結(jié)構(gòu)的簡單程序設(shè)計,熟悉PIC系列單片機的開發(fā)環(huán)境,掌握基本應(yīng)用步驟和命令;
2. 熟悉匯編語言指令,掌握基本的程序設(shè)計方法。
實驗環(huán)境:
PC計算機 MAPLAB編譯環(huán)境
實驗原理 :
實驗一:交換兩個寄存器內(nèi)容(例如交換f10H和f11H的內(nèi)容) 實驗過程比較簡單,無分支程序,而且思路十分清晰,難度不大。
實驗二:(選作)將某一寄存器內(nèi)容中的奇偶位數(shù)據(jù)交換。
本實驗的思想是:將寄存器中數(shù)據(jù)同10101010二進制數(shù)相與,得到原數(shù)據(jù)的奇數(shù)位,并向右移一位后存至一個寄存器,作為結(jié)果數(shù)據(jù)的偶位數(shù);再將寄存器中數(shù)據(jù)同01010101二進制數(shù)相與,得到原數(shù)據(jù)的偶數(shù)位,并向左移一位后存至另外一個寄存器,作為結(jié)果數(shù)據(jù)的奇位數(shù)。最后,將這兩個寄存器中的數(shù)字進行或運算,得到結(jié)果。
實驗中,使用了RO作為記錄原數(shù)奇位數(shù)的寄存器,RE作為記錄原數(shù)偶位數(shù)的寄存器,RN作為記錄員數(shù)據(jù)的寄存器,RR作為記錄結(jié)果的寄存器。
實驗程序:
實驗一:
LIST P=16C54
RA EQU 10
RB EQU 11
RT EQU 12
ORG 1FFH
GOTO MAIN
ORG 0
MAIN NOP
MOVLW 0
MOVWF RT
MOVLW 15H
MOVWF RA
MOVLW 3AH
MOVWF RB
MOVF RA,0
MOVWF RT
MOVF RB,0
MOVWF RA
MOVF RT,0
MOVWF RB
END
實驗二:(選作)
LIST P=16C54
RO EQU 10
RE EQU 11
RN EQU 13
STATU EQU 3
CARRY EQU 0
RR EQU 12
ORG 1FFH
GOTO MAIN
ORG 0
MAIN NOP
MOVLW 99H
MOVWF RN; GIVE VALUE
ANDLW B'10101010'
MOVWF RE
BCF STATU, CARRY
RRF RE; ODD->EVEN
MOVF RN,0
ANDLW &nbs p; B'01010101'
BCF STATU, CARRY
MOVWF RO
RLF RO; EVEN->ODD
MOVF RO,0
IORWF RE,0; ADD THE TWO PARTS OF THE NUMBER BY OR THEM
MOVWF RR
END
調(diào)試結(jié)果:
實驗一結(jié)果:
1、賦值后
2、調(diào)換中
3、調(diào)換后
實驗二結(jié)果:
1、賦值后
2、取奇數(shù)位的數(shù)值存入RE
3、將奇數(shù)位的數(shù)值右移一位
5、取偶數(shù)位的數(shù)值存入RO
6、將偶數(shù)位的數(shù)值左移一位
7、得到最后結(jié)果
實驗分析與實驗體會:
本實驗通過順序結(jié)構(gòu)的簡單程序設(shè)計,我基本掌握了PIC系列單片機的開發(fā)步驟和命令,熟悉了PIC系列單片機的開發(fā)環(huán)境MAPLAB,并在具體變成過程中,熟悉匯編語言指令,掌握基本的程序設(shè)計方法。
雖然本實驗是基本練習(xí),目的是為了熟悉實驗環(huán)境,但是,在實驗中還是學(xué)到了很多東西:
篇5
關(guān)鍵詞:單片機;溫度監(jiān)測;自動撥號;語音報警
中圖分類號:TP2文獻標(biāo)識碼:A文章編號:1672-3198(2009)06-0272-02
1系統(tǒng)硬件電路的設(shè)計
1.1系統(tǒng)的功能框圖
系統(tǒng)的主要組成部分包括:溫度傳感器DS18B20、PIC16F877單片機、可編程鍵盤/顯示器接口芯片8279、OCM4X8C液晶顯示器、MODEM、ISD2560語音芯片和信號音檢測模塊CR6230,系統(tǒng)的功能框圖如圖1所示。
系統(tǒng)選用美國Microchip公司生產(chǎn)的價格低廉、性能優(yōu)良的PIC16F877單片機作為控制主體,充分利用其提供的軟硬件資源,可使控制系統(tǒng)硬件電路設(shè)計相對簡潔,提高系統(tǒng)的可靠性。但由于系統(tǒng)中的各種功能模塊較多,每個模塊都需要單片機給出一定數(shù)量的控制線、數(shù)據(jù)線等來完成相應(yīng)的功能,而單片機的I/O資源有限,所以必須進行I/O擴展。這里是通過由單片機的3個I/O引腳(RC1-RC3)控制譯碼器74LS138從而給出8個選通信號,分別選通幾個74LS373和74LS245來實現(xiàn)對各模塊的控制與通信的。
此外,需要給單片機設(shè)計復(fù)位電路,這里采用RC復(fù)位電路,頻率約為4MHz。
1.2多路溫度采集
針對測量環(huán)境、精度和系統(tǒng)主機對監(jiān)測點傳輸距離的不同要求,以及考慮元件的成本,選擇美國DALLAS半導(dǎo)體公司最新推出的一種數(shù)字化單總線器件DS18B20。在硬件上,DS18B20與單片機的連接有兩種方法。一種是將DS18B20的UDD接外部電源,GND接地,其I/O與單片機的I/O線相連;另一種是用寄生電源供電,此時DS18B20的UDD、GND接地,其I/O接單片機I/O。無論是內(nèi)部寄生電源還是外部供電,DS18B20的I/O口線要接5K見左右的上拉電阻。DS18B20有六條控制命令,如表1所示。
CPUCPU對DS18B20的訪問流程是:先對DS18B20初始化,再進行ROM操作命令,最后才能對存儲器操作和對數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時序和通信協(xié)議。
1.3信息顯示
采用OCM4X8C液晶顯示模塊作為輸出顯示??娠@示漢字及圖形,采用單片機8位并行連接方式,通過給定命令和顯示數(shù)據(jù)完成不同界面的顯示。當(dāng)單片機通過譯碼器對連接液晶顯示模塊的雙向鎖存器74LS245使能,并且相關(guān)引腳通過單片機傳送適當(dāng)?shù)碾娖綍r,給出一定的指令字。實現(xiàn)顯示的過程是:在傳送命令的狀態(tài)下先選擇指令集清屏,然后指定在資料寫入或讀取時游標(biāo)的移動方向及顯示的移位,開顯示,設(shè)定顯示地址,然后進入傳送數(shù)據(jù)的狀態(tài),根據(jù)要顯示的內(nèi)容從中文字庫中找出相應(yīng)的16進制代碼并將其依次傳給液晶顯示器(此時要注意每行顯示的字?jǐn)?shù)限制),之后單片機就可以對液晶顯示模塊進行讀寫操作。
1.4撥號設(shè)計
采用外置MODEM來實現(xiàn)撥號功能,單片機與MODEM之間采用串行通信,連接方式見圖2。將電話線接入MODEM后,單片機按照RS232通信標(biāo)準(zhǔn)與MODEM相連,這里是通過MAX232芯片來實現(xiàn)TTL電平與RS232電平的轉(zhuǎn)換,按照MODEM的工作波特率(9600bps)設(shè)置后,單片機串口發(fā)出相應(yīng)AT命令可實現(xiàn)對MODEM的控制,同時MO-DEM在執(zhí)行該命令后會返回一定的信息。返回信息對于判斷MODEM是否正常工作以及電話是否撥通和被接聽都有重要的作用。
選用4選1模擬開關(guān)4052芯片完成單片機與MODEM串行通信外和傳感器模塊的MAX485串行通信的控制。當(dāng)單片機端口C的RC3=1、RC2=0、RC1=1時,譯碼器74LS138的譯碼線Y5有效,使得74LS373有效,因而來自單片機的RD4位鎖存至4052的INH端,此時RD4的低電平來控制4052的選通。因4051的INH端通過反相器連接4052的INH端,所以不被同時選中。
為了實現(xiàn)MODEM與單片機的實時通信,將系統(tǒng)板上用于連接MODEM的D型插口的RST與CTS互聯(lián),DTR與DSR互聯(lián)。
1.5語音控制模塊
該部分主要是通過單片機控制語音芯片ISD2560來實現(xiàn)多段語音存儲和播放。通過給定相應(yīng)段地址和控制信號(錄放音P/R和使能控制CE),ISD2560及其電路即可實現(xiàn)對多段語音的存儲和播放。由于語音的存儲有600個地址,所以要用A0-A9共十位進行表示,對ISD2560輸入地址,首先單片機的端口D通過74LS373輸入A0-A7八位地址,然后再單獨輸入A8、A9兩個高位地址。錄音和放音是單片機通過RD7控制錄放音引腳P/R實現(xiàn)的。
1.6信號音檢測模塊
信號音檢測模塊CR6230用于實現(xiàn)準(zhǔn)確識別各種電話信號音,包括撥號音、回鈴音、忙音和催掛音等功能。即:若得出某種結(jié)果后,相應(yīng)的信號引腳則輸出有效TTL電平。
接聽的判斷過程是單片機控制MODEM撥號后,識別回鈴音信號是否有效,若無效則重撥或改撥號碼;回鈴音信號有效則等待,若其變?yōu)闊o效則判斷此時對方是否接聽,此后還要根據(jù)MODEM的返回值來進一步確定是否真被接聽。信號的識別需要一定的周期才可以保證可靠性和準(zhǔn)確率,所以在檢測到信號音后要延時大約1s的時間,以保證準(zhǔn)確的識別結(jié)果;同理,當(dāng)信號消失后也應(yīng)略有延時再清除。硬件設(shè)計是將電話線路經(jīng)通信變壓器CRE變換隔離后接入到CR6230的信號輸入端IN引腳。通信變壓器CRE3用于電話終端產(chǎn)品和中繼線產(chǎn)品的線路接口部分,技術(shù)指標(biāo)符合郵電部入網(wǎng)標(biāo)準(zhǔn)。將CR6230的BS、RS、PS、SS引腳分別通過鎖存器74LS373與單片機的D3~D0連接,單片機通過讀取端口D的低四位就能獲得CR6230返回的當(dāng)前信號狀態(tài)。另外,若單片機通過控制譯碼器的Y2引腳將CR6230的CS引腳設(shè)置為接收低電平時,BS、RS、PS、SS引腳也將被設(shè)置為低電平,這樣,其上的信號被清除以等待接收新的信號。
2系統(tǒng)的軟件設(shè)計流程圖
系統(tǒng)軟件設(shè)計的難點在于對DS18B20的控制(如圖3)。
3結(jié)語
設(shè)計以PIC單片機系統(tǒng)為核心,由單片機、溫度傳感器、RS-485串口通信和計算機組成,利用了DS18B20“一線總線”數(shù)字化溫度傳感器,能夠?qū)Χ帱c的溫度進行實時巡檢。各檢測單元(從機)能獨立完成各自功能,同時能夠根據(jù)主控機的指令對溫度進行定時采集,測量結(jié)果不僅能在本地顯示,而且可以利用單片機串行口,通過RS-485總線及通信協(xié)議將采集的數(shù)據(jù)傳送到主控機,進行進一步的存檔、處理。主控機負責(zé)控制指令的發(fā)送,控制各個從機進行溫度采集,收集測量數(shù)據(jù),并對測量結(jié)果(包括歷史數(shù)據(jù))進行整理、顯示和存儲。主控機與各從機之間能夠相互聯(lián)系、相互協(xié)調(diào)。本系統(tǒng)運行穩(wěn)定、工作精度高,經(jīng)測試,在-10℃~+70℃間測得誤差為0.25℃,80℃到105℃時誤差為0.5℃,當(dāng)T>105℃誤差增大到1℃左右。實踐證明,該控制系統(tǒng)操作方便,維修簡單,運行穩(wěn)定、可靠。
參考文獻
[1]王志鵬.可編程邏輯器原理與程序設(shè)計[M].北京:北京航天航空出版社,2005.
[2]劉啟中,李容正,王力生,等.PIC單片機原理及應(yīng)用[M].北京:北京航天航空出版社,2003.
[3]李雪梅.簡單實用的有線報警系統(tǒng)[J].微型計算機信息測控自動化,2005,(7):144-145.
[4]文哲雄,羅中良.單總線多點分布式溫度監(jiān)控系統(tǒng)的設(shè)計[J].微型計算機信息測控自動化,2005,(6):63-65.
篇6
【關(guān)鍵詞】單片機;PIC16F877A;A/D轉(zhuǎn)換;Proteus
隨著科技進步,機械自動化水平不斷提高。當(dāng)前人力資源匱乏,企業(yè)被要求改善工作環(huán)境的背景下,對傳統(tǒng)機械進行自動化改造勢在必行。本文的研究解決的問題就是為了減輕傳統(tǒng)粉粒物料運輸車在卸料過程中對人工操作的過分依賴。同時實現(xiàn)自動卸料后可以減輕粉塵對操作工身體的傷害。
PIC單片機具有較強的驅(qū)動電流,處理數(shù)據(jù)速度較快。內(nèi)部整合了多個模塊,可以降低電路的開發(fā)難度。
1 電路設(shè)計與驅(qū)動器模型
根據(jù)卸料的步驟,在Proteus里設(shè)計完成相應(yīng)動作的硬件電路。為減小電磁驅(qū)動器對PIC單片機干擾,這里采用光電耦合元件PC827進行強弱信號隔離。利用小信號放大管BC184與中功率放大管TIP31、TIP32構(gòu)成H橋直流電磁驅(qū)動電路[1],如圖1。
柳州運力雙倉粉粒物料運輸車的卸料流程圖[2]為:
上圖通過控制信號端口M3與M4,其組合有以下三種[3]:
(1)M3:M4=01時的工作原理為:
M3端口為低電平時Q13、Q10截止,Q15、Q9導(dǎo)通,電磁驅(qū)動器左端為高電平。M4端口為高電平時Q11、Q16截止,Q12、Q14導(dǎo)通,電磁驅(qū)動器右端為低電平。此時電磁驅(qū)動器推動閥門開啟。
(2)M3:M4=10時電磁驅(qū)動器拉動閥門關(guān)閉。
(3)M3:M4=00或者11時電磁驅(qū)動器停止工作。
電磁驅(qū)動器利用線圈導(dǎo)電產(chǎn)生電磁力推動動鐵芯進行閥門的開關(guān),電磁驅(qū)動器模型[4]如圖3。
根據(jù)圖2控制流程圖,通過Proteus設(shè)計的系統(tǒng)控制電路。圖中將AN2作為A/D輸入端口,共陽極LED屏顯示實時罐體的氣壓值,PIC單片機通過光電耦合元件PC827與驅(qū)動電路隔離。卸料系統(tǒng)電路如圖4。
2 PIC單片機C語言程序設(shè)計
當(dāng)前設(shè)置輸入PIC單片機A/D端口的模擬電壓為0~5V,罐體內(nèi)最大氣壓為0.2MPa。在MPLAB平臺上利用HI-TECH PICC編寫C語言程序[4]。
利用C語言10個常用的函數(shù),可以編寫出大部分復(fù)雜PIC單片機控制程序,使控制程序可讀性較強,移植性較好,并且縮短了系統(tǒng)的開發(fā)時間。
將以上完整程序進行編譯燒寫入單片機內(nèi),在Proteus虛擬環(huán)境中可以模擬卸料的基本動作。由于實際中使用的是電磁驅(qū)動器,因其結(jié)構(gòu)簡單須利用機械結(jié)構(gòu)對驅(qū)動器進行限位,從而到達預(yù)期的閥門開度。
3 控制系統(tǒng)的改進
以上控制電路只是實現(xiàn)了閥門開關(guān)的基本動作。從實際應(yīng)用角度來看,需要添加一些附加功能,才能投入實際應(yīng)用中。在本系統(tǒng)是一個可擴展控制的電路,在RD的I/O口有多余的引腳,因此對于三倉的粉粒物料運輸車,僅僅需要在RD引腳增加2對控制端口。對于不同卸料高度,對管道內(nèi)二相流體流動性有不同的影響。因此可以根據(jù)流體出口的密度,利用PIC單片機控制助風(fēng)閥的開度,對管道內(nèi)二相流體流動性進行控制,提高卸料的效率,同時便于粉粒物料運輸車的卸料系統(tǒng)能夠?qū)崿F(xiàn)智能化。
4 結(jié)論
PIC單片機高速度、低電壓、低功耗、大電流,減少硬件電路設(shè)計的復(fù)雜性。圖4所示為卸料系統(tǒng)的基本硬件電路,利用PIC單片機可以很好的對電路進行簡化,增強電路的可控性。
利用C語言進行單片機編程,可以降低系統(tǒng)的開發(fā)難度。開發(fā)者不必過多的了解單片機的內(nèi)部結(jié)構(gòu),只需要了解某些外設(shè)特殊寄存器相關(guān)位的設(shè)置。而且C語言比匯編語言可讀性較強,能夠更好地發(fā)現(xiàn)編程的邏輯錯誤。在MPLAB平臺上利用HI-TECH PICC編譯器,可以對所編寫程序進行自動優(yōu)化,使程序轉(zhuǎn)換成二進制時更加的精煉,減少占用內(nèi)部存儲空間。同時PICC編譯器可以實現(xiàn)自動分頁,編程者不用過多考慮PIC單片機分頁問題。對具有基本C語言能力的編程者,也能較快編寫所需的控制程序。利用PIC單片機與C語言結(jié)合進行控制電路設(shè)計,將極大提高產(chǎn)品設(shè)計、研發(fā)的效率。
【參考文獻】
[1]韓軍,周鏡平.基于PIC單片機的直流電機控制器研究[J].制造業(yè)自動化,2011,1(33):147-149.
[2]劉麗,蔣存波,王聰.粉狀物料運輸車智能卸料控制器的設(shè)計[J].科學(xué)技術(shù)與工程,2008,8(23):6372-6374.
篇7
關(guān)鍵詞:PIC;TCP/IP;嵌入式; 以太網(wǎng)
中圖分類號:TP393文獻標(biāo)識碼:A文章編號:1009-3044(2007)12-21589-01
One Kind Embedded Ethernet Based on the PIC Monolithic Integrated Circuit to Turn on the System
LI Zhong-lin,YUN Gui-quan
(Computer Engineering Department,Sichuan College of Vocational and Information Technology,Guangyuan 628017,China)
Abstract:This article constructs the system is Embedded System by the PIC16F877 monolithic integrated circuit achievement the central processing element,and Realizes the TCP/IP agreement stack through the hardware integrated circuit S-7600A agreement stack chip, Because the ethernet already became one kind widely to turn on Internet the way, May turn on through the RTL8019A ethernet control chip this system the ethernet, Then turns on Internet through the ethernet, thus may realize Embedded system regarding this the long-distance access and the control.
Key words:PIC;TCP/IP;Embedded;Ethernet
1 引言
目前大多數(shù)嵌入式系統(tǒng)是以微控制單元(MCU),與一些監(jiān)測、伺服、指示設(shè)備配合實現(xiàn)一定的功能。在一些工業(yè)中,有時要求實現(xiàn)多個嵌入式系統(tǒng)之間的信息通信??梢杂么锌偩€RS-232、工業(yè)控制總線CAN等總線將多個嵌入式系統(tǒng)連接起來形成一個網(wǎng)絡(luò),但這種網(wǎng)絡(luò)的通信范圍比較小,并且一般是孤立于Internet以外的。Internet現(xiàn)已成為社會重要的基礎(chǔ)信息設(shè)施之一,是信息流通的重要渠道,如果嵌入式系統(tǒng)能夠連接到Internet上面,則可以方便、低廉地將信息傳送到幾乎世界上的任何一個地方。
將嵌入式系統(tǒng)與Internet結(jié)合起來的想法其實很早以前就有了,主要的困難在于,Internet上面的各種通信協(xié)議對于計算機存儲器、運算速度等的要求比較高,而嵌入式系統(tǒng)中除部分32位處理器以外,大量存在的是8位和16位MCU,支持TCP/IP等Internet協(xié)議將占用大量系統(tǒng)資源,或根本不可能。
本文將以專用硬件實現(xiàn)TCP/IP協(xié)議,并以8位PIC單片機做了中央處理器構(gòu)建一個能實現(xiàn)Internet訪問的嵌入式系統(tǒng)。
2 系統(tǒng)硬件
系統(tǒng)框圖
如以上系統(tǒng)框圖所示,主要的硬件包括:PIC16F877,S-7600A,RTL8019A,62256等。下面介紹一下主要部件所完成的功能及在系統(tǒng)中的作用。
(1)PIC16F877
它主要完成系統(tǒng)的數(shù)據(jù)處理功能。要完成從S-7600A來的PPP包的處理使之轉(zhuǎn)換IP包。還要完成對用戶接口來的數(shù)據(jù)的讀取,處理,以及整個系統(tǒng)的協(xié)調(diào)。
(2)S-7600A
它是大規(guī)模集成電路工藝的TCP/IP協(xié)議棧芯片,支持:TCP/IP(Ver 4),UDP,PPP協(xié)議。對從PIC來的數(shù)據(jù)封裝過程如下:
其它部件RTL8019A作為網(wǎng)絡(luò)控制芯片,起網(wǎng)絡(luò)適配功能。62256為32K的SRAM,作為系統(tǒng)的數(shù)據(jù)存儲器。
3 系統(tǒng)的工作流程
4 結(jié)束語
該系統(tǒng)具有體積小,成本低,功耗低等特點。并且采用系統(tǒng)直接接入網(wǎng)絡(luò)的方式,即每個系統(tǒng)都有自己的IP地址。因此不用再配網(wǎng)關(guān)。
參考文獻:
[1]駱麗.嵌入式系統(tǒng)設(shè)計.北京航空航天大學(xué)出版社,2004.
[2]袁勤勇,黃紹金,唐青.嵌入式系統(tǒng)構(gòu)件(原書第2版).機械工業(yè)出版社,2002.
篇8
0 引言
PIC18F__8單片機是美國微芯公司推出的16位RISC指令集的高級產(chǎn)品,由于芯片內(nèi)含有A/D、內(nèi)部E2PROM存儲器、I2C和SPI接口、CAN接口、同步/異步串行通信(USART)接口等強大的功能,具有很好的應(yīng)用前景。但是,目前介紹其應(yīng)用和以C語言編程的中文參考資料很少。本文將探討該型單片機異步串行通信的編程應(yīng)用,程序用HI-TECH PICC-18 C語言編寫,并在重慶大學(xué)-美國微芯公司PIC單片機實驗室的PIC18F458實驗板上通過。
1 PIC18FXX8單片機同步/異步收發(fā)器(USART)
通用同步/異步收發(fā)器(USART)模塊是由PIC18FXX8內(nèi)的三個串行I/O模塊組成的器件之一(USART也叫串行通信接口即SCI),可以配置為全雙工異步方式、半雙工同步主控方式、半雙工同步從動方式三種工作方式。
TXSTA是PIC18FXX8單片機串行通信發(fā)送狀態(tài)和控制寄存器,RCSTA是接收狀態(tài)和控制寄存器。由于在實際工程中,異步方式用得最多,這里僅介紹異步工作方式,其它方式可參閱相關(guān)資料。
1.1 USART 異步工作方式
在異步工作方式下,串行通信接口USART采用標(biāo)準(zhǔn)的不歸零(NRZ)格式(1位起始位、8位或9位數(shù)據(jù)位和一位停止位),最常用的數(shù)據(jù)位是8位。片內(nèi)提供的8位波特率發(fā)生器BRG可用來自振蕩器時鐘信號產(chǎn)生標(biāo)準(zhǔn)的波特率頻率。通過對SYNC位(在TXSTA寄存器中)清零,可選擇USART異步工作方式。
1.2 USART波特率發(fā)生器(BRG)
USART帶有一個8位的波特率發(fā)生器(BRG),這個BRG支持USRAT的同步方式和異步方式。用SPBRG寄存器控制一個獨立的8位定時器的周期。在異步方式下,BRGH位(控制寄存器TXSTA的)也被用來控制波特率。在同步方式下,用不到BRGH位。表1給出了在主控方式下(內(nèi)部時鐘)不同USART工作方式時的波特率計算式。
表1 主控方式下的波特率計算式
SYNC
BRGH=0(低速)
BRGH=1(高速)
(異步)波特率=FOSC/[64(X+1)]
波特率 = FOSC/[16(X+1)]
1
(同步)波特率=FOSC/[4(X+1)]
無
1.3 USART 異步工作方式配置
下面是串行通信異步工作方式配置步驟(順序可以改變):
(1)配置發(fā)送狀態(tài)和控制寄存器TXSTA;
(2)配置接收狀態(tài)和控制寄存器RCSTA;
(3)配置RX(RC7引腳)、TX(RC6引腳)分別為輸入和輸出方式;
(4)通過設(shè)定的通信波特率配置SPBRG寄存器,計算公式參見表1;
(5)設(shè)置串行通信接收或發(fā)送中斷是否使能;
(6)清串行通信接收或發(fā)送中斷標(biāo)志;
(7)設(shè)置串行通信接收中斷或發(fā)送中斷的優(yōu)先級是高或低優(yōu)先級中斷方式,PIC18單片機默認(rèn)情況下是高優(yōu)先級中斷,若是低優(yōu)先級中斷,則必須進行設(shè)置;
(8)設(shè)置串行通信接收和發(fā)送數(shù)據(jù)是否允許。
若用到了中斷功能,還需設(shè)置總中斷和中斷使能,以開放未屏蔽的中斷。
2 USART接口硬件電路
利用PC機配置的串行口,可以很方便地實現(xiàn)PC機與PIC18單片機的串行數(shù)據(jù)通信。PC機與PIC單片機USART連接最簡單的是三線方式。由于PIC單片機輸入、輸出電平為TTL電平,而RS-232C PC機配置的是RS-232C標(biāo)準(zhǔn)串行接口,二者電氣規(guī)范不一致,因此要完成PC機與微控制器的串行數(shù)據(jù)通信,必須進行電平轉(zhuǎn)換。圖1為PIC18F458單片機的RS-232電平轉(zhuǎn)換電路。圖中MAX232(或MAX202)將PIC18單片機TX輸出的TTL電平信號轉(zhuǎn)換為RS-232C電平,輸入到PC機,并將PC機輸出的RS232C電平信號轉(zhuǎn)換為TTL電平輸出到PIC微控制器的RX引腳。J9和PC機的連接方式見RS-232標(biāo)準(zhǔn),與單片機相接的D型頭(J9)的2腳(PIC接收信號)與接PC機D型頭的3腳(PC機發(fā)送信號)相連,與單片機相接的D型頭(J9)的3腳(PIC發(fā)送信號)與接PC機D型頭的2腳(PC機接收信號)相連,二者的5腳與5腳相連(地相連)。PC機串口數(shù)據(jù)的發(fā)送和接收顯示均可采用各種串口調(diào)試軟件,我們使用的是串口調(diào)試助手V2.2(或V2.1、V2.0均可),在網(wǎng)上可以下載該調(diào)試軟件,該軟件操作簡單,這里不作介紹。
3 USART異步工作方式編程
串行通信的接收有查詢和中斷2種方式,在實際應(yīng)用中,一般不采用查詢接收數(shù)據(jù),常用的是中斷接收數(shù)據(jù)。發(fā)送有中斷發(fā)送和非中斷發(fā)送,在下面的例程中我們采用了中斷接收數(shù)據(jù),發(fā)送數(shù)據(jù)采用中斷方式還是非中斷方式可以在程序中通過對發(fā)送方式標(biāo)志Send_Mode(不為0,中斷方式發(fā)送;=0,非中斷方式發(fā)送)進行設(shè)置實現(xiàn)。
在PIC單片機發(fā)送數(shù)據(jù)時,發(fā)送中斷標(biāo)志TXIF不能用軟件清0,只有當(dāng)新的發(fā)送數(shù)據(jù)送入發(fā)送數(shù)據(jù)寄存器TXREG后,TXIF位才能被硬件復(fù)位,因此在程序中清該標(biāo)志是無效的。采用中斷發(fā)送數(shù)據(jù)的方法是:在主程序中啟動發(fā)送一串?dāng)?shù)據(jù)的第一個數(shù)據(jù),然后利用發(fā)送完成中斷啟動下一個數(shù)據(jù)發(fā)送,當(dāng)一串?dāng)?shù)據(jù)發(fā)送后,不再發(fā)送數(shù)據(jù),但有發(fā)送完成中斷標(biāo)志,程序還要進入一次中斷,這最后一次中斷對數(shù)據(jù)發(fā)送是無用的,必須將該標(biāo)志清0,采用的方法是禁止發(fā)送使能(TXEN=0)而引起發(fā)送被終止或?qū)Πl(fā)送器復(fù)位。
下面是一個用串行通信進行接收和發(fā)送數(shù)據(jù)的例程,程序?qū)崿F(xiàn)功能:PIC18單片機接收到PC機下發(fā)的8個數(shù)據(jù)后,將收到的8個數(shù)據(jù)以中斷或非中斷發(fā)送方式返送回PC機。
#include "pic18.h" /* PIC18系列的頭文件 */
unsigned char receive232[8]; /* 接收數(shù)據(jù)數(shù)組 */
unsigned char send232[8]; /* 發(fā)送數(shù)據(jù)數(shù)組 */
unsigned char receive_count=0; /* 接收數(shù)據(jù)個數(shù)計數(shù) */
unsigned char send_count=0; /* 發(fā)送數(shù)據(jù)個數(shù)計數(shù) */
unsigned char *point
er; /* 發(fā)送數(shù)據(jù)指針 */
unsigned char i; /* 程序中用到的循環(huán)變量 */
unsigned char SciReceiveFlag; /* =1,接收到8個數(shù)據(jù) */
unsigned char Send_Mode=0; /* 不為0,中斷方式發(fā)送;=0,非中斷方式發(fā)送 */void sciinitial() /* 串行通訊初始化子程序 */
{
TXSTA=0x04; /* 選擇異步高速方式傳輸8位數(shù)據(jù) */
RCSTA=0x80; /* 允許串行口工作使能 */
TRISC=TRISC|0X80; /* :將RC7(RX)設(shè)置為輸入方式 */
TRISC=TRISC&0Xbf; /* RC6(TX)設(shè)置為輸出 */
SPBRG=25; /* 4M晶振且波特率為9600時,SPBRG設(shè)置值為25 */
PIR1=0x00; /* 清中斷標(biāo)志 */
PIE1=PIE1|0x20; /* 允許串行通訊接口接收中斷使能 */
RCIP=0; /* 設(shè)置SCI接收中斷為低優(yōu)先級中斷 */
CREN=1; /* 允許串口連續(xù)接收數(shù)據(jù) */
if(0==Send_Mode) TXEN=1; /* Send_Mode=0,非中斷方式發(fā)送,串口發(fā)送數(shù)據(jù)使能 */
else /* Send_Mode=1,中斷方式發(fā)送 */
{
PIE1=PIE1|0x10; /* 允許中斷發(fā)送 */
TXIP=0; /* 發(fā)送低優(yōu)先級中斷 */
}
}
void interrupt low_priority LOW_ISR() /* 低優(yōu)先級中斷子程序 */
{
if(RCIF==1) /* RS232接收中斷 */
{
RCIF=0; /* 清中斷標(biāo)志 */
receive232[receive_count]=RCREG; /* 接收數(shù)據(jù)并存儲 */
send232[receive_count]=RCREG; /* 接收數(shù)據(jù)存放到發(fā)送緩沖數(shù)組 */
receive_count++; /* 接收計數(shù)器加1 */
if(receive_count>7) /* 如果已經(jīng)接收到8個數(shù)據(jù) */
{
receive_count=0; /* 接收計數(shù)器清0 */
SciReceiveFlag=1; /* 置接收到8個數(shù)據(jù)標(biāo)志 */
}
}
else if((0!=Send_Mode)&&(TXIF==1)) /* 中斷發(fā)送數(shù)據(jù)方式且為發(fā)送中斷 */
{
if(send_count>7) /* 已經(jīng)發(fā)送完8個數(shù) */
{
TXEN=0; /* 發(fā)送不使能 */
return;
}
else
{
send_count++; /* 發(fā)送計數(shù)器加1 */
TXREG=*pointer++; /* 發(fā)送當(dāng)前應(yīng)發(fā)送數(shù)據(jù),發(fā)送指針加1 */
}
}
}
main() /* 主程序 */
{
INTCON=0x00; /* 關(guān)總中斷 */
ADCON1=0X07; /* 設(shè)置數(shù)字輸入輸出口,不用作模擬口 */
PIE1=0; /* PIE1 的中斷不使能 */
PIE2=0; /* PIE2 的中斷不使能 */
PIE3=0; /* PIE3 的中斷不使能 */
Send_Mode=1; /* Send_Mode不為0,中斷方式發(fā)送數(shù)據(jù);
Send_Mode =0,非中斷方式發(fā)送數(shù)據(jù) */
sciinitial(); /* 串行通訊初始化子程序 */
IPEN=1; /* 使能中斷高低優(yōu)先級 */
INTCON=INTCON|0xc0; /* 開總中斷、開接口中斷 */
while(1)
{
if(1==SciReceiveFlag) /* 是否接收到8個通信數(shù)據(jù) */
{
SciReceiveFlag=0; /* 清接收到8個通信數(shù)據(jù)標(biāo)志 */
if(0!=Send_Mode) /* Send_Mode不為0,中斷方式發(fā)送 */
{
send_count=0; /* 發(fā)送數(shù)據(jù)計數(shù)清0 */
pointer=&send232[0]; /* 發(fā)送指針指向發(fā)送數(shù)據(jù)數(shù)組首地址 */
TXREG=*pointer++; /* 發(fā)送第一個數(shù)據(jù)后,將發(fā)送指針加1 */
TXEN=1; /* 使能發(fā)送 */
}
else /* Send_Mode =0,非中斷方式發(fā)送數(shù)據(jù) */
{
pointer=&send232[0]; /* 發(fā)送指針指向發(fā)送數(shù)據(jù)數(shù)組首地址 */
for(i=0;i<8;i++)
{
TXREG=*pointer++; /* 發(fā)送數(shù)據(jù)后,將發(fā)送指針加1 */
while(1) /* 等待發(fā)送完成 */
{
if(TXIF==1) break; /* 等待發(fā)送完成 */
}
}
}
}
}
}
篇9
關(guān)鍵詞:弧光接地; 金屬接地;鐵磁諧振
中圖分類號:TM864文獻標(biāo)識碼:A
[WT]文章編號:1672-1098(2011)02-0066-05
收稿日期:2011-03-31
基金項目:合肥學(xué)院科研發(fā)展基金計劃資助項目(08KY008ZR)
作者簡介:龍夏 (1982-),男,湖南湘西自治州人,助教,碩士,主要研究方向為測控技術(shù)。
[JZ(〗[WT3BZ]Design of DSPIC-based Arc-Suppression and Resonance Eliminating Device
LONG Xia, TAN Ming , XIAO Lian-jun
(Department of Computer Science & Technology, Hefei University, Hefei Anhui 230601, Chian)
Abstract:In order to solve easy occurrence of arc in current distribution network, over-voltage of metal grounding, magnetic resonance phenomena and its hazards, control algorithm of arc and harmonic elimination was proposed.
How to use the microcontroller hardware and software design to make accurate judgments of grounding and resonant failure, and make them a certain degree of stability and fault tolerance were presented.
Key words:arc grounding; metal grounding; ferro resonance
在我國3~35 kV供電系統(tǒng)中,大部分為中性點不接地系統(tǒng),這種系統(tǒng)在發(fā)生單相接地時,電網(wǎng)仍可帶故障運行,這就大大降低了運行成本,提高供電系統(tǒng)的可靠性,但這種供電方式在單相接地電流較大時容易產(chǎn)生弧光接地過電壓和相間短路,給供電設(shè)備造成了極大的危害。以前的解決辦法是在中性點加裝消弧線圈補償電容電流來抑制故障點弧光發(fā)生的機率。很顯然,這種方法的目的是為了消除弧光,但由于消弧線圈的自身的諸多特點,很難對電容電流進行有效補償,特別是高頻分量部分對供電設(shè)備造成的危害無法克服[1]。
而當(dāng)電壓互感器的非線性電感與線路對地電容發(fā)生匹配時會引起鐵磁諧振過電壓,會威脅到電力系統(tǒng)的安全運行,損壞電氣設(shè)備,嚴(yán)重時會引起電壓互感器的爆炸,造成變電站母線停電事故,造成嚴(yán)重后果[2]。長期以來,電力系統(tǒng)中消除鐵磁諧振的方法一般是在PT開口三角繞組中并聯(lián)一個電阻來破壞諧振點,復(fù)雜的電力環(huán)境造成諧振點的不唯一,所以這種方法很難做到完全消諧,費時費力。
智能消弧裝置,該裝置在出現(xiàn)弧光接地時,通過一組可以分相控制的真空接觸器,使故障相接地,達到徹底消除弧光的目的[3]。
本設(shè)計采用PIC高性能DSP系列單片機為處理器,實時采集電網(wǎng)三相電壓及PT開口電壓,采用合理的算法,當(dāng)檢測到故障相出現(xiàn)弧光接地時發(fā)出控制信號,使故障相弧光接地迅速轉(zhuǎn)變?yōu)榻饘傩越拥兀鴻z測到鐵磁諧振時驅(qū)動可控硅動作消除由鐵磁諧振引起的過電壓,并配以監(jiān)控界面,便于修改參數(shù),能夠很好地起到消弧消諧的目的,保護電網(wǎng)安全。
1裝置工作原理
當(dāng)電網(wǎng)正常工作時,PT開口三角處零序電壓為零,一旦線路發(fā)生故障,中性點對地絕緣的供電系統(tǒng)會出現(xiàn)零序電壓,將零序電壓作為啟動信號開始計算,然后再根據(jù)發(fā)生故障時每相電壓的情況進行邏輯分析計算,判定接地故障發(fā)生的相別及接地屬性,再根據(jù)判定結(jié)果做出以下處理:
1) 如果發(fā)生間歇性弧光接地,控制器使故障相對應(yīng)的真空接觸器閉合,使系統(tǒng)由不穩(wěn)定的弧光接地瞬間轉(zhuǎn)變?yōu)榉€(wěn)定的金屬接地,故障相電壓降為零,電弧消失。500 ms后斷開真空接觸器,并再次判斷,若故障消失,則說明本地弧光接地為電網(wǎng)電壓沖擊引起的瞬時性接地故障,系統(tǒng)已恢復(fù)。若再次檢測到故障,則認(rèn)定為永久性的接地故障,再次閉合真空接觸器,記錄故障,聲光報警,并向上位機上傳故障記錄,等待工作人員處理。
2) 如果發(fā)生金屬接地故障,則記錄故障,聲光報警,不做任何處理,等待工作人員處理。
3) 如果發(fā)生三相斷線故障,則記錄故障,聲光報警,等待工作人員處理。
4) 如果發(fā)生50 Hz基頻、100 Hz、150 Hz倍頻鐵磁諧振,驅(qū)動可控硅三次瞬間短接PT開口端,破壞諧振條件,消除鐵磁諧振,并記錄故障。諧振頻率的判定可以通過快速FFT判別諧振頻率[4]。
2 硬件設(shè)計
2.1 系統(tǒng)介紹
控制器是系統(tǒng)的核心,其性能的優(yōu)劣直接影響系統(tǒng)的性能。選用DSPIC33FJ128GP206為處理器,電路包括模擬量采樣轉(zhuǎn)換電路、485通信電路、可控硅觸發(fā)電路、真空接觸器觸發(fā)電路、HMI電路及聲光報警等(見圖1)。由4路電壓互感器采樣三相電壓及PT開口電壓,經(jīng)過一定處理變換為單片機AD口能夠處理的0~3V電壓,單片機利用采樣得的4路電壓,輔助以一定的算法,判斷當(dāng)前接入電網(wǎng)是否存在弧光接地、金屬接地、PT斷線以及電磁諧振現(xiàn)象,若存在,在液晶屏上顯示當(dāng)前的故障,存儲故障,并做出相應(yīng)的處理。
圖1 系統(tǒng)框圖
2.2 MCU介紹
在本設(shè)計采用PIC公司的高性能16位數(shù)字信號控制器DSPIC33FJ128GP206,16位寬數(shù)據(jù)總線,24位寬指令,可尋址最大4M 指令字的線性程序存儲空間,可尋址最大64 kB 的線性數(shù)據(jù)存儲空間,具有最多67個中斷源,最多85個IO口,具有SPI、IIC、UART、DCI、增強型CAN、PWM等外部接口,方便使用,同時具有兩個AD通道,可進行順序、同時等各種方式的采樣。在此利用其同時采樣4路電壓信號,并判定是否發(fā)生弧光接地、諧振等故障,同時外擴鍵盤、顯示、通信、報警等功能。
2.3 信號采樣電路
根據(jù)分析需采樣三相交流相電壓電壓UA、UB、UC及PT開口電壓UPT,送入單片機內(nèi)部AD采樣前需經(jīng)過一定的變換,即降壓、交轉(zhuǎn)直。4路交流電先通過電壓互感器降壓,再通過基準(zhǔn)電壓抬升至直流。電壓互感器選用南京擇明電子的ZM-BPT系列電壓互感器,變比為456 V/3.53 V,額定輸入電壓為380 V,額定輸出電壓為2.941 V,過載倍數(shù)1.2,耐壓強度3 000 V,完全能達到要求。電壓互感器輸出小信號交流電,而AD只能處理單極性電壓,所以通過由LM258輸出的1.65 V基準(zhǔn)電壓抬升后轉(zhuǎn)為單極性AD合理范圍的電壓信號,并通過濾波送入AD,同時加入一個3.3 V的穩(wěn)壓管保護AD端口(見圖2)。
圖2 信號處理電路
對于DSPIC33系列的單片機,內(nèi)部有兩個10位/12位AD模塊,最多有32個模擬量輸入引腳,轉(zhuǎn)換速度最高達1.1MSPS,最多4通道同時采樣,可以選擇不同的觸發(fā)源,轉(zhuǎn)換結(jié)果通過DMA傳送,預(yù)排轉(zhuǎn)換序列,在精度要求不是很高的情況下完全能達到要求。在本設(shè)計中,要求同時采樣三相電壓及PT開口電壓,由此算出4路通道的有效值,并判斷開口電壓序列是否出現(xiàn)諧振,DSPIC33的內(nèi)部AD完全能達到轉(zhuǎn)換要求。 在此選用AN5、AN4、AN3、AN2分別作為三相電壓及PT開口電壓的輸入通道,采用4通道同時采樣、分時轉(zhuǎn)換的策略。
2.4 開關(guān)量電路
在系統(tǒng)中需要監(jiān)控機柜中多路開關(guān)量的狀態(tài),包括三路真空接觸器合閘信號、三路高壓熔絲熔斷信號、一路隔離刀開關(guān)信號及一路遠程復(fù)位信號。同時需要輸出多路開關(guān)量,包括失電報警、斷線報警、諧振報警、三相弧光接地報警等。電網(wǎng)環(huán)境比較惡劣,現(xiàn)場信號極易串入弱電系統(tǒng),使系統(tǒng)控制邏輯紊亂甚至損壞。為保護弱電控制系統(tǒng),所有輸入輸出量與系統(tǒng)接入時均通過光電隔離,實現(xiàn)了測控系統(tǒng)和現(xiàn)場環(huán)境的隔離,增強了系統(tǒng)的抗干擾能力。選用Toshiba的4通道非線性光耦TLP523-4,最大輸出電流可達150 mA。輸出開關(guān)量通過光耦后驅(qū)動固態(tài)繼電器給機柜相應(yīng)的24 V控制報警信號。機柜相應(yīng)的輸入信號均為24 V開關(guān)量,有一定的雜波,為保證系統(tǒng)正確運行,送入前經(jīng)過簡單的濾波,具體如圖3所示。
圖3 光電隔離
2.5 可控硅觸發(fā)電路
采用先進的過零觸發(fā)電路, 以電壓過零型雙向可控硅取代由分立元件組成的功放電路及脈沖變壓器等驅(qū)動環(huán)節(jié), 簡化了觸發(fā)控制電路的結(jié)構(gòu), 并提高了控制器的可靠性[5]。
采用MOC3081芯片設(shè)計晶閘管過零觸發(fā)電路。當(dāng)電力系統(tǒng)正常工作時, PT開口三角處零序電壓為零,一旦系統(tǒng)發(fā)生諧振或單相接地, PT開口三角處即伴有不同頻率成分的零序電壓,多為倍頻電壓和分頻電壓。發(fā)生諧波時,MCU 只需改變MOC3081輸入端電平即可立即觸發(fā)雙向晶閘管導(dǎo)通;切除時,只要撤銷觸發(fā)信號即可,開關(guān)在電流過零之后會自行關(guān)斷。這樣,MCU就可有效控制晶閘管的導(dǎo)通及導(dǎo)通時間,消除有害諧波。具體電路如圖4所示。
圖4 可控硅觸發(fā)電路
2.6 人機接口
人機接口由LCD顯示和鍵盤組成。LCD主要顯示一次側(cè)電壓互感器三相電壓、PT開口電壓、故障類型及故障記錄、系統(tǒng)時間等。鍵盤主要用于系統(tǒng)參數(shù)設(shè)置、故障記錄瀏覽、通信參數(shù)設(shè)置、系統(tǒng)時間設(shè)置等。
2.7 通信設(shè)置
系統(tǒng)采用485通信,485通信采用差分方式傳輸,可靠性高、傳輸距離遠,在電力系統(tǒng)中得到廣泛應(yīng)用。采用MODBUS通信規(guī)約,報文格式分為下行報文(監(jiān)控向裝置下發(fā)報文)、無故障上行報文(裝置向監(jiān)控中心上發(fā)報文)、故障上行報文(裝置向監(jiān)控中心上發(fā)報文)。報文用于上傳故障記錄、三相電壓及PT開口電壓、開關(guān)量狀態(tài)等。
3 軟件設(shè)計
控制器實時采樣三相電壓及PT開口電壓,分別計算三相電壓及PT開口電壓的有效值。DSPIC33內(nèi)部AD可以實現(xiàn)4通道同時采樣,并可以切換通道,實現(xiàn)任意采樣。在此采樣同步采樣、分時轉(zhuǎn)換的策略,為方便進行FFT,每周波采樣點數(shù)定為128個點,采樣每個點的時間為156.25μs,DSPIC內(nèi)部AD完全能達到要求。在采樣并判斷4路電壓有效值的同時,通過快速FFT判斷PT開口電壓是否出現(xiàn)倍頻、基頻及分頻諧振,主要判斷50 Hz基頻諧振、 100 Hz和150 Hz倍頻諧振、 25 Hz和15 Hz的分頻諧振。為防止由于外部環(huán)境的擾動造成控制器的誤動作,在設(shè)計中采用了延時動作的策略,根據(jù)實驗,選定在10個周波內(nèi)連續(xù)出現(xiàn)故障的周波數(shù)大于6個時認(rèn)定為故障,否則認(rèn)定為擾動,取得了良好的效果,不僅能及時動作,同時提高了抗擾動能力(見圖5)。
圖5 控制器主程序流程圖
經(jīng)過理論分析和長期的各種環(huán)境的實驗及經(jīng)驗, 總結(jié)出一套判斷各種故障的數(shù)據(jù)組, 取得了良好的效果, 并在長期使用中證明是穩(wěn)定可靠的(見表1)。
4 結(jié)束語
本文提出一種基于DSPIC單片機的消弧消諧一體機的研制方案,并對信號采樣處理、開關(guān)量控制、可控硅控制、人機接口及通信等模塊進行了詳細的描述,并給出實現(xiàn)方案。該裝置能夠準(zhǔn)確測量三相電壓及PT開口電壓,并能準(zhǔn)確判定并消除弧光接地、鐵磁諧振、短線等故障。將故障狀態(tài)記錄在液晶屏上的同時將故障數(shù)據(jù)記錄并上傳至PC監(jiān)控中心。該系統(tǒng)具有一定的穩(wěn)定性和抗干擾能力,已經(jīng)在某公司研發(fā)成功并投入使用,取得了良好穩(wěn)定的效果。
參考文獻:
[1] 高亞棟,杜斌.中性點經(jīng)小電阻接地配電網(wǎng)中弧光接地過電壓的研究[J ]. 高壓電器, 2004, 40 (5):345 - 348.
[2] 郭光榮. 電力系統(tǒng)繼電保護[M ]. 北京:高等教育出版社, 2006:1-37.
[3] 仁,董浩斌,李景祿.自動消弧裝置的接入對配電網(wǎng)運行的影響及對策[J].華北電力技術(shù),2003(8):18- 21.
篇10
【關(guān)鍵詞】直流電機;單片機;模糊控制;Fuzzy-PID參數(shù)自整定
一、引言
通常,工業(yè)生產(chǎn)中對于直流電機轉(zhuǎn)速控制的要求有調(diào)速、加速或減速、穩(wěn)速三個方面。其中,前兩個要求已能很好地實現(xiàn),但工程應(yīng)用中穩(wěn)速指標(biāo)卻往往不能達到預(yù)期的效果,穩(wěn)速即要求在生產(chǎn)過程中直流電機能以所需要的轉(zhuǎn)速穩(wěn)定運行,并具有良好的抗干擾能力。
穩(wěn)速很難達到要求的原因在于數(shù)字直流調(diào)速裝置中的PID調(diào)節(jié)器對被控對象及其負載參數(shù)變化適應(yīng)能力差。模糊控制不要求被控對象的精確模型且適應(yīng)性強,為了克服常規(guī)數(shù)字直流調(diào)速裝置的缺點,可將模糊控制與PID調(diào)節(jié)器結(jié)合,形成fuzzy-PID復(fù)合控制方案,設(shè)計能在負載、模型參數(shù)的大范圍變化以及非線性因素的影響下均可以滿足控制穩(wěn)定轉(zhuǎn)速精度要求的直流電機控制器。
二、硬件設(shè)計
整個直流電機調(diào)速系統(tǒng)的硬件由電機控制模塊、速度反饋模塊、隔離保護模塊、電機驅(qū)動模塊、過流保護模塊、串口通信模塊幾部分組成。速度反饋模塊由安裝在直流電機的輸出軸上的增量式光電編碼盤反饋電機的實際位置,它的輸出直接聯(lián)到LM629的A、B輸入端,形成反饋環(huán)節(jié)。主控單元采用AT89S52單片機實現(xiàn)模糊控制以及與運動控制芯片LM629的數(shù)據(jù)傳送,單片機通過LM629獲得電機轉(zhuǎn)速數(shù)據(jù),并通過中值濾波得到實際轉(zhuǎn)速V,之后經(jīng)模糊運算得到的KP、KI、KD參數(shù),再發(fā)送至LM629。電機驅(qū)動模塊采用LMD18200實現(xiàn)受限單極性驅(qū)動方式。過流保護模塊采用比較器LM339構(gòu)成。系統(tǒng)采用RS232串口與PC機實現(xiàn)通信。
三、軟件設(shè)計
(一)直流電機Fuzzy-PID控制器的設(shè)計
本控制系統(tǒng)采用Fuzzy-PID參數(shù)自整定控制,即在一般的PID控制系統(tǒng)的基礎(chǔ)上,采用模糊推理思想,加上一個模糊推理環(huán)節(jié)。模糊推理環(huán)節(jié)是為了根據(jù)系統(tǒng)實時狀態(tài)調(diào)節(jié)PID的參數(shù)而設(shè)置的。
由Fuzzy-PID參數(shù)自整定控制系統(tǒng)結(jié)構(gòu)圖可知,模糊控制器實際上是對PID調(diào)節(jié)參數(shù)進行修正,其輸入語言變量為直流電機轉(zhuǎn)速偏差絕對值│E│和直流電機轉(zhuǎn)速偏差變化率絕對值│EC│,輸出語言變量為KP、KI、KD三個參數(shù)。
用于在線自整定PID參數(shù)的模糊控制器是以誤差和誤差變化率為輸入語言變量,以比例系數(shù)、積分系數(shù)和微分系數(shù)為輸出語言變量的雙輸入三輸出模糊控制器,其控制規(guī)則其控制規(guī)則就是對參數(shù)KP、KI、KD的調(diào)節(jié)規(guī)則。由此可建立模糊調(diào)節(jié)規(guī)則表,再通過模糊推理和模糊運算,計算得到KP、KI、KD參數(shù)的精確值,以此做為PID調(diào)節(jié)的整定值,從而實現(xiàn)Fuzzy-PID參數(shù)自整定控制的功能。
(二)控制系統(tǒng)AT89S52單片機程序?qū)崿F(xiàn)
在本系統(tǒng)中單片機主要工作是對LM629的控制,其中包括LM629硬件軟件啟動、相關(guān)運動參數(shù)的設(shè)定,速度數(shù)據(jù)采集,實現(xiàn)模糊控制,并完成與上位機的數(shù)據(jù)通信。單片機程序采,其內(nèi)部含有梯形速度發(fā)生器和數(shù)字PID調(diào)節(jié)器,極大地簡化了位置伺服控制模塊的軟件設(shè)計。其PID控制算法可表示為:
為進一步提高控制精度,達到穩(wěn)速的效果,對此算法進行改進后得到Fuzzy-PID參數(shù)自整定控制算法。即在PID算法的基礎(chǔ)上,通過計算當(dāng)前系統(tǒng)誤差e和誤差變化率e,e、e則構(gòu)成此二維模糊控制器的輸入量,再利用模糊規(guī)則進行模糊推理,實時計算進行PID參數(shù)調(diào)整,得到此時針對直流電機轉(zhuǎn)速調(diào)節(jié)最適合的PID參數(shù)。
模糊隸屬度函數(shù)的實現(xiàn)方式可以采用的點斜式存儲方式實現(xiàn)。為了簡化該程序設(shè)計,實驗中將│E│和│EC│共設(shè)置為5種簡單組合。
四、結(jié)論
通過實驗,F(xiàn)uzzy-PID參數(shù)自整定控制系統(tǒng)較好地實現(xiàn)了對直流電機轉(zhuǎn)速的穩(wěn)定控制。加上上位機監(jiān)控平臺的使用,使對該直流電機的轉(zhuǎn)速控制更加方便快捷。當(dāng)前,直流電機調(diào)速系統(tǒng)的控制方案層出不窮,并且控制效果也越來越好,自適應(yīng)模糊控制及模糊神經(jīng)網(wǎng)絡(luò)控制等智能控制方式也是直流調(diào)速系統(tǒng)控制的重要手段。
參考文獻:
[1] 陳梅,楊琳琳,許正榮.直流電機的模糊PID控制[J].自動化技術(shù)與應(yīng)用,2008,02.
[2]紀(jì)友芳,林美娜.模糊PID復(fù)合智能控制參數(shù)自整定研究[J].微計算機應(yīng)用,2007,08.