① 匯編語言中子程序可以調用子程序嗎
匯編語言中子程序當然是可以調用其他子程序的。
我們編程時,之所以版要引入子程序,其主權要目的無非就是:減少重復代碼;閱讀方便;流程清晰;舉例如下:
MAIN:
MOV A,#0FEH
MOV R2,#8
LOOP:
LCALL KEYSCAN
JB 00H,LOOP1
MOV P0,A
RL A
MOV R7,#200
LCALL DELAY
SJMP LOOP
LOOP1:
RR A
MOV R7,#200
LCALL DELAY
SJMP LOOP
KEYSCAN: ;按鍵檢測子程序
JB P1.0,KEYR ;沒有按鍵退出
MOV R7,#20 ;延時子程序傳遞參數
LCALL DELAY ;調用延時子程序
JNB P1.0,$ ;等待按鍵抬起
CPL 00H ;按鍵處理 位00H取反
KEYR:
RET
DELAY:
MOV R3,#250
DJNZ R3,$
DJNZ R7,DELAY
RET
END
② 51單片機實驗(關於定時器計數器)
T0的在復自動重裝方式的最長定製時時間是256us,那麼只有用軟體計數了,
不知你的機是運行在什麼時鍾/機器周期
,我設是6時鍾,那麼我令T0的溢出時間為200us
那麼T0的初值為56
下面是程序片段
TIMECON DATA 28H;T0溢出計數器單元
T0TIME EQU 100; 溢出次數
ORG 000BH
LJMP CTC0
ORG 100H
MIAN:
MOV SP,#5FH
MOV TL0,#56;送初值
MOV TH0,#56;
ANL TOMD,#0F0H;TOMD高4位不變,T1工作方式不
;變
ORL TMOD,#02H;定義T0工作方式
SETB ET0
SETB TR0
SJMP$
CTC0:
DJNZ TIMECON,SETP
MOV TIMECON,T0TIME
SETP: ;SETP裡面的內容跟你的T1嵌套即可
使T1計數
RETI
寫在最後:其實寫程序就應該自己寫寫,多寫才會熟,當真的不懂時再找別的出路,而且樓上zhaojun_xf的做法不是很好,直接丟出個程序,完全抹殺別人的思想,這樣不好。