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

📄 基于单片机的高精度超声波测距电路源程序.txt

📁 基于单片机的超声波开发的源程序
💻 TXT
字号:
//超声波发射电路电路源程序
#include <AT89X52.H> //头文件
#include <stdio.h>

int n=0; //定义计数变量;
int value=0;
int scm; //定义数码管厘米位
int sfm; //定义数码管分米位
int sm; //定义数码管米位
int LEDDATE[]={*,*,*,*,*,*,*,*,*,*}; //这里没有编码,请大家根据自己的数码管连接情况进行编码 
void initial(void); //初始化子程序
void delay(short i); //延时子程序
void display(void ); //数码管显示子程序
void tiqu (void); //提取数据子程序

void main (void) ; //程序主函数
{
initial( );
while(1)
{
display( );
}
}
void initialt(void) //初始化子程序
{
P3_1=0;

IE=0X8A;
TMOD=0xAA; //TO、T1都是方式2,8位定时器、带门控

TL1=0XC5; //T1计数频率为17.05KH
TH1=0XC6; 
TR1=1; //启动T1;

TL0=0XE7; //T0发射计数频率为40KH
TH0=0XE8; 
TR0=1; //启动T0;


void display(void)//数码管显示子程序

{

tiqu ();//提取出数码显示各个位
P1=LEDDATE[scm];
P3_7=1; 
P1_0=0; //显示“厘米”位
delay(3); //延时

P1=LEDDATE[sfm];
P3_7=0; 
P1_0=1; //显示“分米”位
delay(3); //延时

P1=LEDDATE[sm];
P3_7=0; 
P1_0=0; //显示“米”位
delay(3); //延时

P3_7=1; 
P1_0=1; //关显示;
//以上语句则在数码管上显示各个数字

}
void timer0_ISR () interrupt 1 { } //T0 40KH发射批频率

{
P3_0^=1;
}

void timer1_ISR () interrupt 3 { } //T1 计数频率17.05KHZ 
{
n++;
if (P3_1==1)
{
value=n;
n=0;
}

}
void tiqu (void)
{
sm=value/100; //提取出“米”位
sfm=(value-sm*100)/10; //提取出“分米”位
scm=value-sm*100-sfm*10; //提取出“厘米”位

}
void delay(short i) //短暂延迟子程序
{
int j=0;
int k=0;
k=i*3;
while(j<k) j++;
}

⌨️ 快捷键说明

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