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