當前位置:首頁 » 編程語言 » c語言下降沿如何編寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言下降沿如何編寫

發布時間: 2022-12-07 15:57:27

❶ 下降沿計數,每一個下降沿記一次數,要求c語言,我用中斷一直都是失敗,應該怎麼寫才好,下面是自己寫的

現在想問一下你輸入信號的頻率。如果頻率過大肯定是不行的。假設你用的是51單片機,晶振為12M,那麼每一條語句執行的時間為1us,考慮到在C語言的條件下,以及你中斷進行處理的時間,還有進行現場保護時的壓棧,以及現場恢復的退棧時間,加起來算50us吧(依據不同的程序時間不一樣),那麼現在輸入信號的頻率最大也就為20K,考慮到實際餘量大概就10K以內吧。另外還和硬體電路有關,硬體電路中存在雜訊的,你可以用示波器看一下輸入的信號的雜訊。如果是硬體問題,那麼就要濾波了。

❷ 用c語言編寫控制電機運動的程序

1、有三個輸入,分別是一個按鈕、兩個霍爾感測器(也就是接近開關),我用P0.0到P0.2來代替;輸出2個或以上(這看接什麼顯示器,如果是PC的話,就不用數字量輸出,直接串口就可以了)控制正反轉的繼電器管腳用P1.0、P1.1;需要與一個全局變數轉動次數k連接起來,另外兩個輸入接近開關選用NPN感測器或用光電隔離,總之有效信號能把管腳電壓拉低就可以。
2、常式:

#include<reg51.h>//選用晶振11.0592MHz
unsignedchark=0;//k表示正反轉次數
sbitX0=P3^2;//調節按鈕
sbitX1=P1^1;//上限位接近開關信號
sbitX2=P1^2;//下限位接近開關信號
sbitY1=P0^0;//電機上升(注意:我使用的是管腳輸出為0時候,電機運動,這樣可以避免啟動時候,單片機自復位對電機點動的影響)
sbitY2=P0^1;//電機下降
voiddelay50ms(unsignedinti)
{
unsignedintj;
for(i;i>0;i--)
for(j=46078;j>0;j--);
}
main()
{
IT0=1;//下降沿觸發
EX0=1;//開P3.2外部中斷
EA=1;//總中斷開
while(1)
while(k)
{
Y1=0;//正轉
while(X1==1);//等待正轉接近開關反應
Y1=1;//正轉停
delay50ms(1);//停止時間50ms
Y2=0;//反轉
while(X2==1);//等待反轉接近開關反應
Y2=1;//反轉停
k--;//圈數減一
}
}
voidcounter0(void)interrupt0
{
k++;//外部中斷控制圈數加一
//這個位置可以加你顯示程序
}

❸ 如何用C語言判斷下降沿

讓IT=1,在IE中,INT有下降沿就有中斷標志

❹ 求51單片機的上升沿和下降沿C語言檢測程序列子,埠就是普通IO口。

這里只講原理,不關注速度。實際設計工作中,已經有很多單片機能夠識別io埠上升沿和下降沿中斷,且方式不止一種。
sbit io_inp=P2^1;輸入端
bit old_bit;輸入端電平記憶
unsigned char low_high;上升下降沿標志,0=無變化,1=上升沿,2、下降沿
void io_rest(void)
{
if(old_bit=!io_inp)
{
old_bit=io_inp;
if(io_inp=1)
low_high=1;
else
low_high=2;
}
}

void main(void)
{
old_bit=io_inp=P2^1;
while(1)
{
low_high=0;
io_rest(void);
//在此應用
}
}

❺ 上升沿和下降沿結合c語言怎麼編寫程序呀!隨便舉個例子就可以的!

設置一個變數為標志
比如flag=0
當flag=1的時候就是上升沿了

❻ 請按照如下下降沿/上升沿觸發時序圖寫一段C語言程序

電子的課程我幾乎全忘了,我翻了翻書,我當初學51單片機串口通信,用的是匯編。
我當初用C語言寫51單片機代碼的時候,編譯變成機器代碼,但是keil編輯器可以把機器代碼轉成助記符,就是匯編。我看了之後發現一條C語言代碼會翻譯成多條匯編,如果是循環,翻譯成匯編就會更復雜,所以用C語言寫51單片機代碼,代碼運行時間會更長,時間不能自己掌握,因為我不知道翻譯成多少條匯編了。所以51單片機還是要用匯編寫比較好。
我也不知道為什麼你會直接用C語言寫時序圖,我只是覺得用匯編會簡單點。

❼ 如何寫一個單片機輸入上升沿和下降沿的脈沖輸出信號的c語言程序

這個簡單,從低到高就是上升輸出,重高到低就是下降輸出
#include<reg51.h>
sbit pluse=P1^0;
main()
{
int i;
while(1)
{
pluse=0; //此時為下降輸出
i=100;
while(i--);
pluse=1; //此時為上升輸出
i=100;
while(i--);
}
}

❽ 在KEIL軟體中「外部中斷1由單片機的引腳P3.3下降沿觸發」用C語言怎麼寫

先在主函數里寫上:
IT1=1;//下降沿觸發
EA=1;//開總中斷
EX=1;//開int中斷
然後在主程序外面寫中斷服務函數
void Int1()interrupt 2
{
寫入你想實現的功能
} 當你按下P3.3後 就會執行void Int1()interrupt 2 里的程序了
希望能幫到你。

❾ 如何用c語言實現 上升沿和下降沿的判斷

上升沿和下降沿一般是硬體處理,程序只能判斷是否已出現。 計數器一般會自動計數,如果是程序模擬計數器,先置狀,如被外部改變,就認為已出現跳變。 單片機(Microcontrollers)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理...

❿ 單片機中一個I/O信號的上升沿或下降沿在單片機中C語言怎麼寫,不用中斷

不用中斷只能用查詢了。
你只能寫一個while循環,然後時刻判斷IO電平。
上一次循環是低電平,下次變成高電平了,就可以判斷來了一個上升沿。
注意信號上升時間和你的單片機時鍾周期的關系,也就是說,信號上升沿要小於你查詢兩次所用的時間。如果信號你不能改變,那麼你就需要紀錄多次查詢的結果,這樣能識別比較慢的沿。