임베디드기초프로그래밍 (마이크로프로세서실습) ch1. MCS...

18
1 임베디드기초프로그래밍 1 임베디드 임베디드 기초 기초 프로그래밍 프로그래밍 ( 마이크로프로세서 마이크로프로세서 실습 실습) ch1. MCS ch1. MCS-51 51의 구조와 구조와 특성 특성 정보네트워크공학전공 정보네트워크공학전공 이훈재 이훈재 [email protected] [email protected] http://crypto.dongseo.ac.kr http://crypto.dongseo.ac.kr http:// http:// kowon.dongseo.ac.kr/~hjlee kowon.dongseo.ac.kr/~hjlee 임베디드기초프로그래밍 2 MCS MCS-51 51 마이크로프로세서 마이크로프로세서 내부 내부 블록 블록 구조 구조

Transcript of 임베디드기초프로그래밍 (마이크로프로세서실습) ch1. MCS...

1

임베디드기초프로그래밍 1

임베디드임베디드 기초기초 프로그래밍프로그래밍((마이크로프로세서마이크로프로세서 실습실습))ch1. MCSch1. MCS--5151의의 구조와구조와 특성특성

정보네트워크공학전공정보네트워크공학전공이훈재이훈재

[email protected]@dongseo.ac.krhttp://crypto.dongseo.ac.krhttp://crypto.dongseo.ac.kr

http://http://kowon.dongseo.ac.kr/~hjleekowon.dongseo.ac.kr/~hjlee

임베디드기초프로그래밍 2

MCSMCS--51 51 마이크로프로세서마이크로프로세서 내부내부 블록블록 구조구조

2

임베디드기초프로그래밍 3

MCSMCS--51 51 마이크로프로세서마이크로프로세서 소개소개

89C51: EEPROM89C51: EEPROM

임베디드기초프로그래밍 4

MCSMCS--51 51 마이크로프로세서마이크로프로세서 소개소개

8051 8051 8051 8051 마이크로마이크로마이크로마이크로 프로세서프로세서프로세서프로세서 특징특징특징특징◆ 1981198119811981년년년년 생산생산생산생산 시작시작시작시작

◆ 제어응용설계제어응용설계제어응용설계제어응용설계 전문의전문의전문의전문의 8888비트비트비트비트 CPUCPUCPUCPU

◆ 강화된강화된강화된강화된 부울대수의부울대수의부울대수의부울대수의 연산능력연산능력연산능력연산능력

◆ 32323232개의개의개의개의 양방향양방향양방향양방향 I/OI/OI/OI/O

◆ 128 128 128 128 바이트의바이트의바이트의바이트의 저장저장저장저장 가능한가능한가능한가능한 데이터데이터데이터데이터 메모리메모리메모리메모리(DATA RAM)(DATA RAM)(DATA RAM)(DATA RAM)

◆ 2222개의개의개의개의 16161616비트비트비트비트 타이머타이머타이머타이머 내장내장내장내장

◆ 완전한완전한완전한완전한 이중이중이중이중 UARTUARTUARTUART

◆ 5555개의개의개의개의 인터럽트인터럽트인터럽트인터럽트 가운데가운데가운데가운데 이중이중이중이중((((고고고고////저저저저))))의의의의 우선순위를우선순위를우선순위를우선순위를 가진가진가진가진 인터럽트인터럽트인터럽트인터럽트 보유보유보유보유

◆ 클럭클럭클럭클럭(clock) (clock) (clock) (clock) 발진기발진기발진기발진기 내장내장내장내장

◆ 4K(8K/8052) 4K(8K/8052) 4K(8K/8052) 4K(8K/8052) 바이트의바이트의바이트의바이트의 ROM ROM ROM ROM 내장내장내장내장((((내부내부내부내부 프로그램프로그램프로그램프로그램 메모리메모리메모리메모리))))

◆ 64K 64K 64K 64K 바이트의바이트의바이트의바이트의 프로그램프로그램프로그램프로그램 영역영역영역영역((((외부외부외부외부) ) ) ) (8Mbyte (8Mbyte (8Mbyte (8Mbyte 확장확장확장확장 가능함가능함가능함가능함))))

◆ 64K 64K 64K 64K 바이트의바이트의바이트의바이트의 데이터데이터데이터데이터 메모리메모리메모리메모리 어드레스어드레스어드레스어드레스 영역영역영역영역 ((((더더더더 이상이상이상이상 확장가능확장가능확장가능확장가능))))

3

임베디드기초프로그래밍 5

MCSMCS--51 51 마이크로프로세서마이크로프로세서 소개소개

임베디드기초프로그래밍 6

MCSMCS--51 51 메모리메모리 맵맵(memory map)(memory map)

4

임베디드기초프로그래밍 7

MCSMCS--51 51 마이크로프로세서마이크로프로세서 외부핀외부핀(1)(1)

임베디드기초프로그래밍 8

MCSMCS--51 51 마이크로프로세서마이크로프로세서 외부핀외부핀(2)(2)

5

임베디드기초프로그래밍 9

MCSMCS--51 51 프로그램프로그램 메모리메모리(program memory)(program memory)

임베디드기초프로그래밍 10

외부확장외부확장 메모리메모리 인터페이스인터페이스-- External Program MemoryExternal Program Memory

6

임베디드기초프로그래밍 11

외부확장외부확장 메모리메모리 인터페이스인터페이스-- External Data MemoryExternal Data Memory

임베디드기초프로그래밍 12

내부내부 메모리메모리 구성구성(1)(1)

7

임베디드기초프로그래밍 13

내부내부 메모리메모리 구성구성(2)(2)-- 하위하위 128 128 바이트바이트

임베디드기초프로그래밍 14

MCSMCS--51 51 데이터데이터 메모리메모리(data memory)(data memory)

8

임베디드기초프로그래밍 15

내부내부 메모리메모리 구성구성

임베디드기초프로그래밍 16

Acc, B, PSW, Port addressAcc, B, PSW, Port address

9

임베디드기초프로그래밍 17

SFR SFR 레지스터레지스터(1)(1)

임베디드기초프로그래밍 18

SFR SFR 레지스터레지스터(2)(2)

10

임베디드기초프로그래밍 19

PSW PSW 레지스터레지스터(Program Status Word)(Program Status Word)

임베디드기초프로그래밍 20

1.4 Addressing Mode(1)1.4 Addressing Mode(1)

직접 어드레싱(direct addressing)-내부 데이터 메모리와 SFR은 직접 어드레싱 가능함.-예) ADD A, 7FH

ANL A, 7FH

간접 어드레싱(indirect addressing)-내부 데이터 메모리와 외부 데이터 메모리 모두간접 어드레싱 가능함.

-예) ADD A, @R0ORL A, @R1

레지스터 어드레싱(register addressing)-레지스터 뱅크 내의 R0~R7에 대한 직접적인 어드레싱-예) ADD A, R2

XRL A, R3

11

임베디드기초프로그래밍 21

1.4 Addressing Mode(2)1.4 Addressing Mode(2)

레지스터 지정 어드레싱(register indirect addressing)- 레지스터 뱅크 내의 R0~R7의 내장값에 대한 어드레싱-예) ADD A, @R4 --> Acc + the value of address of R4

= AccXRL A, @R5 --> Acc ^ the value of address of R5

= Acc

상수 어드레싱(immediate addressing)- 임의의 상수값을 오퍼랜드로 하는 어드레싱-예) ADD A, #127

XRL A, #FFH

색인 어드레싱(index addressing)- 프로그램 메모리만 가능, 테이블 지정시 유리

임베디드기초프로그래밍 22

1.4 Addressing Mode 1.4 Addressing Mode --예제예제(1)(1)

12

임베디드기초프로그래밍 23

1.4 Addressing Mode 1.4 Addressing Mode -- 예제예제(2)(2)

임베디드기초프로그래밍 24

1.5 Arithmetic 1.5 Arithmetic 명령어명령어

13

임베디드기초프로그래밍 25

1.6 Logical Instructions1.6 Logical Instructions

임베디드기초프로그래밍 26

1.7 Data Transfer Instructions(1)1.7 Data Transfer Instructions(1)

14

임베디드기초프로그래밍 27

1.7 Data Transfer Instructions(2)1.7 Data Transfer Instructions(2)

임베디드기초프로그래밍 28

1.7 Data Transfer Instructions(3)1.7 Data Transfer Instructions(3)-- 외부외부 데이터데이터 메모리메모리 억세스억세스

15

임베디드기초프로그래밍 29

1.7 Data Transfer Instructions(4)1.7 Data Transfer Instructions(4)-- 프로그램프로그램 메모리메모리 억세스억세스

임베디드기초프로그래밍 30

1.8 Boolean Instructions1.8 Boolean Instructions

16

임베디드기초프로그래밍 31

1.9 Relative Offset Instructions(1)1.9 Relative Offset Instructions(1)-- Unconditional JumpUnconditional Jump

임베디드기초프로그래밍 32

1.9 Relative Offset Instructions(2)1.9 Relative Offset Instructions(2)-- Conditional JumpConditional Jump

17

임베디드기초프로그래밍 33

Branch Branch 명령어명령어

임베디드기초프로그래밍 34

1.10 CPU Timing(1)1.10 CPU Timing(1)

18

임베디드기초프로그래밍 35

1.10 CPU Timing(2)1.10 CPU Timing(2)