资源描述:
《超声波测距C程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、#include#include/***************************数码管为共阴数码管***************************/sbits0=P2^7;//个位选通sbits1=P2^6;//十位选通sbits2=P2^5;//百位选通sbits3=P2^4;//千位选通sbitdp=P0^7;//小数点sbitin=P3^2;//外部中断,接CX20106的脚sbitcsb=P3^3;//40KHz方波输出脚#definese
2、gP0//数码管的数据口为P1口#defineucharunsignedchar#defineuintunsignedint#definenop_nop_()/****************************/voidinit(void);//初始化voiddelay_nms(uintn);//延时nmsvoiddelay100us();//延时usvoiddisplay(uintdat);//4位数码管显示函数,只用了位voidtran(void);//超声波测量函数/*************
3、**************/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"
4、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)//循环测量并显
5、示{tran();//发送超声波信号测距display(dis);//显示距离}}/**********************************函数名称:初始化函数修改日期:入口参数:无返回值:无**********************************/voidinit(void){TMOD=0x01;//定时器方式用于计时TH0=0;TL0=0;/*设定T0的工作模式为*/EA=1;IT0=1;//下降沿有效,左传感器}/*******************************
6、***函数名称:延时函数修改日期:入口参数:n返回值:无**********************************/voiddelay_nms(uintn){uchari;while(n--){for(i=123;i>0;i--);}}/**********************************函数名称:显示函数修改日期:入口参数:data返回值:无**********************************/voiddisplay(uintdat){uchari,j,k;//
7、分别为百十个位的缓存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;}/***********************
8、***********函数名称:超声波测量函数修改日期:入口参数:无返回值:无**********************************/voidtran(void){uchari;floattemp;TH0=0;TL0=0;//清定时TR0=1;//开定时for(i=8;i>0;i--){csb=!csb;nop;nop;nop;nop;nop;nop;nop;nop;nop;}csb=1;delay_nms(1)