標(biāo)題: [求助]rom中0000h-0002h單元存轉(zhuǎn)移放指令問題 [打印本頁]
作者: 一根筋 時(shí)間: 2009-6-24 16:27
標(biāo)題: [求助]rom中0000h-0002h單元存轉(zhuǎn)移放指令問題
我看了很多網(wǎng)上許多匯編實(shí)驗(yàn)程序,有很多只寫
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),我在此謝謝了!
作者: milizhiguang 時(shí)間: 2009-6-24 19:33
我看是一個(gè)方波程序吧!
作者: rayment1199 時(shí)間: 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è)問題很怪啊!rom中0000h-0002h單元存轉(zhuǎ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í)程序。
作者: 一根筋 時(shí)間: 2009-6-25 20:48
朋友,我不理解的是:上述程序具體是放入哪些程序存儲(chǔ)單元中,0003h-002a可用嗎?
作者: sijuan2006 時(shí)間: 2009-6-26 18:03
如果指令前面是這樣的:
ORG 0000H
LJMP START
ORG 0030H
START: CLR P1.0
............
END
這樣的話,你的主程序就是從0030H單元開始存放,
而像你寫的那樣,那指令直接從0000H單元開始存了,也可以正常運(yùn)行,但是這樣的話,你就不能用單片機(jī)內(nèi)部中斷資源。
0000H
0001H
0002H
這三個(gè)連續(xù)單元是存放LJMP START 這條指令的機(jī)器碼。你可以從書上查到該指令是三字節(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ù)單元是用來存串口中斷入口地址
,這是單片機(jī)內(nèi)部固定的資源配置,你不用中斷,那么從0000,0001,0002,0003,0004,0005,。。。。。。自然可以存程序主程序,照樣執(zhí)行,但是一般的寫程序的習(xí)慣,主程序往往都是從0030H單元從,有的甚至定義在0100H,或者是1000H單元。程序存儲(chǔ)位置的定義是用ORG.建議你看看偽指令部分。
學(xué)習(xí)單片機(jī),基本指令掌握了,多看看比較完整才程序。慢慢就有認(rèn)識(shí)了。
作者: 一根筋 時(shí)間: 2009-6-30 17:05
你為我解了困惑,我非常感激,在此表示感謝!祝你好運(yùn)!
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |