📄 超声波.c
字号:
# include<reg51.h>
#include<intrins.h>
#include <absacc.h>
#define unit unsigned int
#define uchar unsigned char
sbit P34=P3^4;
sbit P10=P1^0;
void send();
void receive();
void init_io();
void init_com();
void mDelay(unsigned int Delay);
void delay_us(uchar time);
void qidongcs();
uchar TL0data,TH0data; //T0计数值
uchar recdata=0; //从上位机接收到的数据
uchar recFlag=0;//接收回波标志
unit DlyT;
void int1()interrupt 2
{
TR0=0;
recFlag=1;
}
void main()
{
init_io();
init_com();
for(;;)
{
//P10=!P10;
qidongcs();
//////////////////延时1.765ms
mDelay(1);
/* DlyT=200;//230;
while(--DlyT);*/
/////////////////////
EX1=1;
mDelay(45);
EX1=0;
if(recFlag==1)
{
//P10=!P10;
recFlag=0;
TH0data=TH0;
TL0data=TL0;
send();
//mDelay(100);
}
}
}
void init_io()
{
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x0f;
}
void init_com()
{
SCON=0x50; //选择串口工作方式1 允许接收
PCON=0x80; //波特率加倍
TMOD=0x21; //定时器1工作方式2(8位自动重装)//T0设置为方式1,16位定时器
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -