久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機超聲波測距原理圖及源程序
[打印本頁]
作者:
wangming
時間:
2015-2-11 02:02
標題:
單片機超聲波測距原理圖及源程序
本帖最后由 wangming 于 2015-2-11 02:07 編輯
這是一款單片機超聲波測距原理圖,這款單片機超聲波測距板電路簡單,制作容易,無需進行調試,電路焊焊接好后,下裝程序后即可工作。
超聲波測距原理的詳細解釋詳見:
http://www.zg4o1577.cn/mcu/2294.html
//////////////////////////////////////////////////////////////////////////////////////
// AT89C2051單片機超聲波測距程序 //
// 編寫:yuan_jia //
// QQ:111716 //
// 2014年7月 //
// 晶振:12MH //
////////////////////////////////////////////////////////////////////////////////////
#include <REG2051.H>
#define k1 P3_4
#define csbout P3_5 //超聲波發送
#define csbint P3_7 //超聲波接收
#define csbc=0.034
#define bg P3_3
unsigned char csbds,opto,digit,buffer[3],xm1,xm2,xm0,key,jpjs;//顯示標識
unsigned char convert[10]={0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9段碼
unsigned int s,t,i, xx,j,sj1,sj2,sj3,mqs,sx1;
bit cl;
void csbcj();
void delay(j); //延時函數
void scanLED(); //顯示函數
void timeToBuffer(); //顯示轉換函數
void keyscan();
void k1cl();
void k2cl();
void k3cl();
void k4cl();
void offmsd();
void main() //主函數
{
EA=1; //開中斷
TMOD=0x11; //設定時器0為計數,設定時器1定時
ET0=1; //定時器0中斷允許
ET1=1; //定時器1中斷允許
TH0=0x00;
TL0=0x00;
TH1=0x9E;
TL1=0x57;
csbds=0;
csbint=1;
csbout=1;
cl=0;
ōpto=0xff;
jpjs=0;
sj1=45;
sj2=200;
sj3=400;
k4cl();
TR1=1;
while(1)
{
keyscan();
if(jpjs<1)
{
csbcj();
if(s>sj3)
{
buffer[2]=0x76;
buffer[1]=0x76;
buffer[0]=0x76;
}
else if(s<sj1)
{
buffer[2]=0x40;
buffer[1]=0x40;
buffer[0]=0x40;
}
else timeToBuffer();
}
else timeToBuffer(); //將值轉換成LED段碼
offmsd();
scanLED(); //顯示函數
if(s<sj2)
bg=0;
bg=1;
}
}
void scanLED() //顯示功能模塊
{
digit=0x04;
for( i=0; i<3; i++) //3位數顯示
{
P3=~digit&opto; //依次顯示各位數
P1=~buffer; //顯示數據送P1口
delay(20); //延時處理
P1=0xff; //P1口置高電平(關閉)
if((P3&0x10)==0) //判斷3位是否顯示完
key=0;
digit>>=1; //循環右移1位
}
}
void timeToBuffer() //轉換段碼功能模塊
{
xm0=s/100;
xm1=(s-100*xm0)/10;
xm2=s-100*xm0-10*xm1;
buffer[2]=convert[xm2];
buffer[1]=convert[xm1];
buffer[0]=convert[xm0];
}
void delay(i)
{
while(--i);
}
void timer1int (void) interrupt 3 using 2
{
TH1=0x9E;
TL1=0x57;
csbds++;
if(csbds>=40)
{
csbds=0;
cl=1;
}
}
void csbcj()
{
if(cl==1)
{
TR1=0;
TH0=0x00;
TL0=0x00;
i=10;
while(i--)
{
csbout=!csbout;
}
TR0=1;
i=mqs; //盲區
while(i--)
{
}
i=0;
while(csbint)
{
i++;
if(i>=2450) //上限值
csbint=0;
}
TR0=0;
TH1=0x9E;
TL1=0x57;
t=TH0;
t=t*256+TL0;
s=t*csbc/2;
TR1=1;
cl=0;
}
}
void keyscan() //健盤處理函數
{
xx=0;
if(k1!=1) // 判斷開關是否按下
{
delay(400); //延時去抖動
if(k1!=1) // 判斷開關是否按下
{
while(!k1)
{
delay(30);
xx++;
}
if(xx>2000)
{
jpjs++;
if(jpjs>4)
jpjs=0;
}
xx=0;
switch(jpjs)
{
case 1: k1cl();break;
case 2: k2cl();break;
case 3: k3cl();break;
case 4: k4cl();break;
}
}
}
}
void k1cl()
{
sj1=sj1+5;
if(sj1>100)
sj1=30;
s=sj1;
}
void k2cl()
{
sj2=sj2+5;
if(sj2>500)
sj2=40;
s=sj2;
}
void k3cl()
{
sj3=sj3+10;
if(sj3>500)
sj3=100;
s=sj3;
}
void k4cl()
{
sx1=sj1-1;
sx1=sx1/csbc;
mqs=sx1/4.5;
}
void offmsd()
{
if (buffer[0] == 0x3f)
buffer[0] = 0x00;
}
復制代碼
作者:
wohenmangy
時間:
2015-4-9 20:13
可以用嗎
作者:
順水推舟111
時間:
2016-9-7 12:32
好用嗎
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文字幕1区
|
欧美一级三级
|
一区二区三区免费观看
|
三区在线
|
日本视频一区二区三区
|
天天人人精品
|
欧美久久久久久久
|
久草在线
|
国产.com
|
日韩a v在线免费观看
|
99精品欧美一区二区蜜桃免费
|
久久爱黑人激情av摘花
|
日韩有码一区
|
国产一级淫片免费视频
|
蜜臀av日日欢夜夜爽一区
|
久久伊人免费视频
|
91香蕉嫩草
|
色香蕉在线
|
欧美网站一区二区
|
黄色片免费看视频
|
久久毛片
|
久久99久久99久久
|
中文字幕久久精品
|
精品av
|
久久免费国产
|
操操操操操
|
日韩无
|
日韩精品二区
|
麻豆成人在线视频
|
久久er99热精品一区二区
|
亚洲一区二区免费视频
|
日韩在线观看视频一区
|
久久国产精品免费一区二区三区
|
久久精品欧美电影
|
日韩在线免费观看视频
|
美女高潮网站
|
黄色在线免费观看
|
免费三级黄
|
拍真实国产伦偷精品
|
91精品入口蜜桃
|
一级黄色影片在线观看
|