51单片机超声波测距程序.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

51单片机超声波测距程序

//超声波测距,测距范围2cm-400cm;

#includereg52.h

#includeintrins.h

#defineuintunsignedint

#defineucharunsignedchar

sbittrig=P1^0;

sbitecho=P3^2;

sbittest=P1^1;//测试灯

sbitdula=P2^6;

sbitwela=P2^7;

sbitBEEP=P2^3;

uinttimeh,timel,distance;

uintge,shi,bai,xiaoshu,flag,time;

/*共阴极数码管不带小数点代码表*/

ucharcodelist[]={

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

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

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

0x39,0x5e,0x79,0x71};

/*共阴极数码管带小数点代码表*/

ucharcodelisttwo[]={

0xbf,0x86,0xdb,0xcf,0xe6,

0xed,0xfd,0x87,0xff,0xef};

/*长延时函数*/

voiddelay(uintz)

{

uintx,y;

for(x=z;x0;x--)

for(y=100;y0;y--);

}

/*短延时函数*/

voiddelay20us()

{

uchara;

for(a=0;a100;a++);

}

/*报警函数*/

voidbeer()

{

//BEEP=0;

delay(10);

}

/*定时器初始化*/

voidinitime0()

{

TMOD=0x01;

TH0=0;

TL0=0;

EA=0;

ET0=0;

EX0=0;

}

/*外部中断函数*/

voidestern()interrupt0

{

timeh=TH0;

timel=TL0;

beer();

flag=1;//进入中断,标志位就置1

EX0=0;//同时关断外部中断和定时器

TR0=0;

}

/*显示函数*/

voiddisplay(distance)

{

bai=distance/1000;

shi=distance%1000/100;

ge=distance%100;

xiaoshu=distance%10;

dula=1;

P0=list[xiaoshu];

dula=0;

P0=0xff;

wela=1;

P0=0xf7;

wela=0;

delay(2);

dula=1;

P0=listtwo[ge];

dula=0;

P0=0xff;

wela=1;

P0=0xfb;

wela=0;

delay(2);

dula=1;

P0=list[shi];

dula=0;

P0=0xff;

wela=1;

P0=0xfd;

wela=0;

delay(1);

dula=1;

P0=list[bai];

dula=0;

P0=0xff;

wela=1;

P0=0xfe;

wela=0;

delay(

文档评论(0)

188****9648 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档