8051-I/O-Port 포트1

Download Report

Transcript 8051-I/O-Port 포트1

8051 IO-PORT
정보통신•컴퓨터 공학부 송명규
Hanbat National University prof. Song Myoung Gyu
1
8051-I/O-Port
8051 시리즈 기능 비교표
Hanbat National University prof. Song Myoung Gyu
2
8051-I/O-Port
8051 외부 Pin 신호 [1]
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
(RXD)P3.0
(TXD)P3.1
(INT0)P3.2
(INT1)P3.3
(T0)P3.4
(T1)P3.5
(WR)P3.6
(RD)P3.7
XTAL2
XTAL1
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8051
&
8052
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
Vcc
P0.0(AD0)
P0.1(AD1)
P0.2(AD2)
P0.3(AD3)
P0.4(AD4)
P0.5(AD5)
P0.6(AD6)
P0.7(AD7)
EA/VPP
ALE/PROG
PSEN
P2.7(A15)
P2.6(A14)
P2.5(A13)
P2.4(A12)
P2.3(A11)
P2.2(A10)
P2.1(A9)
P2.0(A8)
Hanbat National University prof. Song Myoung Gyu
3
8051-I/O-Port
8051 외부 Pin 신호 [2]
Hanbat National University prof. Song Myoung Gyu
4
8051-I/O-Port
8051 외부 Pin 신호 [3]
Pin
U?
31
19
18
9
12
13
14
15
1
2
3
4
5
6
7
8
EA /VP
X1
X2
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
RE SET
INT0
INT1
T0
T1
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
8051
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
RD
WR
PS EN
ALE /P
TX D
RX D
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
17
16
29
30
11
10
기
능
RxD
시리얼 입력 포트
TxD
시리얼 출력 포트
INT0
외부 인터럽트 0
INT1
외부 인터럽트 1
T0
타이머 0 외부 입력
T1
타이머 1 외부 입력
WR
외부 데이터 메모리 출력 스트로브
RD
외부 데이터 메모리 입력 스트로브
RESET
시스템 리셋
ALE/PROG
Address Latch Enable
PSEN
Program Strobe ENable
EA/Vpp
External Access Enable
XTAL 1,2
반전된 발진 증폭기에 대한 입력, 출력
P0~3
입출력 포트
A0~A15
Address Bus
D0~D7
Data Bus
Hanbat National University prof. Song Myoung Gyu
5
8051-I/O-Port
8051 외부 Pin 신호 [4]
 I/O port 기능

P0

외부 프로그램 메모리와 데이터 메모리 연결
: 하위 어드레스 A0~A7 과 데이터 버스 D0~D7로 사용
외부 메모리 차단 : 일반적인 입출력 포트로 사용

사용자가 주변장치를 제어하는데 주로 사용



외부 메모리 연결 : 상위 어드레스 A8~A15로 사용
외부 메모리 차단 : 일반적인 입출력 포트로 사용
외부 메모리의 하위 어드레스(A0~A7)만 연결
: 일반적인 입출력 포트로 사용




P1
P2
P3


입출력 포트로 사용 (P1과 동일)
비트 단위로의 다른 기능
7
6
5
RD
WR
T1
read
write
4
3
2
1
0
T0 INT1 INT0 TxD RxD
Timer
external
input
external
interrupt
Transmit
data
receive
data
 사용되지 않는 비트는 입출력 포트로 사용
Hanbat National University prof. Song Myoung Gyu
6
8051-I/O-Port
8051 외부 Pin 신호 [5]
Hanbat National University prof. Song Myoung Gyu
7
8051-I/O-Port
I/O Port 전반적인 개념도
Hanbat National University prof. Song Myoung Gyu
8
8051-I/O-Port
I/O Pin 내부구조
Hanbat National University prof. Song Myoung Gyu
9
8051-I/O-Port
8051 I/O Port 내부구조
Hanbat National University prof. Song Myoung Gyu
10
8051-I/O-Port
8051 Port – 0 (P0.0 – P0.7) 구조 [1]
Hanbat National University prof. Song Myoung Gyu
11
8051-I/O-Port
8051 Port – 0 (P0.0 – P0.7) 특징 [2]





8비트 오픈 드레인 (Open Drain)
일반 포트 사용–외부메모리 사용 않 할 때
입력으로 사용할 때는 1을 출력하고 사용
외부메모리 사용할 때 하위 어드레스 A0~A7로 사용
ALE=1일 때 하위 어드레스 임을 나타내므로
74LS373으로 래치 하여 사용
 어드레스 신호(A0 – A7) 와 데이터 신호(D0-D7) 겸
용
Hanbat National University prof. Song Myoung Gyu
12
8051-I/O-Port
8051 Port – 0 (P0.0 – P0.7) [3]
 오픈 드레인 – 풀업 저항 필요
Vcc
Hanbat National University prof. Song Myoung Gyu
10 K
Port
8051
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
0
13
8051-I/O-Port
8051 Port – 1 (P1.0 – P1.7) 구조 [1]
Hanbat National University prof. Song Myoung Gyu
14
8051-I/O-Port
8051 Port – 1 (P1.0 – P1.7) 구조 [2]
래치 읽기
TB2
Vcc
Load(L1)
CPU 내부
데이터 버스
D
래치에 쓰기
제어 신호
Clk
P1.X 핀
Q
LATCH
Q
M1
TB1
핀 입력
Hanbat National University prof. Song Myoung Gyu
15
8051-I/O-Port
8051 Port – 1 (P1.0 – P1.7) [3]
 P1.0 ~ P1.7
 8비트 양방향 입출력 단자
 내부 풀업 되어 있다
 외부 풀업 저항이 필요 없다
 범용 입출력으로 사용 한다.
 8052에서는 P1.0는 T2 기능 추가
 8052에서는 P1.1는 T2EX 기능 추가
 89S51(2)에서는 P1에 SPI 기능 추가로 ISP기능 추가
- P1.5 = MOSI, P1.6 = MISO, P1.7 = SCK
Hanbat National University prof. Song Myoung Gyu
16
8051-I/O-Port
8051 Port – 1 (P1.0 – P1.7) [4]
Hanbat National University prof. Song Myoung Gyu
17
8051-I/O-Port
포트1 – 출력 1을 했을 때 [5]
래치 읽기
Z
1. 핀에 1을 출력
CPU 내부
데이터 버스
래치에 쓰기
제어 신호
0
1
Vcc
TB2
Pull up
2. 출력 Vcc
D
Q
1
LATCH
Clk
Q
0
P1.X 핀
Off
M1
Z
핀 입력
0
TB1
Hanbat National University prof. Song Myoung Gyu
18
8051-I/O-Port
포트1 – 출력 0을 했을 때 [6]
래치 읽기
Z 0
1. 핀에 0을 출력
CPU 내부
데이터 버스
래치에 쓰기
제어 신호
0
D
Pull up
Q
0
LATCH
Clk
Z
핀 입력
Vcc
TB2
0
Q
1
0
On
M1
P1.X핀
2. 출력 GND
0
TB1
Hanbat National University prof. Song Myoung Gyu
19
8051-I/O-Port
포트1 – 입력 1 [7]
래치 읽기
Z 0
1. 핀에 1출력
CPU 내부
데이터 버스
1
D
Pull up
Q
Clk
Q
2. 외부 핀=High
1
LATCH
래치에 쓰기
제어 신호
0
1
P1.X 핀
Off
M1
1
1
핀 입력
Vcc
TB2
1
TB1
Hanbat National University prof. Song Myoung Gyu
20
8051-I/O-Port
포트1 – 입력 0 [8]
래치 읽기
Z 0
1. 핀에 1출력
CPU 내부
데이터 버스
1
D
Clk
3. 내부버스로 전달
2. 외부 핀=0V
Pull up
Q
1
Q
0
P1.X 핀
LATCH
래치에 쓰기
제어 신호
0
Off
M1
0
0
핀 입력
Vcc
TB2
1
TB1
Hanbat National University prof. Song Myoung Gyu
21
8051-I/O-Port
8051 Port – 2 (P2.0 – P2.7) [1]
Hanbat National University prof. Song Myoung Gyu
22
8051-I/O-Port
8051 Port – 2 (P2.0 – P2.7) [2]
 P2.0 ~ P2.7
 8비트 양방향 입출력 단자
 내부 풀업 되어 있다

외부 저항이 필요 없다
 범용 입출력으로 사용 한다.
 외부 메모리 사용할 때는 A8~A15로 사용
Hanbat National University prof. Song Myoung Gyu
23
8051-I/O-Port
8051 Port – 3 (P3.0 – P3.7) [1]
Hanbat National University prof. Song Myoung Gyu
24
8051-I/O-Port
8051 Port – 3 (P3.0 – P3.7) [2]
Hanbat National University prof. Song Myoung Gyu
25
8051-I/O-Port
8051 Port – 3 (P3.0 – P3.7) [3]
Hanbat National University prof. Song Myoung Gyu
26
8051-I/O-Port
8051 Port – 3 (P3.0 – P3.7) [4]
 P3.0 ~ P3.7
 8비트 양방향 입출력 단자
 내부 풀업 되어 있다
 다른 기능과 선택적으로 사용
 시리얼 통신 신호:RxD, TxD
 외부 인터럽트 신호:/INT0, /INT1
 타이머의 클럭 입력:T0, T1
 외부 메모리 액세스 신호:/WR, /RD
Hanbat National University prof. Song Myoung Gyu
27
8051-I/O-Port
8051 Port – 3 다른기능 (P3.0 – P3.7) [5]
P3 비트
기능
핀 번호
설 명
P3.0
RxD
10
수신 데이터 입력
P3.1
TxD
11
송신 데이터 출력
P3.2
INT0
12
외부 인터럽트 0 입력
P3.3
INT1
13
외부 인터럽트 1 입력
P3.4
T0
14
외부 클록 0 입력
P3.5
T1
15
외부 클록 1 입력
P3.6
WR
16
외부 데이터 메모리 라이트 제어신호
P3.7
RD
17
외부 데이터 메모리 리드 제어신호
Hanbat National University prof. Song Myoung Gyu
28
8051-I/O-Port
8051시험 Kit [1]
MDA-WIN8051
Hanbat National University prof. Song Myoung Gyu
29
8051-I/O-Port
8051시험 Kit [2]
8051 인터페이스
Hanbat National University prof. Song Myoung Gyu
30
8051-I/O-Port
8051시험 Kit [3]
 디코더 및 메모리 인터페이스
fc
0
1
48
Hanbat National University prof. Song Myoung Gyu
31
8051-I/O-Port
8051시험 Kit [4]
 I/O 실험 및 외부 커넥터 회로
Hanbat National University prof. Song Myoung Gyu
32
8051-I/O-Port
8051시험 Kit [5]
 Decoder 내부 회로
입력핀 설명
f
c
1
1
1
1
1
1
0
0
0xfc00
I/O1
PIN 15
1
0
1
Hanbat National University prof. Song Myoung Gyu
33
8051-I/O-Port
8051시험 Kit [6]
 Decoder 1 내부 회로
4
8
부터
b
0
0
0
0
1
0
1
0
0
0
0
0
0
I/O0
PIN 20
0xfc48 – 0xfc4b
1
입력핀 설명
Hanbat National University prof. Song Myoung Gyu
34
8051-I/O-Port
8051시험 Kit [7]
 74LS573 (LATCH) 내부 블럭도
Hanbat National University prof. Song Myoung Gyu
35
8051-I/O-Port
8051시험 Kit [8]
 74LS244 (BUFFER) 내부 블럭도
Hanbat National University prof. Song Myoung Gyu
36
8051-I/O-Port
8051시험 Kit [9]
MDA-WIN8051 메모리 맵
Hanbat National University prof. Song Myoung Gyu
37
8051-I/O-Port
8051시험 Kit [10]
 I/O port 실험 회로도
5V
5V
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
5V
1
1
1
1
0
1
1
1
1
LATCH1의 Q5,6은 7-seg의 소수점에 사용
Hanbat National University prof. Song Myoung Gyu
38
8051-I/O-Port
8051시험 Kit [11]
 실습1 : I/O port 를 이용한 LED 점등
[LED 점등순서]
[P1값에 따른 LED동작]
pin
P13 P12 P11 P10
P1 = led
Led <<= 1
Led |= 0xf1
P10
0xfe(1111 1110) 0xfc(1111 1100) 0xfd(1111 1101)
P11
0xfd(1111 1101) 0xfa(1111 1010) 0xfb(1111 1011)
P12
0xfb(1111 1011) 0xf6(1111 0110) 0xf7(1111 0111)
P13
0xf7(1111 0111) 0xee(1110 1110) 0xff(1111 1111)
Hanbat National University prof. Song Myoung Gyu
39
8051-I/O-Port
8051시험 Kit [12]
 실습1-1 : I/O 포트를 이용한 LED 점등 (led1-1.c)
지역 변수 led 선언
led = 0xfe
SELECT = 0x9e
P1 = led
No
LED 초기 점등값 저장
포트 선택 어드레스 설정
P1 으로 출력
일정시간 지연
LED 의 점등을 눈으로
확인할 만큼의 시간 지연
led = led << 1
LED 점등값 1bit left shift
led = led | 0xf1
상위 4비트는 “1111”로 마스크
led == 0xff ?
Yes
Led = 0xfe
P13 LED 까지
점등되었는지 확인
초기값 저장
#include <win51.h>
#define SELECT (*(unsigned char *)(0x2fc48))
Void delay (int del)
{ while(del--); }
Void main(void)
{
unsigned char led=0xfe // led on 초기값
SELECT = 0x9e // led가 연결된 I/O선택
do{
P1 = led; // led 점등
delay(30000);
led <<=1; // led on 상태를 1bit left shift
led |= 0xf1; // 상위 4비트는 1111로 마스크
if(led==0xff) led=0xfe;
} while(1); // 무한루프
}
Hanbat National University prof. Song Myoung Gyu
40
8051-I/O-Port
8051시험 Kit [13]
 실습1-2 : I/O 포트를 이용한 LED 점등 (led1-2.ass)
A reg. ← 11111110B
P1 ← A reg.
LED 초기 점등값 저장
P1 으로 출력
일정시간 지연
LED 의 점등을 눈으로
확인할 만큼의 시간 지연
A reg. 1bit left shift
LED 점등값 1bit left shift
A reg. OR (11110001B) 상위 4비트는 “1111”로 마스크
No
A == FF ?
Yes
A reg. ← 11111110B
P13 LED 까지
점등되었는지 확인
초기값 저장
SELECT EQU 2fc48; I/O 선택 어드레스
IO/SEL EqU 10011110 ; I/O 선택값
; 8051이 리셋되었을 경우 처음 시작번지
ORG 0
SJMP START ; 메인 프로그램으로 점프
; 메인 프로그램 시작
START: MOV SP, #60H ; 스택 지정
MOV A, #IO_SEL ; 포트선택 어드레스 설정
MOV DPTR, #SELECT ; LATCH1 어드레스
MOVX @DPTR, A
MOV A, #11111110B ; LED ON 초기값
LP1:
MOV P1, A ; LED ON
CALL DELAY ; LED ON 지연시간
RL A ; LED ON 상태를 왼쪽으로 1비트 이동
ORL A, #0F0H ; 상위 4비트는 1111로 마스크
CJNE A, #0FFH, LP1 ; P13까지 ON되었는지 검사
MOV A, #11111110B ; P13까지 ON 이면 LED
ON 초기값 저장
SJMP LP1 ; 무한 루프
; LED 점등 시간
DELAY : MOV R0, #2 ; R0 레지스터에 2를 저장
DELAY1 : MOV R1, #0 ; R1 레지스터에 0(256)을 저장
DELAY2 : MOV R2, #0 ; R2 레지스터에 0(256)을 저장
DELAY3 : NOP
DJNZ R2, DELAY3 ; R2=R2-1값이 0이 아니면 DELAY3로 점프
DJNZ R1, DELAY2 ; R1=R1-1값이 0이 아니면 DELAY2로 점프
DJNZ R0, DELAY1 ; R0=R0-1값이 0이 아니면 DELAY1로 점프
RET
END
Hanbat National University prof. Song Myoung Gyu
41