欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機程序中加一個開關,模擬壓力傳感器開關的問題 [打印本頁]

作者: dream602    時間: 2019-4-9 19:36
標題: 單片機程序中加一個開關,模擬壓力傳感器開關的問題
這個仿真圖是模擬熱釋電傳感器使燈泡發光的。現在想在里面加一個開關,模擬壓力傳感器開關,當檢測到壓力,開關閉合,使燈泡發光,并延時20s左右,請問這個開關應該加在哪? 然后程序可以請幫忙改一下嗎?

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit XinHao =P1^0;
sbit Light  =P2^0;

void Delay(void)
{
        uint x, y;

        for(x=100;x>0;x--)
           for(y=100;y>0;y--);
}

void delay1(void) //定時器延時兩分鐘
{
        uchar count=180;
        TMOD=0x01;     //定時器0工作方式1
        TR0=1;       //啟動定時器

        TH0=0;
        do{
                TF0=0;
                TL0=0x0F;        
                while(!TF0);   //定時是否溢出
        } while((count--) > 0);
        TR0=0;
        TF0=0;

}

void dianliang(void)
{
        Light  = 1; //點亮燈泡
        XinHao = 1;
        if(XinHao == 1)  //判斷是否無信號
        {
                Delay(); //延時防抖動
                XinHao = 1;
                if(XinHao == 1) //再次確定無信號
                {
                        delay1(); //利用定時器延時兩分鐘
                        Light  = 0; //熄滅燈泡
                }
        }
}

void main(void)
{
        Light  = 0; //初始時燈泡熄滅
        while(1)
        {
                XinHao = 1;
                if(XinHao == 0)  //檢測是否有信號
                {
                        Delay(); //延時防信號抖動
                        XinHao = 1;
                        if(XinHao == 0)
                        {
                                dianliang(); //有,點亮燈泡
                        }
                }
        }
}



作者: devcang    時間: 2019-4-9 20:02
那么多IO,隨便加了。。。。。不過,單個按鈕,通常接在外部中斷上。

程序呢, if(XinHao == 0)  //檢測是否有信號 之前判斷開關狀態,并做處理

作者: 孤劍酷    時間: 2019-4-11 10:58
這題目,要考慮一下思路的,比如你的傳感器觸發方式要進行考慮,比如你是模擬觸發,那就要增加AD電路,將模擬量轉換成數字量再連接IO端口




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1