用户名
UID
Email
自动登录
找回密码
密码
登录
立即注册
首页
Portal
论坛
BBS
下载
官方淘宝店
搜索
万博网页版登陆页派论坛
»
论坛
›
电子世界论坛
›
电子综合区
›
HC-SR04测距程序(调试通过)
返回列表
HC-SR04测距程序(调试通过)
树老大
发表于 2014-1-2 17:21:28
|
显示全部楼层
|
阅读模式
#include<reg51.h>
#include<string.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit shizhong=P0^1; //164 时钟线
sbit shuju=P0^0; //164 数据线
sbit chufa=P2^0; //触发信号输入端
unsigned int PWMBJ,i,m,j,k,juli,juli1,juli2;
unsigned char code szi[]={0XEE,0X82,0XDC,0XD6,0XB2,0X76,0X7E,0XC2,0XFE,0XF6};//控 制字 0~9
uint T;
void delay(uint z)//延时子程序 { uint x,y; for(x=10;x>0;x--) for(y=z;y>0;y--); }
void xianshi(uint x,uint y) //显示子程序
{ char aa; int c; m=y%10;//个位
k=y/10;//十位
j=x%10;//次高位
i=x/10;//最高位
for (c=0;c<4;c++)//送四个数
{ if(c==0) aa=szi[i];
else if(c==1) aa=szi[j];
else if(c==2)
aa=szi[k]&0xFE;
else aa=szi[m];
for(i=0;i<8;i++) //每个数送八位
{ shizhong=0; //产生下降沿
shuju=aa&1;
aa=aa>>1; //右移一位
shizhong=1; }
}
delay(2000); }
void main()
{
TMOD=0x19;
EA=1; //开总中断
TR0=1;//启动定时器 0
EX0=1; //开外部中断 0
IT0=1; //下降沿中断
while(1)
{ chufa=1;
_nop_();
_nop_(); _
nop_();
_nop_(); _
nop_();
_nop_();
_nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); chufa=0;
juli=0.17*T;//计算距离()
juli1=juli/100;//高二位
juli2=juli%100;//第二位
xianshi(juli1,juli2);//调用现实函数
}
}
void int0()interrupt 0 //回响输出端高电平宽度测量 (上升沿到来时候开始计时, 下降沿到来 进入外部中断,关闭计时器,停止计时) { T=(TH0*256+TL0);//计算定时器内的测量值 TH0=0; //定时器清 0 TL0=0; }
复制代码
程序
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
手机版
|
Archiver
|
万博网页版登陆页派论坛
(
粤ICP备15075382号-1
)