Transcript
Page 1: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

1

2.1 8051 Family 의 개요

2.1 8051 의 외부 Pin 기능과 내부 기능

2.3 8051 Memory 구조

2.4 8051 Timing

2 장 8051 의 구조

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

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 비트 원칩 마이크로프로세서

• 광범위한 비트 로직 부울 프로세스 능력 ( 강력한 비트 제어 )

2.1 8051 Family 의 개요1. 8051 의 주요 특징

Page 3: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

3

FunctionData Bits-

Width8 Bits

ComputationArithmetic OperationLogical OperationBit Operation

Memory Size

Data : External Memory 64KB, Internal Memory 128BProgram : External Memory 64KB, Internal Memory 4KB

I/O PortParallel I/O port : 32 (4×8bits)Serial I/O port : Full Duplex UART

Etc.2×16 Bits TimerClock Generator5 Interrupt s

8051 의 특징

Page 4: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

4

2. 8051 Family

8051 을 Core 로 하는 Micro Controller 들을 일컫는다 .

CHMOS 형의 8051 에는 POWER Down Mode 가 있음 .

2 2 3

128B128B256B

4KB4KB8KB

-89C5189C52

87518751H8752BH

80318031AH8032AH

80518051AH8052AH

비고16 bit Timer

RAM Size

ROM Size

FLASHEPROM

ROM없음이름

• 8051 : 내부에 Masking Type 의 ROM 을 내장한 프로세서 .

Mask ROM type, OTP(One-Time Programming) type 이 현재 출시되고 있음 .

• 8031 : Chip 내부에 ROM 을 내장하고 있지 않다 .

• 8751 : EPROM type 의 ROM 을 내장

• 89C51 : Flash Memory type ROM 내장 , 전기적으로 Erase, Write (Atmel 사 제품 )

Page 5: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

5

표 2.2 Philips 사에서 출시되는 8051 Family

이름 Pin ROM RAM 기타 기능83C451 68 4K 128 52 I/O, 2timer, 1UART

83C528 40, 44

32K 512 32 I/O,WDOG,3-timer, UART,I2C bus

83C550 68 4K 128 8-8bitA/D,WDOG,2-timer,1UART

83C552 68, 80

8K 256 48I/O,10bit A/d,WDOG,3-timer, 1UART, 2PWM,I2C bus

89C51Rx2

40, 44

16,32,64K

F

128 ISP, IAP, more Interrupt, 32I/O, 1UART Low EMI, 2nd DPTR, PCA

….

Page 6: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

6

표 2.3 Atmel 사에서 출시되는 8051 Family

이름 Pin ROM RAM 기타 기능

89C51 40, 44 4KF 128 32 I/0, 2-timer, 1UART

89C52 40, 44 8KF 256 32 I/0, 2-timer, 1UART

89C55 40, 44 20KF 256 32 I/0, 2-timer, 1UART

89C1051 20 1KF 64 15 Programmable I/O, 2-timer

89C2051 20 2KF 128 1UART, Analog Comparator

89C4051 20 4KF 128 Same above

89S52 40, 44 8KF 256 32I/0, 3-timer, 1UART,WDOG, 2DPTR

Page 7: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

7

그림 2.1 8051 핀 배치도

Page 8: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

8

2.2 8051 의 외부 핀 기능과 내부 기능

Page 9: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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 포트로써 제공

1. 8051 외부 핀 기능

Page 10: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

10

포트 (Port) 3 (P3.0 - P3.7) : 중복된 기능을 갖는 포트 내부 풀 업 (Pull-up) 을 갖는 8 비트 양방향 입출력 단자 ( 범용

I/O)

다른 목적을 가지는 다중기능

포트 핀 다른 기능P3.0 RxD (serial input port )

P3.1 TxD (serial output port )

P3.2 /INT 0 (external interrupt 0)

P3.3 /INT 1 (external interrupt 1)

P3.4 T 0 (T imer 0 external input )

P3.5 T 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 의 다중 기능

Page 11: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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 에 연결된다 .

Page 12: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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 단자

Page 13: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

13

2. 8051 내부 기능

Page 14: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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 처리

Page 15: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

15

⑶ 어큐뮬레이터 (ACC : Accumulator )

- 산술논리 연산에서 연산자로 사용된다 .

- 테이블 참조 명령에서 테이블 번지의 옵셋으로 사용 .

- 외부 데이터 메모리와 데이터 전송에 사용 .

- 프로그램 메모리에서 데이터를 읽을 때 사용

- A 로도 표기한다 . 가장 많이 사용되는 레지스터이다 .

Page 16: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

16

그림 2.3 8051 의 내부 블록도

Page 17: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

17

2.3 8051 Memory 구조

1. Program 과 Data Memory 의 구조

/PSEN : ROM Access

/RD, /WR : RAM Access

Page 18: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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 영역에서 사용

Page 19: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

19

3. Data Memory (RAM)

(1) 8051 의 외부 데이터 메모리• 64[Kbyte] 의 공간을 Access 가능• 외부 데이터 메모리를 Access 하기 위해 사용되는 명령어 : MOVX

• 외부 데이터 메모리를 Access 하면 H/W 적으로 /RD, /WR 신호가 발생

Page 20: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

20

(2) 8051 의 내부 데이터 메모리

• 데이터 RAM 영역 : 128 Byte(00H~7FH)

• SFR (Special Function Register) 영역 : 128 Byte (80H~0FFH)

• MOV 명령에 의해서 Access 가 가능하다 .

Page 21: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

21

내부 메모리의 하위 128 Byte(00H~0FH) 의 구조

Register Bank 4개

Page 22: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

22

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

Page 23: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

23

비트 지정 방법 :

00H - 7FH 또는 20.1H - 2F.7H 로 비트 주소 지정

비트 지정 가능 (Bit-addressable) 영역

Page 24: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

24

- 30H- 7FH 까지는 범용의 RAM 으로 사용

- 직접 , 간접 Addressing Mode 로 Access 가능

MOV A, 5FH ; 직접 어드레싱 모드

MOV R0, #5FH ;

MOV A, @R0 ; 간접 어드레싱 모드

범용의 기억 장소

Page 25: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

25

① 직접 주소 지정 방식 (Addressing Mode)

8 비트로 오퍼랜드의 번지 (address) 를 직접 지정하는 방식

내부 데이터 메모리의 하위 128 바이트나 SFR 을 Access 하는데 사용된다 .

MOV A, direct ; (Acc) ← (address)

MOV direct, A ; (address) ← (Acc)

< 참고 > 8051 명령의 주소 지정 방식 (Addressing Mode)

8051 의 데이터 이동 법칙

MOV < 목적지 >, < 소스 >

니모닉 오퍼랜드

Page 26: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

26

② 간접 주소 지정 방식 (Addressing Mode)

Operand 의 주소를 저장하고 있는 Reg. 를 이용하여 Operand 를 간접적으로 지정

내부 또는 외부 데이터 메모리를 액세스하는데 사용된다 .

간접 주소 지정방식에는 Register 는 R0 또는 R1 만을 사용 가능하다 .

기호 @ 를 R0, R1 앞에 나타내어 간접 주소 지정임을 표시

MOV @Rn, #data ; ((Rn)) ← data ( n = 0 or 1)

MOV @Rn, direct ; ((Rn)) ← (direct address)

예 ) MOV R0, #5FH

MOV A, @R0

Page 27: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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

Page 28: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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

Page 29: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

29

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

Page 30: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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

Page 31: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

31

③ PSW(Program Status Word)

CPU 의 연산 처리결과를 나타내는 레지스터로 주소는 D0H 이다 .

Page 32: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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

Page 33: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

33

2.4 8051 타이밍

Page 34: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

34

Machine Cycle : CPU 가 한 개의 명령어를 처리하는데 소요되는 주기

1 machine cycle : 6 상태 , 12 Clock 으로 구성

12[MHz] X-tal 을 사용할 경우 1Machine Cycle 은 1[usec.] 소요 .

Page 35: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

35

1Byte 1Cycle 명령인 경우 ( 예 , INC A)

S1 에서 명령을 Fetch

S4 에서 다음 명령의 OP Code 를 읽지만 , 무시

다음 Cycle 의 S1 에서 똑같은 OP Code 를 읽기 때문 .

Page 36: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

36

2Byte 1Cycle 명령인 경우 ( 예 , ADD A, #data)

S1 에서 OP Code Fetch, S4 에서 Operand 를 읽어서 명령을 처리한다 .

Page 37: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

37

1Byte 2Cycle 명령인 경우 ( 예 , INC DPTR )

S1 에서 OP Code 를 Fetch, S4 와 다음 Cycle 의 S1,S4 에서 Dummy Read.

Page 38: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

38

1Byte 2Cycle 명령인 경우에서 MOVX 명령의 경우

외부 데이터 메모리만 Access 하는 명령이다 .

다음의 OP Code 의 읽기가 가능하다 .

Page 39: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

39

2. 외부 메모리 액세스 타이밍 외부 프로그램 메모리 (ROM) 와의 인터페이스

ROM 의 Hardware 적 Access 신호 : /PSEN

Page 40: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

40

Page 41: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

41

외부 데이터 메모리 (RAM) 와의 인터페이스

RAM 의 Hardware 적 Access 신호 : /RD, /WR

Page 42: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

42

외부 RAM 의 읽기 타이밍도

Page 43: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

43

외부 RAM 의 쓰기 타이밍도

Page 44: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

44

산술 연산 명령어

Page 45: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

45

논리 연산 명령어

Page 46: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

46

데이터이동

명령어

Page 47: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

47

부울대수 처리 명령어

Page 48: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

48

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

Page 49: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

49

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

Page 50: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

50

; ARITH1.ASM( 덧셈 )ORG 4000HMOV PSW, #08H ; BANK 1 선택

;MOV R0, #20H ; R0 값 설정MOV R1, #30H ; R1 값 설정

;MOV A, R0 ; A <- R0ADD A, R1 ; A <- A + R1MOV R3, A ; R3 <- A

;MOV A, #0H ; A <- 0ADDC A, #0H ; A <- A + 0 + CYMOV R2, A ; R2 <- A

;MOV PSW, #0H ; BANK 0 선택JMP 0057H ; 모니터 프로그램으로

;END

Page 51: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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

Page 52: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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

Page 53: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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

Page 54: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

54

• ; ARITH5.ASM• ORG 4000H• ;• MOV DPTR, #1000H ; DPTR <- 1000H• ;• CLR C• MOV A, DPL• SUBB A, #1• MOV DPL, A ; DPL <- DPL - 1 • ;• MOV A, DPH• SUBB A, #0• MOV DPH, A ; DPH <- DPH - 0 - CY;• ;• JMP 0057H ; 모니터 프로그램으로• END

Page 55: 2.1  8051 Family 의 개요 2.1  8051 의 외부  Pin  기능과 내부 기능 2.3  8051 Memory  구조 2.4  8051 Timing

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