?? 頁寫.asm
字號:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
WORDADRR EQU 30H ;WORDADRR EQU 30H
DATEADDR EQU 30H
MOV A,#01H
MOV R7,#08H
MOV R1,#30H
KK: MOV @R1,A
INC A
INC R1
DJNZ R7,KK
ACALL WRITE
MOV 72H,#100
LOOP3:MOV 71H,#100
LOOP1:MOV 70H,#47
LOOP0:DJNZ 70H,LOOP0
NOP
DJNZ 71H,LOOP1
MOV 70H,#46
LOOP2:DJNZ 70H,LOOP2
NOP
DJNZ 72H,LOOP3
MOV 70H,#48
LOOP4:DJNZ 70H,LOOP4
ACALL READ_8
LJMP RETURN
WRITE:ACALL STA ;8字節發送
MOV A,#0A0H
ACALL SLA8
ACALL CACK
JNB ACC.1 ,PP1
LJMP ERR
PP1: MOV A,#WORDADRR
ACALL SLA8
ACALL CACK
JNB ACC.1,PP2
LJMP ERR
PP2:MOV R0,#DATEADDR
MOV R6,#08H
PP4: MOV A,@R0
ACALL SLA8
ACALL CACK
JNB ACC.1,PP3
LJMP ERR
PP3:INC R0
DJNZ R6,PP4
ACALL STOP
RET
READ_8:ACALL STA ;序列讀8字節
MOV A,#0A0H
ACALL SLA8
ACALL CACK
JNB ACC.1,PP5
LJMP ERR
PP5:MOV A,#WORDADRR
ACALL SLA8
ACALL CACK
JNB ACC.1,PP6
LJMP ERR
PP6:ACALL STA
MOV A,#0A1H
ACALL SLA8
ACALL CACK
JNB ACC.1,PP7
LJMP ERR
PP7: MOV R0,#40H
MOV R6,#07H
PP9: ACALL RLA8
MOV @R0 ,A
ACALL MACK
; JNB ACC.1,PP8
; LJMP ERR
PP8: INC R0
DJNZ R6,PP9
ACALL RLA8
MOV @R0 ,A
ACALL MNACK
ACALL STOP
RET
SLA8: MOV R7,#08H ;發送8 位
BACK:
RLC A
JC NEXT
ACALL MACK
AJMP LOOP23
NEXT: ACALL MNACK
LOOP23: DJNZ R7,BACK
RET
RLA8: MOV R7,#08H
;接收8位
BACK1: SETB P1.1
SETB P1.0
NOP
NOP
NOP
NOP
MOV C,P1.1
RLC A
CLR P1.0
DJNZ R7,BACK1
;CLR P1.0
RET
STA: SETB P1.1 ; ;啟動
SETB P1.0
NOP
NOP
NOP
NOP
CLR P1.1
NOP
NOP
NOP
NOP
CLR P1.0
RET
STOP: CLR P1.1 ;停止
SETB P1.0
NOP
NOP
NOP
NOP
SETB P1.1
NOP
NOP
NOP
NOP
NOP
CLR P1.1
CLR P1.0
RET
CACK:
SETB P1.1 ;接收應答信號
SETB P1.0
NOP
NOP
NOP
NOP
NOP
MOV A,P1
JNB ACC.1,CEND
AJMP CACK
CEND:CLR P1.0
NOP
RET
MACK: CLR P1.1 ;發0/應答位
SETB P1.0
NOP
NOP
NOP
NOP
CLR P1.0
SETB P1.1
RET
MNACK: SETB P1.1 ; ;發1/非應答信號
SETB P1.0
NOP
NOP
NOP
NOP
CLR P1.0
CLR P1.1
RET
ERR:AJMP RETURN
RETURN:
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -