Microsoft PowerPoint 의 이해.pptx

Similar documents
[8051] 강의자료.PDF

(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint 명령어.pptx

Microsoft PowerPoint - hy2-12.pptx

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

마이크로프로세서 개요

슬라이드 1

Microsoft PowerPoint - M07_RTL.ppt [호환 모드]

인터럽트 (Interrupt) 범용입출력포트에서입출력의내용을처리하기위해매번입출력을요구하는플래그를검사하는일 (Pollong) 에대하여마이크로컨트롤러에게는상당한시간을소비하게만든다. 인터럽트란 CPU가현재처리하고있는일보다급하게처리해야할사건이발생했을때, 현재수행중인일을중단하고

정보보안 개론과 실습:네트워크

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

Computer Architecture

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부

한국기술교육대학교장영조 한국기술교육대학교전기전자통신공학부 1

<4D F736F F F696E74202D20332EB5F0C1F6C5D0C8B8B7CEBFCD20B1B8C7F62E >

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

Microsoft PowerPoint - hy2-12.pptx

API 매뉴얼

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

ATmega128

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

Microsoft PowerPoint - chap06-2pointer.ppt

온라인 IT 교육최강 ( 강의정보처리필기강사조대호 차시명 [CA-06 강 ] 프로세서와명령어차시 6 차시 학습내용 프로세서와명령어 학습목표 컴퓨터의구조와프로세서에대해이해할수있다 컴퓨터의명령어에대해이해할수있다 학습내용 1. 컴퓨터의구성 - 1

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

슬라이드 1

Microsoft PowerPoint - ch07 - 포인터 pm0415

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

Microsoft PowerPoint - hw8.ppt [호환 모드]

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

Microsoft PowerPoint - 9.Serial.pptx

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

Computer Architecture

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

ºÎ·ÏB

MicrocontrollerAcademy_Lab_ST_040709

Brief Manual of MiDAS1.1 Family

AVR Atmega128

Computer Architecture

11장 포인터

PowerPoint 프레젠테이션

Microsoft Word - PIC16x_Section05_CPU_ALU_31005a.doc

Microsoft PowerPoint - ARM System-on-chip architecture_Chap 4_23p.ppt

Chapter ...

8장 조합논리 회로의 응용

PowerPoint Presentation

<C1A4BAB8C3B3B8AE5FB1E2BBE75FC7CAB1E25F FB1E2BBE7C6D0BDBABFEB2E687770>

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

API 매뉴얼

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Microsoft Word - FunctionCall

<4D F736F F F696E74202D20322EB3EDB8AEC7A5C7F6B0FA20B3EDB8AEBCF6C7D02E >

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft Word doc

T100MD+

PowerPoint Presentation

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

Microsoft PowerPoint - polling.pptx

2009년2학기 임베디드시스템 응용

Microsoft PowerPoint - 사본 - OAS04-사무자동화 기술(HW-CPU).ppt

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

1

AVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기

untitled

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

PowerPoint 프레젠테이션

<4D F736F F F696E74202D2037C0E55FC0CEC5CDB7B4C6AEC0C720B5BFC0DB2E707074>

학습목차 r컴퓨터분해를통한본체살펴보기 r컴퓨터구성요소 r컴퓨터의기능 r버스와상호연결 컴퓨터구조 2 4. 컴퓨터시스템의구성과기능

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6397E3131B0AD20B9AEC1A62BC1A4B4E42E687770>

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

9

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - 제5장 인터럽트 (HBE-MCU-Multi AVR).ppt [호환 모드]

HBE-MCU-Multi 로배우는 마이크로컨트롤러 (AVR 편 ) 마이크로컨트롤러기능 제 6 장타이머와카운터

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6347E36B0AD20B9AEC1A62BC1A4B4E42E687770>

슬라이드 1

설계란 무엇인가?

Microsoft PowerPoint - es-arduino-lecture-03

BY-FDP-4-70.hwp

Microsoft PowerPoint - 제3장 GPIO 입출력 제어 (HBE-MCU-Multi AVR)

ADP-2480

Microsoft PowerPoint - [2009] 02.pptx

슬라이드 제목 없음

<BDC7C7E83520BFB9BAF1BAB8B0EDBCAD2E687770>

Microsoft PowerPoint - avr_lecture1.ppt

OCW_C언어 기초

Microsoft PowerPoint - 부호기와 복호기.PPT

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

. 고성능마이크로프로세서 LU 와레지스터 파일의구조 (2.). 직접디지털주파수합성기 (FS) 의구조 3. 고성능마이크로프로세서부동소수점연산기 (Floating-Point Unit) 구조 (2) (2.) (2.) 2. 암호화를위한 VLSI 구조와설계의개요 (2.) 다음참

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

CHAPTER 2 마이크로컨트롤러구조이해하기 가. ATmega128 기능 나. CRX10 구조

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202831C1D6C2F72C2032C1D6C2F729>

Transcription:

8051의이해 8051 의칩구성및 CPU 이해 메모리구조 8051 의신호 포트구성 dolicom@naver.com http://blog.naver.com/dolicom

8051 의특징 4K 바이트의프로그램메모리내장 4개의레지스터뱅크를포함한 128바이트데이터메모리 사용자지정가능한 128비트플래그 불 (boolean) 대수처리기능 8비트단위의 4개의입. 출력포트 (P0,P1,P2,P3) 2개의 16비트타이머 / 카운터 다중모드로사용할수있는고속직렬포트 우선순위설정가능한 4개의인터럽트 64K 바이트까지확장가능한프로그램데이터메모리 아이들 (idle) 모드와파워다운모드기능

8051 패밀리 기능 8051 8052 8031 ROM (program) 4K 8K 0K RAM ( 데이터 ) 128 256 128 Timer 2 3 2 I/O 핀 32 32 32 Serial 포트 1 1 1 인터럽트소스 6 8 6

8051 의이해 8051 내부구조

8051 의내부구성 외부인터럽트 Interrupt Control ROM 프로그램 RAM Timer/Counter Timer 1 Timer 0 카운터 입력 CPU OSC Bus Control 4 I/O 포트 Serial Port P0 P1 P2 P3 TxD RxD Address/Data

CPU - 8051 제어장치 (CU : Control Unit) A,BB 레지스터 일반레지스터 (R0~R7) PSW (Flag) PC (16 비트프로그램카운터 ) SP (8 비트내부데이터데이터포인터 ) 데이터포인터 (DPTR)

제어장치 CU Control Unit 명령을읽어해독하고명령이실행될때까지 CPU 의내부신호를만든다. CPU 제어신호 소스 / 목적지오퍼랜드를제어하는신호 MOV A,#10 -> 10 을읽어레지스터에저장 산술논리연산장치의동작을제어하는신호 ADD A,#10 -> A 레지스터와 10( 오퍼랜드임시버퍼 ) 와더하기위한 ALU 제어신호발생

PC 프로그램카운터 프로그램메모리에저장되어있는명령의실행을위한위치를가리키는 16비트레지스터 실행시킬명령이기억되어있는프로그램메모리의번지를가리킨다. CPU 리셋 (RESET) 신호에의해 0x00000000 으로지정됨. 리셋에의해프로그램메모리의 0000H 번지부터실행

ALU (Arithmetic Logic Unit) 8 비트산술논리연산장치 덧셈 +, 뺄셈 8/16비트 +1 증가, 8비트 -1 감소 BCD (Binary Coded Decimal) 10진조정 곱셈나눗셈 AND, OR, XOR, 로테이트 (Rotate) 바이트컴플리먼트 (1의보수 ), 비트컴플리먼트 니블 (nibble: 4비트 ) 단위의데이터교환 비트단위처리기능 (Boolean 대수처리기능 ) 조건점프의판단기능

레지스터및 PSW A(accumulator) 산술논리연산명령에서연산자로사용 - 명령이끝나면결과기억 로테이트, 패리티검사, 제로테스터명령에사용 간접점프및프로그램읽기명령에서오프셋 (offset) 으로사용 외부데이터메모리와데이터전송 프로그램메모리에서데이터읽을때

PSW (Program Status Word) ALU을통해실행되는결과의플래그상태저장 직접영향을주는명령 ADD, SUBB, RRC, 모든명령이영향을주지않는다 : MOV 사용자플래그 : F0 레지스터뱅크선택 (RS1, RS0)

PSW 구성 CY AC F0 RS1 RS0 OV -- P PSW.0 CY : 캐리플래그 (Carry Flag) PSW.1 AC : 보조캐리플래그 (Auxiliary carry flag) PSW.2 F0 : 사용자플래그 PSW.3 RS1 : 뱅크선택상위비트 1 PSW.4 RS0 : 뱅크선택상위비트 0 PSW.5 OV : 오버플로플래그 (Overflow Flag) PSW.6 PSW.7 P : 패리티플래그 (odd/even parity) RS1 RS0 레지스터뱅크 주 소 0 0 0 00H-07H07H 리셋 0 1 1 08H-0FH 1 0 2 10H-17H 1 1 3 18H-1FH

B, SP B 레지스터 8비트곱셈 / 나눗셈 A레지스터와함께 16비트레지스터로사용 곱셈 / 나눗셈의결과저장 SP ( 스택포인터 : Stack Pointer) 8비트로스택의메모리번지를가리킴 (RAM) 8051 의내부메모리사용 리셋후 08H 번지로지정 프로그래머에의해변경하여사용할수있다. 스택에저장 (PUSH) 할때주소값 1증가하고꺼낼때 1 감소

DPTR (Data Pointer) 16 비트레지스터 상위 8 비트 (DPH) 와하위 8 비트 (DPL) 로사용가능 외부데이터메모리에서전송할때주소값으로사용 어드레스포인터 간접점프명령에서점프할주소값저장 프로그램읽기명령에서베이스 (base) 레지스터

8051 의이해 8051 메모리구조

8051 메모리구조 FF 80 7F 30 2F 20 1F 18 17 10 0F 08 07 00 특수기능레지스터 (SFR) 사용자데이터메모리영역 비트단위처리영역 뱅크 3 (R0~R7) 뱅크 2 (R0~R7) 뱅크 1 (R0~R7) 뱅크 0 (R0~R7) 내부 RAM & SFR 0FFF 0000 4K(8051) 내부 ROM EA=1 외부 ROM 64K EA=0 프로그램메모리 FFFF 60K 1000 0FFF 외부 RAM 64K FFFF 64K 0000 0000 데이터메모리

8051 의메모리의구성 I 내부메모리 특수영역내부 RAM 일반레지스터 일반변수영역 ( 사용자데이터영역 ) 특수기능레지스터 (Timer, 시리얼통신제어 ) 비트단위처리변수영역 프로그램영역 4K 바이트 (8051) 프로그램저장 다양한용량의패밀리칩이있음

8051 의메모리의구성 II 외부메모리 외부프로그램메모리확장 ( 외부 ROM) 64K 바이트까지확장가능한프로그램메모리 8051 의경우내부 4K 바이트는 EA 핀으로제어 EA=0 : 전영역을외부 ROM 으로 0x0000~0xFFFF0000 0 EA=1 : 내부 ROM (0x0000~0x0FFF)+ 외부 ROM(0x1000~0xFFFF) 외부데이터메모리 내부데이터메모리와별도로 64K 바이트까지확장가능 별도의명령에의해외부데이터억세스 NOVX A,@DPTR

8051 의이해 내부 RAM - 일반레지스터 - 비트어드레스영역 - 사용자데이터영역과스택 - SFR

8051 의메모리의구성 CPU 일반레지스터 R0~R7 R7 일반레지스터 4뱅크 8개의일반데이터저장용레지스터 4 개의뱅크로구성 뱅크설정은 PSW 의 RS1:RS0 비트를설정하면, 이 R0~R7 은해당메모리에할당된다. RS1:RS0에의해뱅크가할당되면레지스터 R0~R7 R7 은해당뱅크로주소값이설정된다.

뱅크의개념 MOV A,R0 PSW RS[1:0]=00 RS[1:0]=01 RS[1:0]=10 RS[1:0]=11 R7 R6 R5 R4 R3 R2 R1 07 06 05 04 03 02 01 R7 0F R7 17 R6 R5 R4 R3 R2 R1 0E 0D 0C 0B 0A 09 R0 00 R0 08 R0 10 R0 18 뱅크 0 뱅크 1 뱅크 2 뱅크 3 R0 : 00 R0 : 08 R0 : 10 R0 : 18 R6 R5 R4 R3 R2 R1 16 15 14 13 12 11 R7 R6 R5 R4 R3 R2 R1 1F 1E 1D 1C 1B 1A 19

MOV A,R0 뱅크 0 뱅크 1 뱅크 2 뱅크 3............ R2 03 02 R2 4D 0A R2 B5 12 R2 B5 1A R1 D3 01 R1 C3 09 R1 A5 11 R1 44 19 R0 34 00 R0 13 08 R0 22 10 R0 30 18 PSW R0 RS[1:0]=00 RS[1:0]=01 RS[1:0]=10 RS[1:0]=11 34 13 22 30 실행전 A 11 22 33 44 실행후 A 34 13 22 30

뱅크의사용예 ISR (Interrupt Service Rountine) 인터럽트서비스루틴-인터럽트시처리프로그램 인터럽트가발생하면인터럽트서비스루틴에서사용하는모든레지스터를스택에대피해야하는데, 뱅크를변경하면기존의뱅크 R0~R7 R7 의레지스터값은유지되고다른뱅크에값이변경된다. R2 R1 뱅크 0 뱅크 1 A,B,PSW 스택에...... 대피 03 02 ISR의시작에서 R2 4D 뱅크변경 D3 01 R1 C3 R0 34 00 R0 13 08 0A 09 * 리셋후초기에 SP=0FH 로변경 ISR 에서사용

비트어드레스영역 내부 RAM 0x20~0x2F 0 2F 16 바이트 각비트별로변수선언가능 16x8=128 128 개의비트변수선언가능 비트번호 0x00~0x7F로선언 C 에서선언과사용 bit keyst; - 0과 1의 boolean 상태 bit save, cy; save = P14 ^ P15; - 포트 1 의 4 와 5 핀의상태를 XOR 한다 cy = (P14 & P15) (save & P16);

사용자데이터영역과스택 사용자데이터영역 사용자가정의하여사용하는일반메모리 0x30~0x7F 0 메모리 C에서 char, int 등의일반변수를선언하면이영역에할당 스택 스택은 SFR 외의영역에임의의위치에설정할수있다. 리셋에의 SP=0x07로 0x08 부터사용 MOV SP,#60 명령으로메모리위치변경이가능 C에서는내부적으로처리된다. Startup.a51에정의되어있다.

SFR 특수기능레지스터 내부 RAM 0x80 ~ 0xFF에할당 CPU 동작과관련된레지스터 A,B,PSW, SP, DPTR 포트 (Port) : P0, P1, P2, P3 Interrupt : IP, IE Power Control : PCON Timer : TCON,TMOD,TL0, TL1, TH0,TH1 Serial 통신 : SCON, SBUF

외부데이터메모리 내부 RAM 과별도 64K 바이트까지가능 외부에데이터를저장한다. MOVX 명령으로전송 MOVX A,@DPTR MOVX @DPTR,A C 에서 #define SELECT (*(unsigned char*)(0x2fc48)) SELECT = 0x9e; #define ADDR (*(unsigned ( char xdata *)(0x22000)) ADDR = 0x31; C = *((char xdata *) 0x27000);

프로그램메모리 8051 은내부 4K 바이트 ROM 0x0000~0x0FFF 외부프로그램메모리가능 (64K 바이트 ) 내부 ROM과외부 ROM이있을경우내부의 4K 바이트 ROM을선택가능 0FFF 0000 EA=1 4K(8051) 내부 ROM 사용 외부 ROM 60K 외부 ROM 4K 사용않함 FFFF 1000 0FFF 0000 0FFF 0000 EA=0 4K(8051) 내부 ROM 사용않함 외부 ROM 64K FFFF 1000 0FFF 0000 프로그램메모리 프로그램메모리

C51 에서사용하는메모리형 C51 에서사용하는메모리형과포인터값 터 메모리형포인터설명 값 idata 1 간접액세스가능한내부 RAM 0x00~0x7F xdata 2 외부데이터메모리 0x0000~0xFFFF pdata 3 data 4 페이지화된외부데이터메모리 0x00~0xFF 직접액세스가능한내부데이터 0x00~0x7F 0x7F code 5 프로그램메모리 (64K 0x0000~0xFFFF)

파워절약모드 8051 의파워절약모드 아이들모드 (idle mode) 파워다운모드 PCON 으로설정한다. IDL=1 : 아이들모드 PD=1 : 파워다운모드 IDL=1, PD=1 : 파워다운모드 PCON 0x87 7 6 5 4 3 2 1 0 - - - SMOD GF1 GF0 PD IDL

XTAL2 XTAL1 8051 OSC 클럭발생회로 인터럽트로직 시리얼포트 타이머 CPU PD IDL

아이들모드 (Idle Mode) 타이머 / 시리얼인터럽트에의해아이들모드빠져나온다. ISR에서 IDL을클리어하여보통상태로 시스템쉬지있다가외부입력이들어오면응답 시스템초기설정 이벤트가발생할때까지대기하여파워절약 이벤트시인터럽트요청 -> ISR 로들어간다. ISR 에서 IDL 클리어하여처리하고 다시 IDL 로들어간다.

파워다운모드 클럭발진자체를정지하여파워다운에서빠져나오려면리셋밖에는없다. 데이터메모리와레지스터값유지 시스템이상시내부데이터 RAM 보존 데이터메모리는백업배터리가연결되어데이터메모리는백업배터리가연결되어있어야하며, 전원감시가필요

파워다운모드시진행절차 시스템을초기설정하고프로그램실행 전원이상장치를계속감시 전원이상발생하면내부데이터메모리를백업배터리가있어데이터보존이가능한외부메모리로옮김 CPU는 PD를 1로셋하여파워다운모드로들아감 파워다운모드는하드웨어리셋으로해제

8051 의이해 8051 핀기능및인터페이스

8051 칩구조 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 (8031) 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)

8051 의핀기능 포트의구조및기능 RESET 리셋 ALE (Address Latch Enable) PSEN EA XTAL1, XTAL2 전원 : VCC(+5V), VSS(GND)

8051 핀 전원과클럭발진 Vcc(40 핀 ): 칩에 Vcc 전압을공급한다. +5V 전원. GND(20 핀 ):GND 클럭 : XTAL1 / XTAL2(19,18 핀 ) 단순한크리스탈발진기을 XTAL1 과 XTAL2 에연결 외부에서발진클럭을 XTAL1 에만공급

클럭의발진방법 1 CPU 는이클럭에맞추어동작. C2 30pF C1 30pF XTAL1 XTAL2 GND 발진회로 CPU

외부클럭을사용 외부에서완전한클럭을만들어공급 Vcc CPU 클럭 발진회로 XTAL1 XTAL2 사용하지않음 발진회로사용하지않음 GND CPU

Machine Cycle 한명령이실행되기까지의전체시간 Fetch -기계어명령읽기 Decode - 기계어기능해석 Execute - 실행 Store - 메모리에저장 ADD A,R0

외부데이터와클럭-MOVX 예

머신사이클 한명령이실행되는시간 (12 클럭 ) 주파수와시간과는 시간 = 1 주파수 주파수 = 1 시간 XTAL = 11.0592 MHz 11.0592 MHz / 12 = 921.6 khz machine cycle = 1 / 921.6 khz = 1.085 μs XTAL = 16 MHz. 16 MHz / 12 = 1.333 MHz; machine cycle = 1 / 1.333 MHz = 0.75 μs

RESET 리셋 RST(9 핀 ):reset Active high : 리셋시 1 을입력 CPU 동작시적어도 2 머신사이클동안 1로유지 파워온리셋 (Power-on on reset) 5V R 4.7K ViR VRESET RESET C 4.7uF 74HC14

74HC14 VIN VOUT

RESET Time R 과 C 의값에따라시간이결정된다. ViR 5V ViH R 4.7K VRESET ViL ViR 0 t C 4.7uF 74HC14 V14in 74LS14 내부입력처리 쉬미트트리거 VRESET RESET time=2 머신사이클이상

리셋 (Reset) 시초기값설정 레지스터 PC ACC B PSW SP DPTR 리셋값 0000 0000 0000 0000 0007 0000 모든 RAM 0 으로채움

8051 외부데이터액세스신호 /EA(31핀):External Access 외부프로그램메모리사용 8031, 8032 은 ROM 이없어의미없다. /EA = 0 외부프로그램메모리사용 /EA = 1 내부프로그램메모리사용 /PSEN(29핀):Program Store Enable 프로그램메모리를읽고있다는의미 ROM의 /CS 및 /OE 신호를만드는데사용 ALE(30핀 ):Address Latch Enable - Active high 포트 0 어드레스버스와데이터버스양쪽다사용하기때문에구분필요 ALE=1일때, 포트0은어드레스버스이므로 74LS373에래치하여하위8비트주소값으로사용

8051 의이해 8051 포트 P0~P ~P3

Read-Modify-Write Instruction 한명령에의해데이터를읽고, 조작한후다시쓰는명령 ANL (AND) ANL PI, A ORL (OR) ORL P2, A XRL (XOR) XRL P3, A JBC ( 조건점프 ) JBC P1.1,LABEL CPL ( 비트보수 ) CPL P3.0 INC (1증가) INC P2 DEC (1감소) DEC P2) DJNZ (0 일때까지반복 ) DJNZ P3, LABEL MOV PX.Y,C (Port X.Y에캐리값을세트 ) CLR PX.Y (Port X.Y 클리어 ) SETB PX.Y (Port X.Y 에 1 세트 )

Read-Modify-Write 예 Mnemonics ANL ORL XRL JBC PX.Y, TARGET CPL INC DEC DJNZ PX, TARGET MOV PX.Y,C CLR PX.Y SETB PX.Y Example ANL P1,A ORL P1,A XRL P1,A JBC P1.1, TARGET CPL P1.2 INC P1 DEC P1 DJNZ P1,TARGET MOV P1.2,C CLR P1.3 SETB P1.4

8051 Port 구조

포트 0 (P0.00 ~ P0.7) 8비트오픈드레인 (Open Drain) 일반포트사용 외부메모리사용않할때 입력으로사용할때는 1 을출력하고사용 외부메모리사용할때하위어드레스 A0~A7로사용 ALE 1 일때하위어드레스임을나타내 ALE=1 일때하위어드레스임을나타내므로 74LS373 으로래치하여사용

포트 0 - 일반포트동작구조 래치읽기 TB2 CPU 내부데이터버스 D Q P1.X P0.X 핀 래치에쓰기제어신호 Clk Q M1 핀입력 TB1

포트 0 출력으로사용 오픈드레인 풀업저항필요 Vcc 10 K 8051 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 Port 0

포트 0 출력구조 래치읽기 TB2 +5V 10K CPU 내부데이터버스래치에쓰기제어신호 D Q P1.X Clk Q M1 P0.X 핀입력 TB1

포트 0 출력 출력 0 래치읽기 MOV P1,#0FFH CPU 내부데이터버스래치에쓰기제어신호 0 0 TB2 D Q P1.X Clk Q 0 1 CLR P0.0 0 On M1 +5V P0.X 10K 0 출력 핀입력 0 TB1

포트 0 출력 출력 1 래치읽기 MOV P1,#0FFH 0 TB2 +5V 10K CPU 내부데이터버스래치에쓰기제어신호 1 D Q P1.X Clk Q 1 0 Off M1 P0.X 1 출력 핀입력 0 TB1

포트 0 입력으로사용 래치읽기 MOV P0,#0FFH TB2 초기설정으로 1을출력한다. 시스템이시작할때한번한다. P0.x = 1; P0 = 0xFF; CPU 내부데이터버스래치에쓰기제어신호 1 D Q P1.X Clk Q 1 0 Off M1 P0.X 핀입력 MOV A,P0 1 TB1 입력명령으로핀의상태를읽는다 unsigned char pst; pst = P0;

포트 0 외부메모리의버스로사용 외부메모리를액세스하기위해서는포트0는주소하위8비트와데이터비트로사용한다. 입출력을위한풀업저항은필요없다. ALE, /PSEN, /RD, /WR 신호와함께 ROM 과 RAM 의제어신호를만든다.

외부 ROM PSEN ALE G 74LS373 OE CS P0.0 P0.7 D A0 A7 D0 EA D7 P2.0 A8 P2.7 A15 8051 ROM

외부 ROM 읽기 step1 EA PSEN ALE P0.0 P0.7 1. 8051 읽기 2. 74373 에하위신호보냄 8비트주소값을저장 G D 74LS373 Address 하위 8 비트 OE CS A0 A7 D0 D7 Address 상위 8비트 P2.0 A8 P2.7 A12 8051 ROM

외부 ROM 읽기 step2 PSEN ALE P0.0 P0.7 2. 74373에하위 8 비트주소값을저장되어있다. G 74LS373 D Address OE CS A0 A7 D0 EA 3. ROM 은데이터보낸다. D7 P2.0 P2.7 A8 A12 8051 ROM

외부프로그램메모리읽기 ALE PSEN PORT0 명령어 A0-A7 명령어 IN A0-A7 PORT2 A8-A15 OUT 74LS373 에래치 A0-A7 LATCH OUT

외부 RAM 외부 RAM PSEN CS WR RD WE OE 8051 ALE P0.0 P0.7 G D 74LS373 A0 A7 D0 EA D7 P2.0 A8 P2.7 A15

외부 RAM 쓰기 MOVX @DPTR,A 8051 PSEN 1 0 WR 0 0 RD 1 1 ALE G 74LS373 P0.0 D P0.7 CS WE OE A0 A7 외부 RAM D0 D7 P2.0 A8 P2.7 A15

외부데이터메모리쓰기 ALE PSEN WR PORT0 명령어 A0-A7 DATA OUT A0-A7 PORT2 A8-A15 OUT 74LS373 에래치 A0-A7 latch RD = 1

외부데이터메모리쓰기

외부 RAM 읽기 MOVX A,@DPTR PSEN 1 0 WR 1 1 RD 0 0 외부 RAM CS WE OE 8051 ALE P0.0 P0.7 G D 74LS373 A0 A7 D0 D7 P2.0 A8 P2.7 A15

외부데이터메모리읽기 ALE PSEN RD PORT0 명령어 A0-A7 A7 DATA IN A0-A7 A7 PORT2 A8-A15 A15 OUT 74LS373 에래치 A0-A7 LATCH OUT WR = 1

포트 1 P1.0 ~ P1.7 8 비트양방향입출력단자 내부풀업되어있다 외부저항이필요없다 범용입출력으로사용한다.

포트 1 의구조 래치읽기 TB2 Vcc Load(L1) CPU 내부데이터버스 D Q P1.X P1.X 핀 래치에쓰기제어신호 Clk Q M1 핀입력 TB1

포트 1 출력 1 을했을때 래치읽기 1. 핀에 1 을출력 MOV P1,#0FFH CPU 내부데이터버스 래치에쓰기제어신호 1 Z 0 TB2 D Q P1.X Clk Q 1 0 Vcc Load(L1) Off M1 2. 출력 Vcc P1.X 핀 핀입력 Z 0 TB1

포트 1 출력 0 을했을때 래치읽기 1. 핀에 0 을출력 MOV P1,#00H CPU 내부데이터버스 래치에쓰기제어신호 0 Z 0 TB2 D Q P1.X Clk Q 0 1 On Vcc Load(L1) 0 P1.X핀 2. 출력 GND M1 핀입력 Z 0 0 TB1

포트 1 입력 1 래치읽기 1. 핀에 1 출력 MOV P1,#0FFH CPU 내부데이터버스 래치에쓰기제어신호 1 Z 0 TB2 D Q P1.X Clk Q 1 0 Vcc Load(L1) Off M1 2. MOV A,P1 외부핀 =High 1 P1.X 핀 핀입력 1 1 1 TB1

포트 1 입력 0 래치읽기 1. 핀에 1 출력 MOV P1,#0FFH CPU 내부데이터버스 래치에쓰기제어신호 Z 0 TB2 1 D Q 1 P1.X Clk 3. 내부버스로전달 0 0 TB1 1 핀입력 Q 0 Vcc Load(L1) Off M1 0 2. MOV A,P1 외부핀 =0V P1.X 핀

포트프로그램 ; 초기설정과정 MOV A,#0FFH ;A=11111111B MOV P1,A ;P1을입력으로설정 ; 포트로부터입력하기 BACK: MOV A,P1 ; 포트에서읽어 A로 MOV P2,A ; P2에출력 SJMP BACK ; 반복

C 에서의사용 #include <win51.h> void init_port() { P1 = 0xFF; - 포트를입력으로하기위해초기값을설정 } unsigned char pdata; void main() { init_port(); while (1) } { } pdata = P1; P2 = pdata ;

Read-Modify-Write 명령어실행 MOV P1,#55H ;P1=01010101 ORL P1,#0F0H ;P1=11110101 11110101 래치읽기 CPU P1.7=0 OR 1 CPU 내부데이터버스래치에쓰기제어신호 0 0 1 1 TB2 D Q 0 1 P1.7 Clk Q 1 0 Vcc Load(L1) M1 P1.7=0 P1.7=1 P1.7 핀 핀입력 Z 0 TB1

포트 2 P2.0 ~ P2.7 8 비트양방향입출력단자 내부풀업되어있다 외부저항이필요없다 범용입출력으로사용한다. 외부메모리사용할때는 A8~A15 로사용

포트 3 P3.0 ~ P3.7 8비트양방향입출력단자 내부풀업되어있다 다른기능과선택적으로사용 시리얼통신신호 :RxD, TxD 외부인터럽트신호 :/INT0, /INT1 타이머의클럭입력 :T0, T1 외부메모리액세스신호 :/WR, /RD

포트 3 의다른기능신호 P3 비트 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 기능 RxD TxD INT0 INT1 T0 T1 WR RD 핀번호 10 11 12 13 14 15 16 17