8051单片机的超声波测距仪。超声波测距仪测量距离可达2.5米,精度为1厘米。AT89S51单片机和超声波换能器模块HC-SR04形成该电路的基础。的超声波模块发送一个信号到该对象,然后拿起其回波和输出波形,其时间周期的距离成正比。微控制器接受此信号时,进行必要的处理,并显示相应的距离上的3位数字的7段显示。该电路发现很多的应用项目,如汽车停车传感器,障碍告警系统,地形监测机器人,工业距离测量等。
HC-SR04超声波模块。
HC-SR04超声波测距模块设计的嵌入式系统这样的项目。它的分辨率为0.3cm和测距距离为2cm至500厘米。它采用一个5V直流电源供电,待机电流小于2mA。该模块发送的超声波信号,拿起其回波,测量所经过的时间之间的两个事件和输出波形,其高的时间是由测得的时间的距离成正比的调制。的HC-SR04模块的照片如下所示。
HC-SR04超声波测距模块(图1)
模块上的电路制造的支撑使得它几乎独立的程序员需要做的是发送一个触发信号,它用于启动发送和接收的回波信号,从用于距离计算。的HR-SR04具有四个引脚即Vcc时,触发器,回声,GND和它们在下面详细解释。
1)VCC:5V DC电源连接到该管脚。
2)触发:触发信号开始发送到该管脚。触发信号必须是脉冲10US的时候。当模块接收到有效的触发信号时,它会发出8个脉冲从发射40KHz的超声波声。这种声音的回声回升的接收器。
3)回声:在此引脚,模块输出的波形以很高的时间与距离成正比。
4)GND地连接到该引脚。
HC-SR04时序图。
HC-SR04的时序图
从时序图中,你可以看到的40kHz脉冲串传输的的10US触发脉冲后的回声输出后,得到一些更多的时间。只有后回波消失,这个时间段被称为循环周期,可以给出的下一个触发脉冲。HC-SR04的循环周期必须不低于50毫秒。根据数据表,可以计算出的距离,使用下面的公式从回波的脉冲宽度。
距离(厘米)=回波脉冲宽度uS/58
在uS/148英寸=回波脉冲宽度的距离
超声波测距仪8051 - 电路原理图。
超声波测距仪使用8051
超声波模块连接到单片机通过P3.0和P3.1引脚。端口0用于发送的8位显示数据的显示和端口引脚P1.0,P1.1,P1.2用于发送相应的显示单元D1,D2,D3的显示驱动信号。按钮开关S1,电容器C3和电阻R9构成解弹跳的复位电路。电容器C1,C2和晶体X1相关联的时钟电路。
计划。
ORG 00H / /原产地MOV DPTR,#LUT / /移动到DPTR的地址LUTMOV P1,#00000000B / /设置为输出端口P1MOV P0,#00000000B / /设置为输出端口P0CLR P3.0 / /设置P3.0作为输出发送触发SETB P3.1 / /设置P3.1为输入,接收回波MOV TMOD,#00100000B / /设置定时器1的模式2自动重载定时器MAIN:MOV TL1,#207D / /加载的初始值开始计数 MOV TH1,#207D / /加载的重载值 MOV A,#00000000B / /清除累加器 SETB P3.0 / /开始的触发脉冲 ACALL DELAY1 / / 10US的触发脉冲宽度 CLR P3.0 / /结束的触发脉冲:JNB P3.1,/ /循环,直到回声收到BACK:SETB TR1 / /启动定时器HERE1:JNB TF1,HERE1的/ /循环,直到定时器溢出(即48计数) CLR TR1 / /停止计时器 CLR TF1 / /清除定时器标志1 INC A / /增量为每Timer1溢出 JB P3.1,BACK / /跳跃回来,如果的回声仍是提供 MOV R4,A / /保存价值的一个R4 ACALL DLOOP / /调用显示循环 SJMP MAIN / /跳转到主回路DELAY1:MOV R6,#2D / / 1us的延迟LABEL1:DJNZ R6,LABEL1 RET DLOOP:MOV R5,#100D / 100D /负载R5与BACK1:MOV A,R4 / /在R4的值加载到A MOV B,#100D / /加载B和100D DIV AB / /第一个数字隔离 SETB P1.0 / /激活LED显示单元D1 ACALL DISPLAY / /调用显示子程序 MOV P0,A / /移动数字驱动模式为第1位,P0 ACALL DELAY / /延时1ms ACALL DELAY MOV A,B / /移动到A第一师的其余部分 MOV B,#10D / /加载B的10D DIV AB / /第二位隔离 CLR P1.0 / /关闭LED显示单元D1 SETB P1.1 / /激活LED显示单元D2 ACALL DISPLAY MOV P0,A / /移动数字驱动模式为第2位P0 ACALL DELAY ACALL DELAY MOV A,B / /移动乙级联赛余下的一个 CLR P1.1 / /关闭LED显示单元D2 SETB P1.2 / /激活LED显示单元D3 ACALL DISPLAY MOV P0,A / /移动数字驱动模式,第三个数字P0 ACALL DELAY ACALL DELAY CLR P1.2 / /关闭LED显示单元D3 DJNZ R5,重复显示BACK1 / /循环100次 RETDELAY:MOV R7,#250D / / 1毫秒的延迟LABEL2:DJNZ R7,LABEL2的 RET显示:MOVC A,@ A + DPTR / /获取数字内容的驱动模式在A CPL A / /数字驱动模式的补充(见注1) RETLUT:DB 3FH / /查找表(LUT)从这里开始 DB 06H DB 5BH DB 4FH DB 66H DB 6DH DB 7DH DB 07H DB 7FH DB 6FHEND关于程序。
程序的第一部分,设置的初始条件。被设置为输出端口,用于发送数字驱动模式和数字驱动信号分别端口0和P0rt 1。端口引脚3.0被设置用于发送的触发信号开始传输和端口引脚3.1被设定作为一个输入管脚,用于接收的回波的超声波模块作为一个输出引脚。TMOD寄存器的微控制器所装载的定时器1工作在模式2 8位自动重装模式。这里不使用微控制器的定时器0。在接下来的部分程序(循环MAIN)加载定时器TL1和TH1寄存器的初始值。的TL1被加载的初始值开始计数TH1被加载的重载值。这是怎么定时器1在模式2期工程:,当TR1位TCON寄存器的设置TL1从加载到它的初始值开始计数,并继续计数,直到翻转(即; 255D)。滚动发生时,TF1标志设置和TL1自动加载存储在TH1的重载值,直到TR1的程序序列是重复的。TF1“在第一滚动,如果你想让它作为一个指标每卷了过来,你要清楚使用该程序后,每卷了过来。在接下来的部分的主回路P3.0置高10US,然后清除,使10US触发脉冲。的超声波模块发出一个40kHz的脉冲波形式后,接收到该触发信号,程序等待,直到接收到一个有效的回波在P3.1。的回波信号的脉冲宽度是与障碍物的距离成比例的,所以接下来的工作的程序是,测量脉冲宽度。每当有一个有效的回波脉冲P3.1,定时器开始计数的初始值255,即255-207 = 48个字。然后计数器重新启动和累加器的增量为每一个重新启动。被重复,直到该序列的回波信号在P3.1消失(即; P3.1变低)。现在,在A中的内容将Timer1的重新加载,这是实际上的距离成正比的数量相等。从表中很明显,58uS回波脉冲宽度表示1cm的距离。当处理器,主频12MHz晶体,58的定时器的计数显示为1cm。这意味着1重装等于1CM。但在这里,我们让数只有48次重装定时器和这样做是为了弥补时间上的滞后所造成的分支指令用于检查P3.0和P3.1引脚的状态。如果这一招不这样做,个人的时间滞后引起的分支指令将累计增加观测到的脉冲宽度和测距仪显示的读数高于原来的距离。一些试验和错误,需要得到正确的定时器1重装值和207D(即48个字)用在这里被认为是小于半厘米,在这种情况下这是相当错误。未来计划的一部分,做必要的数学上的当前内容,并将其显示在A为3位数字在显示屏上读出。
注释。
1)这里所用的LUT最初是为了一个共同的阴极七段显示器,在这里我们使用的是共阳极显示器。一个指令将补充所获得的数字驱动模式,并在CPL是适合共阳极计划。如果你有时间,然后煮了一个LUT共阳极计划取代目前使用的。你能避免额外的CPL一个指令,它是正确的方法。
2)整个电路可从5V DC供电。
3)请注意,在处理超声波模块。有很多敏感表面贴装器件在其背面。
4)通过这些文章:
到8051七段显示器的接口,
延迟使用8051的定时器,
软件延时程序,用8051。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。