新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 簡(jiǎn)單的單片機(jī)超聲波測(cè)距板

簡(jiǎn)單的單片機(jī)超聲波測(cè)距板

作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 除100程序(除法) ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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 ;計(jì)算雙字節(jié)商
DVD2: CLR C ;部分商和余數(shù)同時(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 ;計(jì)算(R2R3-R6R7)
MOV R1,A
MOV A,R2
SUBB A,R6
ANL C,/F0 ;結(jié)果判斷
JC DVD3
MOV R2,A ;夠減,存放新的余數(shù)
MOV A,R1
MOV R3,A
INC R5 ;商的低位置一
DVD3: DJNZ B,DVD2 ;計(jì)算完十六位商(R4R5)
MOV A,R4 ;將商移到R2R3中
MOV R2,A
MOV A,R5
MOV R3,A
CLR OV ;設(shè)立成功標(biāo)志
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BCD轉(zhuǎn)換 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HB2: CLR A ;BCD碼初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)
HB3: MOV A,R7 ;從高端移出待轉(zhuǎn)換數(shù)的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD碼帶進(jìn)位自身相加,相當(dāng)于乘2
ADDC A,R5
DA A ;十進(jìn)制調(diào)整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;雙字節(jié)十六進(jìn)制數(shù)的萬位數(shù)不超過6,不用調(diào)整
DJNZ R2,HB3 ;處理完16bit
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 顯示程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPLAY: MOV R1,#76H ;立即數(shù)76H送寄存器中
MOV R5,#0FEH ;立即數(shù)FEH送寄存器R5中
PLAY: MOV A,R5 ;寄存器R5中的數(shù)值送累加器A中
MOV P3,A ;累加器A中的數(shù)值送P3口
MOV A,@R1 ;以寄存器R1中的數(shù)為地址單元的數(shù)值送累加器中
MOV DPTR,#TAB ;16位地址送地址寄存器中
MOVC A,@A+DPTR ;以中的地址為基地變址尋址單元中的數(shù)送累加器
MOV P1,A ;累加器A中的數(shù)值送P1口
MOV R6,#14H ;立即數(shù)據(jù)14送寄存器R6中
DL1:MOV R7,#19H ;立即數(shù)據(jù)19送寄存器R7中
DL2:DJNZ R7,DL2 ;寄存器中的數(shù)據(jù)減1,不為零時(shí)則轉(zhuǎn)移
DJNZ R6,DL1 ;寄存器中的數(shù)據(jù)減1,不為零時(shí)則轉(zhuǎn)移
INC R1 ;寄存器R1中的數(shù)值加1
MOV A,R5 ;寄存器R5中的數(shù)值送累加器A中
JNB ACC.2,ENDOUT ;地址位為0則轉(zhuǎn)到ENDOUT
RL A ;累加器循環(huán)右移
MOV R5,A ;累加器A中的數(shù)值送寄存器R5中
AJMP PLAY ;絕對(duì)短轉(zhuǎn)移
ENDOUT: SETB P3.5 ;置P3.5口
MOV P1,#0FFH ;立即數(shù)0FEH送P1口
RET ;返回
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
END ;結(jié)束

本文引用地址:http://m.butianyuan.cn/article/201611/324006.htm

上一頁 1 2 3 下一頁

評(píng)論


技術(shù)專區(qū)

關(guān)閉