基于89C51的超声波测距程序逐句注释.txt

上传人:b****3 文档编号:2490813 上传时间:2022-10-30 格式:TXT 页数:4 大小:4.56KB
下载 相关 举报
基于89C51的超声波测距程序逐句注释.txt_第1页
第1页 / 共4页
基于89C51的超声波测距程序逐句注释.txt_第2页
第2页 / 共4页
基于89C51的超声波测距程序逐句注释.txt_第3页
第3页 / 共4页
基于89C51的超声波测距程序逐句注释.txt_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于89C51的超声波测距程序逐句注释.txt

《基于89C51的超声波测距程序逐句注释.txt》由会员分享,可在线阅读,更多相关《基于89C51的超声波测距程序逐句注释.txt(4页珍藏版)》请在冰豆网上搜索。

基于89C51的超声波测距程序逐句注释.txt

/*�٣��ó����ǿ���ʹ�õij�����������û��ʹ���ⲿ�жϣ�

����T1�ж���ʹ��һ��ʱ�䣬�ᵼ�����Ľ��S����

��������ǰ�main�����е�while��TX)�����ⲿ�ж�0�С�

�����������ʾ�����������Բ�ʹ��*//

//hc-sr04���������ģ��DEMO����

//���ߣ�ģ��TRIG��P1.2ECH0��P1.1

#include //���������ļ�

#include

unsignedinttime=0;

unsignedinttimer=0;

unsignedlongS=0;//������ʾ������õ��ľ���

bitflag=0;//�ж��Ƿ����

sbitdula=P2^6;

sbitwela=P2^7;//�����������ʾ

sbitRX=P1^1;//echo

sbitTX=P1^2;//trig

sbitD5=P1^4;//���Բ�Ҫ��echo�ߵ�ƽʱ����D5��

unsignedlongx;//�����������ʾ

unsignedcharcodetable[]={//���������

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71

};

voidDisplay(unsignedlongnum);

voidDelay(unsignedintz);//z=1�����1ms

voidConut(void)///////////�������

{

time=TH0*256+TL0;//��������㵽��ʱ�䣬����ʱ�䣬��Ӧ���ٳ���

//12/11.0593M��һ���������ڣ�ʱ��Ӧ����time*12/11.0592

TH0=0;//��ʱ��0�ij�ʼֵΪ0

TL0=0;

S=(time*1.845)/100;//�������CM

// S=(time*1.845)/10;//�������mm

//time*12*170/(11.0592*1000)mm=time*1845/10000mm

if(S>=500)//������5m����500cm

S=888888;

if(flag==1)//�ж��Ƿ����

{S=888888;

flag=0;

TH0=0;

TL0=0;

}

}

/********************************************************/

voidzd0()interrupt1 //T0�ж��������������,������෶Χ

{

flag=1; //�ж������־

}//��������Ҫ�ļ�ʱ0�жϣ�TH0��TL0��ʼֵΪ0

/********************************************************/

voidzd3()interrupt3 //T1�ж�����ɨ������ܺͼ�800MS���ģ��

{//���Ǽ�ʱ��1�ж�

TH1=0xf8;//����ֵ��Ӧ����2ms��

TL1=0x30;

timer++;

if(timer>=400)

{

timer=0;

TX=1; //800MS���һ��ģ��

Delay(30);//һ�γ������ź�ʱ��30ms

TX=0;

}

}

/*********************************************************/

voidmain(void)

{

TMOD=0x11; //��T0Ϊ��ʽ1��GATE=1

TH0=0;//Ŀ�Ķ������ж�T0��T1

TL0=0;//�ж�0��ʼ��

TH1=0xf8; //2MS��ʱ

TL1=0x30;

ET0=1;//����T0�ж�

ET1=1; //����T1�ж�

TR1=1; //�����ʱ��

EA=1; //�������ж�

while

(1)

{

while(!

RX); //��RXΪ��ʱ�ȴ�����echoΪ�͵�ƽ

TR0=1; //�������

D5=0;//���Բ�Ҫָʾ��

while(RX); //��RXΪ1�������ȴ�

TR0=0; //�رռ���

D5=1;//���Բ�Ҫָʾ��

Conut(); //����

Display(S);//�������ʾ

}

}

voidDisplay(unsignedlongnum)//�����Ӻ�����������ʾ��λ��

{

//�����Ӻ���ǰ����Ҫ��main����ǰ������λѡ�Ͷ�ѡ

/*����

sbitdula=P2^6;

sbitwela=P2^7;

*/

unsignedinttemp;//�����ӳ�for����

unsignedcharshiwanwei,wanwei,qianwei,baiwei,shiwei,gewei;

//���������λ����ʮ��λ����λ

shiwanwei=num/100000;

wanwei=num%100000/10000;

qianwei=num%10000/1000;

baiwei=num%1000/100;

shiwei=num%100/10;

gewei=num%10;

wela=1;

P0=0xdf;//11111011//λѡ��λ

wela=0;

dula=1;

P0=table[gewei];

dula=0;

for(temp=100;temp>0;temp--);

if(shiwanwei!

=0||wanwei!

=0||qianwei!

=0||baiwei!

=0||shiwei!

=0)

{//�жϸ�λ�Ƿ�Ϊ0��Ϊ0�Ļ�����ʾ��λ��0

wela=1;

P0=0x6f;//11110110//λѡʮλ

wela=0;

P0=0xff;

dula=1;

P0=table[shiwei];

dula=0;

for(temp=50;temp>0;temp--);

}

if(shiwanwei!

=0||wanwei!

=0||qianwei!

=0||baiwei!

=0)

{

wela=1;

P0=0x77;//11101110//λѡ��λ

wela=0;

P0=0xff;

dula=1;

P0=table[baiwei];

dula=0;

for(temp=50;temp>0;temp--);

}

if(shiwanwei!

=0||wanwei!

=0||qianwei!

=0)

{

wela=1;

P0=0x7b;//11011110//λѡǧλ

wela=0;

P0=0xff;

dula=1;

P0=table[qianwei];

dula=0;

for(temp=50;temp>0;temp--);

}

if(shiwanwei!

=0||wanwei!

=0)

{

wela=1;

P0=0x7d;//10111110//λѡ��λ

wela=0;

P0=0xff;

dula=1;

P0=table[wanwei];

dula=0;

for(temp=50;temp>0;temp--);

}

if(shiwanwei!

=0)

{

wela=1;

P0=0x7e;//01111110//λѡ��λ

wela=0;

P0=0xff;

dula=1;

P0=table[shiwanwei];

dula=0;

for(temp=50;temp>0;temp--);

}

}

voidDelay(unsignedintz)//��������z��ֵΪ1�Ͷ�Ӧ1ms

{

unsignedinta,b;

for(a=z;a>0;a--)

for(b=110;b>0;b--);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1