当前位置:首页 > 单片机 > 单片机
[导读] ;*采用 AT89C52 12MHz晶振 *;测距范围5CM-2M,堆栈在4FH以上,20H用于标志;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离CS1 BIT P2.3CS2 BIT P2.4D_I BIT P3.6 ;4R_W BIT P2.5 ;5E BIT P

;*采用 AT89C52 12MHz晶振 *
;测距范围5CM-2M,堆栈在4FH以上,20H用于标志
;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离


CS1 BIT P2.3
CS2 BIT P2.4
D_I BIT P3.6 ;4
R_W BIT P2.5 ;5
E BIT P2.6 ;6
DB0_DB7 EQU P0
X EQU 22H;页地址
Y EQU 23H;列地址
COM EQU 24H
DAT EQU 24H
COUNT EQU 25H ;代码倒计数单元
CODE0 EQU 26H ;表格起始地址,赋0值后与DPTR合成查表指针地址
MUL_ EQU 26H;显示数字时,暂存单元(要显示的数是几就在里面存几)
VOUT EQU P3.5 ; 红外脉冲输出端口
ORG 0000H
AJMP START
ORG 0013H
LJMPPINT1
ORG 000BH
LJMP INTT0
ORG 001BH
LJMP INTT1
ORG 0030H
START: MOV SP,#4FH
ACALL INT
SETB CS1
SETB CS2
ACALL CLEAR
ACALL SY
MOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)
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 ;65毫秒初值
MOV TL0,#00H
MOV TH1,#0F2H ;40KHZ初值
MOV TL1,#0F2H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)
SETB PX1
SETB ET0
SETB EA
SETB TR0 ;开启测距定时器
START1: LCALL DISPLAY
JNB 00H,$ ;收到反射信号时标志位为1
CLR EA
LCALL WORK ;计算距离子程序
SETB EA
CLR 00H
SETB TR0 ;重新开启测距定时器
MOV R2,#0FFH ;测量间隔控制(约4*100=400MS)
LCALL DISPLAY
DJNZ R2,$
SJMP START1
;**********中断程序*
;T0中断,65毫秒中断一次
INTT0: CLR EA
CLR TR0
MOV TH0,#00H
MOV TL0,#00H
SETB ET1
SETB EA
SETB TR0 ;启动计数器T0,用以计算超声来回时间
SETB TR1 ;开启发超声波用定时器T1
OUT: RETI
;T1中断,发超声波用
INTT1: CPL VOUT
DJNZ R4,RETIOUT
CLR TR1 ;超声波发送完毕,关T1
CLR ET1 ;
MOV R4,#04H
SETB EX1 ;开启接收回波中断
RETIOUT: RETI
;外中断0,收到回波时进入
PINT1: CLR TR0 ;关计数器
CLR TR1
CLR ET1
CLR EA ;
CLR EX1 ;
MOV 44H,TL0 ;将计数值移入处理单元
MOV 45H,TH0 ;
SETB 00H ;接收成功标志
RETI
;**************显示程序*********
; 40H为最高位,43H为最低位,先扫描高位
DISPLAY: ; MOV CODE0,40H
;ACALLDSP1
MOV MUL_,41H
ACALL DSP2
MOV MUL_,42H
ACALL DSP3
MOV MUL_,43H
ACALL DSP4
RET
;*********距离计算程序 (=计数值*17/1000CM)
WORK: PUSH ACC
PUSH PSW
PUSH B
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 ;最高位为零,不点亮
JJ0: 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 ;次高位为0,先看最高位是否为不亮
SUBB A,#0AH
JNZ JJ1
MOV 41H,#0AH ;最高位不亮,次高位也不亮
JJ1: 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
JNZ JJ2
MOV A,41H ;次次高位为0,先看次高位是否为不亮
SUBB A,#0AH
JNZ JJ2
MOV 42H,#0AH ;次高位不亮,次次高位也不亮
JJ2: MOV 43H, R0
POP B
POP PSW
POP ACC
RET
;***********两字节无符号数乘法程序
; R7R6R5R4 <= R3R2 * R1R0
MUL2BY2: CLR A
MOV R7, A
MOV R6, A
MOV R5, A
MOV R4, A
MOV 46H, #10H
MULLOOP1: 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
MOV R5, A
MOV A, R6
ADDC A, #00H
MOV R6, A
MOV A, R7
ADDC A, #00H
MOV R7, A
MULLOOP2: DJNZ 46H, MULLOOP1
RET
;*********四字节/两字节无符号数除法程序
;R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余数)
DIV4BY2: MOV 46H, #20H
MOV R0, #00H
MOV R1, #00H
DIVLOOP1: 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
CLR C
MOV A, R0
SUBB A, R2
MOV B, A
MOV A, R1
SUBB A, R3
JC DIVLOOP2
MOV R0, B
MOV R1, A
DIVLOOP2: CPL C
DJNZ 46H, DIVLOOP1
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
RET
;**********************************************************汉字显示子程序************

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在这篇文章中,小编将对PLC的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: PLC 模块化 程序

超声波是振动频率高于20kHz的机械波。它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。

关键字: 超声波

超声波换能器作为将电能与声能相互转换的关键器件,在医疗成像、工业清洗、无损检测等众多领域发挥着不可或缺的作用。然而,超声波换能器与驱动电路之间的阻抗不匹配问题,会严重影响功率传输效率,导致能量损耗增加、系统性能下降。因此...

关键字: 超声波 谐振频率

高压绝缘材料的局部放电是导致设备绝缘劣化的关键诱因,传统单一检测方法受限于环境干扰或定位精度不足,难以满足复杂工况下的故障诊断需求。本文提出一种基于超声波(US)与特高频(UHF)联合定位技术,通过多物理场信号融合分析,...

关键字: 高压绝缘材料 局部放电测试 超声波 特高频 UHF

超声波换能器作为能量转换的核心部件,广泛应用于工业清洗、医疗成像、焊接等领域。其工作原理基于压电效应,将电信号转化为机械振动。然而,换能器的谐振频率易受温度、元件老化及负载变化影响,导致能量传输效率下降。传统固定频率驱动...

关键字: 超声波 最大电流法

超单波换能器是超声波产品的心脏,机电设备尤为重要。它将电箱供给的高频高压电能转化为高频机械振动,功率输出可达几千瓦。因此,其稳定性和功率输出对整机的运行性能至关重要,也是具价值的设备,是体现整机价值的关键。

关键字: 超声波 超声波换能器

优化生产线测试,实现高精度、少停机和低成本

关键字: 传声器 超声波 驱动器

超声波传感器是将超声波信号转换成其它能量信号(通常是电信号)的传感器。

关键字: 超声波 传感器

雷达主要由发射机、接收机和信号处理系统组成。发射机负责产生高频电磁波并将其通过天线辐射出去;接收机则负责接收目标反射回来的电磁波,并将其转换为可处理的电信号;信号处理系统则对这些信号进行处理,提取出目标的距离、速度等信息...

关键字: 雷达 超声波 电磁波

超声波传感器的工作原理‌超声波传感器的工作原理‌主要涉及超声波的发射、传播和接收三个核心过程。超声波传感器内部包含一个压电晶体或磁致伸缩元件。

关键字: 超声波 传感器
关闭