找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2428|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

各位大神出來看看這個程序那里出錯?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:218360 發(fā)表于 2018-1-27 13:12 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  我在學(xué)習(xí)匯編語言,照著51單片機(jī)視頻的例子來寫的程序,燒錄后出現(xiàn)程序有時候會自己跑飛,這個是那里問題?請各位大神指點(diǎn)下?
代碼如下:
ORG 000H
SJMP MAIN
ORG 030H
        MAIN:MOV R0,#0FFH
                 MOV R2,#16
                 MOV DPTR, #TAB
        LOOP:INC R0
                 MOV A ,R0
                 MOVC A,@A+DPTR
        SHOW:MOV P0,A
                 LCALL DEY
                 DJNZ R2,LOOP
                 SJMP MAIN
        DEY:MOV R7,#20
        D1: MOV R6,#240
        D2: MOV R5,#160
            DJNZ R5,$
                DJNZ R6,D2
                DJNZ R7,D1
                RET
                TAB:DB 001H,003H,007H,00FH,01FH,03FH,07FH,0FFH
                        DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,000H
                        END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:280247 發(fā)表于 2018-1-27 17:54 | 只看該作者
現(xiàn)在都不用匯編了,改用C語言吧
回復(fù)

使用道具 舉報(bào)

板凳
ID:76559 發(fā)表于 2018-1-27 21:59 | 只看該作者

MAIN:MOV R0,#0FFH    ;r0中是11111111是吧?  

  LOOP:INC R0                ;這時r0中是00000000對吧
                 MOV A ,R0      ;a中是0
                 MOVC A,@A+DPTR  ;表中沒0這一項(xiàng)對吧? 所以應(yīng)該為mov  r0  #000h

TAB:DB 001H,003H,007H,00FH,01FH,03FH,07FH,0FFH
                        DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,000H
                        END
我學(xué)的也不好,


回復(fù)

使用道具 舉報(bào)

地板
ID:279646 發(fā)表于 2018-1-28 09:04 | 只看該作者
樓上說的不對。 MOVC A,@A+DPTR 這一句是沒問題的 DPTR的值是表的首地址,偏移量為0的時候就是表中的第一個數(shù)據(jù)。
不知道樓主說的跑飛是什么意思? 這個程序是數(shù)碼管的一位顯示0 1 2 3  4 5  6 7 8 9吧。
你SJMP跳轉(zhuǎn)到MAIN的話 它總是顯示表中的第一個數(shù)據(jù)。如果想顯示0~9,你需要SJMP跳轉(zhuǎn)到LOOP

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

5#
ID:280354 發(fā)表于 2018-1-28 11:13 | 只看該作者
用C語言吧,這個語言用的少
回復(fù)

使用道具 舉報(bào)

6#
ID:76559 發(fā)表于 2018-1-28 21:01 | 只看該作者
KawhiL 發(fā)表于 2018-1-28 09:04
樓上說的不對。 MOVC A,@A+DPTR 這一句是沒問題的 DPTR的值是表的首地址,偏移量為0的時候就是表中的第一個 ...

好像不是數(shù)碼管,像是先點(diǎn)亮一個燈,2個,3個------8個,7個-------0個,16個循環(huán)。不知樓主高低電位怎樣定義
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表