⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ultrasonic.c

📁 超声波传感器在凌阳16位单片机上的C语言程序
💻 C
字号:
#include "spce061a.h"
#include "MyBit.h"

#define Send_ctr	A8     	//高有效
#define Receive		A9		//接收到有下降沿	

#define Send_ctr_Dir	A8_Dir     	//高有效
#define Receive_Dir		A9_Dir		//接收到有下降沿

void UltrasonicInit(void)
{
	Send_ctr_Dir=1;//设置成输出
	Receive_Dir=0;//设置成输入
	delay_xus(1);
	Send_ctr=0;//不发射
	Receive=1;//等待接收
	delay_xus(1);
	
	*P_TimerA_Ctrl=C_TMA1_FOSC_256|C_TMA2_1;//定时器打开
}	

unsigned int GetDistance(void)
{
	unsigned int TAlong=0;
	float T;
	float Long=0;
	Send_ctr=1;
	/*while(!Send_ctr)
	{
		Send_ctr=1;
		*P_Watchdog_Clear=1;//发射
	}*/
	*P_TimerA_Data=0;
	while(Receive)*P_Watchdog_Clear=1;//等待接收
	TAlong=*P_TimerA_Data;
	T=((float)TAlong)*(1/(49152.000/256));//放大了1000倍的时间,所以是毫秒
	Long=(340*T)/2;//毫米
	
	Send_ctr=0;
	while(Send_ctr)
	{
		Send_ctr=0;
		*P_Watchdog_Clear=1;//停止发射
	}
	return( (unsigned int)Long );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -