⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 程序.txt

📁 超声波传感器超声波测距8051汇编源程序 晶振采用6M
💻 TXT
字号:
超声波传感器超声波测距8051汇编源程序

;晶振采用6M,P1口为数码管段输出口,P3.0~P3.2为数码管位输出口,P3.5超声波发送输出,P3.7超声波接收。 
;超声波测距
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 中断入口程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H
ljmp start
ORG 002BH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 主 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START: MOV R0,#70H 
MOV R7,#0BH 
MOV 20H,#00H 
CLEARDISP: MOV @R0,#00H 
INC R0 
DJNZ R7,CLEARDISP
MOV TMOD,#99H 
cjzcx:MOV TL0,#00H 
MOV TH0,#00H
MOV R0,#0bH
mov r1,#0bh
mov 16h,#03H
mov 15h,#54H
mov 17h,#90h
puzel:mov 14h,#32h ;超声波发射持续200ms
here:cpl p3.5 ;输出40kHz方波
nop 
nop 
nop 
djnz 14h,here 
setb tr0
setb p3.2
mq:djnz 15h,$
djnz 16h,mq 
QBA:JNB P3.7,QBC
DJNZ R1,QBA
DJNZ R0,QBA
QBC:djnz 17h,QBC
clr p3.2
clr tr0 
mov 70h,tl0
mov 71h,th0
mov r2,71h
mov r3,70h
mov r6,#22H
mov r7,#0H
LCALL MULD 
mov r6,#64H
mov r7,#0H
LCALL DIVD 
MOV 73H,R2
MOV 74H,R3
CLR R3
CLR R4
CLR R5
MOV R6,73H
MOV R7,74H 
LCALL HB2 
MOV A,R4 
MOV B,#10H
DIV AB
MOV 78H,A
MOV 77H,B
MOV A,R5
MOV B,#10H
DIV AB
MOV 76H,A
MOV 75H,B 
mov a,78h
cjne a,#0h,pdcx
mov a,77h
cjne a,#5h,pdcx
mov a,76h
cjne a,#0h,pdcx
mov 78h,#0bh
mov 77h,#0bh
mov 76h,#0bh
ajmp xxcx
pdcx:mov a,78h
cjne a,#4h,xxcx
mov a,77h
cjne a,#0h,xxcx
mov a,76H
cjne a,#0h,xxcx
mov 78h,#0ah
mov 77h,#0ah
mov 76h,#0ah
xxcx:MOV 7AH,#0EFH
XXX:LCALL DISPLAY 
DJNZ 7AH,XXX
ajmp cjzcx


MULD:MOV A,R3 
MOV B,R7
MUL AB
MOV R4,B 
MOV R5,A
MOV A,R3 
MOV B,R6
MUL AB
ADD A,R4 
MOV R4,A
CLR A
ADDC A,B
MOV R3,A
MOV A,R2 
MOV B,R7
MUL AB
ADD A,R4 
MOV R4,A
MOV A,R3
ADDC A,B
MOV R3,A
CLR A
RLC A
XCH A,R2 
MOV B,R6
MUL AB
ADD A,R3 
MOV R3,A
MOV A,R2
ADDC A,B
MOV R2,A
RET 

DIVD:CLR C 
MOV A,R3 
SUBB A,R7
MOV A,R2
SUBB A,R6
JC DVD1
SETB OV 
RET
DVD1:MOV B,#10H 
DVD2:CLR C 
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 
MOV R1,A
MOV A,R2
SUBB A,R6
ANL C,/F0 
JC DVD3
MOV R2,A 
MOV A,R1
MOV R3,A
INC R5 
DVD3:DJNZ B,DVD2 
MOV A,R4 
MOV R2,A
MOV A,R5
MOV R3,A
CLR OV 
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BCD转换 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HB2:CLR A ;BCD码初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;转换双字节十六进制整数
HB3:MOV A,R7 ;从高端移出待转换数的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD码带进位自身相加,相当于乘2
ADDC A,R5
DA A ;十进制调整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A 
DJNZ R2,HB3 
RET 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 显示程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPLAY:MOV R1,#76H 
MOV R5,#0FEH 
PLAY:MOV A,R5 
MOV P3,A ;累加器A中的数值送P3口
MOV A,@R1 
MOV DPTR,#TAB 
MOVC A,@A+DPTR ;
MOV P1,A ;累加器A中的数值送P1口
MOV R6,#14H 
DL1:MOV R7,#19H 
DL2:DJNZ R7,DL2 
DJNZ R6,DL1 
INC R1 
MOV A,R5 
JNB ACC.2,ENDOUT 
RL A 
MOV R5,A 
AJMP PLAY 
ENDOUT:SETB P3.5 
MOV P1,#0FFH ;立即数0FEH送P1口
RET 
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0c6H,3fh
END


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -