我想讓C程式必須在有負跳變的情況下觸發微控制器任意引腳動作

2021-08-19 02:06:42 字數 1059 閱讀 7253

1樓:匿名使用者

可以用外部中斷做或都隨便選一個i/o口接入你的外部輸入。加一個上拉電阻將電平拉高。如:程式可用中斷寫,也可以不用中斷寫。

不用中斷如:

#include

sbit input=p3^2;

main()

input=1;//置為輸入

if(input==0)

//如果還怕有誤動作,可在這裡加入小段延時; // 調入你負跳變想完成的功能函式

else

;//調入沒有負跳變時想完成的功能函式

用中斷的如:

#include

main()

ie=0x81;//啟用cpu和外部0中斷tcon=0x01;// int0設定為負邊緣觸發...;//你的其它程式,如高電平時想完成的功能void my_int0(void)interrupt 0;//負跳變想完成的功能

不好意思,你沒給出具體電路,我只能給個思路供你參考下。

2樓:匿名使用者

太專業。

c懂一點,後面你說的那些完全不懂。

3樓:匿名使用者

假設p1.1做輸入,p1.2輸出,你想用任意腳自己修改#include "reg51.h"

sbit p11=p1^1;

sbit p12=p1^2;

void main()

p12=1;

}當p11為高電平的時候,迴圈條件滿足,執行空操作,一直等待,當檢測到低電平的時候,退出迴圈。這段程式要求脈衝寬度不能太窄

4樓:南窗倚

你這問題問的,太籠統了.你得說說你要的是什麼微控制器吧,你得把你的硬體圖傳上來吧,你什麼都沒有說,別人怎麼給你說??

5樓:

#define port_x rc1

static bit b_p;

if(b_p && !port_x)

b_p = port_x;

////

6樓:

用開關來實現就可以了

c 語言中類中的靜態資料成員為什麼必須在類體外初始化

可以通過以下幾個例子更形象的說明這個問題 test.cpp include class a int main 編譯以上 會出現 對 a a 未定義的引用 錯誤。這是因為靜態成員變數a未定義,也就是還沒有分配記憶體,顯然是不可以訪問的。再看如下例子 test.cpp include class a i...

C語言程式問題,我的c語言程式有什麼問題?

fun x,y,1 求每一行的最小值放進y裡面 fun x,y,0 求每一行的最大值放進y裡面 這個應該是判斷條件有問題,那個判斷形式應該是?前後返回的是判斷條件為真的時候的值,後面返回的是判斷條件不成立的時候的值,你這個寫法根本沒有改變flag的值,因為根本就沒有做賦值的操作。我的c語言程式有什麼...

用C語言編寫的源程式必須經過編譯連線後,生成副檔名為 EXE

哥們,這麼理解是對的,不過感覺有點表面。建議看看計算機一些原理,像你說的這個問題我版會想到權,計算機最終只能識別二進位制碼,所以其實不管我們一切啥語言,最終都是通過編譯器編譯成二進位制碼,計算機才能識別 而去執行,而c語言編寫的程式,肯定是要經過一系列的編譯,連結,生成可執行的檔案。在windows...