Busan IT/디지털 제어2015. 3. 17. 17:46

J-K Flip Flop을 활용한 카운터 만들기

 

학습목표

 

J-K Flip Flop을 사용하여 프로테우스에서 카운터를 만들 수 있다.

Jset, Kreset

 

R S flip flop에서 모두 1인 경우 부정인 상태를 J K가 보수인 상태로 바꾸어 준다.




JK Flip Flop의 특징 중 하나는 둘 다 1일 때 toggle(신호에 입력에 따라 반전)이 된다. 이 기능을 활용하여 counter을 만들어 볼 것이다.

 

 

 

 

 

프로테우스를 사용하여 counter만들어 보기!

 


 

 

 

 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 16. 13:35

디지털 제어 - 레지스터 회로의 기초(D&JK Flip-Flop을 활용한 기억회로)

 

학습목표

 

D Flip Flop 회로도를 이해하고 브레드보드에 만들 수 있다.

JK Flip Flop 회로도를 이해하고 브레드보드에 만들 수 있다.

 

7474를 활용하여 D Flip-Flop 회로를 만들어보자.


1(1RD)를 눌렀을 때 5(1Q)high가 인가 되었다.

4(1SD)를 눌렀을 때 6(1Q)high가 인가 되었다.

 

* 2번에 값을 입력하였을 때는 아무런 변화도 없었다.

플로팅(floating)문제라고 생각하고 스위치가 있는 자리에 풀다운을 해주었다. -> 효과 없음

다이오드에까지 풀다운 해 준 결과 원하는 결과 값이 나왔다!



 

* 모든 +/-에 전압을 인가했기 때문에 자기장이 발생하여 모든 입력 값에 전압이 들어간 것 아닐까?






//JK는 카드놀이 JackKing에서 왔다.

 

JS(set), KR(reset)에 대응된다.





프로테우스로 J-K Flip-Flop을 만들어보자!

 

*MC74HC73과 함께 J-K Flip-Flop





J(14)K(3)high를 인가하였을 때 QQ바는 보수관계를 보인다.(high일 때 low, low 일 때 high)
















 

 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 13. 13:35

디지털 제어 - Flip Flop회로(latch 회로, RS, D Flip Flop)

 

NOR/NAND latch 회로 복습

 

학습목표

 

7402를 활용하여 NOR회로를 만들 수 있다.

7400을 활용하여 NAND회로를 만들 수 있다.

NAND회로를 활용하여 RS Flip Flop 회로를 만들 수 있다.

7474회로로 D Flip Flop 회로를 만들 수 있다.

 

지난 시간에 만들었던 NOR/NAND latch회로를 만들어보자!

 

 





 

latchS-R 플립플롭의 가장 큰 차이는 클럭 공급의 차이이다.

클럭 공급으로 인해 데이터의 입출력이 연속이 아니라 클럭 공급의 형태로 바뀐다.

값이 1(S) 1(R)일 때 부정 값을 보완해주기 위해 나온 것이 D플립플롭이다.

 

/* 카르노 맵 그리는 법!

 

비트 2개가 한꺼번에 바뀌는 것을 방지하기 위해 SR값은 00 01 11 10으로 나열해 준다.

Q에는 2비트 값(0,1)을 기입해준다.

 

실습 - 클록형 S-R 플립플롭(NAND) 만들기






클럭의 high부분에서만 데이터가 처리되는 것을 레벨(level)트리거 라고 한다. 이 때 high부분에서 전압이 일정하지 않고 잡음이 발생하여 오동작이 발생할 수 있다. 때문에 high에서 low low에서 high로 바뀌는 부분에서 동작할 수 있도록 만든 것이 에지(edge) 트리거라고 한다.

//프로테우스에서 시뮬레이션 해보면 지연이 표시되지 않기 때문에 펄스 전이 검출기 회로에서의 지연 값을 볼 수 없다.



//파란색 구간은 부정을 표시한다.







 

//Q(t+1) 입력의 Q와 출력의 Q를 표시해주기 위한 표시.






 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 12. 17:33

디지털 제어 - AVR makefile 소스의 이해와 1차원 배열

 

AVR makefile 소스의 이해와 1차원 배열

 

학습목표

 

WinAVR에서 makefile 구동 개념을 안다.

makefile의 기본 문법을 안다.

1차원 배열의 기본개념의 대해 이해한다.

 

WinAVR Makefile

 

87 CPPSRC = , C++ 소스

 

97 ASRC = , 어셈블리 소스

 

103 OPT = s,optimization 최적화.(0 = 속도 최적화, s = 메모리 최적화)

 

110 DEBUG = dwarf-2, 출력하는 디버그 파일 형식 설정

 

//COFF - Common File Form

 

//윈도우 실행 파일은 PE format

 

117 EXTRAINCDIRS =, Extra Included Directories

 

125 CSTANDARD = -std=gnu99, C 표준 설정

 

129 CDEFS = -DF_CPU=$(F_CPU)UL, C++ defined

 

 

cl /DSMART=100 CDEF.c

 

// 컴파일 옵션에서 사용하는, /(C) = -(

 

129 CDEFS = -DF_CPU=$(F_CPU)UL -> #define F-CPU 16000000UL //UL unsigned long

 

-D를 추가할 시 한 칸 띄우고 같은 다시 적어주면 된다.

 

makefile에 소스코드에 없는 내용이 적혀서 구동할 수 있기 때문에 소스를 분석할 때 makefile을 같이 보아야 한다.

 

133 ADEFS = -DF_CPU=$(F_CPU)

 

137 CPPDEFS = -DF_CPU=$(F_CPU)UL

 

//아래에 CFLAG는 누적된다.

 

150 CFLAGS = -g$(DEBUG), DEBUG에 위에 선언한 dwarf가 들어간다.

 

151 CFLAGS += $(CDEFS), //상위에서 나온 내용이 아닌 경우 오류가 난다.

 

152 CFLAGS += -O$(OPT),

 

153 CFLAGS += -funsigned-char,

 

157 CFLAGS += -Wall, Warning All 경고를 전부 출력해라. -> 소스에 사소한 것이라도 알려 달라.

 

// ‘-’ 다음에 나오는 것들은 옵션이다.

 

164 CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)

 

CFLAGS는 가독성을 위해서 짧게 나누어서 나열한다.

 

233 MATH_LIB = -lm, math 라이브러리를 추가시킬 때 쓰는 옵션 //여기서 나오는 수학은 단순 사칙연산이 아니라 고등수학을 말한다. ex) sin, cos

 

262 LDFLAGS = -Wl,-Map=$(TARGET).map,--cref, LD(objexe로 만들어주는 기능)에 사용되는 flag(옵션)

 

340 CC = avr-gcc, C compiler(C:\WinAVR-20100110\bin)

 

355 MSG_ERRORS_NONE = Errors: none

 

389 ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS), /m MCU = atmega128

 

모든 flag값들을 ALL_CFLAGS가 다 가지고 있다는 의미

 

‘:’ label 표시이다.

 

// 탭으로 들여 쓰고 반드시 붙어 있어야 한다.

 

//대입 연산자랑 비슷한 순서로 수행된다.

 

 

 

 

 

이리하여 ‘make’를 쳤을 때 makefile이 어떻게 동작하는지 기본배경을 알 수 있다.

 

p/254 Ch. 11. 1차원 배열

 

같은 형의 자료를 한 개 이상 열거해 놓은 것을 배열이라고 한다.

 

모든 프로그래밍은 배열을 가지고 있고 그 개념은 거의 다 비슷하다.

 

C가 가지는 특징은 주소를 사용한다는 것이다. 또한 배열과 포인터는 밀접한 관련이 있다.

 

대괄호([])1개만 있으면 1차원 2개 있으면 2차원... so and so forth.

 

구형 c compiler에서는 배열 속 대괄호 안에 숫자를 변수로 만들어 쓸 수 없다.

//C++과 신형 c compiler에서는 허용한다.

 

p/256 예제 - 배열의 합)


 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 12. 13:24

디지털제어 - 기억회로(NOR/NAND latch회로)

 

학습목표

 

- NOR 래치회로와 NAND 래치회로의 동작을 이해한다.

- S-R 플립플롭, D 플립플롭, J-K플립플롭, T플립플롭의 동작을 이해한다.

- 클록형 플립플롭, 에지 트리거 플립플롭, 주종형 플립플롭의 차이점을 이해한다.

- 비동기 입력의 동작을 이해한다.

 

 

플립플롭 하나는 한 개의 bit를 기억한다.

 

실습 - 기억회로 만들기)

 

NOR 게이트를 이용한 기억회로 //입력 값을 설정 한 후 회로에 전원을 인가한다.



정확한 이름은 NOR latch회로이다.

 

NOR gate 대신 NAND회로를 넣고 그려보자!

 

74HC02를 활용하여 NOR latch회로를 만들어보자!



74HC02를 사용하여 만들어 보았다.

NAND latch회로도 74LS00을 만들어 보았다.


반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 11. 13:27

디지털 제어 - 엔코더/디코더/멀티&디멀티플렉서

 

학습목표 - 엔코더, 디코더, 멀티&디멀티플렉서의 논리를 이해하고 회로도를 그릴 수 있다.




 

오늘은 본격적으로 인코더에 대해서 알아보겠다.








 

2진수를 그레이코드 바꾸는 법

 

- 맨앞자리는 그대로 내려오고

- 그 위에부터는 두 개씩 XOR을 하여 내려오면 된다.

 

ex) 1011(2) -> 1110(Grey)

 

//카르노맵이란?

 

 

그레이코드를 2진수로 바꾸는 법

 

- 맨 앞지리는 그대로 내려오고

- 그 뒤부터 앞에 나온 값과 다음 자리를 XOR 값을 도출하면 된다.

 

ex) 1110(Grey) -> 1011(2)

 

 

패리티 비트(Parity bit)는 정보의 전달 과정에서 오류가 생겼는지를 검사하기 위해 추가된 비트이다. 전송하고자 하는 데이터의 각 문자에 1 비트를 더하여 전송하는 방법으로 2가지 종류의 패리티 비트(홀수, 짝수)가 있다. 패리티 비트는 오류 검출 부호에서 가장 간단한 형태로 쓰인다.

 

짝수(even) 패리티 - 전체 비트에서 1의 개수가 짝수가 되도록 패리티 비트를 정하는 것인데, 이를테면 데이터 비트에서 1의 개수가 홀수이면 패리티 비트를 1로 정한다.

 

홀수(odd) 패리티 - 전체 비트에서 1의 개수가 홀수가 되도록 패리티 비트를 정하는 방법이다.

 

7bit의 자료 데이터를 전송할 때 짝수 패리티는 자료 데이터 속 1의 개수가 짝수가 되도록 제일 앞자리에 0또는 1일 넣어서 8비트 1의 개수가 짝수가 되는 값으로 도출해준다.

홀수 패리티는 1의 개수가 홀수가 되도록 가장 앞자리에 0또는 1을 넣어주는 것이다.

 

패리티는 데이터를 한 공간에서 다른 공간으로 이동시킬 때 데이터가 제대로 전송되었는지 정검해주는 기술을 말한다.



포트는 총 10개이고 시작/종료 포트 각 각 1개씩, 데이트 비트 8개 총 10bit이다.

엔코더를 그려 보자



엔코더는 디코더의 반대이다. 2n승개의 코드 입력을 받아서 n개의 데이터를 내보내는 것이다.

디코더도 그려보자.

 

 

 

디코더 & 디멀티 플렉서

 

디코더는 코드를 분할하는 것이다. n비트의 코드 입력을 받아서 2n승개의 데이터를 내보내는 것이다.

 

ex) 2진법 -> 전광판 숫자로

 

엔코더

 

//수업의 목표는 1. 진리표를 만들어서 2. 진리표를 보고 회로도를 만드는 것이다.

멀티플렉서도 만들어 보자!



멀티 플렉서는 다양한 입력 값 중에 하나를 선택하여 출력하는 것이다.

 

 

아래의 회로를 만들어 보자!

 

1. 4 X 2(엔코더) X 4(디코더)

 

2. 1 X 4(디멀티플렉서) X 1(멀티플렉서)

 

 

1. 엔코더의/디코더/디멀티플렉서/멀티플렉서의 논리와 회로 구조를 이해한다.

 

2. 위의 주어진 엔코더와 디코더를 붙혀서 입력 값과 출력 값이 맞는지 확인한다.

 

 

코드란 어떤 정보를 특정 규칙의 다른 언어로 변환한 것인데, 프로그래밍에서는 정보를 디지털신호(2진수)로 변환하는 것이다.

 

Decoder2진 정보를 다른 형식의 단일 신호로 바꾸어 주는 회로이다.

n개의 정보를 입력 받아 2n승의 정보를 출력한다.

 

 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 10. 13:26

디지털 제어 - 가산기 & 디코더의 논리회로

 

 

지난 시간에 했던 반가산기와 전가산기를 복습해보자.

 

전가산기는 반가산기 2개와 OR Gate 1개를 추가하여 만들 수 있다.

 

반 감산기의 회로는 ‘-‘자리수로 나누어 표현할 수 있다.

 

4비트 가산기를 만들어보자!







디코더는 코드 형식의 2진 정보를 다른 형식의 단일 신호로 만들어주는 회로이다.

Enable은 전체를 1로 만들어주는 역할을 수행한다.













 

 

점까지 총 8비트로 제어할 수 있다.

 

7세그먼트의 종류 2가지. VCC(A, +)common으로 GND(K, -)common으로 한 것으로 나눈다.

 

//디코더와 디멀티플렉서는 같다고 생각하면 된다.

 

게이트의 숫자를 2배로 늘릴 때 게이트를 복사하여 하나는 enable을 그대로 다른 하나는 enablenot gate를 붙혀 사용하면 된다.

 

 

내일은 인코더를 만들어 보고 인코더가 끝나면 flip-flop을 해본다.

 

 


 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 9. 13:26

디지털 제어 - 논리게이트의 개념과 특성

 

학습목표

 

논리 게이트와 논리 레벨의 기본 개념의 대해 알아본다.

기본 논리 게이트들의 동작 원리 및 진리표, 게이트 기호들에 대해 알아본다.

정논리와 부논리에 대해 알아본다.

게이트들의 전기적인 특성에 대해 알아본다.

 

//드모르간 정리에 의해 And회로 없이도 NAND회로가 작성가능하다!

 

기본 게이트(AND, OR, NOT)를 활용하여 다양한 논리회로를 만들 수 있다.

 

지난 시간에 했던 내용들을 다시 한번 살펴보자!

 

TTLCMOS 논리 레벨 정의영역

 

 

정의되지 않은 영역에 의해 논리회로에 신호가 들어가는 것을 막기 위해 pull-up 또는 pull-down을 사용해 준다.

//정의되지 않은 영역에서의 신호와 정확한 입출력에 의한 신호의 결과물 차이는 확연하다 ex) 다이오드 불 밝기의 차이

 












//드모르간 법칙에 대한 학습이 필요하다! 논리게이트는 입력 값에 따른 출력 값이 같으면 모양은 신경 쓰지 않는다.





XOR2bit 덧셈에 사용되는 논리회로이다.

//IC 7486

 




//IC 74266 - 별로 많이 안 쓰인다.





게이트에 입력이 들어가서 출력이 되기까지 걸리는 시간을 반응시간이라고 한다.




//시간차가 없는 LS/HC시리즈를 가장 많이 사용한다.

 

 

입력 범위에 대해서는 증폭회로를 사용하여 입력값을 조절해 줄 수 있음으로 입력전압 범위가 출력전압 범위보다 크다.

 



 

출력전류가 어디로 가느냐에 따라서,

칩의 아웃풋 = 싱크전류, 그라운드 = 소스전류



불확실한 신호가 입력되는 것을 막기 위해 사용.



 

// BJT(Bipolar Junction Transistor),MOS(Metal Oxide Semi-conduct)

 

 

논리회로를 이용하여 반가산기를 만들어 보자 -> 프로테우스로 만들어본다.



 

전가산기를 만들어 보자!

 
















 

 

 

 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 6. 13:20

논리식과 논리회로 이해와 실습

 

#1. 논리식과 논리회로

 

학습목표

 

- 기본 논리식의 표현 방법을 알아본다.

- 불 대수의 법칙을 알아본다.

- 논리회로를 논리식으로 논리식을 논리회로로 표현하는 방법을 알아본다.

- 곱의 합(SOP)과 합의 곱(POS), 최소항(minterm)과 최대항(maxterm)에 대해 알아본다.

 

 

지난 시간에 AND/OR gate 그리고 pull up/pull down에 대하여 학습하였다.

 

지난 시간에 not논리 회로에 대해 빠뜨려 먹었다.

 

기본적인 불 대수식은 and, or, not을 이용하여 표현

and식은 곱셉의 형식으로 표현하고 or식은 덧셈의 형식으로 표현한다.

not은 해당 명제에 언더바를 사용하여 표현한다.

완전한 논리식은 입력 항목들의 상태에 따른 출력을 결정하는 식

 

불 대수 법칙 (불 대수 공리)






1 - X0의 덧셈에서 X에 따라 값이 결정된다.

2 - X1의 곱에서는 X에 따라 값이 결정된다.

3 - X1의 덧셈에서 X에 상관없이 값은 1이다.

4 - X0의 곱에서 X에 상관없이 값은 0이다.

5 - X에서 X를 더하면 값은 X이다.

6 - X에서 X를 곱하면 값은 X이다.

7 - X~X를 더하면 X값에 상관없이 값은 1이다.

8 - X~X의 곱은 X값에 상관없이 값은 0이다.

9 - X를 두 번 부정하면 X이다.

10&11 - 덧셈과 곱셈의 논리 값에서 교환법칙은 성립한다.

12&13 - 덧셈과 곱셈이 합친 논리 값에서 결합법칙은 성립한다.

14&15 - 덧셈과 곱셈이 합친 논리 값에서 분배법칙은 성립한다.

...



//각각의 경우를 대입하여 증명하는 방법을 수학적 귀납법 증명이라 부른다.

//not은 작은 동그라미 하나를 회로에 추가함으로써 나타낼 수 있다.

  

실습 - 논리회로 구성의 실제)

 

NOR GATE 회로 구성을 해보자!

 

//not gate 회로 74HC04

 

 

 

#2 - #3. 논리회로 값의 실습

 

 






 

#4. 논리회로 실습

 

NOR회로 NAND회로를 그려보자!



//Exclusive Or - 두 개의 명제가 같으면 0, 입력 값이 다르면 1

 

프로테우스로 그려보자!



 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 5. 13:30

디지털 제어 - 디지털 논리 회로

 

#1. 디지털 논리회로

 

학습목표 - OR/AND 회로에 대해 이해한다.

 

디지털하면 이진법! 01로 신호화.

 

디지털 신호는 표본화 양자화 부호화 과정을 거쳐서 완성된다.

 

아날로그 신호는 연속 디지털 신호는 비연속이다.

 

MP3의 소리 출력을 예로 들어 디지털 신호에 대해 살펴보자.

 

인간의 가청 주파수인 20 - 20kH를 추출하여 진동수를 조절하여 소리의 세기, 높이, 음색을 조절할 수 있다.

 

<소리의 3요소>

논리회로에서 AND회로는 곱셉이라고 생각하고 OR회로는 +라고 생각하면 된다.

이 때 01이상의 숫자로 구분하여 1이상일 때는 작동 0일 때는 비작동이다.

 

논리회로에서 왼쪽은 입력 오른쪽은 출력이라고 가정한다.

<논리회로의 기호>

 

AND/OR 작동 원리를 실습해 보자.

 

AND 회로는 74XX08시리즈, OR 회로는 74XX32시리즈.

 

ex) MC74HC32AN 회사 OR gate

 

<MC74HC32AN 핀과 논리 설명>

 

! 핀의 번호는 시계반대 방향으로 1 - 14번까지

 

 

#2 - 3. 디지털 논리 회로의 실습

 

MC74HC32AN 데이터시트를 보고 논리회로를 파악한다.

 

// 5volt LED에 바로 전압을 인가하면 LED가 타버린다. 저항을 넣어야 한다.

 

각 논리 값을

 

0 0

1 0

0 1

1 1

 

로 설정하고 출력 값을 확인해보자.

 

 

<브레드보드 선 연결 회로>

 

#4. 논리회로와 pull-up/pull-down

 

Floating을 방지하기 위해 pull-up 또는 pull-down을 사용해 보자.


 

 

반응형
Posted by newind2000