제 1 장 마이크로프로세서의 기본동작

Download Report

Transcript 제 1 장 마이크로프로세서의 기본동작

제 1 장
마이크로프로세서의 기본동작
1.1 마이크로프로세서란? (1)
제어용 소형 컴퓨터
일반적인 컴퓨터의 문제(크기,전원)로 인해
사용이 어려운 부분에 사용
※마이크로칩 : 실리콘과 같은 재료를 이용하여
아주 작은 크기로 만들어진 패키지형 컴퓨터
회로
제 1장 마이크로프로세서의 기초와 기본동작
2
1.1 마이크로프로세서란? (2)
마이크로프로세서와 Desktop PC의 비교
Desktop PC
마이크로프로세서
크기가 크다
크기가 작다
이동이 불편하다
이동이 편하다
제어 포트가 적다
제어 포트가 많다
(CPU 출력 포트 모두 사용)
일반 PC로 사용
제어용으로 적합
값이 비싸다
값이 싸다
제 1장 마이크로프로세서의 기초와 기본동작
3
1.2 레지스터(Register)란?
마이컴의 제어에 꼭 필요한 사항
마이컴에 원하는 기능이나 동작을 주문하기 위
해 데이터를 기록하는 램을 레지스터라 한다.
[활용예]
MOV P0,#00H ; 포트0로“00000000”을 출력하라
MOV SP,#7FH ; 스택포인터를 #7FH로 설정하라
제 1장 마이크로프로세서의 기초와 기본동작
4
1.3 메모리(Memory)란? (1)
마이컴의 동작 시 사용하는 임의 데이터 보관
및 일시 저장 장소를 메모리라 한다
모든 메모리는 각각의 주소(ADDRESS)가 존재한
다.(8031의 경우 내부메모리는 00H~7FH 이다)
각 주소에 해당하는 공간에는 1바이트
(8비트단위)의 정보를 저장한다.
제 1장 마이크로프로세서의 기초와 기본동작
5
1.3 메모리란? (2)
[메모리의 분류]
ROM(읽을 수만 있는 메모리)
PROM : 한번만 프로그램가능(재사용 불가)
EPROM : 자외선으로 지우고 재사용
EEPROM : 전기적으로 지우고 재사용
FLASH : 대용량 재사용 메모리(PDA,핸드폰)
RAM(읽기,쓰기가 가능한 메모리)
D-RAM : DYNAMIC RAM(PC에 사용)
S-RAM : STATIC RAM
제 1장 마이크로프로세서의 기초와 기본동작
6
1.3 메모리란? (3)
메모리의 이름과 유형
27C256
27C512
28C16
28C64
29C010
29C040
62256
-
27은
27은
28은
28은
29는
29는
62는
EPROM, CMOS TYPE, 256은
EPROM, CMOS TYPE, 512는
EEPROM, CMOS TYPE, 16은
EEPROM, CMOS TYPE, 64는
FLASH, CMOS TYPE, 010은
FLASH, CMOS TYPE, 040은
S-RAM, CMOS TYPE, 256은
256 Kbit (32 Kbyte)
512 Kbit (64 Kbyte)
16 Kbit (2 Kbyte)
64 Kbit (8 Kbyte)
1Mbit (128 Kbyte)
4Mbit (512 Kbyte)
256 Kbit (32 Kbyte)
제 1장 마이크로프로세서의 기초와 기본동작
7
1.4 스택(Stack)이란 ? (1)
인터럽터나 함수호출시 다시 돌아올 번지와 상
태 값들을 잠시 저장하는 장소
LIFO(Last-in First-out) : 저장한 값 중 제일
마지막에 넣은 값을 제일 처음 불러온다
PUSH 명령으로 스택에 저장, POP 명령으로 스
택에서 호출(나감)
제 1장 마이크로프로세서의 기초와 기본동작
8
1.4 스택이란 ? (2)
스택도 램의 한 영역이며 스택 포인터(STACK
POINTER)를 이용하여 차례로 들어오는 값을 스
택에 저장을 한다.
새로운 데이터가 들어오면(PUSH) 스택 포인터
가 1증가 한다.
스택의 데이터가 빠져나가면(POP) 스택 포인터
가 1감소 한다.
제 1장 마이크로프로세서의 기초와 기본동작
9
1.4 스택이란 ? (3)
스택에 A,B,C 데이터를
넣었을 때(PUSH)
스택 포인터(SP)는 1 증
가해서 다음 들어갈 곳을
가리킨다.
<- SP
53H
52H
51H
C
B
A
C 데이터를 읽었을 때(POP)
스택 포인터는 1 감소하여
데이터가 있는 부분 바로 위
빈 공간을 가리킨다.
53H
<- SP
52H
B
51H
A
제 1장 마이크로프로세서의 기초와 기본동작
10
1.5 2진수란 ? (1)
10진수 : 1부터 10 까지의 수로 가장많이 사용
하는 수 체계
2진수 : 0과 1 로서 마이컴이나 다른 디지털
회로에서 사용하는 수 체계
16진수 : 2진수의 불편함을 해소하기 위해 2진
수를 4자리(4비트)로 끊어 읽은“0,1,2,3,4,5
6,7,8,9,A,B,C,D,E,F”까지의 수 체계
제 1장 마이크로프로세서의 기초와 기본동작
11
1.5 2진수란 ? (2)
10진수
16진수
2진수
10진수
16진수
2진수
0
0H
0000B
8
8H
1000B
1
1H
0001B
9
9H
1001B
2
2H
0010B
10
AH
1010B
3
3H
0011B
11
BH
1011B
4
4H
0100B
12
CH
1100B
5
5H
0101B
13
DH
1101B
6
6H
0110B
14
EH
1110B
7
7H
0111B
15
FH
1111B
제 1장 마이크로프로세서의 기초와 기본동작
12
[ 실험 ] 1. 소프트웨어 기본구조 (1)
ORG
NOP
START :
NOP
.
.
ORG
INITIAL : NOP
NOP
.
.
MAIN :
NOP
NOP
.
.
JMP
0000
0035
ÇÁ·Î±×·¥ ½ºÅ¸Æ®
ÃʱâÈ-
¸ÞÀÎ ÇÁ·Î±×·¥
MAIN
제 1장 마이크로프로세서의 기초와 기본동작
13
1. 소프트웨어 기본구조 (2)
START:
프로그램 스타트를 의미한다.리셋
을 하면 처음으로 프로그램이 시작
하는 번지이다.(0000 번지)
INITIAL: CPU의 각종 레지스터의 초기화
MAIN:
만들고자 하는 메인 프로그램 작성
(반복)
제 1장 마이크로프로세서의 기초와 기본동작
14
2. 1초 간격으로 LED 제어 (1)
START:
;;
;;
INITIAL:
MAIN:
ORG
JMP
0000H
INITIAL
;시작번지를 0000번지로 한다
;8051 초기 데이터(고정)
;인터럽트 벡터 영역
ORG
NOP
NOP
SETB
CALL
CLR
CALL
JMP
0035H
;프로그램 시작번지(35번지)
;NO OPERATION(동작 없음)
P1.7
D_1S
P1.7
D_1S
MAIN
;포트1.7 을 HIGH로 만든다
;1초 딜레이
;포트 1.7을 LOW로 만든다
;1초 딜레이
;다시 MAIN 으로 간다.
;;
$DELAY.INC
END
;딜레이 함수 첨부
;PROGRAM END
제 1장 마이크로프로세서의 기초와 기본동작
15
2. 1초 간격으로 LED 제어 (2)
사용 명령어 검토
SETB
해당포트를 1(HIGH)로
만든다
SETB P1.7
CLR
해당포트를 0(LOW)으로
만든다
CLR P1.7
CALL
서브루틴(함수) 호출
CALL D_1S
JMP
JUMP 해서 실행하라
JMP MAIN
제 1장 마이크로프로세서의 기초와 기본동작
16
3. 2초 간격으로 LED 제어
START:
;;
;;
INITIAL:
MAIN:
ORG
JMP
0000H
INITIAL
;시작번지를 0000번지로 한다
;8051 초기 데이터(고정)
;인터럽트 벡터 영역
ORG
NOP
NOP
SETB
CALL
CALL
CLR
CALL
CALL
JMP
0035H
;프로그램 시작번지(35번지)
;NO OPERATION(동작 없음)
P1.7
D_1S
D_1S
P1.7
D_1S
D_1S
MAIN
;포트1.7 을 HIGH로 만든다
;1초 딜레이
;1초 딜레이
;포트 1.7을 LOW로 만든다
;1초 딜레이
;1초 딜레이
;다시 MAIN 으로 간다.
;;
$DELAY.INC
END
;딜레이 함수 첨부
;PROGRAM END
제 1장 마이크로프로세서의 기초와 기본동작
17