新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 試驗7--------流水燈數(shù)字顯示綜合練習(xí)

試驗7--------流水燈數(shù)字顯示綜合練習(xí)

作者: 時間:2011-02-25 來源:網(wǎng)絡(luò) 收藏
程序運行結(jié)果為個位數(shù)碼管輪流現(xiàn)實0,1,2,34,5,6,7,8,然后十位數(shù)碼管輪流現(xiàn)實01,2,3,45,67,8反復(fù)循環(huán),P1.0,P1.1, P1.2,P1.3, P1.4,P1.5, P1.6,P1.7, 依次點亮然后輪流點亮,小喇叭不停發(fā)出滴答聲:

數(shù)碼管顯示數(shù)字

注意0為點亮 1 為滅

顯示數(shù)字

p0.7

p0.6

p0.5

p0.4

p0.3

p0.2

p0.1

p0.0

16進制代碼

0

0

0

1

0

1

0

0

0

28H

1

0

1

1

1

1

1

1

0

7EH

2

1

0

1

0

0

0

1

0

A2H

3

0

1

1

0

0

0

1

0

62H

4

0

1

1

1

0

1

0

0

74H

5

0

1

1

0

0

0

0

1

61H

6

0

0

1

0

0

0

0

1

21H

7

0

1

1

1

1

0

1

0

7AH

8

0

0

1

0

0

0

0

0

20H

9

0

1

1

0

0

0

0

0

60H

代碼表的意思和方法參照前面的教程;注意0為點亮 1 為滅然后我們可以把代碼送到P0口,就可以是數(shù)碼管顯示需要的數(shù)字;當然,必須有位選,因為我們的實驗板是動態(tài)掃描數(shù)碼管,兩個8的位選分別是P2.6 P2.7.

LOOP: ;標號

CLR P2.6 ;選中p2.6 數(shù)碼管左邊的8字使能

SETB P2.7 ;p2.7不使能。右邊的數(shù)碼管消隱

MOV P0,#28H ;把28hp0口;數(shù)碼管顯示0

LCALL DELAY ;延時

MOV P0,#0FFH ;0ffh p0口,數(shù)碼管清除

CLR P1.0 ;點亮p1.0發(fā)光管

MOV P0,#7EH ;把7ehp0口;數(shù)碼管顯示1

LCALL DELAY

MOV P0,#0FFH

CLR P1.1 ;點亮p1.0發(fā)光管

CLR P1.0 ;點亮p1.0發(fā)光管

MOV P0,#0A2H ;數(shù)碼管顯示2

LCALL DELAY

MOV P0,#0FFH

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#62H ;數(shù)碼管顯示3

LCALL DELAY

MOV P0,#0FFH

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#74H ; ;數(shù)碼管顯示4

LCALL DELAY

MOV P0,#0FFH

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#61H ;數(shù)碼管顯示5;

LCALL DELAY

MOV P0,#0FFH

CLR P1.5

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#21H ; 數(shù)碼管顯示6

LCALL DELAY

MOV P0,#0FFH

CLR P1.6

CLR P1.5

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#7AH ; 數(shù)碼管顯示7

LCALL DELAY

MOV P0,#0FFH

CLR P1.7

CLR P1.6

CLR P1.5

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#20H ; 數(shù)碼管顯示8

LCALL DELAY

MOV P0,#0FFH

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

;程序到此結(jié)果為左邊的數(shù)碼管顯示01,2,3,45,67,8;p1.0------------p1.7指示燈依次點亮

SETB P2.6 ;左邊的8消隱

CLR P2.7 ;選中p2.7 數(shù)碼管右邊的8字使能,;

MOV P0,#28H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.0

MOV P0,#7EH

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.1

MOV P0,#0A2H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.2

MOV P0,#62H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.3

MOV P0,#74H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.4

MOV P0,#61H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.5

MOV P0,#21H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.6

MOV P0,#7AH

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.7

MOV P0,#20H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

MOV P0,#0FFH

MOV P1,#0FFH

;這一段和上一段基本相同,不同的是右邊的數(shù)碼管依次顯示012345678,左邊的不亮;;同時p1口的燈流動顯示:

AJMP LOOP;注意:程序運行到此跳轉(zhuǎn)到開始標號,重復(fù)執(zhí)行:

DELAY: ;延時子程序;參考前面的教程:

CLR P3.3 ;注意小喇叭在3.3口,這里可以使小喇叭發(fā)出嗒,嗒聲

MOV R7,#255

NOP

NOP

D1:MOV R6,#255

setb p3.3

D2: DJNZ R6,D2

clr p3.3

DJNZ R7,D1

SETB P3.3

RET

END



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉