150 likes | 264 Views
제 5 장. 82C55 를 이용한 포트 출력. 5.1 82C55 IC 에 대하여 (1). 현재 사용하고 있는 80C31 은 24 개의 I/O 가 있지만 , ADDRESS,DATA BUS 로 사용하므로 실제 사용 가능한 부분은 PORT1 이다 . 82C55 의 의 중요 목적은 부족한 I/O 를 보충해주는 역할이다 . 한 개의 82C55 칩에는 24 개의 I/O 가 들어있다. 5.1 82C55 IC 에 대하여 (2). [ 80C31 CPU 의 외부포트 P1,P2,P3,P4 ].
E N D
제 5 장 82C55를 이용한 포트 출력
5.1 82C55 IC에 대하여 (1) • 현재 사용하고 있는 80C31은 24개의 I/O가 있지만, ADDRESS,DATA BUS로 사용하므로 실제 사용 가능한 부분은 PORT1 이다. • 82C55의 의 중요 목적은 부족한 I/O를 보충해주는 역할이다. 한 개의 82C55 칩에는 24개의 I/O가 들어있다. 제5장 82C55를 이용한 포트 출력
5.1 82C55 IC에 대하여 (2) [ 80C31 CPU의 외부포트 P1,P2,P3,P4 ] 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (1) • 82C55 사용방법 : 칩 선택신호(ADDRESS)를 주고, 다음으로 데이터를 준다. • 칩 선택 방법 • CPU 포트에서 직접 칩 선택 : CPU의 입출력 포트의 수가 많은 경우 [그림 5-1] • 74HC138 디코더 칩을 이용 : 입출력 포트가 모자라서 ADDRESS를 이용해서 선택하는 경우 [그림 5-2] 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (2) [그림 5-1 ] 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (3) [그림 5-2 ] 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (4) • 데이터를 주는 방법 어드레스 라인 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (5) 1) 8000H (1000 0000 0000 0000B)번지 –포트 A 선택 2) 8001H (1000 0000 0000 0001B)번지 –포트 B 선택 3) 8002H (1000 0000 0000 0010B)번지 –포트 C 선택 4) 8003H (1000 0000 0000 0011B)번지 –컨트롤 워드 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (6) [ 82C55 ] 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (7) 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (8) 제5장 82C55를 이용한 포트 출력
5.2 82C55 IC의 초기화 & 사용하기 (9) • 82C55의 포트A,B,C를 모두 출력으로 설정하려면 컨트롤 데이터는 #80H가 된다. MOV DPTR,#8003H ; 8003H 번지를 정의한다 MOV A,#80H ; 컨트롤워드 값을 정한다. MOVX @DPTR,A ; 출력한다 • 프로그램 시 초기화(INITIAL) 부분에 위치하면 된다 제5장 82C55를 이용한 포트 출력
[실험]1. PORT A로“01010101”출력하기 (1) [ 순서도 검토 ] 제5장 82C55를 이용한 포트 출력
1. PORT A로“01010101”출력하기 (2) ORG 0000H ;시작번지를 0000번지로 한다 START: JMP INITIAL ;8051 초기 데이터(고정) ;; ORG 0035H ;프로그램 시작번지(35번지) INITIAL: MOV SP,#5FH ;스택포인터를 5FH로 잡는다. MOV IP,#00000000B ;인터럽트 우선순위 레지스터 MOV IE,#00000000B ;인터럽터를 사용하지 않는다 MOV TMOD,#00000000B ;타이머0,1을 사용하지 않는다. MOV TCON,#00000000B MOV SCON,#00000000B ;시리얼통신을 하지 않는다 MOV PCON,#00000000B ;; (뒷장에 코드 계속) 제5장 82C55를 이용한 포트 출력
1. PORT A로“01010101”출력하기 (3) INIT_8255: MOV DPTR,#8003H ;8255의 컨트롤워드를 입력 MOV A,#80H ;포트A,B,C를 출력으로 한다 MOVX @DPTR,A ;8255에 입력한다. MAIN: MOV DPTR,#8000H ;8255의 포트 A를 선택한다 MOV A,#01010101B ;출력할 데이터를 입력한다 MOVX @DPTR,A ;데이터를 출력한다 ;; JMP MAIN ;; $DELAY.INC ;딜레이 함수 첨부 END ;PROGRAM END 제5장 82C55를 이용한 포트 출력