基于雙單片機通信的無(wú)刷直流電動(dòng)機控制系統
5.2 串行口雙機通信
在串行通信中,接收、發(fā)送雙方向波特率必須一致。因此,首先要設定通信波特率,根據需要設置合理的發(fā)送接收速率。主單片機程序在復位時(shí),初始化串行傳送控制寄存器SCON,設置SCON=0x40,此時(shí)采用串行傳輸模式一。令SMOD=1,TMOD=0x21,定時(shí)器T1設為方式二,初值設為0xff,則波特率為62.5kbit/s。主單片機采用定時(shí)發(fā)送數據方式,從單片機接收數據采用中斷方式。首先要對串行口進(jìn)行初始化,定義SCON使REN=1,且要開(kāi)CPU及串行口中斷,使EA=1,ES=1。接收到數據后,接上中斷標志位RI為1,程序進(jìn)入中斷服務(wù)程序,先關(guān)中斷,然后將SBUF接收到的數據取出,再使RI清零并開(kāi)中斷退出中斷服務(wù)程序。具體思路是:主單片機將測量的轉速與設定轉速比較,如果過(guò)大,則通過(guò)串行口向從單片機發(fā)出數字0;如果過(guò)小,則向從單片機發(fā)出數字1;如果相等,則向從單片機發(fā)出數字2。從單片機通過(guò)中斷讀取信息,如果SBUF里數的為0,則增大換相延時(shí)時(shí)間,降低電機轉速,直至接收到2為止;如果SBUF里的數為1,則減小換相延時(shí)時(shí)間,以增大電機轉速,直至接收到2為止;如果SBUF里的數為2,則換相延時(shí)時(shí)間不變,電機保持在當前速度下運行。
5.3 串行通信軟件設計
整個(gè)軟件采用C51語(yǔ)言編寫(xiě),全部模塊化編程。主單片機程序模塊主要包括測速程序、設定速度程序、速度顯示程序,其主函數流程圖如圖7所示。從單片機程序模塊主要包括正轉、反轉及停車(chē)程序、調整程序、串行中斷服務(wù)程序,其主函數流程圖及中斷函數流程圖如圖8、圖9所示。
本文設計并實(shí)現的無(wú)刷直流電動(dòng)機控制系統,在實(shí)驗室已調試成功。該電路軟件仿真和硬件實(shí)現已通過(guò)驗證,取得了很好的效果。實(shí)踐證明本設計可行有效。
評論