;DOT MATRIX 실험2 ~ 각각의 행 전체 스캔 실험
COLGREEN EQU 0FFC5H
COLRED EQU 0FFC6H
ROW EQU 0FFC7H
ORG 8000H
;****************************************************
;* R0 : DOT ROW 값 저장 *
;* R1 : DOT COLUMN GREEN 값 저장 *
;* R2 : DOT COLUMN RED 값 저장 *
;****************************************************
MOV R1,#00H ; DOT MATRIX LED 끄기
MOV R2,#00H
MOV R0,#00H
CALL DOTCOLG
CALL DOTCOLR
CALL DELAY
INIT1: MOV R2,#00000000B
MOV R0,#00000000B
CALL DOTCOLR ; RED COLOR 끄기
MOV R1,#11111111B ; 모든 열 ON
MOV R0,#00000001B ; 첫번째 행 ON
CLR C
LOOP1: CALL DOTCOLG ; GREEN COLOR 켜기
CALL DELAY
MOV A,R0
RLC A ; 다음 행으로 이동
MOV R0,A
JC INIT2 ; 색깔 바꾸기
JMP LOOP1 ; 계속 반복하기
INIT2: MOV R1,#00000000B
MOV R0,#00000000B
CALL DOTCOLG ; GREEN COLOR 끄기
MOV R2,#11111111B ; 모든 열 ON
MOV R0,#00000001B ; 첫번째 행 ON
CLR C
LOOP2: CALL DOTCOLR ; RED COLOR 켜기
CALL DELAY
MOV A,R0
RLC A ; 다음 행으로 이동
MOV R0,A
JC INIT1 ; 색깔 바꾸기
JMP LOOP2 ; 계속 반복하기
DOTCOLG: MOV DPTR,#COLGREEN
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#ROW
MOV A,R0
MOVX @DPTR,A
RET
DOTCOLR: MOV DPTR,#COLRED
MOV A,R2
MOVX @DPTR,A
MOV DPTR,#ROW
MOV A,R0
MOVX @DPTR,A
RET
DELAY: MOV R7,#02H
DELAY1: MOV R6,#0FFH
DELAY2: MOV R5,#0FFH
DELAY3: DJNZ R5,DELAY3
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
END
'Technology > Embedded' 카테고리의 다른 글
8051 source code / DOT MATRIX ㄱ(기억)자 만들기 (0) | 2009.12.05 |
---|---|
8051 source code / DOT MATRIX 세로로 한칸씩 이동하기 (0) | 2009.12.05 |
8051 source code / DOT MATRIX Color test (0) | 2009.12.05 |
8051 source code / 7_segment counter(000000~ffffff) (0) | 2009.12.05 |
8051 source code / 7_segment 깜박이기 (0) | 2009.12.05 |