测温和超声波模块

该代码段涉及超声波模块的数据读取方法,包括设置管脚、初始化波形、读取时间及转换为距离值。在读取数据时,为了防止错误,加入了4us的延时。此外,还提供了温度模块的相关接口,如CMOD和CH等,用于处理超声波传感器返回的时间数据并计算结果。
摘要由CSDN通过智能技术生成

温度模块2c86889e53cf44a9853fd4551ee27062.png

为了防止出现bug读数据时加入4us延时

a5feac1814a74236b27a95cabeb36a6b.png

 超声波模块b73d8b97b4504b1cb81dd7d6e809a1d9.png

2bf3c8ef71d341a1975f19e45a638c2d.png

45cafae83e10426989da30bd3fcb5862.png

63ec6bf439154f91870428f0aeb0aa6c.png

sbit Tx = P1^0;
sbit Rx = P1^1;

void Delay12us()        //@12.000MHz
{
    unsigned char i;

    i = 33;
    while (--i);
}


void Wave_Init()
{
    unsigned char i;
    for(i = 0; i < 8;i++)
    {
        Tx = 1;
        Delay12us();
        Tx = 0;
        Delay12us();
    }    
}

unsigned char Read_Wave()
{
    unsigned int time;
    CMOD = 0x00;
    CH = 0;
    CL = 0;
    Wave_Init();
    CR = 1;
    while(Rx == 1 && CF == 0);
    CR = 0;
    if(CF == 0)
    {
        time = (CH << 8) | CL;
        return time * 0.017;
    }else
    {
        CF = 0;
        return 0;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值