基于51超声波测距器设计--中国矿业大学徐海学院电子04-1 鲍海鸿

2019-01-26 14:28

程序清单

以下是用汇编语言编写的超声波测距控制源程序: 采用AT89S51 12MHz晶振

显示缓冲单元在40H~43H,使用内存44H、45H、46H用于计算距离 20H用于标志

VOUT EQU P1.0 ;脉冲输出端口

*中断入口程序*

ORG 0000H

LJMP START ORG 0003H

LJMP PINT0 ORG 000BH

LJMP INTT0 ORG 0013H RETI ORG 001BH

LJMP INTT1 ORG 0023H

RETI

ORG 002BH RETI

*主程序*

START: MOV SP, #4FH

MOV R0, #40H ;40~43H为显示数据存放单元(40为最高位) MOV R7,#0BH

CLEARDISP:MOV @R0, #00H INC R0

DJNZ R7, CLEARDISP MOV 20H, #00H

MOV TMOD, #21H ;T1为8位自动重装模式,T0为16位定时器

MOV TH0, #00H ;65ms初值

MOV TL0, #00H ;40KHz初值 MOV TH1, #0F2H MOV TL1, #0F2H MOV P0, #0FFH

MOV P1, #0FFH

MOV P2, #0FFH MOV P3, #0FFH

MOV R4, #04H ;超声波脉冲个数控制(为赋值的一半) SETB PX0 SETB ET0 STEB EA CLR 00H

SETB TR0 ;开启测距定时器

START1: LCALL DISPLAY

JNB 00H, START1 ;收到反射信号时标志位为1 CLR EA

LCALL WORK SETB EA CLR 00H

SETB TR0 MOV R2, #64H

LOOP: LCALL DISPLAY DJNZ R2, LOOP SJMP START 1

;T0中断,65ms中断一次 INTT0: CLR EA CLR TR0

MOV TH0, #00H MOV TL0, #00H SETB ET1 SETB EA

SETB TR0 来回时间

SETB TR1 OUT: RETI

;T1中断,发超声波用

INTT1: CPL VOUT

DJNZ R4,RETIOUT

CLR TR1 CLR ET1 MOV R4,#04H

SETB EX0 RETIOUT: RETI

;外中断0,收到回波时进入

;计算距离子程序 ;重新开启测距定时器

; 测量间隔控制(约4*100=400ms) *中断程序*

;启动计时器T0,用以计算超声波 ;开启发超声波用定时器T1 ;超声波发送完毕,关T1 ;开启接收回波中断 PINT0: CLR TR0 ;关计数器 CLR TR1 CLR ET1 CLR EA CLR EX0

MOV 44H, TL0 ;将计数值移入处理单元 MOV 45H, TH0

SETB 00H ;接收成功标志 RETI

*延时程序*

DL1MS: MOV R6, #14H DL1: MOV R7, #19H DL2: DJNZ R6, DL2 DJNZ R6, DL1 RET

*显示程序*

;40H为最高位,43H为最低位,先扫描高位 DISPLAY: MOV R1, #40H;G MOV R5,#0F7H;G PLAY: MOV A, R5 MOV P0, #0FFH MOV P2, A MOV A, @R1 MOV DPTR, #TAB

MOVC A, @A+DPTR MOV P0, A LCALL DLIMS INC R1 MOV A, R5 JNB ACC.0, ENDOUT;G RR A MOV R5, A AJMP PLAY

ENDOUT; MOV P2, #0FFH MOV P0, #0FFH RET

TAB; DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH ;共阳数码管 0 ,1, 2,3,4,5,6,7,8,9,不亮,A, —

*距离计算程序(=计算值×17/1000cm) 近似

WORK: PUSH ACC PUSH PSW PUSH B JJ0: JJ1: MOV PSW, #18H MOV R3, 45H MOV R2, 44H MOV R1, #00D MOV R0, #17D LCALL MUL2BY2 MOV R3, #03H MOV R2, #0E8H LCALL DIV4BY2 LCALL DIV4BY2 MOV 40H, R4 MOV A, 40H JNZ JJ0 MOV 40H, #0AH MOV A R0 MOV R4, A MOV A R1 MOV R5 A MOV R3, #00D MOV R2, #100D LCALL DIV4BY2 MOV 41H, R4 MOV A, 41H JNZ JJ1 MOV A, 40H SUBB A, #0AH JNZ JJ1 MOV 41H, #0AH MOV A, R0 MOV R4, A MOV A, R1 MOV R5, A MOV R3, #00D MOV R2, #10D LCALL DIV4BY2 MOV 42H, R4 MOV A 42H

;最高位为0,不点亮 0,先看最高位是否为不亮; 最高位不亮,次高位也不亮 ;此高位为 JJ2:

MUL2BY2:

MULLOOP1:

JNZ JJ2

MOV A, 41H ;次高位为0,先看次高位是否为不亮 SUBB A, #0AH JNZ JJ2

MOV 42H, #0AH ;次高位不亮,次高位也不亮 MOV 43H, R0 POP B POP PSW POP ACC RET

*两字节无符号数乘法程序

CLR A MOV R7, A MOV R6, A MOV R5, A MOV R4, A

MOV 46H, #10H CLR C MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A

JNC MULLOOP2 MOV A, R4 ADD A, R2 MOV R4, A MOV A, R5 ADDC A, R3


基于51超声波测距器设计--中国矿业大学徐海学院电子04-1 鲍海鸿.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:教育的历史形态:起源、发展与未来趋势

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: