?? dbled1.asm
字號:
;;;;;;;;;用DBLED1.PCB板測試程序
;
;P1.0-->RD
;P1.1-->CLK
;P1.2-->STR
;P1.3-->OE
;40H,41H-->大屏地址
;R0-->50H開始存數據
ORG 0000H
AJMP MAIN
ORG 0013H
CLR EX1
LJMP INTER1
ORG 0023H
CLR ES
LJMP COMM
ORG 0100H
MAIN: MOV IE,#90H
MOV IP,#10H
CLR RS0
CLR RS1
MOV SP,#60H
MOV SCON,#60H
MOV TMOD,#21H
MOV TCON,#04H
JB P2.0,BPS96
MOV TL1,#0FAH ;12M,0e6,#00,1200bps
MOV TH1,#0FAH ;11.0592,0FD,#00,9600BPS 0FA,#80,9600BPS
MOV PCON,#80H ;11.0592,0E8,#00,1200BPS 0D0,#80,1200BPS
SJMP MAIN1
BPS96: MOV TL1,#0D0H ;4.433619M,0fe,#00,9600bps
MOV TH1,#0D0H ;4.433619M,0ed,#80,1200bps
MOV PCON,#80H
MAIN1: SETB TR1
CLR ET0
SETB REN
SETB EX1
SETB ES
CPL P1.2
MOV R0,#50H
MOV R1,#9
QINGP0: MOV @R0,#10
INC R0
DJNZ R1,QINGP0
ACALL ADDRESS
; CLR P1.3
; MOV 40H,#30H
; MOV 41H,#31H
;tt: jb p2.0,tt
; CLR EA
; mov dptr,#DATA1
; mov r3,#11
;tt1: clr a
; movc a,@a+dptr
; ACALL TRANPC
; inc dptr
; DJNZ r3,tt1
; setb EA
; sjmp tt
; LJMP B7
B1: mov 59H,#0
mov 60H,#0
MOV DPTR,#DATA1
MOV R1,#10 ;10個字節
MOV R0,#50H
B3:
MOV A,@R0
INC R0
MOVC A,@A+DPTR
MOV R3,#8 ;移位8
B4: RRC A
MOV P1.0,C ;數據信號
SETB P1.1 ;時鐘信號
CPL P1.1
DJNZ R3,B4
; INC DPTR
DJNZ R1,B3
SETB P1.3 ;打開OE信號
CPL P1.2 ;STR信號
CPL P1.2
CLR P1.3 ;關閉OE信號
B7: SJMP B7 ;SJMP B7
INTER1:
CLR EA
cpl p3.6
; MOV A,#0AAH
; ACALL TRANPC
SETB TR1 ;make the time1 work
SETB REN ;enable receive
SETB EX1
SETB EA
POP DPH
POP DPL
MOV DPTR,#B1
PUSH DPL
PUSH DPH
RETI
TRANPC:
MOV SBUF,A ;transmitter the data in the rigister ACC
JNB TI,$
CLR TI
RET
COMM: PUSH ACC
CLR EA
CLR P1.3 ;OE信號
MOV R0,#50H
; ACALL RECEPTION ;receive the length of data
; JC RE
; CJNE A,40H,RE
ACALL RECEPTION ;receive the length of data
JC RE
CJNE A,#65H,RE
ACALL RECEPTION ;receive the length of data
JC RE
CJNE A,40H,RE
ACALL RECEPTION ;receive the length of data
JC RE
CJNE A,41H,RE
MOV R1,#2
RAM: ACALL RECEPTION ;receive the length of data
JC RE
SUBB A,#30H
MOV @R0,A
INC R0
DJNZ R1,RAM
; sjmp RAMEND
MOV R1,#5
RAM1: ACALL RECEPTION ;receive the length of data
JC RE
CJNE A,#30H,RAM2
MOV @R0,#10
INC R0
DJNZ R1,RAM1
SJMP RAM3
RAM2: SUBB A,#30H
MOV @R0,A
INC R0
DEC R1
RAM3: MOV A,#1
ADD A,R1
MOV R1,A
RAM4: ACALL RECEPTION ;receive the length of data
JC RE
SUBB A,#30H
MOV @R0,A
INC R0
DJNZ R1,RAM4
RAM5: ACALL RECEPTION ;receive the length of data
JC RE
CJNE A,#30H,BLACK
MOV @R0,#10
BLACK: CJNE A,#31H,RED
MOV @R0,#11
RED: CJNE A,#32H,GREED
MOV @R0,#12
GREED:
INC R0
ACALL RECEPTION ;receive the length of data
JC RE
CJNE A,#30H,RAMEND
MOV R0,#50H
MOV R1,#9
QINGP1: MOV @R0,#10
INC R0
DJNZ R1,QINGP1
SJMP RAMEND
RE:
POP ACC
POP DPH
POP DPL
MOV DPTR,#B7
PUSH DPL
PUSH DPH
SETB ES
SETB EA
RETI
RAMEND: POP ACC
POP DPH
POP DPL
MOV DPTR,#B1
PUSH DPL
PUSH DPH
SETB ES
SETB EA
RETI
RECEPTION:
CLR C
MOV TH0,#0AH
MOV TL0,#0FH
SETB TR0
RECEWAIT:
JBC RI,RECEYES
JNB TF0,RECEWAIT
CLR TF0
CLR TR0
SETB C
RET
RECEYES:
CLR TR0
MOV A,SBUF
CLR TF0
RET
ADDRESS:
MOV A,P2
ANL A,#00001110B
ADD1: CJNE A,#00000000B,ADD2
MOV 40H,#30H
MOV 41H,#31H
RET
ADD2: CJNE A,#00001000B,ADD3
MOV 40H,#30H
MOV 41H,#32H
RET
ADD3: CJNE A,#00000100B,ADD4
MOV 40H,#30H
MOV 41H,#33H
RET
ADD4: CJNE A,#00001100B,ADD5
MOV 40H,#30H
MOV 41H,#34H
RET
ADD5: CJNE A,#00000010B,ADD6
MOV 40H,#30H
MOV 41H,#35H
RET
ADD6: CJNE A,#00001010B,ADD7
MOV 40H,#30H
MOV 41H,#36H
RET
ADD7: CJNE A,#00000110B,ADD8
MOV 40H,#30H
MOV 41H,#37H
RET
ADD8: ; CJNE A,#00001110B,ADD9
MOV 40H,#30H
MOV 41H,#38H
RET
DATA1:
DB 0fcH, 060H, 0daH, 0f2H, 066H, 0b6H, 0beH, 0e0H, 0feH, 0f6H,00H,034H,0c8H
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -