超声波测距离51单片机程序.docx
- 文档编号:23393916
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:8
- 大小:1.40MB
超声波测距离51单片机程序.docx
《超声波测距离51单片机程序.docx》由会员分享,可在线阅读,更多相关《超声波测距离51单片机程序.docx(8页珍藏版)》请在冰豆网上搜索。
超声波测距离51单片机程序
超声波测距离,51单片机程序
程序:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable[]={"dis"};
ucharcodetable1[]={""};
unsignedcharcodeASCII[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};
sbitrs=P2^4;
sbitlcden=P2^6;
sbitecho=P1^7;
sbittrig=P1^6;
staticunsignedcharDisNum=0;//显示用指针
unsignedinttime=0;
unsignedlongS=0;
bitflag=0;
unsignedchardisbuff[4]={0,0,0,0,};
voiddelay(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)//i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
voidwrite_com(ucharcom)
{//写液晶命令函数
rs=0;
lcden=0;
P0=com;
delay(3);
lcden=1;
delay(3);
lcden=0;
}
voidwrite_date(uchardate)
{//写液晶数据函数
rs=1;
lcden=0;
P0=date;
delay(3);
lcden=1;
delay(3);
lcden=0;
}
voidinit()
{//初始化函数
ucharnum;
lcden=0;
rs=0;
write_com(0x38);//1602液晶初始化
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)//写入液晶固定部分显示
{
write_date(table[num]);
delay(3);
}
write_com(0x80+0x40);
for(num=0;num<5;num++)
{
write_date(table1[num]);
delay(3);
}
}
voidwrite_dianya(ucharadd,chardate)
{//1602液晶刷新时分秒函数4为时,7为分,10为秒
charbai,shi,ge;
bai=date%1000/100;
shi=date%1000%100/10;
ge=date%1000%10%10;
write_com(0x80+0x40+add);
write_date(0x30+bai);
write_date(ASCII[10]);
write_date(0x30+shi);
write_date(0x30+ge);
write_date(ASCII[12]);
}
voidConut(void)
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
S=(time*1.7)/100+2;//算出来是CM
}
voidStartModule()//启动模块
{
trig=1;//启动一次模块
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
trig=0;
}
voidDelay400Ms(void)
{
unsignedcharTempCycA=5;
unsignedintTempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
}
}
voidmain()
{
init();
Delay400Ms();//启动等待,等LCM讲入工作状态//LCM初始化c++)
Delay400Ms();//延时
TMOD=0x01;//设T0为方式1,GATE=1;
TH0=0;
TL0=0;
ET0=1;//允许T0中断
EA=1;
while
(1)
{
StartModule();//启动模块
while(!
echo);//当RX为零时等待
TR0=1;//开启计数
while(echo);//当RX为1计数并等待
TR0=0;//关闭计数
Conut();//计算
delay(80);//80MS
write_dianya(0,S);
delay(5);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超声波 测距 51 单片机 程序