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

📄 071021.txt

📁 此源程序仅供参考,如果因此造成阁下损失,本人概不负责.
💻 TXT
字号:
机器人超声测距数据的采集与处理
#include <AT892051.H>
#define unit unsigned int
#define uchar unsigned char
sbit fs="P3"^0; //发送端; 
sbit h="P3"^7;
sbit l="P3"^5; //数码管位选端;
sbit m="P3"^4;
uchar tab[16]=\{0x28,0xEB,0x32,0xA2,0xE1,0xA4,0x24,0xEA,0x20,0xA0,0x60,0x25,0x3C,0x23,0x34,0x74};//段码;
uchar u[3]; //显示数组;
unit count,b;
void delay(unit a) //延时;
\{
unit m;
for(m=0;m<a;m++); 
}
void tx() //从P3.0发出40KHz的脉冲
\{
uchar n,p;
for(n=0;n<40;n++)\{
fs=1;
for(p=0;p<3;p++);
fs=0;
for(p=0;p<2;p++);
fs=0;
}
}
void display(void) //显示;
\{
for(;;)
\{
l=1;m=1;h=1;
P1=tab[u[0]];
m=0;
delay(10);
m=1;
P1=tab[u[1]];
l=0;
delay(10);
l=1;
P1=tab[u[2]];
h=0;
delay(10);
h=1;
} 
}
void rx() interrupt 0 //外部中断0,接收信号
\{
TR0=0;
count=TH0*256+TL0;
if(count<300);
if(count>=300) 
\{
b=(17*count)/1000;
u[0]=b%10;
u[1]=(b/10)%10;
u[2]=(b/100)%10;
display();
}
}
void over()interrupt 1 //T0溢出为无效测量FFF;
\{
u[0]=15;
u[1]=15;
u[2]=15;
display();
}
void main()
\{
fs=0;
delay(8600);
TH0=0;
TL0=0;
TMOD=0x01;
TR0=1;
EA=1;
ET0=1;
PT0=1;
tx();
IT0=1;
IE=0x83;

}

⌨️ 快捷键说明

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