
C51超声波测距程序,采用CX20106A芯片。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
/* CX20106A 超声波发送与接收程序采用了一种独特的实现方式:单片机 AT89S52 的 P1.0 端口用于发射 40kHz 脉冲,而 P3.2(INT0)则通过中断方式接收返回脉冲。系统利用定时器 0 和定时器 1,并采用中断模式进行时间控制;定时器 1 以 8 位自动重装模式工作,其定时间隔为 12.5 微秒,而定时器 0 则以 16 位定时器模式运行,其定时间隔约为 65 毫秒。超声波的接收过程依赖于外部中断 INT0,当接收到回波脉冲后,外部中断程序会计算出距离。根据超声波的传播距离公式(65ms 超声波传播距离约65×10^(-3) × 340m/s =22.1m),表明该系统能够精确测量到远超 CX20106A 标准测量的范围。
40kHz 的信号周期 T 为 1/40KHz = 25 微秒,采用方波形式且具有高占空比(50%),高低电平的宽度分别对应于 0.5T = 12.5 微秒。为了确保计时精度,定时器 T1 被设置为以 8 位自动重装模式工作(定时间隔为 12.5 微秒)。在单片机使用频率为 12MHz 的晶振的前提下,通过计算得出:当 X = 0xF3 时,(2^8-X)×12/12 us =12.5us;当 X=0xF4时,(2^8-X)×12/12 us = 也等于大约是 = 因此, 选择 X=0xF3 或 X=0xF4 都能够满足计时要求。
测量的距离数值随后显示在四位数字管上,并以厘米 (cm) 为单位呈现。*//*单片机 P2 口连接了74HC138 三态译码器,具体配置如下:P2.3 连接到74HC138 的 /EI 引脚、P2.2 连接到74HC138 的 A2 引脚、P2.1 连接到74HC138 的 A1 引脚、以及 P2.0 连接到74HC138 的 A0 引脚,用于译码器输出 Y0 到 Y7 这些控制信号。这些信号均采用低电平有效的方式来选择从数字管中显示数字的个数, 具体是选择从数字管中显示数字的个数, 其中包含两个四位一体数码管 LG3641BH ,总共使用了八个数码管。数码管的数据口连接到 P0 口。数码管采用了共阳四位一体结构。该程序的主要功能包括:译码器输出段选信号,从而选择从一到八个数码管中显示数据;dispaly(uint d) 函数将输入的距离值 d (单位为米) 分别显示在千位、百位、十位和个位上, 并依次呈现于不同的数码管上 (通常是第 1 到第 3 个数码管)。显示原理如下:首先确定需要显示的段数;然后通过 P2 口的译码器选择要显示的位数;接着设置一个短暂的延时时间(通常在 1-2ms 内),以避免出现闪烁现象或亮度过低的情况;最后取消段选信号并消除隐现效果。若需要显示多个段位的数值, 则需要重复执行以上四个步骤.**/
全部评论 (0)


