|
RE: 延時(shí)編碼求助!。∪绾翁砑??
程序中NOP都起延時(shí)作用,但是延時(shí)時(shí)間很短,下面一段子程序延時(shí)時(shí)間較長,R7和R6裝載數(shù)據(jù)越大延時(shí)時(shí)間越長。哪里需要延時(shí),將此子程序在哪里調(diào)用即可。具體延時(shí)時(shí)間計(jì)算和延時(shí)原理見課本。
......
delay: ;延時(shí)子程序
MOV R7,#30H ;設(shè)置R7=20H
L1: MOV R6,#0FFH ;設(shè)置R6=FFH
DJNZ R6,$ ;若R6-1≠0,執(zhí)行本指令循環(huán),若R6-1=0,執(zhí)行下一指令
DJNZ R7,L1 ;若R7-1≠0,執(zhí)行L2循環(huán),若R7-1=0,執(zhí)行下一指令
RET
......
如所列舉程序中一段程序。
START1:
NOP
NOP
MOV AL,0 ;從PA端口讀入開關(guān)狀態(tài)
MOV DX,IOA
IN AL,DX
NOP
NOP
MOV DX,IOB ;從PB端口輸出,控制LED亮滅
OUT DX,AL
如果延時(shí)時(shí)間很長,將兩個(gè)NOP刪除,換上ACALL delay 如:
START1:
ACALL delay
MOV AL,0 ;從PA端口讀入開關(guān)狀態(tài)
MOV DX,IOA
IN AL,DX
ACALL delay
MOV DX,IOB ;從PB端口輸出,控制LED亮滅
OUT DX,AL |
|