


如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
(精品word)用51单片机实现HC-SR04超声波测距程序 (精品word)用51单片机实现HC-SR04超声波测距程序 (精品word)用51单片机实现HC-SR04超声波测距程序 #include<reg52。h>//包括一个52标准内核的头文件 #defineucharunsignedchar//定义一下方便使用 #defineuintunsignedint #defineulongunsignedlong sbitTrig=P1^0;//产生脉冲引脚 sbitEcho=P3^2;//回波引脚 sbittest=P1^1;//测试用引脚 ucharcodeSEG7[10]={~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90};//数码管0—9 uintdistance[4];//测距接收缓冲区 ucharge,shi,bai,temp,flag,outcomeH,outcomeL,i;//自定义寄存器 bitsucceed_flag;//测量成功标志 //********函数声明 voidconversion(uinttemp_data); voiddelay_20us(); voidmain(void)//主程序 { uintdistance_data,a,b; ucharCONT_1; i=0; flag=0; test=0; Trig=0;//首先拉低脉冲输入引脚 TMOD=0x11;//定时器0,定时器1,16位工作方式 TR0=1; //启动定时器0 IT0=0;//由高电平变低电平,触发外部中断 ET0=1;//打开定时器0中断 EX0=0;//关闭外部中断 EA=1;//打开总中断0 while(1)//程序循环 { EA=0; Trig=1; delay_20us(); Trig=0;//产生一个20us的脉冲,在Trig引脚 while(Echo==0);//等待Echo回波引脚变高电平 succeed_flag=0;//清测量成功标志 EX0=1;//打开外部中断 TH1=0;//定时器1清零 TL1=0;//定时器1清零 TF1=0;// TR1=1;//启动定时器1 EA=1; while(TH1〈30);//等待测量的结果,周期65.535毫秒(可用中断实现) TR1=0;//关闭定时器1 EX0=0;//关闭外部中断 if(succeed_flag==1) { distance_data=outcomeH*256+outcomeL; distance_data=(distance_data*1.87)/100; }//为什么除以58等于厘米,Y米=(X秒*344)/2 //X秒=(2*Y米)/344==》X秒=0。0058*Y米==》厘米=微秒/58 if(succeed_flag==0) { distance_data=0;//没有回波则清零 test=!test;//测试灯变化 } /******************************************** 每循环3次就显示结果一次 *********************************************/ a=distance_data; if(b==a)CONT_1=0; if(b!=a)CONT_1++; if(CONT_1>=3) {CONT_1=0; b=a; conversion(b); } } } //*************************************************************** //外部中断0,用做判断回波电平 INTO_()interrupt0//外部中断是0号 { outcomeH=TH1;//取出定时器的值 outcomeL=TL1;//取出定时器的值 succeed_flag=1;//至成功测量的标志 EX0=0;//关闭外部中断 } //**************************************************************** //定时器0中断,用做显示 timer0()interrupt1//定时器0中断是1号 { TH0=0xfd;//写入定时器0初始值 TL0=0x77; switch(flag) {case0x00:P0=ge;P2=0xfe;flag++;break; case0x01:P0=shi;P2=0xfd;flag++;break; case0x02:P0=bai;P

17****21
实名认证
内容提供者


最近下载