목차
문제 1. 프로그램 각 줄에 주석을 다시오.
문제 2. 실험에 사용하는 키트의 회로도를 보고 7-세그먼트 가 전체적으로 어떻게 동작하는지에 대해서 설명하시오. (즉, 8051이 7-세그먼트에 데이터를 전달하는 과정)
문제 3. 7-세그먼트에 0~9까지를 표현하려 하면 각각 어떤 값을 전달해야 합니까? 또한 왜 그런 값을 전달해야 하는지 4를 예로 들어서 설명하시오.
문제 4. 주어진 프로그램에서 다음 부분의 역할에 대해 설명하시오. (11-12째줄)
문제 5. 실험에 8255 소자를 사용한 이유에 대해 설명하시오. 이 소자를 이용하지 않고 7-세그먼트 시계를 구현하는 방법은 없을지 생각해보시오.
문제 2. 실험에 사용하는 키트의 회로도를 보고 7-세그먼트 가 전체적으로 어떻게 동작하는지에 대해서 설명하시오. (즉, 8051이 7-세그먼트에 데이터를 전달하는 과정)
문제 3. 7-세그먼트에 0~9까지를 표현하려 하면 각각 어떤 값을 전달해야 합니까? 또한 왜 그런 값을 전달해야 하는지 4를 예로 들어서 설명하시오.
문제 4. 주어진 프로그램에서 다음 부분의 역할에 대해 설명하시오. (11-12째줄)
문제 5. 실험에 8255 소자를 사용한 이유에 대해 설명하시오. 이 소자를 이용하지 않고 7-세그먼트 시계를 구현하는 방법은 없을지 생각해보시오.
본문내용
유지한다. 마찬가지로 ~SEL_C8255_SEG_DOTMX
( 10111111 )과 &= 연산이 되면 SRRW1에서 7번째 비트를 0으로 하고 나머지 비트는 유지한다. 결과적으로 문제의 두 문장이 실행되면 SRRW1의 6번째 비트(비트5)는 1, 7번째 비트(비트6)는 0이 저장되고 나머지 비트는 유지하게 된다. (SRRW1 = X01XXXXX)
X
0
1
x
x
x
x
x
MSB 7 6 5 4 3 2 1 0 LSB
6번째비트(비트5)는 8255의 입출력 연결 선택비트로 비트값이 1이면 8255의 입출력이 내부장치를 제어하는데 이 내부장치가 비트6에의해 선택된 내부 장치 중 하나이다.
7번째비트(비트6)는 8255의 입출력 제어장치 선택비트로 비트값이 0이면 8255의 출력이 7-세그먼트를 제어하게 된다.
문제 5. 실험에 8255 소자를 사용한 이유에 대해 설명하시오. 이 소자를 이용하지 않고 7-세그먼트 시계를 구현하는 방법은 없을지 생각해보시오.
- 8051은 제한된 I/O포트를 가지는데 4개의 포트중 P0, P2는 어드레스를 연결하고 P3은 제어 핀 전용이다. 범용이용이 가능한 것은 P1정도라고 할 수 있고 따라서 추가로 I/O포트를 사용하려면 확장 I/O 소자가 필요하다. 확장 I/O 8255는 8비트 범용 입출력 포트 3개를 갖는 소자로 8051의 포트1과 같은 범용 입출력의 확장을 위해 사용된다.
기본적으로 8255의 구조는 총 40개의 핀으로 3개의 포트(PA, PB, PC)로 구성되고 각 포트는 8비트 데이터 저장장소의 레지스터이며 이 포트를 통해 3개의 외부 소자와 연결된다. PA, PB는 8비트 단위의 입/출력으로 PC는 8비트 혹은 4비트 단위의 입/출력이다. , 는 각각 8051의 , 와 연결한다. , A1, A0은 일종의 주소로써 로 전체 칩을 선택하고 A1와 A0을 이용해서 특정포트를 선택한다. 데이터포트 D는 8051의 데이터 핀과 연결하고 RESET은 active High로 내부 컨트롤 레지스터의 값을 0x9B로 초기화하며 이는 모든 포트를 모드 0과 입력으로 설정한다.
컨트롤 레지스터로 각 포트의 동작을 결정한다. 모드 0일 때, 각 포트는 범용 입/출력 포트로 동작하고 A, B, CL, CU가 포트(8비트)단위로 입/출력되고 비트 단위로 입/출력은 불가능하다. 각 포트를 통해 데이터가 7-세그먼트에 전달되고 세그먼트가 점등이 되어 십진수 표현이 되는것이다.
8255는 다용도로 이용이 가능하며 포트 A, B, C가 7-세그먼트와 바로 연결되있어서 Latch의 역할을 대신하지만 만약 8255소자를 사용하지 않고 7-세그먼트를 통해 십진수를 표현하고자 한다면
각 데이터핀이 래치를 통해 7-세그먼트와 연결되어야한다. 7-세그먼트 개수만큼 래치가 필요하고 이 래치는 오직 그 기능만 수행해서 효율적이지 못하며 하드웨어적으로 매우 복잡한 구성이되며 비용이 많이 든다. 따라서 확장 I/O를 이용하는 것이 효율적이다.
아래는 8255의 컨트롤 레지스터와 8255의 동작표이다
컨트롤 레지스터
8255 동작표
( 10111111 )과 &= 연산이 되면 SRRW1에서 7번째 비트를 0으로 하고 나머지 비트는 유지한다. 결과적으로 문제의 두 문장이 실행되면 SRRW1의 6번째 비트(비트5)는 1, 7번째 비트(비트6)는 0이 저장되고 나머지 비트는 유지하게 된다. (SRRW1 = X01XXXXX)
X
0
1
x
x
x
x
x
MSB 7 6 5 4 3 2 1 0 LSB
6번째비트(비트5)는 8255의 입출력 연결 선택비트로 비트값이 1이면 8255의 입출력이 내부장치를 제어하는데 이 내부장치가 비트6에의해 선택된 내부 장치 중 하나이다.
7번째비트(비트6)는 8255의 입출력 제어장치 선택비트로 비트값이 0이면 8255의 출력이 7-세그먼트를 제어하게 된다.
문제 5. 실험에 8255 소자를 사용한 이유에 대해 설명하시오. 이 소자를 이용하지 않고 7-세그먼트 시계를 구현하는 방법은 없을지 생각해보시오.
- 8051은 제한된 I/O포트를 가지는데 4개의 포트중 P0, P2는 어드레스를 연결하고 P3은 제어 핀 전용이다. 범용이용이 가능한 것은 P1정도라고 할 수 있고 따라서 추가로 I/O포트를 사용하려면 확장 I/O 소자가 필요하다. 확장 I/O 8255는 8비트 범용 입출력 포트 3개를 갖는 소자로 8051의 포트1과 같은 범용 입출력의 확장을 위해 사용된다.
기본적으로 8255의 구조는 총 40개의 핀으로 3개의 포트(PA, PB, PC)로 구성되고 각 포트는 8비트 데이터 저장장소의 레지스터이며 이 포트를 통해 3개의 외부 소자와 연결된다. PA, PB는 8비트 단위의 입/출력으로 PC는 8비트 혹은 4비트 단위의 입/출력이다. , 는 각각 8051의 , 와 연결한다. , A1, A0은 일종의 주소로써 로 전체 칩을 선택하고 A1와 A0을 이용해서 특정포트를 선택한다. 데이터포트 D는 8051의 데이터 핀과 연결하고 RESET은 active High로 내부 컨트롤 레지스터의 값을 0x9B로 초기화하며 이는 모든 포트를 모드 0과 입력으로 설정한다.
컨트롤 레지스터로 각 포트의 동작을 결정한다. 모드 0일 때, 각 포트는 범용 입/출력 포트로 동작하고 A, B, CL, CU가 포트(8비트)단위로 입/출력되고 비트 단위로 입/출력은 불가능하다. 각 포트를 통해 데이터가 7-세그먼트에 전달되고 세그먼트가 점등이 되어 십진수 표현이 되는것이다.
8255는 다용도로 이용이 가능하며 포트 A, B, C가 7-세그먼트와 바로 연결되있어서 Latch의 역할을 대신하지만 만약 8255소자를 사용하지 않고 7-세그먼트를 통해 십진수를 표현하고자 한다면
각 데이터핀이 래치를 통해 7-세그먼트와 연결되어야한다. 7-세그먼트 개수만큼 래치가 필요하고 이 래치는 오직 그 기능만 수행해서 효율적이지 못하며 하드웨어적으로 매우 복잡한 구성이되며 비용이 많이 든다. 따라서 확장 I/O를 이용하는 것이 효율적이다.
아래는 8255의 컨트롤 레지스터와 8255의 동작표이다
컨트롤 레지스터
8255 동작표
소개글