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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

超聲波測距程序

作者:藍夢荒   來源:本站原創   點擊數:  更新時間:2013年12月08日   【字體:

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

/*******************************************************************************************
程序內容:超聲波測距
有待改善:10cm內的物體無法測量,會存在盲點,當采用stc89之類的單片機時候數碼管會比較暗,不過反應速度并沒有影響
優點:反應速度很快,實時傳遞距離信息并數碼管顯示。
*******************************************************************************************/
#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;//數碼管第1位
sbit P21=P2^1;//數碼管第2位
sbit P22=P2^2;//數碼管第3位
sbit P23=P2^3;//數碼管第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}; //數碼管顯示數據
unsigned int shuju,ychu;    //距離數據
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)      //數碼管顯示
{
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; //外部中斷設置為跳變,回波引腳echo在不接受回波型號是都是低電平,所以這里必須是跳變方式
}  
void EX0_() interrupt 0   //外部0中斷處理,用以接受回波并測量時差
{
TR0=0;
if(((TH0*256+TL0)+(ychu-1)*65536)>=15000)   //排除測距模塊工作范圍之外的數據,消除干擾
{
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--) //發送回波脈沖
{
_nop_();
_nop_();
}
Trig=0;
}
ychu++;
TR0=1;
return;
}

關閉窗口

相關文章

主站蜘蛛池模板: www.天天操.com | 亚洲国产成人精品一区二区 | 国产免费看 | 91精品久久久久 | 色妞av| h视频亚洲 | 久久国产精品免费一区二区三区 | 日日日日操 | 九九热在线观看 | 国产精品久久网 | 亚洲视频一区在线观看 | 亚洲精品一区二区二区 | 亚洲网站在线观看 | 欧美v在线 | 91久久精品一区二区二区 | 国产欧美日韩在线 | av官网在线 | 午夜网 | 精品久久久久久亚洲综合网 | 国产日韩欧美一区二区在线播放 | 亚洲视频二区 | 久久av.com | 亚州影院 | 亚洲美女视频 | 久久久久久国产精品mv | 欧美精品一区二区三区视频 | 国产精品欧美一区二区三区 | 久久久无码精品亚洲日韩按摩 | 成人精品在线视频 | 色婷婷影院 | 欧美成人免费在线视频 | 亚洲精品68久久久一区 | 俺去俺来也www色官网cms | 日韩中出 | 九九热精品视频 | 天天天天操 | 欧美日韩国产精品一区二区 | 欧美一区2区三区4区公司二百 | 天天躁日日躁狠狠的躁天龙影院 | 亚洲天堂日韩精品 | 久久国产精品免费视频 |