1 2.1 8051 Family 의 개요 2.1 8051 의 외부 Pin 기능과 내부 기능 2.3 8051 Memory 구조 2.4 8051 Timing 2 장 8051 의 구조.

Slides:



Advertisements
Similar presentations
Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
Advertisements

1 8 장 대형 순차회로 문제의 해법 1) 시프트 레지스터 2) 카운터 3)ASM 도를 이용한 설계 4)One Hot encoding 5) 복잡한 예제.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Embedded System Hardware와 software가 조합되어 특정한 목적을 수행하는 시스템
Understanding of Ubiquitous & Computers Plus
3 8051을 위한 C 언어 프로그래밍.
마이크로 컨트롤러 Microcontroller.
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
AMBA BUS Protocol의 이해 (AMBA 2.0 Specification)
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
ATMega128 I/O Ports KyungHee Univ..
마이크로프로세서 메모리 및 입출력장치 인터페이스
기본 컴퓨터의 구조와 설계 Lecture #5.
마이크로프로세서(Microprocessor,µP)
기본 컴퓨터 프로그래밍 Lecture #6.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
2 Part 전자계산기 구조 1. 논리 회로 2. 자료 표현 및 연산 3. 명령어 및 프로세서 4. 명령 수행 및 제어 5.
제어기술 소개 목표 : 제어기의 종류, 제어 방식 등을 살펴본다. 주요내용 제어기의 종류 제어방식 : 시퀀스, 피드백, 등.
10장 주변장치 (PIO) Slide 1 (of 28).
제 1 장 마이크로프로세서의 기본동작.
CPU의 이해 CPU란 무엇인가?
2 AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
컴퓨터 구조론 2001년 10월 22일 발표자 황영선.
연습문제풀이/도움말.
ATmega128 CH 1 Atmega 128 Board CodeVision.
DSP와 TMS320F28x의 이해.
6장. 기 억 장 치 Lecture #6.
7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
컴퓨터 구조.
1 컴퓨터 시스템 소개.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
Chapter 7. Pentium Processor
Chapter 08 제어장치와 마이크로 오퍼레이션.
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
PLC.
ATmega128의 구조 및 TOOL의 이해 Robotics_LAB 발표자 : 유 홍 선.
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원
제3장 8086 프로세서의 내부구조.
제 2장 컴퓨터동작의 기본 개념.
타이머/카운트 정리 정보통신•컴퓨터 공학부 송명규
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
Computer System Architecture
Programmable Logic Device
Chapter 4 The Von Neumann Model.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Computer System Architecture
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
PIC16C84의 외형 RA2 1 RA1 I/O PIN I/O PIN RA3 RA0 RTCC OSC1 발 진 RESET
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
제 5 장 82C55를 이용한 포트 출력.
임베디드 하드웨어 Lecture #6.
Lecture 7 7-Segment LED controller using u-controller
4-1. 명령어 형식.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

Family 의 개요 의 외부 Pin 기능과 내부 기능 Memory 구조 Timing 2 장 8051 의 구조

2  8051 Family 의 Hardware 구조 4K 바이트의 내부 프로그램 메모리 (ROM) 128 바이트의 내부 데이터 메모리 (RAM) 8 비트 단위의 4 개의 입출력 포트 4 개의 동작모드로 사용 가능한 2 개의 16 비트 타이머 / 카운터 전 이중 (full duplex) UART(Universal Asynchronous Receiver & Transmitter) 5 개의 인터럽트 중 2 개의 인터럽트 우선 순위 레벨 제어 Clock Oscillator 내장 64KB 의 프로그램 영역 64KB 의 데이터 메모리 영역 제어응용에 적합한 8 비트 원칩 마이크로프로세서 광범위한 비트 로직 부울 프로세스 능력 ( 강력한 비트 제어 ) Family 의 개요 의 주요 특징

3 Function Data Bits-Width8 Bits Computation Arithmetic Operation Logical Operation Bit Operation Memory Size Data : External Memory 64KB, Internal Memory 128B Program : External Memory 64KB, Internal Memory 4KB I/O Port Parallel I/O port : 32 (4×8bits) Serial I/O port : Full Duplex UART Etc. 2×16 Bits Timer Clock Generator 5 Interrupt s 8051 의 특징

Family 8051 을 Core 로 하는 Micro Controller 들을 일컫는다. CHMOS 형의 8051 에는 POWER Down Mode 가 있 음 B 256B 4KB 8KB - 89C51 89C H 8752BH AH 8032AH AH 8052AH 비고 16 bit Timer RAM Size ROM Size FLASHEPROM ROM 없음이름 8051 : 내부에 Masking Type 의 ROM 을 내장한 프로세서. Mask ROM type, OTP(One-Time Programming) type 이 현재 출시되고 있음 : Chip 내부에 ROM 을 내장하고 있지 않다 : EPROM type 의 ROM 을 내장 89C51 : Flash Memory type ROM 내장, 전기적으로 Erase, Write (Atmel 사 제품 )

5 표 2.2 Philips 사에서 출시되는 8051 Family 이름 PinROMRAM 기타 기능 83C451684K12852 I/O, 2timer, 1UART 83C52840, 4432K51232 I/O,WDOG,3-timer, UART,I2C bus 83C550684K1288-8bitA/D,WDOG,2-timer,1UART 83C55268, 808K25648I/O,10bit A/d,WDOG,3-timer, 1UART, 2PWM,I2C bus 89C51Rx240, 4416, 32, 64KF 128ISP, IAP, more Interrupt, 32I/O, 1UART Low EMI, 2 nd DPTR, PCA ….….

6 표 2.3 Atmel 사에서 출시되는 8051 Family 이름 PinROMRAM 기타 기능 89C5140, 444KF12832 I/0, 2-timer, 1UART 89C5240, 448KF25632 I/0, 2-timer, 1UART 89C5540, 4420KF25632 I/0, 2-timer, 1UART 89C KF6415 Programmable I/O, 2-timer 89C KF1281UART, Analog Comparator 89C KF128Same above 89S5240, 448KF25632I/0, 3-timer, 1UART,WDOG, 2DPTR

7 그림 핀 배치도

의 외부 핀 기능과 내부 기능

9  포트 (Port) 0 (P0.0 - P0.7) : 중복된 기능을 가지는 포트 외부 ROM 혹은 RAM 과 데이터 전송 시 하위 어드레스와 데이터 버스로 사용 외부에 메모리를 Interface 하지 않을 때에는 범용 I/O 포트로 사용 EPROM write 시에는 데이터 버스로 사용된다.  포트 (Port) 1 (P1.0 - P1.7) : 내부 Pull-up 이 되어 있는 8 비트 양방향 입출력 단자 사용자가 기능을 지정하여 사용 가능한 범용 포트 (Port) 이다. EPROM 에 프로그램을 쓸 경우에는 어드레스 버스 A0 -A7 으로 사용된다.  포트 (Port) 2 (P2.0 - P2.7) : 중복된 기능을 가지는 포트 외부 ROM 과 데이터를 전송할 때에는 상위 어드레스 (A8 -A15) Port 로 사용 외부에 메모리를 Interface 하지 않았을 때에는 범용 I/O 포트로써 제공 외부 핀 기능

10  포트 (Port) 3 (P3.0 - P3.7) : 중복된 기능을 갖는 포트 내부 풀 업 (Pull-up) 을 갖는 8 비트 양방향 입출력 단자 ( 범용 I/O) 다른 목적을 가지는 다중기능 포트 핀다른 기능 P3.0RxD (serial input port ) P3.1TxD (serial output port ) P3.2/INT 0 (external interrupt 0) P3.3/INT 1 (external interrupt 1) P3.4T 0 (T imer 0 external input ) P3.5T 1 (T imer 1 external input ) P3.6/WR (external data memory write strobe) P3.7/RD (external data memory read strobe) 표 2.4 포트 3 의 다중 기능

11  RESET : Master Reset 입력으로 Active HIGH 신호 최소 두 개의 Machine Cycle 동안 High 상태가 유지될 때 유효.  ALE/ PROG (Address Latch Enable output/ PROGram pulse input ) 외부 Memory 와 Interface 할 때 하위 어드레스를 Latch 하는데 사용되는 신호 EPROM 을 프로그램 하는 동안에 프로그램 펄스 ( /PROG ) 가 입력된다.  /PSEN (Program Strobe ENable) 외부 ROM 에서 Data 를 읽을 때 출력되는 Active LOW 의 Strobe 신호 외부 ROM 의 OE(Output Enable) Pin 에 연결된다.

12  /EA/Vpp (External Access enable /Vpeak- peak) /EA : 외부 프로그램 메모리 선택 신호 /EA=0 :000H~0FFFH(4KB) 영역을 외부 ROM 에서 사용 ( 외부 ROM 만 사용 ) /EA=1 : 000H~0FFFH 영역을 내부 ROM 영역에서 사용 Vpp : EPROM 에 프로그램을 하는 동안 프로그램 전압을 입력하는 전원 입력 단자  XTAL1, XTAL2 : 클럭 입력 단자  Vcc, GND : 전원입력 및 전원 ground 단자

내부 기능

14 ⑴ 프로그램 카운터 (PC) ROM 에 저장되어 있는 명령어의 실행 순서를 정해주는 16bit Register 실행하고자 하는 명령이 들어있는 메모리의 번지를 가리킨다. PC 는 Reset 된 후의 값은 0000h 가 된다. 점프 / 콜 등의 명령으로 그 값이 변화될 수 있다. 그 이외에는 명령어의 수행 크기만큼 자동으로 증가한다. ⑵ ALU (Arithmetic and Logic Unit ) 8 비트 산술 및 논리 연산을 하는 곳이다. - Carry 없는 덧셈, Carry 있는 덧셈 / 뺄셈 처리 연산 - +1 증가, - 1 감소 연산 - 곱셈 / 나눗셈 연산 - AND, OR, XOR, Rotate 연산 - 보수화 연산 - Nibble 단위의 Data 교환 연산 - 조건 Branch 처리

15 ⑶ 어큐뮬레이터 (ACC : Accumulator ) - 산술논리 연산에서 연산자로 사용된다. - 테이블 참조 명령에서 테이블 번지의 옵셋으로 사용. - 외부 데이터 메모리와 데이터 전송에 사용. - 프로그램 메모리에서 데이터를 읽을 때 사용 - A 로도 표기한다. 가장 많이 사용되는 레지스터이다.

16 그림 의 내부 블록도

Memory 구조 1. Program 과 Data Memory 의 구조 /PSEN : ROM Access /RD, /WR : RAM Access

18 2. Program Memory (ROM) 전체 64KByte 까지 사용이 가능하다. 외부, 내부 ROM 의 선택은 /EA(External Access) Pin 으로 한다. 외부 프로그램 메모리를 Access 하는 명령어는 MOVC /EA=0 :000H~0FFFH(4KB) 영역을 외부 ROM 에서 사용 ( 외부 ROM 만 사용 ) /EA=1 : 000H~0FFFH 영역을 내부 ROM 영역에서 사용

19 3. Data Memory (RAM) (1) 8051 의 외부 데이터 메모리 64[Kbyte] 의 공간을 Access 가능 외부 데이터 메모리를 Access 하기 위해 사용되는 명령어 : MOVX 외부 데이터 메모리를 Access 하면 H/W 적으로 /RD, /WR 신호가 발생

20 (2) 8051 의 내부 데이터 메모리 데이터 RAM 영역 : 128 Byte(00H~7FH) SFR (Special Function Register) 영역 : 128 Byte (80H~0FFH) MOV 명령에 의해서 Access 가 가능하다.

21 내부 메모리의 하위 128 Byte(00H~0FH) 의 구조 Register Bank 4 개

22 Register Bank - REG. Bank : R0-R7 - REG. Bank 의 선택 : PSW( 상태레지스터 ) 의 뱅크선택 비트를 변경에 의해 선택 가능. - REG. Bank 의 Access : 직접 에드레싱 모드와 레지스터 어드레싱 모드

23 비트 지정 방법 : 00H - 7FH 또는 20.1H - 2F.7H 로 비트 주소 지정 비트 지정 가능 (Bit-addressable) 영역

H- 7FH 까지는 범용의 RAM 으로 사용 - 직접, 간접 Addressing Mode 로 Access 가능 MOV A, 5FH ; 직접 어드레싱 모드 MOV R0, #5FH ; MOV ; 간접 어드레싱 모드 범용의 기억 장소

25 ① 직접 주소 지정 방식 (Addressing Mode) 8 비트로 오퍼랜드의 번지 (address) 를 직접 지정하는 방식 내부 데이터 메모리의 하위 128 바이트나 SFR 을 Access 하는데 사용된다. MOV A, direct ; (Acc) ← (address) MOV direct, A ; (address) ← (Acc) 8051 명령의 주소 지정 방식 (Addressing Mode) 8051 의 데이터 이동 법칙 MOV, 니모닉 오퍼랜드

26 ② 간접 주소 지정 방식 (Addressing Mode) Operand 의 주소를 저장하고 있는 Reg. 를 이용하여 Operand 를 간접적으로 지정 내부 또는 외부 데이터 메모리를 액세스하는데 사용된다. 간접 주소 지정방식에는 Register 는 R0 또는 R1 만을 사용 가능하다. 를 R0, R1 앞에 나타내어 간접 주소 지정임을 표시 #data ; ((Rn)) ← data ( n = 0 or 1) direct ; ((Rn)) ← (direct address) 예 ) MOV R0, #5FH MOV

27 ③ 레지스터 주소 지정 방식 (Addressing Mode) R0-R7 을 포함하는 레지스터 Bank 를 액세스하는 방식 오퍼랜드를 표시하는 추가적인 Byte 를 사용하지 않으므로 기계어 코드가 짧아 진다는 장점 MOV A, Rn ; (Acc)←(Rn), (n=0 ~ 7) MOV Rn, A ; (Rn)←(Acc) ④ 즉치 (Immediate) 주소 지정 방식 (Addressing Mode) 오퍼랜드가 명령어 코드 중에 상수 값으로 표시되는 방식 오퍼랜드는 DPTR 을 제외하고는 항상 8 비트이다. 명령에 사용되는 즉치 데이터의 앞에는 반드시 # 기호를 사용한다. MOV A, #data ; (ACC) ← data

28  특수기능 레지스터 (Special Function Register) 8051 의 내부 RAM 80H~F 로 (128 바이트 ) 까지에 위치하고 있는 21 개의 Register. - 이 위치를 직접번지 지정으로 액세스 하면 데이터 메모리 대신 SFR 이 액세스 됨  구성 Port Latch 및 주변기기의 상태 및 제어를 담당하는 Register P0,P1,P2,P3, PCON,TCON….. 소프트웨어 제어연산용 Register ACC, B, DPTR, PSW, SP

29  특수기능 레지스터 (Special Function Register)

30 ① B Register - 8 bit 의 범용 레지스터 ACC 와 조합해서 곱셈과 나눗셈 연산에 사용. ② Stack Pointer(SP) - 8 bit 레지스터 현재 스택 (Stack) 의 가장 윗 부분 데이터의 주소를 가리킨다. Stack 의 동작 푸싱 (pushing ) : 데이터를 넣는 동작 데이터를 쓰기 전에 스택 포인터 (SP) 를 증가시킴. 팝핑 (popping ) : Stack 에서 데이터를 제거 데이터를 읽고 SP 를 감소시킨다. 스택은 내부 데이터 메모리 ( 내부 RAM) 의 어디나 존재할 수 있음. Reset 후에 07H 로 초기화되어 08H 번지에서 시작 Stack 의 번지 초기화 명령 (60H 번지로 스택 포인터 위치 설정하기 ) MOV SP, #5FH

31 ③ PSW(Program Status Word) CPU 의 연산 처리결과를 나타내는 레지스터로 주소는 D0H 이다.

32 ④ DPTR(Data Pointer Register) 16Bit 의 Register 이다. DPH, DPL 로 나누어서 8Bit 로도 사용이 가능하다. 외부 데이터 메모리 (RAM) 와 데이터를 주고 받을 때 Address Pointer 로 사용  내부 기능 제어용 레지스터 Timer/Counter TH1, TL1, TH0, TL0, TMOD, TCON Serial Port SBUF, SCON, PCON Interrupt Control IE, IP I/O Port Control P0, P1, P2, P3

타이밍

34  Machine Cycle : CPU 가 한 개의 명령어를 처리하는데 소요되는 주기  1 machine cycle : 6 상태, 12 Clock 으로 구성  12[MHz] X-tal 을 사용할 경우 1Machine Cycle 은 1[usec.] 소요.

35  1Byte 1Cycle 명령인 경우 ( 예, INC A) S1 에서 명령을 Fetch S4 에서 다음 명령의 OP Code 를 읽지만, 무시 다음 Cycle 의 S1 에서 똑같은 OP Code 를 읽기 때문.

36  2Byte 1Cycle 명령인 경우 ( 예, ADD A, #data) S1 에서 OP Code Fetch, S4 에서 Operand 를 읽어서 명령을 처리한다.

37  1Byte 2Cycle 명령인 경우 ( 예, INC DPTR ) S1 에서 OP Code 를 Fetch, S4 와 다음 Cycle 의 S1,S4 에서 Dummy Read.

38  1Byte 2Cycle 명령인 경우에서 MOVX 명령의 경우 외부 데이터 메모리만 Access 하는 명령이다. 다음의 OP Code 의 읽기가 가능하다.

39 2. 외부 메모리 액세스 타이밍  외부 프로그램 메모리 (ROM) 와의 인터페이스 ROM 의 Hardware 적 Access 신호 : /PSEN

40

41  외부 데이터 메모리 (RAM) 와의 인터페이스 RAM 의 Hardware 적 Access 신호 : /RD, /WR

42  외부 RAM 의 읽기 타이밍도

43  외부 RAM 의 쓰기 타이밍도

44 산술 연산 명령어

45 논리 연산 명령어

46 데이터 이동 명령어

47 부울대수 처리 명령어

48 서브루틴 / 분기 명령어 (1)

49 서브루틴 / 분기 명령어 (2)

50 ; ARITH1.ASM( 덧셈 ) ORG 4000H MOV PSW, #08H; BANK 1 선택 ; MOV R0, #20H; R0 값 설정 MOV R1, #30H; R1 값 설정 ; MOV A, R0; A <- R0 ADD A, R1; A <- A + R1 MOV R3, A; R3 <- A ; MOV A, #0H ; A <- 0 ADDC A, #0H ; A <- A CY MOV R2, A; R2 <- A ; MOV PSW, #0H; BANK 0 선택 JMP 0057H; 모니터 프로그램으로 ; END

51 ; ARITH2.ASM( 뺄셈 ) ORG 4000H MOV PSW, #08H; BANK 1 선택 ; MOV R2, #34H; R2 값 설정 MOV R3, #56H; R3 값 설정 MOV R4, #12H; R4 값 설정 MOV R5, #34H; R5 값 설정 ; CLR C; CY <- 0 MOV A, R3; A <- R3 SUBB A, R5; A <- A - R3 - CY MOV R7, A; R7 <- A ; MOV A, R2; A <- R2 SUBB A, R4; A <- A - R4 - CY MOV R6, A; R6 <- A ; MOV PSW, #0H; BANK 0 선택 JMP 0057H; 모니터 프로그램으로 END

52 ; ARITH3.ASM ORG 4000H MOV PSW, #08H; BANK 1 선택 ; MOV R0, #13H; R0 값 설정 MOV R1, #19H; R1 값 설정 ; MOV A, R0; A <- R0 ADD A, R1; A <- A + R1 DA A; 10 진 보정 MOV R2, A; R2 <- A( 덧셈결과 ) ; MOV PSW, #0H; BANK 0 선택 JMP 0057H; 모니터 프로그램으로 END

53 ; ARITH4.ASM( 곱셈 ) ORG 4000H MOV PSW, #08H; BANK 1 선택 ; MOV R0, #9 MOV R1, #11 ; MOV B, R0 MOV A, R1 MUL AB ; MOV R3, A MOV R2, B ; MOV PSW, #0H; BANK 0 선택 JMP 0057H; 모니터 프로그램으로 END

54 ; ARITH5.ASM ORG4000H ; MOVDPTR, #1000H; DPTR <- 1000H ; CLRC MOVA, DPL SUBBA, #1 MOVDPL, A; DPL <- DPL - 1 ; MOVA, DPH SUBBA, #0 MOVDPH, A; DPH <- DPH CY; ; JMP0057H; 모니터 프로그램으로 END

55 ;BIT1.ASM ORG 4000H ; MOV 20H, #34H MOV 21H, #65H MOV 22H, #0A5H MOV 23H, #0B5H MOV 24H, #38H MOV 25H, #91H MOV 26H, #55H MOV 27H, #88H ; CLR A; A <- 0 ; MOV C, 27H.0 RLC A MOV C, 26H.0 RLC A MOV C, 25H.0 RLC A MOV C, 24H.0 RLC A MOV C, 18H; 23H,0 RLC A MOV C, 10H; 22H.0 RLC A MOV C, 08H; 21H.0 RLC A MOV C, 0H; 20H.0 RLC A ; MOV 30H, A ; JMP 0057H; 모니터 프로그램으로 END