20140403 (TTL, AND gate, putchar, fputc, getchar, fgetc)
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는 제법 편리하고 꼬름하다는 것을 볼 수 있다.