久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

超聲波測距程序

作者:藍(lán)夢荒   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年12月08日   【字體:

模塊就是那種很常見的HC-SR04的,頭文件 12c5a.H下載: http://m.zg4o1577.cn/f/12c5a.rar

/*******************************************************************************************
程序內(nèi)容:超聲波測距
有待改善:10cm內(nèi)的物體無法測量,會存在盲點,當(dāng)采用stc89之類的單片機(jī)時候數(shù)碼管會比較暗,不過反應(yīng)速度并沒有影響
優(yōu)點:反應(yīng)速度很快,實時傳遞距離信息并數(shù)碼管顯示。
*******************************************************************************************/
#include"12c5a.h"
#include"intrins.h"
#define BIN(x0,x1,x2,x3,x4,x5,x6,x7) x0|(x1<<1)|(x2<<2)|(x3<<3)|(x4<<4)|(x5<<5)|(x6<<6)|(x7<<7);   //宏定義位
#define P(x) P2=~(1<<x);  
sbit P20=P2^0;//數(shù)碼管第1位
sbit P21=P2^1;//數(shù)碼管第2位
sbit P22=P2^2;//數(shù)碼管第3位
sbit P23=P2^3;//數(shù)碼管第4位
sbit Trig=P1^7;//超聲波測試trig
sbit Echo=P3^2;//超聲波測距echo
sbit beeps=P3^7;//蜂鳴器
unsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF}; //數(shù)碼管顯示數(shù)據(jù)
unsigned int shuju,ychu;    //距離數(shù)據(jù)
unsigned char *led;
void daley(unsigned int);
void TI0_init();
void beep();
void shumagan(unsigned int num);
void main()
{
led=LEDDis;
TI0_init();
daley(10);
while(1)
{
shumagan(shuju);
}
}
void daley(unsigned int time)   //延時
{
unsigned int i;
unsigned int j;
for(i=0;i<1000;i++)
for(j=0;j<time;j++);
}
void beep() //蜂鳴器
{
char num,nun;
beeps=0;
for(num=100;num>=0;num--)
{
beeps=~beeps;
for(nun=60000;nun>0;nun--)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
void shumagan(unsigned int num)      //數(shù)碼管顯示
{
P0=*(led+(num/1000));
P(0);
P2=0xff;
P0=*(led+((num%1000)/100));
P(3);
P2=0xff;
P0=*(led+(num%100)/10);
P(2);
P2=0xff;
P0=*(led+(num%100)%10);
P(1);
P2=0xff;
}
void TI0_init() //定時器0外部0初始化
{
Trig=0;
TMOD=BIN(1,0,0,0,0,0,0,0);
AUXR|=0xC0; //T0,T1工作在1T
EA=1;
ET0=1;
EX0=1;
TR0=1;
IT0=1; //外部中斷設(shè)置為跳變,回波引腳echo在不接受回波型號是都是低電平,所以這里必須是跳變方式
}  
void EX0_() interrupt 0   //外部0中斷處理,用以接受回波并測量時差
{
TR0=0;
if(((TH0*256+TL0)+(ychu-1)*65536)>=15000)   //排除測距模塊工作范圍之外的數(shù)據(jù),消除干擾
{
TH0=0;
TL0=0;
TR0=1;
ychu=0;
beep();
return;
}
shuju=(TH0*256+TL0)*17/1000;
TH0=0;
TL0=0;
TR0=1;
ychu=0;
return;
}
void TI0() interrupt 1   //定時器0中斷處理
{
int num; 
TR0=0;
TH0=0;
TL0=0;
if(ychu==0|ychu==3)
{
Trig=1;
for(num=30;num>0;num--) //發(fā)送回波脈沖
{
_nop_();
_nop_();
}
Trig=0;
}
ychu++;
TR0=1;
return;
}

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 成人爽a毛片一区二区免费 亚洲午夜在线观看 | 成人短视频在线观看 | 午夜在线影院 | 免费的黄色小视频 | 欧美综合网 | 成人欧美一区二区三区白人 | 午夜小视频在线观看 | 欧美国产日韩视频 | 天天操网 | 精品欧美一区二区精品久久 | 欧美一区二区在线播放 | 黄色一级免费看 | 日本高清www | 久久精品播放 | 欧美一级淫片免费视频黄 | 91日韩在线 | 中国久久久 | 国产精品久久久久久久久久辛辛 | 久久久免费观看 | 亚洲永久免费 | 精品第一页 | 日本少妇中文字幕 | 九九九色 | 日本加勒比在线观看 | 一区二区三区四区在线视频 | 五月开心激情网 | 日韩国产在线 | 神马香蕉久久 | 婷婷视频在线 | 男人的天堂在线 | 欧美日韩一区二 | 久久精品一区二区国产 | 日韩a在线观看 | 久久手机视频 | 欧美一级一级 | 日本中文字幕一区 | 国 产 黄 色 大 片 | 狠狠干婷婷 | 91国内在线| 亚洲三级视频 | 成人午夜av|