線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1249
推到 Plurk!
推到 Facebook!

有關8051七段顯示器的問題?

答題得分者是:dsplab
joe0806
一般會員


發表:3
回覆:4
積分:1
註冊:2004-10-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-07 00:11:50 IP:211.74.xxx.xxx 未訂閱
想請教一下各位大大喔 有一個程式,我想讓它從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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-07 09:15:59 IP:61.219.xxx.xxx 未訂閱
因為djnz r4,Loop的意思是將r4減一,若不等於零的話則 跳到Loop,因此一旦r4等於零,就結束Loop,所以r4=0, 不會傳到a,可以改成如下,供參考: mov r4,#10 ; 將9改10 Loop: mov a,r4 dec a ; 增加a-1 call Access_Display_Code mov p3,a mov r5,#10 call Delay djnz r4,Loop jmp Start
joe0806
一般會員


發表:3
回覆:4
積分:1
註冊:2004-10-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-11 02:08:49 IP:59.104.xxx.xxx 未訂閱
謝謝大大您的指導喔,不好意思太晚回來回覆了 我已經順利寫出這個程式了 不過我還有一點不太了解的地方 昨天我無意間發現,如果在原程式的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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-11 21:59:36 IP:61.219.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-16 00:46:02 IP:211.74.xxx.xxx 未訂閱
謝謝您熱心的指導我 我大致上都已經懂了 希望以後有機會可以幫的到您
系統時間:2024-05-08 1:08:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!