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...