基于AT89S52與PIC16F877A的在線(xiàn)編程控制系統(tǒng)
PIC16F877A部分電路原理如圖3所示。
4 軟件設(shè)計(jì)
4.1 AT89S52部分
首先執(zhí)行系統(tǒng)初始化,初始時(shí)鐘,全局變量,定時(shí)器,IO端口,鍵盤(pán)中斷服務(wù)子程序。
然后進(jìn)入MAINLOOP循環(huán)程序,等待接受鍵盤(pán)中斷。如果鍵盤(pán)有輸入動(dòng)作,系統(tǒng)產(chǎn)生鍵盤(pán)中斷,進(jìn)入鍵盤(pán)中斷服務(wù)子程序。
鍵盤(pán)中斷服務(wù)子程序的主要功能是生成命令數(shù)據(jù)包,并根據(jù)用戶(hù)指令處理該命令數(shù)據(jù)包。
命令數(shù)據(jù)包的格式如下:
若用戶(hù)確認(rèn),則發(fā)送到PIC16F877A執(zhí)行;
若用戶(hù)取消,則退出鍵盤(pán)中斷服務(wù)子程序,重新進(jìn)入等待狀態(tài)。系統(tǒng)運(yùn)行流程圖如圖4所示。
4.2 PIC軟件結(jié)構(gòu)
PIC系統(tǒng)初始化后首先按默認(rèn)參數(shù)啟動(dòng)PWM輸出,在啟動(dòng)過(guò)程中不斷地進(jìn)行A/D轉(zhuǎn)換,將采集到的數(shù)據(jù)根據(jù)PID策略調(diào)節(jié)PWM的占空比,從而達(dá)到調(diào)節(jié)電機(jī)轉(zhuǎn)速的目的,同時(shí)不問(wèn)斷的監(jiān)聽(tīng)PSP通道,若收到AT89S52的命令數(shù)據(jù)包,馬上更新默認(rèn)啟動(dòng)參數(shù),讓電機(jī)以新參數(shù)模式運(yùn)行在新轉(zhuǎn)速狀態(tài)。
PIC16F877A執(zhí)行軟件運(yùn)行流程圖如圖5所示。
5 結(jié) 語(yǔ)
利用AT89S52作為主處理器,PIC16F87X作為從處理器,使控制精度大為提高,可達(dá)10位PWM精度。AT89S52與PIC16F87X具有在線(xiàn)編程功能,功能齊全,片上資源豐富,可以滿(mǎn)足系統(tǒng)升級(jí)要求。隨著帶有系統(tǒng)在線(xiàn)編程功能的單片機(jī)得到廣泛應(yīng)用與發(fā)展,ISP技術(shù)成了未來(lái)發(fā)展方向,基于在線(xiàn)編程技術(shù)的控制系統(tǒng)應(yīng)用也將越來(lái)越廣泛。
評(píng)論