找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2298|回復: 2
打印 上一主題 下一主題
收起左側

單片機程序中加一個開關,模擬壓力傳感器開關的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:503530 發(fā)表于 2019-4-9 19:36 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
5黑幣
這個仿真圖是模擬熱釋電傳感器使燈泡發(fā)光的。現在想在里面加一個開關,模擬壓力傳感器開關,當檢測到壓力,開關閉合,使燈泡發(fā)光,并延時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(); //有,點亮燈泡
                        }
                }
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:277550 發(fā)表于 2019-4-9 20:02 | 只看該作者
那么多IO,隨便加了。。。。。不過,單個按鈕,通常接在外部中斷上。

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

使用道具 舉報

板凳
ID:101620 發(fā)表于 2019-4-11 10:58 | 只看該作者
這題目,要考慮一下思路的,比如你的傳感器觸發(fā)方式要進行考慮,比如你是模擬觸發(fā),那就要增加AD電路,將模擬量轉換成數字量再連接IO端口
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表