微控制器高手請進利用動態掃描方法在六位數碼管上顯示出穩定的

2021-03-27 17:56:56 字數 3942 閱讀 2099

1樓:做而論道

加上消隱試試:

void main()

/這裡要/改一下.

//----------------------------------------

p0 = 0xff; //加上這兩行,就是消隱.

wela = 1; p0 = 0xff; wela = 0;

//----------------------------------------

p0 = 0x00; //加上這行.

dula = 1; p0 = table[a]; dula = 0;

p0 = 0xff;

wela = 1; p0 = tablewe[b]; wela = 0;

delay(1);

b++;

a--;} }

2樓:匿名使用者

它能顯示出數字,就證明程式原理沒有問題。錯誤應該在顯示資料編碼上,這和硬體接線息息相關。數碼管就是7個led(除去點),同時點亮部分led就顯示出數字了,結合硬體接線改改程式中的顯示資料就好了。

3樓:匿名使用者

#include

#define uint unsigned int#define uchar unsigned charsbit wela=p2^7;

sbit dula=p2^6;

uchar code table=;

uchar code tablewe=;

void delay(uint z);

uchar a,b;

void main()

p0=0xff;

wela=1;

p0=0xff;

wela=0;

dula =1;

p0=table[a];

dula=0;

p0=0xff;

wela=1;

p0=tablewe[b];

wela=0;

delay(1);

b++;

a--;} }

void delay(uint z)

4樓:匿名使用者

a=6;

b=0; //陣列中0為第1 位。

51微控制器問題,利用動態掃描方法在六位數碼管上顯示出穩定的654321,如何用for語句實現這個功能? 10

5樓:匿名使用者

既然用了定時器, 還不如用定時器掃描

6樓:

它顯示的資料,證明是沒有問題的方案理論。會顯示錯誤資訊資料編碼,並密切相關的硬體接線。 7 led數碼管(不包括點),同時點亮的led顯示屏數字顯示資料的一部分,結合硬體接線改程式一樣。

利用動態掃描方法在六位數碼管上顯示出穩定的654321(連線圖如下)

7樓:匿名使用者

8255有三個8位的並行介面,只有pc口是可以拆分使用的,所以:

用pa口的8條線,輸出數碼管的段選;

用pc口的6條線,輸出數碼管的位選;

用pc口的2條線,作為鍵盤輸入;

用pb口的8條線,作為鍵盤輸入。

正好都能用上。

8255的初始化,控制字要寫對,才行。

宜選用共陽的數碼管,電路中,還要有位驅動、段限流的部分。

鍵盤應接地,口線要接上拉電阻。

用動態掃描方法在六位數碼管上顯示出穩定的654321怎麼我用proteus**出問題,下面是我的程式和**圖

8樓:匿名使用者

**試試這樣消隱(實物不能這樣),下面只寫出1的,其它的類同:

dula=1;

p0=table[one]; //送段資料dula=0;

//p0=0xff; //送位資料前關閉所有顯示,防止開啟位選鎖存後段選資料通過位選鎖存器

wela=1;

p0=0xfe;

wela=0;

delay(1);

p0=0x00;// 消隱

利用動態掃描方法在六位數碼管上顯示出穩定的654321

9樓:匿名使用者

應該是定時的問題,本來就是利用led的餘暉和人的視覺暫留效應看到的穩定的數字

10樓:匿名使用者

大哥你能說清楚點嗎,你提出的要求像個繞口令你到底想做甚麼?難道是6不同數碼管瞎碰數字數字?而且你要用什麼控制?

利用動態掃描方法在六位數碼管上顯示出穩定的654321. 幫忙看看**出錯了! 非常感謝!

11樓:程式設計

把這個定義為全域性變數就行了!

uchar a,b;

也就是說,把這句放到void main ()之前就行了

12樓:匿名使用者

#include

#define uint unsigned int#define uchar unsigned charuchar a,b;

void delay(uint z);

uchar code table=;

uchar code tablewe=;

sbit dula=p2^6;

sbit wela=p2^7;

void main()

dula=1;

p0=table[a];

dula=0;

p0=0xff;

wela=1;

p0=tablewe[b];

wela=0;

delay(1);

a--;b++;}}

void delay(uint z)

這樣才行啊,你的那個好像不行,只能顯示65432,而且是後面五位。。。我試過了

13樓:hjdnn闖天涯

可以吧,模擬圖給我看看嘛?

關於微控制器知識,利用動態掃描方法在8位共陰極數碼管上顯示出穩定的87654321。下面為什麼顯示不了第一位8.

14樓:做而論道

|試試看:

void main()}}

郭天祥十天學習微控制器第四課第一題網上答案proteus**不能正常顯示數字第二第六數碼管更是什麼都不顯示

15樓:匿名使用者

sbitdula=p2^6; //數碼管段選鎖存端sbitwela=p2^7; ////數碼管位選鎖存端程式中好象沒有處理...

要看你的硬體才能知道那裡不對.

微控制器數碼管的動態顯示問題,求大神看看**出錯了

16樓:煙火夜空

程式的中的tt,並沒有起任何作用。刪掉的效果一樣。

從你程式的高速重新整理來看,除了不知道顯示了什麼鬼,6個數碼管應該都是有亮的。這郭派教的程式,為什麼他不提供支援,解決問題呢?

問題①,顯示混亂:

如果沒有猜錯,wela=1,dula=1,應該分別是位選鎖存器、段選鎖存器的輸出使能。「使能」表示鎖存器將資料輸出。而它輸出前,p0的資料,卻是上一次的值。

於是,上次的段選,輸出到了位選上,然後位選修正,跟著修正後的位選,又輸出到了這次的段選上,再修正段選,於是一團亂。

問題②,輝度,也就是亮度。

動態顯示中,重新整理率與輝度成反比。題目程式的高速重新整理(直接用while(1)重新整理),導致輝度為最低。

問題③,其實也不算問題。6個數碼管顯示1-6,num1 跟num2 的值,什麼時候有區別?根本沒有,那為什麼不用1個變數呢?

51微控制器問題,動態LED掃描程式,我沒把它放進迴圈中,卻一直亮,為什麼

c程式,編譯後,放到微控制器的 rom 裡面,然後,是由 pc 程式計數器 來控制執行的。pc 會自動加一,這樣,就會順序執行你的程式。執行到了後邊,已經沒有你編寫的 了,pc,它還會繼續加一。直到,它又變成了零。然後,再從頭,再次執行你的程式。如此,永無休止的迴圈。沒放入迴圈當然是一直亮了,最後掃...

利用微控制器設計59秒計時器,利用51微控制器,4個數碼管設計一個計時器,要求在數碼管上顯示的資料從0開始每1秒鐘加1。

共陽共陰只是你在選com端時給其高低電平的問題無關大雅我給一段pic微控制器的程式讓你參考一下,如果你看懂的話應該能做出來了 include include 此程式實現計時秒錶功能,時鐘顯示範圍00.00 99.99秒,分辨度 0.01秒 unsigned char s0,s1,s2,s3 定義0....

微控制器題目,高手幫忙解答下,微控制器技術與應用的題目,高手幫忙解答一下

1 sp 40h,dptr 3412,分析執行下列指令後dptr及sp內容push dpl push dph pop 08h 程式執行後 sp 41h 08h 34h 2 假設內ram單元 60h 6,問執行完下列指令後ram 60h 的內容為多少。mov r0,60h mov a,r0 rl a ...