作者 主題: 組合語言 這2個程式能合併?  (閱讀 1860 次)

0 會員 與 1 訪客 正在閱讀本文。

agiluckdex

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
組合語言 這2個程式能合併?
« 於: 2012-07-17 10:13 »
我是想把這兩個程式合再一起這樣可以行得通?

程式一 是我要做一個上下數的功能
程式二 是我要做一個記數脈波的程式(使用光遮斷器當作輸入)


先做這兩個的原因,是因為我需要兩個顯示數字的輸出
程式一是純顯示數字 (假設顯示是10)
程式二是要記數脈衝各數 (這個是5或多個脈衝數+1)

之後還要將兩個port做比較當 程式2 的數值等同於 程式1 的數值就停止 這樣子

因為我程式不太好,都是先參考書上的做法測試各個功能

但是想不知來要用什麼方法才可以把他們合併起來

拜託各位幫忙了


程式1
ORG 00H
MOV A,#00H
START:
MOV P1,A
JNB P2.0,ABC
JNB P2.1,DEF
DELAY2:
CALL DELAY
JMP START

ABC:
CJNE A,#20H,GO_INC
JMP START
GO_INC:
MOV A,P1
ADD A,#01
DA A
MOV P1,A
JMP DELAY2

DEF:
CJNE A,#00H,GO_DEC
JMP START
GO_DEC:
MOV A,P1
ADD A,#99H
DA A
MOV P1,A
JMP DELAY2

DELAY:
MOV R0,#5
DL1:
MOV R1,#200
DL2:
MOV R2,#250

DJNZ R2,$
DJNZ R1,DL2
DJNZ R0,DL1
RET
END
--------------------------------------------------------------------------------------------------------------------
程式2

ORG 0000H
CLR A
SETB P3.4
MOV TMOD,#00000110B
MOV TH0,#256-5
MOV TL0,#256-5
SETB TR0

LOOP: MOV P2,A
ACALL COUNTER
ADD A,#01
DA A
MOV P2,A
AJMP LOOP

COUNTER: JB TF0,OK
AJMP COUNTER

OK: CLR TF0
RET

END
DEF:
CJNE A,#0H,GO_DEC
JMP START
GO_DEC:
MOV A,P2
SUBB A,#01
DA A
MOV P2,A
JMP DELAY2

DELAY:
MOV R0,#4
DL1:
MOV R1,#200
DL2:
MOV R2,#250

DJNZ R2,$
DJNZ R1,DL2
DJNZ R0,DL1
RET
END