新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于雙單片機通信的無刷直流電動機控制系統(tǒng)

        基于雙單片機通信的無刷直流電動機控制系統(tǒng)

        作者: 時間:2011-03-07 來源:網(wǎng)絡(luò) 收藏

        5.2 串行口雙機

        在串行中,接收、發(fā)送雙方向波特率必須一致。因此,首先要設(shè)定波特率,根據(jù)需要設(shè)置合理的發(fā)送接收速率。主程序在復(fù)位時,初始化串行傳送控制寄存器SCON,設(shè)置SCON=0x40,此時采用串行傳輸模式一。令SMOD=1,TMOD=0x21,定時器T1設(shè)為方式二,初值設(shè)為0xff,則波特率為62.5kbit/s。主采用定時發(fā)送數(shù)據(jù)方式,從接收數(shù)據(jù)采用中斷方式。首先要對串行口進行初始化,定義SCON使REN=1,且要開CPU及串行口中斷,使EA=1,ES=1。接收到數(shù)據(jù)后,接上中斷標(biāo)志位RI為1,程序進入中斷服務(wù)程序,先關(guān)中斷,然后將SBUF接收到的數(shù)據(jù)取出,再使RI清零并開中斷退出中斷服務(wù)程序。具體思路是:主單片機將測量的轉(zhuǎn)速與設(shè)定轉(zhuǎn)速比較,如果過大,則通過串行口向從單片機發(fā)出數(shù)字0;如果過小,則向從單片機發(fā)出數(shù)字1;如果相等,則向從單片機發(fā)出數(shù)字2。從單片機通過中斷讀取信息,如果SBUF里數(shù)的為0,則增大換相延時時間,降低電機轉(zhuǎn)速,直至接收到2為止;如果SBUF里的數(shù)為1,則減小換相延時時間,以增大電機轉(zhuǎn)速,直至接收到2為止;如果SBUF里的數(shù)為2,則換相延時時間不變,電機保持在當(dāng)前速度下運行。

        5.3 串行通信軟件設(shè)計

        整個軟件采用C51語言編寫,全部模塊化編程。主單片機程序模塊主要包括測速程序、設(shè)定速度程序、速度顯示程序,其主函數(shù)流程圖如圖7所示。從單片機程序模塊主要包括正轉(zhuǎn)、反轉(zhuǎn)及停車程序、調(diào)整程序、串行中斷服務(wù)程序,其主函數(shù)流程圖及中斷函數(shù)流程圖如圖8、圖9所示。

        本文設(shè)計并實現(xiàn)的無刷直流電動機控制系統(tǒng),在實驗室已調(diào)試成功。該電路軟件仿真和硬件實現(xiàn)已通過驗證,取得了很好的效果。實踐證明本設(shè)計可行有效。


        上一頁 1 2 3 下一頁

        關(guān)鍵詞: 單片機 通信

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 丹阳市| 梁山县| 南雄市| 乳山市| 萍乡市| 平阳县| 通道| 涟水县| 贵阳市| 南和县| 苏尼特右旗| 鄂托克旗| 泰和县| 鸡西市| 乌拉特后旗| 衡东县| 汶川县| 台北县| 民勤县| 壤塘县| 孟津县| 察哈| 敦煌市| 宁国市| 石林| 延津县| 城步| 宁远县| 南开区| 新蔡县| 丰原市| 栖霞市| 贞丰县| 阿克苏市| 商水县| 白沙| 泽州县| 濉溪县| 雷州市| 岳阳市| 江津市|