搜索
bottom↓
回复: 4

求51单片机C程序----超声测距程序(一个发射两个接受)

[复制链接]

出0入0汤圆

发表于 2013-4-11 10:18:07 | 显示全部楼层 |阅读模式
有哪位大神帮帮忙,急!!!!!!!!!!!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出70入0汤圆

发表于 2013-4-16 14:45:53 | 显示全部楼层
类似的源码网上很多,楼主还是别这么直接要代码了。

出0入0汤圆

发表于 2013-4-16 14:48:51 | 显示全部楼层
又是学生党吧?

出0入0汤圆

 楼主| 发表于 2013-4-16 20:25:16 | 显示全部楼层
是求大家帮忙看看我的这个程序

#include <REGX52.H>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

sbit csbout =P1^1;   //超声波发送
sbit csbint1 =P3^2;  //左耳超声波接收
sbit csbint2 =P3^3;          //右耳超声波接收
sbit bj1 =P1^7;       //左耳报警值输出(声音)
sbit bj2 =P1^6;      //右耳报警值输出(声音)
uchar tab[10]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90};//0~9段码

sbit LED1 = P3^0;                        //数码管位驱动
sbit LED2 = P3^1;                        //数码管位驱动
sbit LED3 = P3^4;                        //数码管位驱动
sbit LED4= P3^5;                        //数码管位驱动
sbit LED5= P3^6;                        //数码管位驱动
sbit LED6 = P3^7;                        //数码管位驱动         

uchar u1[3],u2[3];

uint count1,count2,b;
char outcome1H,outcome1L,outcome2H,outcome2L;

void delay(uint a) //延时;
{
uint m;
for(m=0;m<a;m++);
}

void csbfs()                    //从P1.1发出40KHz的脉冲
{
                 csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
                 csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
                 csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
                csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
                 csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
                csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
                csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
                csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
            csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
               csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
         csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
               csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
         csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
               csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
         csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
               csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
               csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
            csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
               csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
             csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
               csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
          csbout=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
               csbout=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();                                /*40KHz超声波 */
}
       

void display1(void) //显示;
{               
        u1[0]=count1%10;
        u1[1]=(count1/10)%10;
        u1[2]=(count1/100)%10;
      
                LED4=1;LED5=1;LED6=1;
                P0=tab[u1[0]];
                LED6=0;
                delay(10);
                LED6=1;
                P0=tab[u1[1]];
                LED5=0;
                delay(10);
                LED5=1;
                P0=tab[u1[2]];
                LED4=0;
                delay(10);
                LED4=1;
                       
         
}
void display2(void) //显示;
{
        u2[0]=count2%10;
        u2[1]=(count2/10)%10;
        u2[2]=(count2/100)%10;

             LED1=1;LED2=1;LED3=1;
                P2=tab[u2[0]];
                LED3=0;
                delay(10);
                LED3=1;
                P2=tab[u2[1]];
                LED2=0;
                delay(10);
                LED2=1;
                P2=tab[u2[2]];
                LED1=0;
                delay(10);
                LED1=1;
                       
        
}

void rcsbint1() interrupt 0 //外部中断0,接收信号
{
EX0=0;
TR0=0;
outcome1H=TH0;
outcome1L=TL0;
count1=outcome1L;
count1<<=8;
count1=count1|outcome1L;
count1=count1*34/2000;
TH0=0;
TL0=0;

       
}
void rcsbint2() interrupt 2// 外部中断1,接收信号
{
EX1=0;
TR1=0;
outcome2H=TH1;
outcome2L=TL1;
count2=outcome2H;
count2<<=8;
count2=count2|outcome2L;
count2=count2*34/2000;
TH1=0;
TL1=0;
       
}

void  timer2(void) interrupt 5
{
display1();       
display2();       
}
/*void over()interrupt 1 //T0溢出为无效测量显示FFF;
{
u[0]=10;
u[1]=10;
u[2]=10;
display();
TR0=0;
}
*/

void main()
{                                                  
        csbout=0;
        TH0=0;
        TL0=0;
                TH1=0;
                TL1=0;
        TMOD=0x11;
        EA=1;
                bj1=1;
        bj2=1;
                EX0=1;
                EX1=1;
                IT0=1;
                IT1=1;
                RCAP2H=(0xFFFF-500)/256;
            RCAP2L=(0xFFFF-500)%256;
                ET2=1;
                TR2=1;
                LED1=1;
                LED2=1;
                LED3=1;
                LED4=1;
                LED5=1;
                LED6=1;
                count1=0;
                count2=0;
while(1)
{
   
          
       csbfs();
        TR0=1;
                TR1=1;
            EX0=1;
                EX1=1;
                 delay(1000);
        
}
}

出0入0汤圆

 楼主| 发表于 2013-4-16 20:26:24 | 显示全部楼层
接收后数码管只显示固定的数值,没有实时显示
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 08:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表