本帖最后由 新鄉(xiāng)家電維修 于 2018-5-19 16:06 編輯
我會用1秒閘門定時計數(shù)脈沖個數(shù)做頻率,不用計算,直接轉換成十進制就行了,
現(xiàn)在想做周期測低頻,匯編語言如何做周期倒數(shù)(1/T=F)
誰有字節(jié)轉換方法,比如移位方法匯編
結束此貼,我已經(jīng)寫好了,測量范圍5--1500轉/分鐘
測一個周期:第一個下降沿啟動定時器,第二個下降沿停止定時。讀出定時值
轉換公式(這個很重要):1/定時值*60=轉速,
周期法測轉速,越低轉速越準確,整好和閘門法定時測頻率相反,閘門定時高頻率比低頻準確(前提是不接近上限,誤差是不大的)
用的下面網(wǎng)上找的字節(jié)除法解決的
入口條件:被除數(shù)在R2、R3、R4、R5中,除數(shù)在R6、R7中。
出口信息:OV=0 時,雙字節(jié)商在R2、R3中,OV=1 時溢出。
影響資源:PSW、A、B、R1~R7 堆棧需求: 2字節(jié)
DIVD: CLR C ;比較被除數(shù)和除數(shù)
MOV A,R3
SUBB A,R7
MOV A,R2
SUBB A,R6
JC DVD1
SETB OV ;溢出
RET
DVD1: MOV B,#10H ;計算雙字節(jié)商(雙字節(jié)移動10H=16次)
DVD2: CLR C ;部分商和余數(shù)同時左移一位
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV F0,C ;保存溢出位
CLR C
SUBB A,R7 ;計算(R2R3-R6R7)
MOV R1,A
MOV A,R2
SUBB A,R6
ANL C,/F0 ;結果判斷
JC DVD3
MOV R2,A ;夠減,存放新的余數(shù)
MOV A,R1
MOV R3,A
INC R5 ;商的低位置一
DVD3: DJNZ B,DVD2 ;計算完十六位商(R4R5)
MOV A,R4 ;將商移到R2R3中
MOV R2,A
MOV A,R5
MOV R3,A
CLR OV ;設立成功標志
RET
得到商就是轉速,
還要用雙字節(jié)轉BCD碼程序
最后調用顯示程序,
完成。
|