51微控制器用兩個數碼管分別進行不同的倒計時

2021-03-03 21:51:47 字數 4692 閱讀 4722

1樓:匿名使用者

你這是做實物呢,還是**呢?原理圖也放上來,程式也不放上來,這麼說誰也不知道是什麼原因的。

2樓:匿名使用者

你發給我看看

我是做微控制器開發的

3樓:匿名使用者

放**上來,才知道**有問題啊。。。

4樓:微控制器的戰鬥機

圖和資料發過來,有扣扣嗎?就可以做了

51微控制器接2個led數碼管,怎麼讓數碼管倒計時?

5樓:匿名使用者

先看看下面程式,看懂了,就知道咋編了

#include

#define uchar unsigned char#define uint unsigned intuchar a , b=0;

sbit wei1=p1.0;

sbit wei2=p1.1;

//共陰數碼管七段碼

uchar code table=;

void delay1ms(uint i) //1ms延時程式}}void display( uchar a)) /顯示子程式void main(void )//主程式}//中斷子程式

void timer0(void) interrupt 1if(b==60)}

怎樣用51微控制器實現累加計時和倒計時,並用六個共陰極數碼管顯示出來。用兩個按鍵分別切換。

6樓:匿名使用者

剛開始上電時, system_mode不是1 也不是2,不知你初始化時是否給它賦值?另外你的按鍵檢測程式沒加入到迴圈程式中,剛上電時若沒有按鍵按下,則很快跳過兩個按鍵檢測語句,然後進入迴圈顯示程式中,這是一個死迴圈,只有中斷才可打斷其執行,所以再按什麼鍵也沒反應了,建議把按鍵檢測放入顯示迴圈中,它對顯示效果不會有什麼影響,或在初始化後加一個迴圈,若兩個按鍵都沒有按下,一直檢測按鍵

想用51微控制器編個倒計時的c程式,要求用兩位數碼管顯示分鐘的,並用一個按鍵

7樓:手機使用者

並用一個按鍵啥? 51微控制器我沒設計過電路,用的學習板是現成的,對著電路圖。 那個學習板上沒有鎖存器啥的,只能靠掃描來顯示2個數字(就是兩個數碼管輪流顯示數字,因為輪流速度非常快人眼看不出來一次其實只有一個在顯示) 思路的話,按鍵和計時器都用中斷控制會比較方便, 1個全域性變數代表當前剩餘秒數,一個全域性變數代表當前剩餘分鐘數(或者你要一個16位變數代表秒數也行) 因為計時器無法定時1秒所以還要一個變數來輔助計時器實現每1秒引發一次事件的操作。

加上按鍵,這樣就有2個事件:一個是1秒引發一次,一個是按鈕引發 按鈕作用是什麼我不知道,你自己看著辦 計時器就是全域性變數的秒數減去1 這兩個事件實現以後,主程式邏輯就是一開始啟用中斷、啟用定時器、初始化全域性變數, 然後就開始死迴圈,迴圈裡的功能是把全域性變數裡的數字顯示到數碼管上,只管顯示不管別的的話還是很容易的,別的(計時、按鈕)全部交給中斷去完成,即可。

我想用51微控制器編個倒計時的c程式,要求用兩位數碼管顯示分鐘的,並用一個按鍵

8樓:空雪夢見

你這數碼管的1、2口就這麼懸著或者接dp一起了真的沒問題嗎......

全域性變數2個用於表示個位和十位,顯示的時候可以省點力不用每次計算個位十位。

然後一個全域性變數代表秒

程式設計的話,首先是按鍵響應中斷,控制某個全域性變數flag的值,三種狀態:正常、暫停、到時間。按鍵可以在前兩種之間切換,如果已經是第三種狀態則沒反應(或者要重置什麼隨你)

然後定時器,一直開著就好,比如定10ms,每10ms就給一個全域性變數的值+1

這個變數到了100的時候就說明一秒過了,重設值,全域性變數的秒減一。如果到0了,就恢復60,然後給分鐘的個位減一。如果個位不夠減,就把十位減一然後個位設9。

如果十位和不夠減,就是時間到了,flag設定為第三種狀態

主函式在初始化各種狀態之後不斷迴圈給數碼管顯示數字,就ok了。

9樓:匿名使用者

你這個圖有問題,兩數碼管只接了8個io口,也就是同時點亮兩個數碼管

10樓:小馬達

#include

#define uchar unsigned charsbit p13=p3^0;

sbit p14=p3^1;

uchar c,i,a=60,z;

uchar code numcode=;

void delay(z)

void main()

/*if(a>=0)

*/if(a>=0)

else}}

void timer0() interrupt 1

51微控制器數碼管怎樣才能同時在兩個數碼管上面顯示不同的數字??

11樓:小丑魚啦

是因為人眼的視覺暫留效應,實際上兩個數碼管是交替顯示的,但是因為交替的速度十分快,所以會有因為視覺暫留效應而看到兩個數碼管都是同時現實的。

視覺暫留現象即視覺暫停現象(persistence of vision,visual staying phenomenon,duration of vision)又稱「餘暉效應」,2023年由英國倫敦大學教授皮特.馬克.羅葛特在他的研究報告《移動物體的視覺暫留現象》中最先提出。

人眼在觀察景物時,光訊號傳入大腦神經,需經過一段短暫的時間,光的作用結束後,視覺形象並不立即消失,這種殘留的視覺稱「後像」,視覺的這一現象則被稱為「視覺暫留」。

12樓:匿名使用者

如果是2個及以上的**g,是不會用你的放法的。使用數碼管都是用動態顯示實現的。

人能方便的頻率是50hz,你只要保證單個現實的時間在20ms一下就可以了。

你要現實2個數碼管,線點亮第一個數碼管,然後點亮第二個數碼管。

13樓:益力多2號

利用人眼的視覺暫留,先寫第一個數碼管的數字,再寫第二個數碼管, 只要兩個數碼管動態顯示快,人眼就可以看成同時顯示。

51微控制器的程式(c語言版),用數碼管進行倒計時。

14樓:六十七年

你是不是用

抄2了鎖存器bai啊。

p2=led_table[ten];

led_ten=1;//開啟鎖存器

led_ten=0;//關閉du鎖存期

儲存zhi10位

p2=led_table[single];

led_single=1;//開啟鎖存器

led_single=0;//關閉鎖存器

儲存個位

另外led_ten,led_single 你要dao先定義一下吧

15樓:小皇帝

這個很簡單,就是迴圈掃描兩萬次,要是掃描的次數少了,你的眼睛是看不到亮

回的,led_single=1;//

led_single=0;//

這兩句就答是控制顯示的=1者亮,0者關

顯示兩萬次,

30的減一計數器,每減一就顯示兩萬次,這個兩萬次也可能就一秒或幾秒,看你微控制器的時脈頻率。

16樓:

數碼管顯示2個數字,共顯示2萬次。

17樓:匿名使用者

led_ten ,led_single 你要設定用來控制誰的訊號?

想用51微控制器編個倒計時的c程式,要求用兩位數碼管顯示分鐘的,並用一個按鍵

18樓:空雪夢見

並用一個按鍵啥?

51微控制器我沒設計過電路,用的學習板是現成的,對著電路圖。

那個學習板上沒有鎖存器啥的,只能靠掃描來顯示2個數字(就是兩個數碼管輪流顯示數字,因為輪流速度非常快人眼看不出來一次其實只有一個在顯示)

思路的話,按鍵和計時器都用中斷控制會比較方便,

1個全域性變數代表當前剩餘秒數,一個全域性變數代表當前剩餘分鐘數(或者你要一個16位變數代表秒數也行)

因為計時器無法定時1秒所以還要一個變數來輔助計時器實現每1秒引發一次事件的操作。

加上按鍵,這樣就有2個事件:一個是1秒引發一次,一個是按鈕引發

按鈕作用是什麼我不知道,你自己看著辦

計時器就是全域性變數的秒數減去1

這兩個事件實現以後,主程式邏輯就是一開始啟用中斷、啟用定時器、初始化全域性變數,

然後就開始死迴圈,迴圈裡的功能是把全域性變數裡的數字顯示到數碼管上,只管顯示不管別的的話還是很容易的,別的(計時、按鈕)全部交給中斷去完成,即可。

19樓:歪有小愛

你這數碼管的1、2口就這麼懸著或者接dp一起了真的沒問題嗎......

全域性變數2個用於表示個位和十位,顯示的時候可以省點力不用每次計算個位十位。

然後一個全域性變數代表秒

程式設計的話,首先是按鍵響應中斷,控制某個全域性變數flag的值,三種狀態:正常、暫停、到時間。按鍵可以在前兩種之間切換,如果已經是第三種狀態則沒反應(或者要重置什麼隨你)

然後定時器,一直開著就好,比如定10ms,每10ms就給一個全域性變數的值+1

這個變數到了100的時候就說明一秒過了,重設值,全域性變數的秒減一。如果到0了,就恢復60,然後給分鐘的個位減一。如果個位不夠減,就把十位減一然後個位設9。

如果十位和不夠減,就是時間到了,flag設定為第三種狀態

主函式在初始化各種狀態之後不斷迴圈給數碼管顯示數字,就ok了。

51微控制器數碼管動態顯示從右往左

這是四位數碼管從右從左流動顯示,像滾動字幕一樣的。用不著矩陣按鍵哪版。其實程式很簡單權,沒那麼複雜。程式如下 include define uchar unsigned char define uint unsigned intuchar code tab 共陰段碼碼,0x00為滅void dela...

如何通過程式設計,實現51微控制器控制數碼管顯示0 9這幾個數字

while後加邏輯語句,如果值為true也就是1時就會執行下面的語句,執行完再判斷是不是true,如果是的話繼續執行,然後就迴圈了 如果為false也就是0就會停止 如果不加的話也就是執行一次,執行完後結束,燈就不亮了,按理說應該亮一次,但是執行太快你根本沒來得及看到燈亮就已經結束了 如果加迴圈語句...

求助51微控制器高手數碼管動態顯示問題要求是數碼管動態顯示

把一個多位抄數 大於9的數襲 分別顯示在兩個數碼 管上面就是把這個數的每一位拆開,用數碼管的動態掃描進行顯示。至於閃動,不就是一亮一滅嗎?就用個定時器定時,在一秒的時間內,一半時間是亮的,一半時間是滅的,不就閃爍了嘛 沒有if成立的條件時數碼管的的位選保持最後下次狀態,然後j一直加到最大值,再從0開...