본문내용
값을 저장
MOVX @dptr, a ;7004h번지에 16진수 0ffh 저장
MOV A,#47H ;첫 행의 첫 열의 LED를 적색으로 점등하기 위한 ACC값 설정
LOOP : MOV DPTR,#PPI_PA ;dptr에 16진수 7004h 값을 저장
MOVX @DPTR,A ;7004h번지에 16진수 47h 저장
ADD A,#10H ;ACC에 10H값 ADD 하여 ACC에 저장
CALL DELAY ;DELAY 서브루틴 호출
CJNE A,#0B7H , LOOP ;acc의 값이 B7h값이 아닐 경우 loop로 점프
END ;종료
DELAY : ;delay 서브루틴
mov r1,#80 ;레지스터 r1에 10진수 80값 저장
mov r2,#100 ;레지스터 r2에 10진수 100값 저장
djnz r2,delay ;레지스터 r2의 값을 1감소후 0이 아니면 delay로 점프
djnz r1,delay ;레지스터 r1의 값을 1감소후 0이 아니면 delay로 점프
RET ; 서브루틴으로 복귀
*(2) 프로그램 동작*
red LED가 첫 행과 열의 LED 점등 후 add 연산으로 열을 증가 시켜가면서 점등
마지막 열의 LED가 점등 후 프로그램 종료
LED점등 방향
MOVX @dptr, a ;7004h번지에 16진수 0ffh 저장
MOV A,#47H ;첫 행의 첫 열의 LED를 적색으로 점등하기 위한 ACC값 설정
LOOP : MOV DPTR,#PPI_PA ;dptr에 16진수 7004h 값을 저장
MOVX @DPTR,A ;7004h번지에 16진수 47h 저장
ADD A,#10H ;ACC에 10H값 ADD 하여 ACC에 저장
CALL DELAY ;DELAY 서브루틴 호출
CJNE A,#0B7H , LOOP ;acc의 값이 B7h값이 아닐 경우 loop로 점프
END ;종료
DELAY : ;delay 서브루틴
mov r1,#80 ;레지스터 r1에 10진수 80값 저장
mov r2,#100 ;레지스터 r2에 10진수 100값 저장
djnz r2,delay ;레지스터 r2의 값을 1감소후 0이 아니면 delay로 점프
djnz r1,delay ;레지스터 r1의 값을 1감소후 0이 아니면 delay로 점프
RET ; 서브루틴으로 복귀
*(2) 프로그램 동작*
red LED가 첫 행과 열의 LED 점등 후 add 연산으로 열을 증가 시켜가면서 점등
마지막 열의 LED가 점등 후 프로그램 종료
LED점등 방향
소개글