제 3 장 74HC541 소자를 이용한 키 입력 및 74HC574로 출력하기

Download Report

Transcript 제 3 장 74HC541 소자를 이용한 키 입력 및 74HC574로 출력하기

제 3 장
74HC541 소자를 이용한 키 입력
및 74HC574로 출력하기
3.1 74HC541(입력소자)이란? (1)
입력 측의 데이터를 컨트롤 라인의 값에 따라
출력 측의 데이터 라인으로 넘김
사용하지 않는 핀은 0(GND)연결 또는 10KΩ의
저항을 연결(CPU의 오동작 방지)
541_EN : GAL칩에서 나오는 신호(어드레스와
/RD의 복합으로 출력)
F000번지의 어드레스와 /RD 신호로 칩 선택이
되도록 되어있다
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
2
3.1 74HC541(입력소자)이란? (2)
[ 74HC541 진리표 ]
G1
G2
입력
출력
0
0
0
1
1
0
0
1
0
1
H
L
X
X
X
H
L
Z
Z
Z
Z : High impedence
X : Don’t care
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
3
3.2 PULL UP 과 PULL DOWN (1)
사용하는 하드웨어가 오픈컬렉터(오픈드레인)
인 경우, 출력을 얻기 위해서는 전원, GND쪽으
로 저항을 연결해서 전압원을 만들어 주어야
한다.
풀업(PULL UP) 저항 : VDD(5V)쪽으로 저항을
연결하는 것을 풀업 이라 한다
풀다운(PULL DOWN) 저항 : GND쪽으로 저항을
연결하는 것을 풀다운 이라 한다
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
4
3.2 PULL UP 과 PULL DOWN (2)
5V
R
¾ç´Ü¿¡
°É¸®´Â Àü¾Ð
A
SW2
스위치가 연결이 되지 않
았을 경우 A에 걸리는 전
압은 5V이다
저항 양단에 걸리는 전압
은 저항 R을 통하여 5V가
양단에 걸린다.
GND
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
5
3.2 PULL UP 과 PULL DOWN (3)
5V
R
A
스위치를 누르면 A 지점은 GND
(0V)로 된다.
스위치의 입력에 따라 5V와 0V
가 된다.
이 저항을 PULL-UP 저항이라 한
다.
GND
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
6
3.2 PULL UP 과 PULL DOWN (4)
5V
¾ç´Ü¿¡
°É¸®´Â
Àü¾Ð
A
만약 저항이 없다면 A지점에
걸리는 전압원이 없어지므로
출력이 나올 수 없다.
위와 같이 출력이 스위치 처
럼 전원에 대해 오픈된 회로
를 오픈컬렉터라 한다.
SW2
GND
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
7
3.2 PULL UP 과 PULL DOWN (5)
12V
5V
12V ȸ·Î
5V ȸ·Î
¿ÀÇÂÄ¿·ºÅÍ
CPU
Ãâ·Â
ȸ·Î
ÀÔ·Â
ÀÔ·ÂÀü¾ÐÀÌ
0V,12V·Î
µÈ´Ù
[오픈 컬렉터(오픈드레인) 회로 설명 ]
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
8
3.3 리셋(RESET)이란? (1)
마이컴에 전원이 인가되면 POWER ON RESET 이
걸린다
RESET : 마이컴(PC에서의 CPU)의 Program
Counter가 0000H번지가 되며 이 번지부터 프로
그림이 다시 시작되는 것
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
9
3.3 리셋(RESET)이란? (2)
Àü¿ø Àΰ¡½Ã
5V
Àü·ùÀÇ ¹æÇâ
DIODE
10K
ÀúÇ×À» ÅëÇÑ
Àü·ù°¡ È帥´Ù
U208
A
2
+
1
NOT
B
U209
2
1
NOT
10uF
ÀúÇ×À» Åë°úÇÑ Àü·ù°¡ ÃæÀüÀÌ µÈ´Ù
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
10
3.3 리셋(RESET)이란? (3)
전원이 인가되면 저항을 통해 흐른 전류는 콘
덴서에 충전되어 A지점의 전압은 LOW(0V) 
HIGH(5V)로 변한다.
NOT GATE를 거치면 B지점은 HIGH 에서 LOW로
바뀐다.
80C31 마이컴은 RESET PORT가 HIGH ACTIVE 이
므로 HIGH에서 리셋이고, 동작 중일때는 LOW
상태를 유지한다.
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
11
3.3 리셋(RESET)이란? (4)
0V
Àü¿øÀ» Á¦°ÅÇϸé 0V°¡ µÈ´Ù
ÃæÀüµÈ Àü·ù°¡ ´ÙÀÌ¿Àµå¸¦
ÅëÇØ ¹æÀüµÈ´Ù
DIODE
10K
U208
A
2
1
NOT
B
U209
2
1
NOT
10uF
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
12
3.3 리셋(RESET)이란? (5)
5V
DIODE
10K
U208
A
½ºÀ§Ä¡
0N À̸é
2
1
NOT
B
U209
2
1
NOT
10uF
ÃæÀüµÈ Àü·ù°¡ ½ºÀ§Ä¡¸¦ ÅëÇØ
¹æÀü µÈ´Ù
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
13
3.3 리셋(RESET)이란? (6)
HIGHÀÎ½Ä ·¹º§
A ÁöÁ¡ÀÇ Àü¾Ð º¯È-
5V
0V
5V
B ÁöÁ¡ÀÇ »óÅ º¯È0V
H-->L °¡ µÉ¶§ ¸®¼ÂÀÌ °É¸²
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
14
[실험] 1. 74HC541로 입력된 데이터를
74HC574 출력소자로 출력하기 (1)
U10
D0
D1
D2
D3
D4
D5
D6
D7
574_EN
2
3
4
5
6
7
8
9
11
1
D1
D2
D3
D4
D5
D6
D7
D8
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q8
19
18
17
16
15
14
13
12
OUT_0
OUT_1
OUT_2
OUT_3
R
R
R
R
VDD
CLK
OC
10K 10K 10K 10K
74HC574
SW1
U11
D0
D1
D2
D3
D4
D5
D6
D7
18
17
16
15
14
13
12
11
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
A1
A2
A3
A4
A5
A6
A7
A8
G1
G2
74HC541
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
2
3
4
5
6
7
8
9
IN_0
IN_1
IN_2
IN_3
1
19
541_EN
SW2
SW3
SW4
[ 회로도 ]
15
1. 74HC541로 입력된 데이터를
74HC574 출력소자로 출력하기 (2)
[ 사용 명령어 검토 ]
MOV
바이트(8비트)단위의
데이터 이동
MOV A,#00H
MOV DPTR,#0F000H
데이터의 입/출력(/RD,/WR
MOVX
핀이 움직인다)
MOVX @DPTR,A 출력
MOVX A,@DPTR 입력
CALL
서브루틴(함수) 호출
CALL D_1S
JMP
JUMP 해서 실행하라
JMP MAIN
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
16
1. 74HC541로 입력된 데이터를
74HC574 출력소자로 출력하기 (3)
[ 순서도 검토 ]
시작
↓
초기화
↓
데이터 입력(541)
↓
읽은 값을 반전해서
데이터 출력(574)
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
반복해서 키 체크
17
1. 74HC541로 입력된 데이터를
74HC574 출력소자로 출력하기 (4)
START:
;;
;;
INITIAL:
MAIN:
ORG
JMP
0000H
INITIAL
;시작번지를 0000번지로 한다
;8051 초기 데이터(고정)
;인트럽트 벡터 영역
ORG
NOP
NOP
MOV
MOVX
CPL
MOVX
JMP
0035H
;프로그램 시작번지(35번지)
;NO OPERATION(동작 없음)
DPTR,#0F000H
A,@DPTR
A
@DPTR,A
MAIN
;74HC574 칩 선택 어드레스
;데이터를 입력(541 입력)
;A의 값을 반전 한다.
;데이터를 출력(574 출력)
;다시 MAIN으로 간다(반복)
;;
$DELAY.INC
END
제3장 74HC541 소자를 이용한 키
입력 및 74HC574로 출력하기
;딜레이 함수 첨부
; PROGRAM END
18