8051 IO-PORT 정보통신•컴퓨터 공학부 송명규 정보통신•컴퓨터 공학부 송명규 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 시리즈 기능 비교표 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 외부 Pin 신호 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST (RXD)P3.0 (TXD)P3.1 (T0)P3.4 (T1)P3.5 XTAL2 XTAL1 GND (INT0)P3.2 (INT1)P3.3 (RD)P3.7 (WR)P3.6 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) 8051 & 8052 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 외부 Pin 신호 [2] Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 외부 Pin 신호 [3] Pin 기 능 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
8051-I/O-Port 8051 외부 Pin 신호 [4] I/O port 기능 P0 P1 P2 P3 외부 프로그램 메모리와 데이터 메모리 연결 : 하위 어드레스 A0~A7 과 데이터 버스 D0~D7로 사용 외부 메모리 차단 : 일반적인 입출력 포트로 사용 P1 사용자가 주변장치를 제어하는데 주로 사용 P2 외부 메모리 연결 : 상위 어드레스 A8~A15로 사용 외부 메모리의 하위 어드레스(A0~A7)만 연결 : 일반적인 입출력 포트로 사용 P3 입출력 포트로 사용 (P1과 동일) 비트 단위로의 다른 기능 사용되지 않는 비트는 입출력 포트로 사용 RD WR T1 T0 INT1 INT0 TxD RxD 7 6 5 4 3 2 1 read write Timer external input interrupt Transmit data receive Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 외부 Pin 신호 [5] Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port I/O Port 전반적인 개념도 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port I/O Pin 내부구조 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 I/O Port 내부구조 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 0 (P0.0 – P0.7) 구조 [1] Hanbat National University prof. Song Myoung Gyu
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
8051-I/O-Port 8051 Port – 0 (P0.0 – P0.7) [3] 오픈 드레인 – 풀업 저항 필요 Vcc 10 K Port 0 P0.0 P0.1 P0.2 8051 P0.3 P0.4 P0.5 P0.6 P0.7 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 1 (P1.0 – P1.7) 구조 [1] Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 1 (P1.0 – P1.7) 구조 [2] 래치 읽기 Vcc TB2 Load(L1) CPU 내부 데이터 버스 D Q Clk Q P1.X 핀 LATCH M1 래치에 쓰기 제어 신호 TB1 핀 입력 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 1 (P1.0 – P1.7) [3] 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
8051-I/O-Port 8051 Port – 1 (P1.0 – P1.7) [4] Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 포트1 – 출력 1을 했을 때 [5] 래치 읽기 Vcc TB2 Z 핀에 1을 출력 Pull up 2. 출력 Vcc 1 1 CPU 내부 데이터 버스 D Q Clk Q LATCH Off P1.X 핀 M1 래치에 쓰기 제어 신호 Z TB1 핀 입력 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 포트1 – 출력 0을 했을 때 [6] 래치 읽기 Vcc TB2 Z 핀에 0을 출력 Pull up 1 CPU 내부 데이터 버스 D Q Clk Q P1.X핀 LATCH On 2. 출력 GND M1 래치에 쓰기 제어 신호 Z TB1 핀 입력 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 포트1 – 입력 1 [7] 래치 읽기 Vcc TB2 Z 핀에 1출력 Pull up 2. 외부 핀=High 1 1 CPU 내부 데이터 버스 D Q Clk Q 1 P1.X 핀 LATCH Off M1 래치에 쓰기 제어 신호 1 1 TB1 1 핀 입력 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 포트1 – 입력 0 [8] 래치 읽기 Vcc TB2 Z 핀에 1출력 Pull up 2. 외부 핀=0V 1 1 CPU 내부 데이터 버스 D Q Clk Q P1.X 핀 LATCH Off M1 래치에 쓰기 제어 신호 3. 내부버스로 전달 TB1 1 핀 입력 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 2 (P2.0 – P2.7) [1] Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 2 (P2.0 – P2.7) [2] 8비트 양방향 입출력 단자 내부 풀업 되어 있다 외부 저항이 필요 없다 범용 입출력으로 사용 한다. 외부 메모리 사용할 때는 A8~A15로 사용 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 3 (P3.0 – P3.7) [1] Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 3 (P3.0 – P3.7) [2] Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 3 (P3.0 – P3.7) [3] Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 3 (P3.0 – P3.7) [4] 8비트 양방향 입출력 단자 내부 풀업 되어 있다 다른 기능과 선택적으로 사용 시리얼 통신 신호:RxD, TxD 외부 인터럽트 신호:/INT0, /INT1 타이머의 클럭 입력:T0, T1 외부 메모리 액세스 신호:/WR, /RD Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051 Port – 3 다른기능 (P3.0 – P3.7) [5] 핀 번호 설 명 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
8051-I/O-Port 8051시험 Kit [1] MDA-WIN8051 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [2] 8051 인터페이스 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [3] 디코더 및 메모리 인터페이스 fc 48 1 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [4] I/O 실험 및 외부 커넥터 회로 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [5] Decoder 내부 회로 f 1 c 입력핀 설명 0xfc00 I/O1 PIN 15 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port Decoder 1 내부 회로 8051시험 Kit [6] Decoder 1 내부 회로 4 8 부터 b 1 I/O0 PIN 20 0xfc48 – 0xfc4b 입력핀 설명 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [7] 74LS573 (LATCH) 내부 블럭도 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [8] 74LS244 (BUFFER) 내부 블럭도 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [9] MDA-WIN8051 메모리 맵 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [10] I/O port 실험 회로도 1 5V LATCH1의 Q5,6은 7-seg의 소수점에 사용 Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [11] 실습1 : I/O port 를 이용한 LED 점등 [P1값에 따른 LED동작] pin P1 = led Led <<= 1 Led |= 0xf1 P10 0xfe(1111 1110) 0xfc(1111 1100) 0xfd(1111 1101) P11 0xfa(1111 1010) 0xfb(1111 1011) P12 0xf6(1111 0110) 0xf7(1111 0111) P13 0xee(1110 1110) 0xff(1111 1111) Hanbat National University prof. Song Myoung Gyu
8051-I/O-Port 8051시험 Kit [12] 실습1-1 : I/O 포트를 이용한 LED 점등 (led1-1.c) SELECT = 0x9e P1 = led 일정시간 지연 led = led << 1 led = led | 0xf1 지역 변수 led 선언 led = 0xfe Led = 0xfe led == 0xff ? No Yes LED 초기 점등값 저장 포트 선택 어드레스 설정 P1 으로 출력 LED 의 점등을 눈으로 확인할 만큼의 시간 지연 LED 점등값 1bit left shift 상위 4비트는 “1111”로 마스크 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
8051-I/O-Port 8051시험 Kit [13] 실습1-2 : I/O 포트를 이용한 LED 점등 (led1-2.ass) 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 A reg. ← 11111110B P1 ← A reg. 일정시간 지연 A reg. 1bit left shift A reg. OR (11110001B) A == FF ? No Yes LED 초기 점등값 저장 P1 으로 출력 LED 의 점등을 눈으로 확인할 만큼의 시간 지연 LED 점등값 1bit left shift 상위 4비트는 “1111”로 마스크 P13 LED 까지 점등되었는지 확인 초기값 저장 Hanbat National University prof. Song Myoung Gyu