1樓:匿名使用者
既然用了定時器, 還不如用定時器掃描
2樓:
它顯示的資料,證明是沒有問題的方案理論。會顯示錯誤資訊資料編碼,並密切相關的硬體接線。 7 led數碼管(不包括點),同時點亮的led顯示屏數字顯示資料的一部分,結合硬體接線改程式一樣。
微控制器高手請進 利用動態掃描方法在六位數碼管上顯示出穩定的654321,而我的結果是198432. 5
3樓:做而論道
加上消隱試試:
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--;} }
4樓:匿名使用者
它能顯示出數字,就證明程式原理沒有問題。錯誤應該在顯示資料編碼上,這和硬體接線息息相關。數碼管就是7個led(除去點),同時點亮部分led就顯示出數字了,結合硬體接線改改程式中的顯示資料就好了。
5樓:匿名使用者
#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)
6樓:匿名使用者
a=6;
b=0; //陣列中0為第1 位。
利用動態掃描方法在六位數碼管上顯示出穩定的654321(連線圖如下)
7樓:匿名使用者
8255有三個8位的並行介面,只有pc口是可以拆分使用的,所以:
用pa口的8條線,輸出數碼管的段選;
用pc口的6條線,輸出數碼管的位選;
用pc口的2條線,作為鍵盤輸入;
用pb口的8條線,作為鍵盤輸入。
正好都能用上。
8255的初始化,控制字要寫對,才行。
宜選用共陽的數碼管,電路中,還要有位驅動、段限流的部分。
鍵盤應接地,口線要接上拉電阻。
利用動態掃描方法在六位數碼管上顯示出穩定的654321
8樓:匿名使用者
應該是定時的問題,本來就是利用led的餘暉和人的視覺暫留效應看到的穩定的數字
9樓:匿名使用者
大哥你能說清楚點嗎,你提出的要求像個繞口令你到底想做甚麼?難道是6不同數碼管瞎碰數字數字?而且你要用什麼控制?
利用動態掃描方法在六位數碼管上顯示出穩定的654321. 幫忙看看**出錯了! 非常感謝!
10樓:程式設計
把這個定義為全域性變數就行了!
uchar a,b;
也就是說,把這句放到void main ()之前就行了
11樓:匿名使用者
#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,而且是後面五位。。。我試過了
12樓:hjdnn闖天涯
可以吧,模擬圖給我看看嘛?
用動態掃描方法在六位數碼管上顯示出穩定的654321怎麼我用proteus**出問題,下面是我的程式和**圖
13樓:匿名使用者
**試試這樣消隱(實物不能這樣),下面只寫出1的,其它的類同:
dula=1;
p0=table[one]; //送段資料dula=0;
//p0=0xff; //送位資料前關閉所有顯示,防止開啟位選鎖存後段選資料通過位選鎖存器
wela=1;
p0=0xfe;
wela=0;
delay(1);
p0=0x00;// 消隱
郭天祥十天學習微控制器第四課第一題網上答案proteus**不能正常顯示數字第二第六數碼管更是什麼都不顯示
14樓:匿名使用者
sbitdula=p2^6; //數碼管段選鎖存端sbitwela=p2^7; ////數碼管位選鎖存端程式中好象沒有處理...
要看你的硬體才能知道那裡不對.
關於微控制器知識,利用動態掃描方法在8位共陰極數碼管上顯示出穩定的87654321。下面為什麼顯示不了第一位8.
15樓:做而論道
|試試看:
void main()}}
微控制器數碼管的動態顯示問題,求大神看看**出錯了
16樓:煙火夜空
程式的中的tt,並沒有起任何作用。刪掉的效果一樣。
從你程式的高速重新整理來看,除了不知道顯示了什麼鬼,6個數碼管應該都是有亮的。這郭派教的程式,為什麼他不提供支援,解決問題呢?
問題①,顯示混亂:
如果沒有猜錯,wela=1,dula=1,應該分別是位選鎖存器、段選鎖存器的輸出使能。「使能」表示鎖存器將資料輸出。而它輸出前,p0的資料,卻是上一次的值。
於是,上次的段選,輸出到了位選上,然後位選修正,跟著修正後的位選,又輸出到了這次的段選上,再修正段選,於是一團亂。
問題②,輝度,也就是亮度。
動態顯示中,重新整理率與輝度成反比。題目程式的高速重新整理(直接用while(1)重新整理),導致輝度為最低。
問題③,其實也不算問題。6個數碼管顯示1-6,num1 跟num2 的值,什麼時候有區別?根本沒有,那為什麼不用1個變數呢?
利用微控制器設計59秒計時器,利用51微控制器,4個數碼管設計一個計時器,要求在數碼管上顯示的資料從0開始每1秒鐘加1。
共陽共陰只是你在選com端時給其高低電平的問題無關大雅我給一段pic微控制器的程式讓你參考一下,如果你看懂的話應該能做出來了 include include 此程式實現計時秒錶功能,時鐘顯示範圍00.00 99.99秒,分辨度 0.01秒 unsigned char s0,s1,s2,s3 定義0....
51微控制器URAT中斷接收資料,51微控制器串列埠接收多個字元 假如是4位元組 ,是分4次中斷傳輸的,還是一次中斷完成的?
t1定時器的初始化程式 void init1 main void main tmod 0x01 th0 th0 tl0 tl0 es 1 允許uart串列埠的中斷ri 0 ea 1 et0 1 tr0 1 init1 main tmod,被初始化了兩次不同的數值,只有最後一次,才是有效的。應該統一使...
51微控制器中斷執行過程?坐等,51微控制器中斷中的斷點地址問題,坐等!!!!
51微控制器中斷執行過程,如外部中斷。當 cpu 檢測到 有 中斷觸發 訊號後,首先 執行完成 當前執行的指令,將下一條指令 的 地址 壓入堆疊,cpu 進入中斷 入口 地址,開始 執行 中斷服務程式,當然在中斷服務程式中不能破壞正常執行 程式的各種 暫存器的 狀態 和 資料,中斷服務 程式執行 完...