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