?? 從機中斷接收通訊子程序.asm
字號:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; name: MCOM: *
; FUNCTION: *
; ENTRY: *
; 1 與數據流方向相同 *
; ABUFFER1,ABUFFER2 :該段效果前進方向的末端地址 *
; COLOURC: 必須通過前級程序為其賦值:#顏色代碼 *
; SEG :(SHIFT TIMES OF 1 ROW)=BYTES-1 THREE BYTES ONE PIPE *
; 在該區間(一行,半行,或更少)移動的次數,也就是該區間 *
; 字節數減1。 *
; 出口信息: * *
; 子程序調用: 無 *
; 影響資源: R0,R1 *
; 堆棧需求: 3字節 *
; 全局變量: 無 *
; 作 者: 孫宗偉 *
; 日 期: 2006年1月1日 *
; 修改人: 孫宗偉 *
; 日 期: 2006年1月1日 *
; 執行時間: 297us~~624us 跟隨SEG和PFLAG的取值而變化 *
; remark: USE EXTEND RAM 61C256 *
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;5# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;從機中斷接收方式, 主機中斷發送方式
ORG 0023H
LJMP SERVE
ORG 0050H
START: MOV TMOD,#20H
MOV TL1,#0F3H
MOV TH1,#0F3H
SETB TR1
MOV PCON,#80H ;SMOD=1
MOV SCON,#0F0H ;11110000B
MOV 08H,#50H
MOV 09H,#60H
SETB PSW.1
SETB PSW.5
SETB EA
SETB ES
; LJMP MAIN
;....
SERVE: CLR RI
PUSH ACC
PUSH PSW
MOV A,R0
PUSH A
JB PSW.1,IS_ADDR
JB PSW.5,IS_BYTES
MOV R0,2EH
MOV A,SBUF
MOV @R0,A
INC 2EH
DJNZ 2FH,RETURN
SETB PSW.1
SETB PSW.5
SETB SM2
IS_ADDR: MOV A,SBUF
CJNE A,#01H,RETURN
MOV SBUF,#01H
WAIT: JNB TI,WAIT
CLR TI
CLR PSW.1
CLR SM2
SJMP RETURN
IS_BYTES: MOV A,SBUF
MOV R0,#60H
MOV @R0,A
MOV 2FH,A
MOV 2EH,#61H
CLR PSW.5
RETURN: POP A
MOV R0,A
POP A
RETI
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -