?? 17動態數碼管掃描.asm
字號:
;本程序的任務是要讓8個數管能分別顯示不同的數字,以前的例子中,更改P1口聽數據,8個數碼管會同時變成另一數字,本程序需要觀看LED顯示,請將CZ2和P1口用排線連接起來
;本程序先在30-37h放入0-7,在數碼管中顯示出來
;根據電路原理圖可知,本實驗板是用一只74HC164擴展IO來控制8個數碼管點亮,這種方法又經濟,又方便,
org 00h
mov dptr,#ledtab
mov r1,#0
mov 30h,#0
mov 31h,#1
mov 32h,#2
mov 33h,#3
mov 34h,#4
mov 35h,#5
mov 36h,#6
mov 37h,#7 ;先將要顯示的數放入寄存器內,以后做產品時,你要顯示什么數就由你的程序自動計算自動放進這里
main:
;LED動態掃描程序顯示開始,說明有8只LED數碼管,就需要分別顯示8只數碼管,r7表示是輪到顯示第幾只
inc r7
disp0:cjne r7,#8,disp1
mov r7,#0
disp1:cjne r7,#0,disp2
mov a,#00000001b ;通過串行口向74HC164發送數據,只讓一個數碼管的陽極有電,即只點亮一只數碼管
mov p1,#0ffh ;向74HC164送數據前要先熄滅LED數碼管顯示,否則,會出"鬼影",因為要確保每一位管對應每一位管的數據
mov sbuf,a ;現在是通過串行口送數,這是硬件完成的,為了保險,后可以跟幾個空指指令,徹底消除鬼影,否則,顯示數據送到P1口了,串行數據有可能還沒有傳完
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -