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

標題: 測距模塊初級2-用了51單片機內部的一個計數器控制兩個超聲波測距模塊 [打印本頁]

作者: nius    時間: 2015-4-10 02:55
標題: 測距模塊初級2-用了51單片機內部的一個計數器控制兩個超聲波測距模塊
1、用51單片機內部的一個定時器/計數器控制兩個測距模塊(同樣的程序寫法也可以控制三個、四個,很多個)
2,、沒有寫入分析測距模塊反饋到51MCU的數據的程序,這樣程序談不上智能!
3、而且本人認為程序還是不夠簡化。
重要提示:

        本人在測試時發現如果在震動,振幅大的時候模塊反饋的數據是錯的!在請教老師后我知道了這種干擾的的產生是因為導線在擺動時讓電荷發生改變,使觸發信號線與信號接收線的電壓發生改變,因為51單片機屬于數字芯片,信號的格式只有高電平與低電平兩種,所以只要當電平發生變化時單片機就會接受到錯誤信號










#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar num1,num2,num3,num4,led0,led1,aa,bb;
sbit tr=P1^0;
sbit ec=P1^1;
sbit lcd0=P2^0;
sbit lcd1=P2^1;
sbit tr1=P1^2;
sbit ec1=P1^3;
sbit lcd2=P2^2;
sbit lcd3=P2^3;
void timer(uint x)
{
uint q,w;
for(q=x;q>0;q--)
for(w=110;w>0;w--);
}
void init()
{
ec=0;
tr=0;
ec1=0;
tr1=0;
num1=0;
num2=0;
num3=0;
num4=0;
led0=1;
led1=1;
}
void trk()
{
tr=1;
timer(10);
tr=0;
num3=1;
}
void trk1()
{
tr1=1;
timer(10);
tr1=0;
num3=1;
}
void eck()
{
if(ec==1)
        {
        TR0=1;
        num2=1;
        }
if(ec==0&num2==1)
        {
        TR0=0;
        if(num1<30)
                {
                led0=0;
                num3=0;
                }
        if(num1>30)
                {
                led1=0;
                num3=0;
                }
        }
}
void eck1()
{
if(ec1==1)
        {
        TR0=1;
        num2=1;
        }
if(ec1==0&num2==1)
        {
        TR0=0;
        if(num4<30)
                {
                led0=0;
                num3=0;
                }
        if(num4>30)
                {
                led1=0;
                num3=0;
                }
        }
}
void open_time()
{
TMOD=0x01;
TH0=(65536-1)/256;
TL0=(65536-1)%256;
EA=1;
ET0=1;
TR0=0;
}
void dongzuo()
{
if(led0==0)
        {
        lcd0=0;
        lcd1=1;
        bb=1;
        aa=0;
        }
if(led1==0)
        {
        lcd1=0;
        lcd0=1;
        bb=1;
        aa=0;
        }
}
void dongzuo1()
{
if(led0==0)
        {
        lcd2=0;
        lcd3=1;
        aa=1;
        bb=0;
        }
if(led1==0)
        {
        lcd2=1;
        lcd3=0;
        aa=1;
        bb=0;
        }
}

void main()
{
aa=1;
bb=0;
while(1)
        {
        while(aa==1)
        {
                bb=0;
                init();
                open_time();
                trk();
                while(num3==1)
                        {
                        eck();
                        }

                dongzuo();
        }
        while(bb==1)
                {
                aa=0;
                init();
                open_time();
                trk1();
                while(num3==1)
                        {
                        eck1();
                        }
                dongzuo1();
                }
        }
}
void time() interrupt 1
{
TH0=(65536-1)/256;
TL0=(65536-1)%256;
num1++;
num4++;
}  




設計者:薛羽豪



作者: yangfengyougu    時間: 2015-5-13 21:11
正在做這個
作者: 三年五    時間: 2015-10-7 20:10
lz這個會不會導致程序一直在執行定時器一中斷里的內容啊,感覺程序會一直進入定時器中斷沒法處理別的內容了
作者: keil321    時間: 2016-3-15 20:40
請問你的程序有卡死的情況嗎




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国内自拍偷拍 | 狠狠综合网 | 在线一区二区视频 | 亚洲另类自拍 | 一区二区不卡 | 亚洲美女网站 | 成人综合网站 | 午夜国产一区 | 欧美日韩一二区 | 99视频网 | 一区二区三区久久久 | 国产区在线观看 | 91亚洲国产成人久久精品麻豆 | 亚洲精品成人网 | 国产一区二区网站 | 亚洲精品一二三四 | 免费观看全黄做爰的视频 | 久久精品黄色 | 黄视频网站在线观看 | 国产91丝袜在线播放 | 免费国产精品视频 | av资源站 | 青青草视频污 | 欧美国产精品 | 国产精品区二区三区日本 | 亚洲 欧美 日韩 在线 | 亚洲精品区 | 一区二区不卡视频 | 91美女片黄在线观看91美女 | 看毛片网站 | 日韩精品影院 | 国产又粗又猛视频免费 | 日韩精品视频在线免费观看 | 中文在线字幕免费观 | 成年人网站在线免费观看 | 国产精品麻豆视频 | 久久久精品国产sm调教网站 | 日韩欧美在线播放 | 久久国产成人 | 欧美一区二区三区在线观看 | 午夜美女福利视频 |