51單片機(jī)測(cè)變周期脈沖信號(hào)的簡(jiǎn)便方法
定時(shí)器Tl中斷服務(wù)程序清單如下:
INT1:CLR TR1 ;關(guān)計(jì)數(shù)器1
PUSH ACC;ACC入棧
PUSH 00H;R0入棧
CLR C;清零進(jìn)位標(biāo)志
MOV A,TL1;計(jì)數(shù)值低8位→累加器
ADD A,#23H;計(jì)數(shù)器值+中斷執(zhí)行時(shí)間32us(12MHz晶振)+
;最小中斷響應(yīng)時(shí)間3-脈沖周期
MOV R0,A ;低8位暫存R0
MOV A,TH1
ADDC A,#00H
MOVX @DPTR,A;脈沖周期高8位→@DPTR指向的RAM單元
INC DPTR;指向下一RAM單元
MOV A,R0
MOVX @DPTR,A;脈沖周期低8位→DPTR指向的RAM單元
INC DPTR
INC R1;脈沖周期個(gè)數(shù)加一
MOV TH1,#00H;清零計(jì)數(shù)器1
MOV TL1,#00H
POP 00H
POP ACC
SETB TR1;重新啟動(dòng)計(jì)數(shù)
RETI;中斷返回
該中斷服務(wù)程序能采樣的最小脈沖周期為32us,若去掉該程序中的現(xiàn)場(chǎng)保護(hù)和將計(jì)數(shù)值變?yōu)槊}沖周期放在采樣后進(jìn)行,則可進(jìn)一步減小能采樣的脈沖周期。能采樣的最大脈沖周期為65535us(12MHz晶振時(shí)),若大于該值,則用戶對(duì)程序稍加修改即可,因此,實(shí)際上對(duì)最大周期可不加限制。設(shè)對(duì)脈沖信號(hào)采樣100個(gè)周期,采樣值存于50H開始的外部RAM中,則主程序如下:
MAIN:
PUSH TMOD ;專用寄存器TMOD TCON IE入棧
PUSH TCON
PUSH IE
MOV THI,#00H ;清零計(jì)數(shù)器
MOV TL1,#00H
MOV TMOD.10H;計(jì)數(shù)器1工作方式1
SETB EA ;允許中斷
SETB EX1 ;外部中斷1
SETB IT1 ;INT1負(fù)跳變觸發(fā)中斷
MOV DPTR,#50H;存脈沖周期的RAM首地址
MOV R1,#00H ;R1一控制采樣周期個(gè)散
SETB TR1 ;計(jì)數(shù)器1開始計(jì)時(shí)
CJNE R1,#64H,$;等待100個(gè)周期采樣結(jié)束
CLR TR1 ;關(guān)計(jì)數(shù)器
POP IE
POP TCON
POP TMOD
以上采樣的第一脈沖周期不準(zhǔn),應(yīng)在數(shù)據(jù)處理時(shí)丟掉,也可在中斷服務(wù)程序中加判斷語句自動(dòng)丟掉。由以上可以看出,該方法無額外硬件,軟件簡(jiǎn)明,能測(cè)量的脈沖周期范圍大,但不能測(cè)得脈沖信號(hào)的第一個(gè)周期。
51單片機(jī)相關(guān)文章:51單片機(jī)教程
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 晶振相關(guān)文章:晶振原理 脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
評(píng)論