1、基于 CX20106 超声波测距的调试 (提供拆机件 CX20106 芯片:3 元/ 片)在超声测距中,一般采用 40KHz 的信号。可以通过硬件来产生,比如 555,CMOS 电路 CD4046。还可以通过软件来产生。本方案中采用 单片机软件产生。关于 40KHz 信号的产生。如果用单片机定时器中断产生,要特别注意中断服务程序的编写。中断服务不能过长,如果过长,单片机在前一个中断服务程序还没执行完之前,又会有下一个中断产生。所以,单片机将会产生一个错误频率的信号。往往这个错误的频率会比预期的值偏低。比如程序原本要产生一个 40KHz 的信号。实际单片机只能产生一个 20KHz 左右的信号。(
2、金聚宝电子提供的程序仅供参考 )40KHz 的信号可以用一个汇编语言子程序来产生。程序如下:NAME CS_T? PR? CS_T? CS_T SEGMENT CODEPUBLIC CS_TRSEG ?PR?CS_T?CS_TCS_T: PUSH ACCMOV TH0, #00HMOV TL0, #00HMOV A, #4DSETB TR0CST_1: CPL P1.0NOP NOP NOPNOP NOP NOPNOP NOP NOPDJNZ ACC,CS_T1POP ACCRET;END平常 C 语言用的很多,我个人觉得 C 语言更富有亲切感。40KHz 的信号可以用一个汇编语言子程序来产生
3、。程序如下/*输入整型 i,从 p3_5 端口产生 i/2 个方波 */cs_t(unsigned char i)while(i-)P3_5=!P3_5;Some_Nop_T(); 以下为超声波的接收电路关于 CX20106 的调试。其内部结构如图 1图 1在图 2 中R4 和 C3 是控制 CX20106 内部放大增益,R5 控制带通滤波器的中心频率。一般取 R4=4 欧,C3=1Uf.。其余元件按图 2 取值。US_T 为超声波接收头,OUT_INT 当收到超声波是产生一个下降沿,接到单片机的外部中断上。一些资料表示,在 CX20106 的 1 脚输入 0.2mV 的信号。在 5 脚将会输
4、出滤波后放大的有用信号。在实测中,5 脚并没有一个放大的信号输出。实际调试的时候只关心芯片的 7 脚在收到信号是是否有一个下降沿产生。在本电路的调试中,如果一直发射超声波,在 7 脚将会有周期的低电平产生。不会像通常认为的那样,即一直发射信号时,7 脚一直为低电平。这是刚用 CX20106 时的一个常见错误。只要通过单片机来来计算发射信号时到收到信号是产生下降沿这段时间的长度,再通过数学计算,转化为距离,然后在显示器上显示。提供拆机件:CX20106 芯片:3 元/只 TEL:0371-66987238 13733178417再加点资料,我已试验好几遍了,大虾们帮我看看阿CX20106 的总放
5、大增益约为 80dB,以确保其脚输出的控制脉冲序列信号幅3.5-5V 范围内。总增益大小由脚外接的 R1, C1 决定,R1 越小或 C 越大,增益越高。C1 取值过大时将造成频率响应变差,通常取为 luf,C2 为检波电容,一般取 3.3UF, CX20106 采用峰值检波方式,当 C2 容量较大时将变成乎均值检波,瞬态响应灵敏度会变低,C2 较小时虽然仍为峰值检波,且瞬态响应灵敏度很高,但检波输出脉冲宽度会发生较大变动,容易造成解调出错而产生误操作。R2 为带通滤波器中心频率 f0 的外部电阻,改变 R2 阻值,可改变载波信号的接受频率,当 f0 偏离载波频率时,放大增益会显著下降,C3 为积分电容,一般取 330PF,取值过大,虽然可使抗干扰能力增强,但也会使输出编码脉冲的低电平持续时间增长,造成遥控距离变短。脚为输出端,CX20106 处理后的脉冲信号由脚输出给后续电路在加工处理推动负载工作。