标题:
STC12C5A60S2超声波测距源程序
[打印本页]
作者:
beibeixin
时间:
2017-10-13 00:21
标题:
STC12C5A60S2超声波测距源程序
单片机源程序如下:
/*
超声波测距原理:
本产品使用方法简单,一个控制口发一个10US以上的高电平,
就可以在接收口等待高电平输出.一有输出就可以开定时器计时,
当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,
方可算出距离.如此不断的周期测,就可以达到你移动测量的值了~~
*/
// 操作方法一:在触发口发过20us高电平脉冲后,接收口打开高电平检测中断,一旦进入检测中断就打开定时中断和开定时器,开始计时,检测中断关闭,在定时中断里需要判断接收口是否为低电平
#include <STC12C5A60S2.h>
#include <string.h>
unsigned char abc;
sbit pulse=P2^5;
sbit RXD2_MCU=P4^2; //trig触发信号
sbit TXD2_MCU=P4^3; //echo回应信号
void delay(void) //m给定多少,大致就是多少us延迟
{
unsigned int m;
for(m=1;m<=200;m++)
{;}
}
void delay2s(void) //m给定多少,大致就是多少us延迟
{
unsigned int m,n,k;
for(k=1;k<=40;k++)
for(m=1;m<=200;m++)
for(n=1;n<=200;n++);
}
void delay100us(void) //m给定多少,大致就是多少us延迟
{
unsigned int m;
for(m=1;m<=10;m++)
{;}
}
void main(void)
{
RXD2_MCU=0;
delay2s();
delay2s();
delay2s();
delay2s();
delay2s();
RXD2_MCU=1;
delay100us();
RXD2_MCU=0;
while(1)
{
#if 0
pulse=1;
delay();
pulse=0;
delay();
#endif
}
}
复制代码
所有资料51hei提供下载:
http://www.51hei.com/bbs/dpj-95918-1.html
作者:
mountain46
时间:
2017-10-14 11:51
楼主,你这是抄我的啊,。。。。算了,你展示吧。。。
作者:
旧城以西的故事
时间:
2018-3-5 11:08
代码注释明显有问题,抄的时候注意。要对代码理解完善。最好加上自己的想法。
作者:
黑大哥
时间:
2019-7-31 18:28
不行啊你这个,有一点坑,只有延时了,定时器清零还有计算公式呢?
作者:
duyes
时间:
2019-8-1 17:24
那这个原创帖在哪里呢?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1