找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

[求助]rom中0000h-0002h單元存轉(zhuǎn)移放指令問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:14643 發(fā)表于 2009-6-24 16:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我看了很多網(wǎng)上許多匯編實(shí)驗(yàn)程序,有很多只寫(xiě) 

ORG 0

START: CLR P1.0

LCALL DELAY

SETB P1.0

LCALL DELAY

LJMP START

DELAY: MOV R5,#20

D1: MOV R6,#20

D2: MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

END不知是怎樣放置的,懇請(qǐng)哪位好心人給予指點(diǎn),我在此謝謝了!

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

使用道具 舉報(bào)

沙發(fā)
ID:14654 發(fā)表于 2009-6-24 19:33 | 只看該作者

我看是一個(gè)方波程序吧!

回復(fù)

使用道具 舉報(bào)

板凳
ID:11838 發(fā)表于 2009-6-24 21:01 | 只看該作者

ORG 0          ;設(shè)置程序的初始地址

START: CLR P1.0   ;設(shè)置底電平有效

LCALL DELAY     ;調(diào)用延遲

SETB P1.0

LCALL DELAY

LJMP START

DELAY: MOV R5,#20   ;延遲子程序

D1: MOV R6,#20

D2: MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

你的這個(gè)問(wèn)題很怪��!rom中0000h-0002h單元存轉(zhuǎn)移放指令問(wèn)題?轉(zhuǎn)移指令A(yù)JMP LJMP 你只要記以下AJMP 的轉(zhuǎn)移空間是2KB,而LJMP的轉(zhuǎn)移空間是64KB
LCALL是跳轉(zhuǎn)指令

你這個(gè)程序總的實(shí)現(xiàn)功能是P1.0口的高低電平的輪流轉(zhuǎn)換,這個(gè)可以控制接P1.0口的LED燈的閃爍,中間代碼部分就是讓P1.0口有高低電平,從而實(shí)現(xiàn)要實(shí)現(xiàn)電平的轉(zhuǎn)換,實(shí)現(xiàn)燈的閃爍,應(yīng)該有個(gè)延時(shí),所以應(yīng)該調(diào)用延時(shí)程序。

回復(fù)

使用道具 舉報(bào)

地板
ID:14643 發(fā)表于 2009-6-25 20:48 | 只看該作者
朋友,我不理解的是:上述程序具體是放入哪些程序存儲(chǔ)單元中,0003h-002a可用嗎?
回復(fù)

使用道具 舉報(bào)

5#
ID:14282 發(fā)表于 2009-6-26 18:03 | 只看該作者
如果指令前面是這樣的:
ORG    0000H
LJMP    START
ORG     0030H
START:  CLR  P1.0
............


END
這樣的話(huà),你的主程序就是從0030H單元開(kāi)始存放,
而像你寫(xiě)的那樣,那指令直接從0000H單元開(kāi)始存了,也可以正常運(yùn)行,但是這樣的話(huà),你就不能用單片機(jī)內(nèi)部中斷資源。


0000H
0001H
0002H
這三個(gè)連續(xù)單元是存放LJMP  START 這條指令的機(jī)器碼。你可以從書(shū)上查到該指令是三字節(jié)指令,指得就是其在ROM中占用三個(gè)字節(jié)單元。

0003H---000AH:這8 個(gè)字節(jié)單元是存放外部中斷0的入口,(但是一般的中斷服務(wù)程序比較長(zhǎng),在次位置一般都是放一條跳轉(zhuǎn)指令,入AJMP SER1等標(biāo)號(hào)有自己定義)
000BH---0012H:這8 個(gè)字節(jié)單元是存放外部中斷1的入口
0013H---001AH:外部計(jì)數(shù)T0
001BH----0022H:外部計(jì)數(shù)T1
0023H后面8個(gè)連續(xù)單元是用來(lái)存串口中斷入口地址
,這是單片機(jī)內(nèi)部固定的資源配置,你不用中斷,那么從0000,0001,0002,0003,0004,0005,。。。。。。自然可以存程序主程序,照樣執(zhí)行,但是一般的寫(xiě)程序的習(xí)慣,主程序往往都是從0030H單元從,有的甚至定義在0100H,或者是1000H單元。程序存儲(chǔ)位置的定義是用ORG.建議你看看偽指令部分。
學(xué)習(xí)單片機(jī),基本指令掌握了,多看看比較完整才程序。慢慢就有認(rèn)識(shí)了。
回復(fù)

使用道具 舉報(bào)

6#
ID:14643 發(fā)表于 2009-6-30 17:05 | 只看該作者
你為我解了困惑,我非常感激,在此表示感謝!祝你好運(yùn)!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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