반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

공머씨의 블로그

내가 공부한 논리회로 설계 23.(13-1_Code converter,7 segment LED) 본문

내가 공부한 3학기 전공/내가 공부한 논리회로 설계

내가 공부한 논리회로 설계 23.(13-1_Code converter,7 segment LED)

공머씨 2020. 6. 11. 17:15
반응형

조합회로 설계의 과정 5가지를 공부했습니다.

1. 입력과 출력의 개수, 이름 정하기

2. 입출력의 진리표 작성

3. 최적화(K-map)

4. 회로를 구현

5. 검증(타이밍 다이어그램 등)

 

 

또 다른 예시를 소개합니다.

CODE Converter라고 하는 것에 대해 알아봅니다.

문제

BCD코드 하나를 Excess-3 code로 변환하라는 것입니다.

또 의미 없는 입력들은 Don't care로 처리하라는 내용이 있습니다.

 

이전에 기억해야 할 개념들을 짚어보겠습니다.

BCD코드는 4BIT로 표현되어있습니다.

그리고 10진수를 4BIT로 나타냅니다.

 

Excess-3 CODE는 BCD코드에 0011(10진수 3)을 더해준 코드입니다.

 

 

이걸 어떻게 만들까.....?????

 

 

 

이것 또한 어떤 회로를 만드는 것이기 때문에 입력과 출력의 BIT를 생각해야 합니다.

입력은 4BIT가 됩니다. 출력 또한 4BIT입니다.

 

 

 

진리표를 작성해보겠습니다.

 

 

BCD코드의 경우

0000부터 1001까지 표현됩니다. (십진수로 0부터 9까지)

BCD코드에서 1010부터는 의미가 없게 되는 것입니다. >> 모두 don't care로 처리하면 됩니다.

 

카르노 맵을 그리면 됩니다.

그 중 하나만 그려보겠습니다.

 

 

이를 통해 회로를 구현하면 다음과 같습니다.

 

 

출력 4개 중 w하나만 작성한 것인데,

만약 X, Y, Z 모두 작성했다면 대강 다음의 그림과 같습니다.

 

이렇게 하면 원하는 기능(BCD를 입력하면 Excess-3 CODE로 Converting 하는 )을 수행하는 회로를 구현하게 된 것입니다.

그런데 K-MAP을 보고 작성한뒤 GATE수를 더 줄이는것이 가능할떄는 최소한의  GATE수를 사용해서

회로를 구현해야하므로

위와 같이 작성하면 오답이 됩니다.

 

 

 

1을 다 묶어내면 끝

1을 묶을 때 dcare까지 고려해서 가장 큰 cell을 만든다.

 

만약 의미 없는 입력의 출력을 0으로 한다.

라고 하면 문제가 완전히 달라집니다.

 

 

 

Excess 3 code를 BCD코드로 만드는 회로도  구현해 볼 수 있습니다.

 

 

 

 

 

 

 

 7 Segment LED를 공부해보겠습니다.

 

 

7개의 Segment로 표기되어있어서 10진수의 숫자를 Display 하는 소자입니다.

7 Segment Decoder,7 Segment element,7 Segment LED라고도 합니다.

7개의 segment에 불이 들어오는지 꺼지는지에 따라 숫자를 만들어내면 됩니다.

dp라고 하여 우측 하단에 LED가 하나 더 있습니다.(소수점을 표기하는 용도입니다.)

 

1을 표기하고 싶으면  Segment b c에 논리 값 1을 출력할 수 있도록 하면 됩니다.

(5V를 주면 됩니다. 불을 끄게하고 싶다면,0을 출력>0V를 주면 됩니다.)

전자계산기 디지털시계 led등의 여러 가지 표시용 회로를 만들 수 있습니다.

 

회로를 만들어 보겠습니다.

BCD코드를 하나 받아서 7 Segment LED에 연결하려고 합니다.

숫자 하나를 받으면 a b c d e f g를 어떻게 켤지 결정하게 됩니다.

 

 

 

 

 

입출력의 개수를 알아내고 이름을 정합니다.

아래 그림과 같이 0011을 입력으로 받으면 3이 켜지는, 그런 회로를 만든다고 했을 때,

(그림)

0000 이면 십진수로 0을 표기하고 싶은 것이므로 gSegment를 제외한 모든 Segment에 불이 들어와 야 합니다.

 

 

 

 

 

 

 

 

 

 

0001이면 b, c Segment만 불이 켜지면 됩니다. 0010이면 2를 표기합니다.  a b g e d에 불이 켜져야 합니다.

이런 식으로 나머지 값들을 채우면 됩니다.

 

1010부터는 의미 없는 입력이기 때문에 문제에서 이런 입력들을 어떻게 처리하라는 조건을 주는데 그 조건에 맞추어서 표기하면 됩니다.

 

진리표를 완성한 뒤 카르노 맵을 작성 하면 됩니다.

총 7개의 K-MAP이 작성됩니다.

 

 

이 K-map의 결과에 따라 회로를 구현하면 됩니다.

문제에서 의미 없는 입력에 대해서 0으로 표기하라는 조건을 주었다고 하면 위와 같습니다.

 

 

a에 대한 K-MAP을 작성해보겠습니다.

 

 

 

 

 

7-Segment뿐 만 아니라 Segment를 추가해서 더 다양한 숫자나 문자를 표기할 수 있습니다.

각각 7개 9개 14개 16개의 Segment가 있습니다.

 

 

 

도움이 되셨다면 로그인이 필요없는 하트버튼 한번 부탁드립니다!!

반응형
Comments