找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2324|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

超聲波測(cè)距(串口通迅?jìng)渫?/span>

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:60076 發(fā)表于 2014-5-2 20:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg51.h>    //包含單片機(jī)寄存器的頭文件
#include<intrins.h>  //包含_nop_()函數(shù)定義的頭文件
#define uchar unsigned char
#define uint unsigned int
uchar falg,date_h,date_l,bb;
uint date;
unsigned char code table[]={0x3f,
0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,
0x71,0x80,0xc0};
sbit FM=P2^3;
void ranging();
void delay(uint z);
void display();
void main()
{
TMOD=0x20;  //設(shè)置定時(shí)器1為方式2;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SM0=0;
SM1=1;  //設(shè)置串口為方式1;
REN=1;  //接收使能;
EA=1;
ES=1;  //打開(kāi)串口中斷;
P1=0x00;
P0=0x3f;
while(1)
{
  ranging();
  if(falg==1)
   display();
}
}

void serial() interrupt 4  //串口中斷子程序;
{
bb++;
if(bb==1)
{
  date_h=SBUF;             //
  RI=0;                //接收溢出位RI軟件清零;
}
if(bb==2)
{
  date_l=SBUF;             //
  date=(date_h<<8)+date_l;
  bb=0;
  falg=1;
  RI=0;                //接收溢出位RI軟件清零;
}
else
  falg=0;
}
void ranging() //測(cè)距子程序
{
ES=0;      //關(guān)串口中斷;
SBUF=0x55;  //
while(!TI); //等待數(shù)據(jù)發(fā)完;
TI=0;  //發(fā)送溢出位TI軟件清零;
ES=1;      //開(kāi)串口中斷;
}

void delay(uint z)
{
while(z--);
}
void display()
{
uchar wan,qian,bai,shi,ge;
wan=date0000/10000;
qian=date000/1000;
bai=date00/100;
shi=date0/10;
ge=date;
P0=table[wan];
P1=0xf7;
delay(20);
P1=0xff;
P0=table[qian];
P1=0xef;
delay(20);
P1=0xff;
P0=table[bai];
P1=0xdf;
delay(20);
P1=0xff;
P0=table[shi];
P1=0xbf;
delay(20);
P1=0xff;
P0=table[ge];
P1=0x7f;
delay(20);
P1=0xff;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表