부산IT학원/스마트컨트롤러

20140403 (TTL, AND gate, putchar, fputc, getchar, fgetc)

EHOzlO 2014. 4. 3. 14:31

34일차

 

 

--------------------

디  지  털  회  로

--------------------

--- 트랜지스터

- NPN : 소량의 입력 전류와 양의 전압을 Base에 인가하면 (Vb > Ve) Collector에서

Emitter로 다량의 전류가 흐를 수 있게 된다.

- PNP : 소량의 출력 전류와 음의 전압을 Base에 인가하면 (Vb < Ve) Emitter에서

Collector로 매우 다량의 전류가 흐를 수 있게 된다.

 

트랜지스터끼리 조합하여 논리회로를 구성함.

 

 

 

--- TTL (Transistor Transistor Logic)

주로 5V 사용.

논리회로 종류로 트랜지스터 트랜지스터 구조를 말한다.

74XX 시리즈로 유명해졌다.

 

- 실제 생김새

빨강색 글씨로 1,7,8,14의 의미는

옆에 가닥가닥 각각 번호이다.

14 13 12 11 10  9  8

1   2   3   4  5  6  7

빨강색으로 줄 친 부분이 이 칩의 모델명이다.

 

 데이터 시트 (AND Gate)

A, B로 입력

Y로 출력

 

 

--- 실습

- AND Gate

 

오른쪽 밑 부분 노란줄 두 개가 파란라인에 꽂혀있다.

A  B  Y

0   0  0     ( G : 0   ,   +  :  1   ,    1이 나오면 LED에 불이 들어옴)

 

A  B  Y

1  0   0 

 

A  B  Y

0   1  0 

 

A  B  Y

1  1   1 

 

 

 

 

 

----------------

C 언어

----------------

-------------------

--- putchar, fputc

- int putchar(int c)

인자에 정수를 받아 한 문자만 아스키코드로 출력한다.

- int fputc(int c, FILE * stream)

인자에 정수를 받아 stream으로 한 문자만 아스키코드로 출력한다.

- 두 함수 리턴값은 출력된 문자(정수값)이고 에러시 EOF(-1)를 리턴.

 

--- getchar, fgetc

- int getchar(void)

한 문자만 입력 받는다.

- int fgetc(FILE * stream)

한 문자만 stream으로 부터 입력 받는다.

- 두 함수 리턴값은 입력된 문자(정수값)이고 에러시, 파일 끝에 도달시 EOF(-1)를 리턴.

 

ex) 예제

#include <stdio.h>

int MyPutchar(int);
int Mygetchar();

int main()
{
  int  iNum;

  iNum = MyPutchar('A');
  printf("\n%d \n", iNum);

  iNum = fputc('A', stderr);
  printf("\n%d \n", iNum);

  fprintf(stderr, "EOF : %d\n", EOF);

  iNum = Mygetchar();
  fflush(stdin);
  printf("%c \n", iNum);

  iNum = getchar();
  fflush(stdin);
  printf("%c \n", iNum);

  iNum = fgetc(stdin);
  printf("%c \n", iNum);

  return 0;
}

int MyPutchar(int iNum)
{
  return fputc(iNum, stdout);
}

int Mygetchar()
{
  return fgetc(stdin);
}

위의 예제를 보면

putchar, getchar는 제법 편리하고 꼬름하다는 것을 볼 수 있다.