掌握數碼管動態顯示的原理,動態掃描方法五位數的管上顯示出穩定的

2021-04-20 12:56:57 字數 6610 閱讀 6612

1樓:匿名使用者

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

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

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

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

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

正好都能用上。

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

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

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

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

2樓:匿名使用者

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

3樓:匿名使用者

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

微控制器用動態掃描在六位數碼管上顯示穩定的201803,求程式

4樓:匿名使用者

uchar code table=;//七段碼baiduuchar code table2=;//要顯dao示的內回容答

while(1)}

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

5樓:匿名使用者

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

dula=1;

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

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

wela=1;

p0=0xfe;

wela=0;

delay(1);

p0=0x00;// 消隱

數碼管動態掃描顯示,出現問題,請大神幫助一下。 5

6樓:匿名使用者

你這**圖是跟誰學的,誰教你的,數碼管的公共端加限流電阻的,這種**電路,不論程式怎麼寫,數碼管都不會正常顯示的。要加限流電阻,要加在七段控制端。其實**圖不用加限流電阻的。

那p0口要加一個排電阻,你那數碼管是共陽的,還是共陰的?

把你的程式發上來看一下。結論,**圖有問題,程式沒有看到,不知道怎樣。

7樓:做而論道

加上消隱部分,試試看。

數碼管動態顯示原理 (如何讓數碼管的動態掃描慢一點)

8樓:匿名使用者

不用中斷也可:

1,初始化

2,顯示第一位

3,延時(2ms)

4,顯示第二位

5,延時(2ms)

6,顯示第三位

7,延時(2ms)

8,顯示第四位

9,延時(2ms)

10,增加數字(這裡設定一個暫存器加1,只有計數到1000顯示數值才增加,這樣就是4秒顯示數值增加1)

11,跳轉到第2步

9樓:

我覺得位選不要一起開啟。

延時加的太長了,超過人眼視覺停留時間,燈才會閃的。

10樓:匿名使用者

掃描在定時中斷內執行,秒脈衝可以用軟體延時,也可以用定時中斷產生,最好用定時中斷,儘量少佔用cpu的資源。

11樓:匿名使用者

//簡單的寫一個,自己參考一下

#include

#define uchar unsigned char#define uint unsigned intsbit k1 = p1^0;

sbit k2 = p1^1;

sbit k3 = p1^2;

sbit k4 = p1^3;

uchar a,b,c,d;

uint e;

uchar code tab_num = ;//共陽數碼管void delay(uchar k) //延時函式

;if(c>9);

if(b>9);

if(a>9);

}void main()}

如何利用微控制器讓4位數碼管顯示?

12樓:沈偉棟

程式如下(用的是stc89c52晶片):

#include//52系列微控制器標頭檔案

#define uchar unsigned char

#define uint unsigned int

uint x,y;

uchar code table=;//共陰極數碼管編碼

void display(uchar,uchar,uchar,uchar);//宣告子函式

void delay(int);//宣告子函式

void main()

}void display(uchar a,uchar b,uchar c,uchar d)

void delay(uint z)//延時子函式

擴充套件資料

led數碼管是由多個發光二極體封裝在一起組成「8」字型的器件,引線已在內部連線完成,只需引出它們的各個筆劃,公共電極。led數碼管常用段數一般為7段有的另加一個小數點,還有一種是類似於3位「+1」型。

位數有半位,1,2,3,4,5,6,8,10位等等,led數碼管根據led的接法不同分為共陰和共陽兩類,瞭解led的這些特性,對程式設計是很重要的,因為不同型別的數碼管,除了它們的硬體電路有差異外,程式設計方法也是不同的。

13樓:匿名使用者

;晶振:12mhz

;p2.0、p2.1、p2.2、p2.3接共陽數碼管的選通端,p0口接資料輸出端

cs0 bit p2.0 ;個位位選

cs1 bit p2.1 ;十位位選

cs2 bit p2.2 ;百位位選

cs3 bit p2.3 ;千位位選

dsw equ 30h ;位選計數

dsb0 equ 31h ;顯示緩衝單元個位dsb1 equ 32h ;顯示緩衝單元十位dsb2 equ 33h ;顯示緩衝單元百位dsb3 equ 34h ;顯示緩衝單元千位org 0000h

ljmp main

org 0030h

mov dsb0,#04h ;顯緩="1234"

mov dsb1,#03h

mov dsb2,#02h

mov dsb3,#01h

mov tmod,#01h ;方式1定時

mov th0,#0f0h ;4ms定時

mov tl0,#60h

setb tr0

mloop: jnb tf0,$ ;4ms到?

clr tf0 ;清定時標誌

mov th0,#0f0h ;4ms定時重設mov tl0,#60h

lcall disp

ajmp mloop

;====4位數碼管掃描子程式====

disp: orl p2,#1fh ;關閉數碼顯示器mov a,dsw ;根據掃描迴圈變數轉移anl a,#07h

rl a

mov dptr,#dstab

jmp @a+dptr

dstab: ajmp dis0

ajmp dis1

ajmp dis2

ajmp dis3

ajmp dis0 ;冗餘

ajmp dis0

ajmp dis0

ajmp dis0

dis0: mov a,dsb0 ;掃描個位數碼管anl a,#0fh

mov dptr,#led7 ;查顯緩個位值的七段碼錶movc a,@a+dptr

mov p0,a ;七段碼送p0口

clr cs0 ;點亮個位數碼管

mov dsw,#01h ;掃描指標指向下十位retdis1: mov a,dsb1 ;掃描十位數碼管anl a,#0fh

mov dptr,#led7

movc a,@a+dptr

mov p0,a

clr cs1

mov dsw,#02h

retdis2: mov a,dsb2 ;掃描百位數碼管anl a,#0fh

mov dptr,#led7

movc a,@a+dptr

mov p0,a

clr cs2

mov dsw,#03h

retdis3: mov a,dsb3 ;掃描千位數碼管anl a,#0fh

mov dptr,#led7

movc a,@a+dptr

mov p0,a

clr cs3

mov dsw,#00h

ret;====led七段共陽段碼錶====led7: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h

db 80h,90h,88h,83h,86h,0a1h,86h,8eh

end希望可以幫助你。

14樓:匿名使用者

利用動態掃描讓四位數碼管穩定的顯示1234。

3.2 子情境目標:

(1)掌握微控制器控制四位數碼管的動態掃描技術,包括程式設計和電

路設計,本任務的效果是讓四位數碼管穩定的顯示1234。

(2)用proteus進行電路設計和實時**

3.3 知識點連結

(1)數碼管動態掃描 (動態掃描的定義以及與靜態顯示的區別)

動態顯示的特點是將所有位數碼管的段選線s一位數碼管有效。選亮數碼管採用動態掃描顯示。所謂動態掃描顯示即輪流向各位數碼管送出字形碼和相應的位選,利用發光管的餘輝和人眼視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。

(2)匯流排的應用

元器件與匯流排的連線

p0口的接線採用匯流排方式,詳細如圖5-17所示。

① 選擇匯流排按鈕

② 繪製匯流排:與普通電線的繪製方法一樣,選擇合適的起點、終點單擊。

如果終點在空白處,左鍵雙擊結束連線。

畫匯流排的時候為了和一般的導線區分,我們一般喜歡畫斜線來表示分支線。此時我們需要自己決定走線路徑,只需在想要拐點處單擊滑鼠左鍵即可。在畫斜線時,需要關閉線路自動路徑功能 才好繪製。

proteus的線路自動路徑功能簡稱war,當選中兩個連線點後,war將選擇一個合適的路徑連線。war可通過使用標準工具欄裡的「war」命令按鈕 來關閉或開啟,也可以在選單欄的「tools」下找到這個圖示。

③ 給與匯流排連線的導線貼標籤part labels

與p0口相連的線標籤名依次為p00—p06,本電路中的p0口的上拉電阻通過匯流排與p0口相連,數碼管也是通過匯流排與p0口相連,這些都需要標註,以表明正確的電氣連線。單擊繪圖工具欄中的導線標籤按鈕 ,使之處於選中狀態。將滑鼠置於圖形編輯視窗的欲標標籤的導線上,跟著滑鼠的指標就會出現一個「×」號,表明找到了可以標註的導線,單擊滑鼠左鍵,彈出編輯導線標籤視窗,如圖5-16所示。

在「string」欄中,輸入標籤名稱(如p00),單擊「ok」按鈕,結束對該導線的標籤標定。同理,可以標註其它導線的標籤,如圖5-16所示。

注意,在標定導線標籤的過程中,相互接通的導線必須標註相同的標籤名。

圖5-16編輯導線標籤視窗

3.4 任務步驟

3.4.1 步驟一:proteus電路設計,微控制器控制四位共陰極數碼管動態掃描顯示的原理圖如圖5-17所示。

圖5-17 四位共陰極數碼管動態掃描顯示的原理圖

1、選取元器件

①微控制器:at89c52

②帶公共端的排阻:respack-8

③四位共陰極數碼管:7seg-mpx4-cc

2、放置元器件、放置電源和地、連線、元器件屬性設定

數碼管動態掃描顯示的原理圖如圖5-17所示,整個電路設計操作都在isis平臺中進行。

(1)帶公共端的排阻(respack-8)如圖5-18所示,在本電路中作為p0的

上拉電阻,在如圖5-19所示component value一欄中可更改阻值,例如本例中將阻值更改為200歐姆。

圖5-18排阻                           圖5-19排阻屬性框

至此,我們便完成了整個電路圖的繪製。

3.4.2 步驟二:源程式設計與目標**檔案生成

(1)程式流程圖

圖5-20 數碼管動態掃描的流程圖

(2)源程式設計

#include//52系列微控制器標頭檔案

#define uchar unsigned char

#define uint unsigned int

uint x,y;

uchar code table=;            //共陰極數碼管編碼

void display(uchar,uchar,uchar,uchar);  //宣告子函式

void delay(int);                      //宣告子函式

void main()

}void display(uchar a,uchar b,uchar c,uchar d)

void delay(uint z)                   //延時子函式

數碼管顯示數字原理,數碼管動態顯示原理是什麼?

數碼管實際上是由七個發光管組成8字形構成的,加上小數點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。當數碼管特定的段加上電壓後,這些特定的段就會發亮,以形成我們眼睛看到的2個8數碼管字樣了。如 顯示一個 2 字,那麼應當是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。led數碼管有一...

微控制器數碼管動態掃描,微控制器動態掃描數碼管問題?

你的bai延時函式時間太短了 下面du 說工作流程 第一個管子zhi 的位選開啟,選dao中第一個管,關位版選,段選開啟,送權資料,關段選延時delay 5 注意這裡,人的眼睛有視覺暫留,大約0.1 0.4秒,如果你延時很短,這兩個數碼管分先後,第一個亮,然後第二個亮,迴圈往復,但是你的眼睛分辨不出...

我用51微控制器實現數碼管動態顯示時不同步

延時太長bai,一般0.5 1ms左右。du另外,你這是共陰的zhi,程式一般這dao樣 開位選,版送欄位碼,延時1ms,關位選,下一位權開位選,送欄位碼,延時1ms,關位選 clr p2.0 mov p0,a lcall delay 1ms setb p2.0 clr p2.1 mov p0,a ...