LED를 이용해서 2차원 패턴 만들기

마이크로프로세서

2020. 5. 25. 11:30

[그림] 이전 소스코드

 

1. Column과 Row 모두 조절하기

  • 이전에는 PORTA만 사용해서 Column단위로만 패턴을 움직였다. (Row는 1로 고정된 상태)
  • 이번에는 Row단위로도 움직여서 2차원 매트릭스 상에서 원하는 위치에 패턴을 띄워보자
  • Column에 연결된 PORTA이외에 이번엔 PORTC를 추가로 이용한다. PORTC는 LED의 Row을 담당하게 된다.
  • 이렇게 Row, Column 단위로 사용하지 않고 LED하나마다 비트를 하나씩 할당하면 총 64비트가 필요하다.
  • 그러나 Row Column 단위로 비트를 할당하면 단 16비트로 모든 LED를 제어할 수 있게 된다.

 

  • PORTC는 0x01로 설정하고, while문을 한번 돌 때마다, 왼쪽으로 한칸씩 시프트하게 된다.
  • 0000 0001에서 처음 루프를 돌면 0000 0010, 0000 0100 ... 1000 0000 처럼 한칸씩 Row가 움직이게 된다.
  • Row의 경우 Column과 다르게 정논리가 적용된다. (때문에 0x01부터 시작한다)
  • 위 그림처럼 Column으로도 한칸씩 움직이면서, Row단위로도 한칸씩 움직인다.

 

 

2. Reference

 

마이크로 프로세서 및 실습 Ⅰ

마이크로 프로세서 및 실습

www.kocw.net