微控制器檢查上升沿並計數,怎麼實現?可否有例子示範

2022-09-12 09:35:12 字數 2983 閱讀 5950

1樓:

微控制器定時器只能在脈衝下降沿計數,為了能在上升沿計數,我們須在微控制器相應的外部輸入引腳t0(p3.4)或t1(p3.5)上接一個反相器,這樣就能把上升沿變為下降沿,從而滿足了我們需要的功能。

參考c51程式如下:希望對你能有幫助

#include

#define ulong unsigned long#define uchar unsigned char#define uint unsigned intulong i;

void time0_int(void) interrupt 1 //硬體暫存器最多稚計數65536個脈衝,

uint read()

val=th1*256+tl;

return val;

}void main()}

2樓:做而論道

51微控制器是以下降沿、低電平來輸入資訊的。

外來的訊號,應該配合微控制器的需要,送來下降沿才是。

如果訊號真就是上升沿,那麼加上一級反相器,就變成下降沿了。

3樓:匿名使用者

這樣當porta,4/t0cki有一個外部上升沿時,就會產生中斷。中斷只做portd,1定時器好像只能做外部脈衝寬度測量和脈衝技術吧,外部中斷用int0、1之類io口

4樓:

把訊號接t0,t0工作計數模式,計數前cls t0

計數結束,直接讀t0,即可。

這麼簡單程式就不用了吧。

5樓:嗯哼唧唧

改硬體,加上一級反相器

微控制器怎麼檢測上升沿與下降沿?

6樓:匿名使用者

您是問硬體的方式?還是軟體的方式?

如果是硬體的方式,那麼,各種微控制器很不相同,需要具體看它的資料。

一般來說,某些引腳,例如:外中斷引腳、定時器的計數觸發引腳、捕獲引腳等等,都可以用來檢測上升沿與下降沿。

以捕獲(有的微控制器資料如80196,將它稱作「高速輸入」)引腳為例:

捕獲引腳可以與某個定時器相關聯,在捕獲引腳上遇到上升沿或下降沿時,硬體就自動記錄下當時定時器的讀數,併產生中斷請求。您可以在中斷服務程式中做所需的相應操作。

至於是上升沿捕獲,還是下降沿捕獲,還是二者都能捕獲,可以由使用者自己選擇配置。

如果是用軟體的方式來檢測,那道理就簡單了。用查詢方式:只要將要檢測的訊號接到某個輸入埠的某個位,在程式中反覆讀取該位的輸入,一旦遇到「上次是0此次是1」的情況,就說明檢測到了上升沿,遇到「上次是1此次是0」的情況,就說明檢測到了下降沿。

7樓:匿名使用者

估計是軟體程式問題,微控制器裡面有計數器和定時器,可以檢測上升沿與下降沿

請教,用微控制器一個輸入口實現上升沿,下降沿都計數

8樓:匿名使用者

對於51微控制器,可用一個外部中斷引腳,如int0-p3.2

設定成下降沿中斷模式,中斷後計數,在中斷程式中,查詢p3.2引腳狀態,由0變成1,即發現上升沿後就計數。然後退出中斷。再次下降沿,再次重複。

微控制器c語言怎麼判斷上升沿觸發

9樓:匿名使用者

1、上升沿和下降沿一般是硬體處理,程式只能判斷是否已出現。計數器一般會自動計數,如果是程式模擬計數器,先置狀,如被外部改變,就認為已出現跳變。

2、微控制器(microcontrollers)是一種積體電路晶片,是採用超大規模積體電路技術把具有資料處理能力的**處理器cpu、隨機儲存器ram、只讀儲存器rom、多種i/o口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調製電路、模擬多路轉換器、a/d轉換器等電路)整合到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位微控制器,發展到現在的300m的高速微控制器。

10樓:匿名使用者

用一個外部中斷,把b=b+1寫在中斷處理函式中就行了。

11樓:匿名使用者

上升沿觸發方式 是硬體在初始化的時候,通過程式設定埠的控制方式,直接給暫存器賦值。

只有設定好了後,當外部有上升沿觸發中斷的時候,就能進行在終端函式裡面執行你所說的b=b+1運算。

其實,就是的寫一個外部中斷函式。不是很難的,有很大相關的參考。。。

微控制器的計數器 是什麼電平觸發的(高低 下降上升沿?) 在做定時器的時候,此腳是不是可以輸出或輸入訊號

12樓:生活如歌

1下降沿計數。

2當做定時器時,如果不是硬體起動gate=0,則這兩個引腳可以繼續用,否則gate=1,這兩個引腳要當起動訊號輸入引腳用。

3aa是全域性變數的話就是關閉中斷時的值。

13樓:匿名使用者

你說的 是那類的微控制器,是51系類嗎 。51系類的微控制器有兩種觸發方式的。

微控制器c程式如何取上升沿和下降沿

14樓:電子粉絲

上升沿和下降沿一般是硬體處理,程式只能判斷是否已出現

計數器一般會自動計數,如果是程式模擬計數器,先置狀,如被外部改變,就認為已出現跳變

15樓:

以p1.0為例:

while(p10==1);

if(p10==0)aaa=1;

也就是將p10==1時候程式鎖定在while(1)中;希望能幫助你

16樓:匿名使用者

把你計數器輸入的埠先置0再置1。

17樓:

void main()

{while

{dt1=x0;

delay(t);

dt2=x0;

if(dt1==1&&dt2==0)

{d4=d4+1;}}}

微控制器給DAC怎麼輸出資料,微控制器給DAC怎麼輸出資料

想要知道dac輸入資料與輸出電壓之間關係,需要知道dac基準電壓多少伏。如dac是12位,基準電壓2.5v,那麼你輸入dac十進位制 4095 輸出就是2.5v,輸入十進位制 0 輸出就是0v,其餘按比例類推。至於還有輸出電流要求那麼在dac後還應加電壓電流放大電路。12位的da,25.5v的輸出電...

微控制器功率表問題,微控制器怎麼測功率?

你在網上查一下,有電度表專用晶片,很準的,8塊多一片,程式設計很簡單,mcu只要不停地讀取資料顯示就可以了。用測負載電壓電流方法不可取,由於負載電流變化很大,從幾毫安到數十安,這麼大的範圍內,測試精度無法保證。專用晶片見參考資料。還有一款晶片是 基於spi匯流排和ade77xx專用晶片 你一下。如果電流和...

關於微控制器外部計數器的n個問題

是這樣的,你的思路有些狹窄,當然,這並不怪你,這是學校和老師的失誤,現在的學校和老師,除了學生的前途以外,什麼都重要。我先給你講一下,80c51微控制器是一個系列,而不是特定的某個微控制器,你書本上學到的,什麼最大12mhz 12t的微控制器,是c51系列微控制器的鼻祖,只是一個核心和原理罷了,當然...