資源描述:
《軟件程序清單.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、軟件程序清單ORG0000HLJMPMAIN;轉(zhuǎn)主程序ORG0003H;外部中斷INT0的入口地址LJMPINTA;轉(zhuǎn)外部中斷INT0服務(wù)程序ORG000BH;T0中斷的入口地址LJMPT0-SEV;轉(zhuǎn)T0溢出中斷服務(wù)程序ORG0300HDATABUFEQU50H;數(shù)據(jù)緩沖區(qū)的首地址DISBUF1EQU60H;給定速度顯示緩沖區(qū)的首地址DISBUF2EQU64H;實際速度顯示緩沖區(qū)的首地址SAMP-D1EQU0000H;保存給定速度采樣數(shù)據(jù)的首地址SAMP-D2EQU0500H;保存實際速度采樣數(shù)據(jù)的首地址MAIN:MOVSP,#70H;設(shè)置堆棧指針MOVTMO
2、D,#01H;定時器T0工作方式1MOVTL0,#18H;定時器賦初值,定時1msMOVTH0,#0FCHMOVR0,#0FH;軟件計數(shù)器R0賦初值,計數(shù)15次SETBTR0;啟動T0工作SETBEX0;允許INT0中斷SETBEA;開CPU中斷SJMP$;等待中斷T0-SEV:;T0中斷服務(wù)子程序MOVTL0,#18H;定時器重新賦值MOVTH0,#0FCHSETBIT0;中斷觸發(fā)方式為邊沿觸發(fā)方式SETBEA;CPU開中斷SETBEX0;允許外部中斷0中斷INTA:PUSHACC;保護現(xiàn)場PUSHDPHPUSHDPLACALLAD1;調(diào)用AD1給定速度采樣子
3、程序ACALLFILTER;調(diào)用中值濾波子程序ACALLFA1ACALLAD2;調(diào)用AD2實際速度采樣子程序ACALLFILTER;調(diào)用中值濾波子程序ACALLFA2POPDPH;恢復現(xiàn)場POPDPLPOPACCRETIACALLPID;調(diào)用數(shù)值PID控制算法子程序ACALLDAC;調(diào)用DAC轉(zhuǎn)換程序LCALLTRAST1LCALLDBCD1LCALLDIS1;調(diào)用速度顯示子程序MOVA,2AH;實際速度值送ALCALLTRAST1;調(diào)用代碼轉(zhuǎn)換子程序LCALLDBCD2;將實際轉(zhuǎn)速壓縮BCD碼轉(zhuǎn)換成單獨的BCD碼LCALLDIS2;調(diào)用實際速度顯示子程序RET
4、I;中斷返回AD1:;調(diào)用AD1給定速度采樣子程序MOVR0,#2CH;采樣值起始地址送R0MOVR2,#03H;采樣次數(shù)初值送R2MOVDPTR,#6FF8HJMPADC1AD2:MOVR0,#2CH;采樣值起始地址送R0MOVR2,#03H;采樣次數(shù)初值送R2MOVDPTR,#6FF9HADC1:MOVX@DPTR,A;啟動ADC0809工作MOVR3,#20HDLYDJNZR3,DLY;延時HERE:JBP3.3,HERE;等待A/D完成MOVXA,@DPTR;采樣值送AMOV@R0,A;存放采樣值INCR0DJNZR2,ADC1;若采樣未完,則ADC1R
5、ET;若采樣完,則返回FILTER:;中值濾波算法子程序MOVA,2CH;(2CH)送ACJNEA,2DH,CMP1;(2CH)≠(2DH),則CMP1AJMPCMP2;否則轉(zhuǎn)CMP2CMP1:JNCCMP2;若(2CH)=(2DH),則CMP2XCHA,2DHXCHA,2CHCMP2:MOVA,2DH;(2DH)送ACJNEA,2EH,CMPP3;若(2DH)≠(2EH),則CMP3MOV2AH,A;否則(2DH)送2AHRET;返回CMP3:JCCMP4;若(2DH)<(2EH),則CMP4MOV2AH,A;否則(2DH)送2AHERT;返回CMP4:MOV
6、A,2EH;(2EH)送ACJNEA,2CH,CMP5;若(2EH)≠(2CH),則CMP5MOV2AH,A;否則(2EN)送2AHRET;返回CMP5:JCCMP6;若(2EH)<(2CH),則CMP6XCHA,2CH;否則(2EH)(2CH)CMP6:MOV2AH,A;A送2AHRETFA1:MOVDPTR,#SAMP-D1MOVX@DPTR,A;將采樣值送到外部RAM中的0000H單元MOV1AH,AINCDPTRFA2:MOVDPTR,#SAMP-D2MOVX@DPTR,A;將采樣值送到外部RAM中的0000H單元INCDPTRRETPID:;數(shù)字PID
7、控制算法子程序MOVR5,1AH;給定值Ug送R5R4MOVR4,#00HMOVR3,2AH;實際值送UI(K)R3R2MOVR2,#00HACALLCPL1;取UI(K)的補碼ACALLDSUM;雙字節(jié)加法,計算E(K)MOV39H,R7;E(K)送39H和3AHMOV3AH,R6MOVR5,35H;KI送R5R4MOVR4,36HMOVR0,#4AH;起始地址送4AH送R0ACALLMULT1;雙字節(jié)帶符號乘法,計算PI=KI*E(K)MOVR5,39H;E(K)送R5R4MOVR4,3AHMOVR3,3BH;E(K-1)送R3R2MOVR2,3CHACAL
8、LCPL1;對E(K-1