有關8051七段顯示器的問題? |
答題得分者是:dsplab
|
joe0806
一般會員 發表:3 回覆:4 積分:1 註冊:2004-10-11 發送簡訊給我 |
想請教一下各位大大喔
有一個程式,我想讓它從0-9開始上數,但是我run時發現卻只能執行到0-8而已
不曉得是那出了問題,可否請各位大大幫我看一下 謝謝 org 0
jmp Reset
Reset: mov sp,#6fh
Start:
mov r4,#9
Loop:
mov a,r4
call Access_Display_Code
mov p3,a
mov r5,#10
call Delay
djnz r4,Loop
jmp Start Delay: mov r6,#250
del_1: mov r7,#200
del_2: djnz r7,del_2
djnz r6,del_1
djnz r5,Delay
ret Access_Display_Code:
mov dptr,#Display_Code_Table
movc a,@a dptr
ret Display_Code_Table:
db 67h ;Acc=9
db 7fh ;Acc=8
db 07h ;Acc=7
db 7ch ;Acc=6
db 6dh ;Acc=5
db 66h ;Acc=4
db 4fh ;Acc=3
db 5bh ;Acc=2
db 06h ;Acc=1
db 3fh ;Acc=0 end
|
dsplab
中階會員 發表:4 回覆:42 積分:64 註冊:2004-11-11 發送簡訊給我 |
|
joe0806
一般會員 發表:3 回覆:4 積分:1 註冊:2004-10-11 發送簡訊給我 |
謝謝大大您的指導喔,不好意思太晚回來回覆了
我已經順利寫出這個程式了 不過我還有一點不太了解的地方
昨天我無意間發現,如果在原程式的1.和2地方更改,
如此就可以不需要寫dec a這一行,而且也可以順利的從0-9上數,其他程式不變
我比較不懂的是,為什麼在2的地方多加了一行,就可以跑出0-9上數了ㄋ? 我可能比較笨喔,可不可以請大大再次指點我一下 謝謝 org 0
jmp Reset
Reset: mov sp,#6fh
Start:
(mov r4,#10 這裡從9改成10 )1
Loop:
mov a,r4
然後下面的db碼
(db 3fh --->原本沒有後來加的)2
(從0-9的db碼隨便一組都可以)
db 67h ;Acc=9
db 7fh ;Acc=8
db 07h ;Acc=7
db 7ch ;Acc=6
db 6dh ;Acc=5
db 66h ;Acc=4
db 4fh ;Acc=3
db 5bh ;Acc=2
db 06h ;Acc=1
db 3fh ;Acc=0 end
|
dsplab
中階會員 發表:4 回覆:42 積分:64 註冊:2004-11-11 發送簡訊給我 |
mov r4,#10 ;( 這裡從9改成10 )1
Loop:
mov a,r4
;然後下面的db碼
db 3fh ; ->應該是Acc=0 (--->原本沒有後來加的)2
;(從0-9的db碼隨便一組都可以) 這個動作是將真正的查表位址墊了一個Byte,
因此r4(Acc)可以從1到10索取到正確資料 db 67h ;Acc=9->應該是Acc=1
db 7fh ;Acc=8->應該是Acc=2
db 07h ;Acc=7->應該是Acc=3
db 7ch ;Acc=6->應該是Acc=4
db 6dh ;Acc=5->應該是Acc=5
db 66h ;Acc=4->應該是Acc=6
db 4fh ;Acc=3->應該是Acc=7
db 5bh ;Acc=2->應該是Acc=8
db 06h ;Acc=1->應該是Acc=9
db 3fh ;Acc=0->應該是Acc=10
|
joe0806
一般會員 發表:3 回覆:4 積分:1 註冊:2004-10-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |