超声波测距C程序.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:5 大小:36KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

超声波测距C程序.doc

超声波测距C程序.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include<AT89X51.H>#include<intrins.h>/***************************数码管为共阴数码管***************************/sbits0=P2^7;//个位选通sbits1=P2^6;//十位选通sbits2=P2^5;//百位选通sbits3=P2^4;//千位选通sbitdp=P0^7;//小数点sbitin=P3^2;//外部中断,接CX20106的脚sbitcsb=P3^3;//40KHz方波输出脚#definesegP0//数码管的数据口为P1口#defineucharunsignedchar#defineuintunsignedint#definenop_nop_()/****************************/voidinit(void);//初始化voiddelay_nms(uintn);//延时nmsvoiddelay100us();//延时usvoiddisplay(uintdat);//4位数码管显示函数,只用了位voidtran(void);//超声波测量函数/***************************/uintdis,H=100,L=20;ucharflag=0,high_time,low_time,m=0;ucharleddata[]={0x3F,//"0"0x06,//"1"0x5B,//"2"0x4F,//"3"0x66,//"4"0x6D,//"5"0x7D,//"6"0x07,//"7"0x7F,//"8"0x6F,//"9"0x77,//"A"0x7C,//"B"0x39,//"C"0x5E,//"D"0x79,//"E"0x71,//"F"0x76,//"H"0x38,//"L"0x37,//"n"0x3E,//"u"0x73,//"P"0x5C,//"o"0x40,//"-"0x00,//熄灭0x00//自定义};voiddelay100us(){uchari;for(i=0;i<50;i++);}/**********************************函数名称:主函数修改日期:入口参数:无返回值:无**********************************/voidmain(void){init();while(1)//循环测量并显示{tran();//发送超声波信号测距display(dis);//显示距离}}/**********************************函数名称:初始化函数修改日期:入口参数:无返回值:无**********************************/voidinit(void){TMOD=0x01;//定时器方式用于计时TH0=0;TL0=0;/*设定T0的工作模式为*/EA=1;IT0=1;//下降沿有效,左传感器}/**********************************函数名称:延时函数修改日期:入口参数:n返回值:无**********************************/voiddelay_nms(uintn){uchari;while(n--){for(i=123;i>0;i--);}}/**********************************函数名称:显示函数修改日期:入口参数:data返回值:无**********************************/voiddisplay(uintdat){uchari,j,k;//分别为百十个位的缓存i=dat/100;//百位j=dat%100/10;//十位k=dat%100%10;//个位s3=1;s2=0;s1=1;s0=1;seg=~leddata[i];dp=0;delay_nms(2);dp=1;s2=1;s3=1;s2=1;s1=0;s0=1;seg=~leddata[j];delay_nms(2);s1=1;s3=1;s2=1;s1=1;s0=0;seg=~leddata[k];delay_nms(2);s0=1;}/**********************************函数名称:超声波测量函数修改日期:入口参数:无返回值:无**********************************/void