C 언어로 배우는 8051 마이크로프로세서
2/49
04. 회로도의 기본 규칙, 저항 및 커패시터
전원과 그라운드
회로도에 표시하지 않는 것
전원 및 그라운드의 접속
디지털 IC의 전원 및 그라운드
실장 레이아웃이나 배선의 방법
부품의 종류 (커패시터나 저항)
기구 부품 관련
기능이나 타이밍 관련
Vcc
+5V
학습목표 및 목차
8051의 기본 구조와 각 핀의 기능을 이해한다.
8051 메모리 구조를 이해한다.
SFR 영역에 존재하는 레지스터들의 종류를 알아본다.
프로그램 메모리와 데이터 메모리를 확장하는 방법을 익힌다.
회로도의 기본 규칙과 저항 및 커패시터의 사용법을 익힌다.
01. 8051 기본 구조와 핀 기능
02. 8051 메모리 구조
03. MCS-51 기본 설계
04. 회로도의 기본 규칙, 저항 및 커패시터
4/49
01. 8051 기본 구조와 핀 기능
1.1 8051 기본 구조
일반 CPU 기능
병렬 8 bit I/O 포트: 4
직렬 포트: 1
인터럽트 제어기: 5
타이머/카운터: 2
ROM: 4K=4096 Bytes
RAM: 128 Bytes
특수 기능 레지스터
8051 내부 구조
1.2 8051 기본 특징
① +5V 단일 전원 동작 8bit 마이크로컨토롤러 ② 4Kbyte의 프로그램 메모리(ROM)를 내장 ③ 128byte의 데이터 메모리(RAM):
• 4개의 레지스터 뱅크(register bank)
• 128bit의 bit flag : 비트단위로 조작 처리가 가능
④ 외부 프로그램 메모리와 데이터 메모리를 각각 64Kbyte까지 확장 (단, 프로그램 메모리의 하위 4Kbyte는 자체 내장)
⑤ 128byte의 특수 기능 레지스터 (Special Function Register)
⑥ 4개의 8bit 입출력 포트 내장: 32개(=48bit)의 양방향 입출력 포트 ⑦ 16bit 타이머/카운터가 2개 내장
⑧ 데이터 통신용 완전 전이중 방식의 직렬 포트(full duplex UART)가 내장 ⑨ 2중 우선순위구조를 갖는 5개의 인터럽트 소스
⑩ 발진회로 및 클록회로 내장: 1~12MHz(내부에서 12분주), 32MHz까지도 가능 ⑪ 칩 내에 플래시메모리 내장(아트멜의 AT89S 시리즈)
6/49
8051 계열 주요 제품의 특징
명칭 내부 메모리 인터럽트 소스 타이머/카운터 비고
프로그램(ROM) 데이터(RAM)
8031AH None 128 8 5 216bit 8051AH 4K8 ROM 128 8 5 216bit 8751H 4K8 EPROM 128 8 5 216bit
8032AH None 256 6 6 316bit
8052AH 8K8 ROM 256 6 6 316bit 8752BH 8K8 EPROM 256 6 6 316bit
AT89C51 4K8 Flash 128 8 5 216bit Atmel AT89C2051 2K8 Flash 128 8 5 216bit Atmel
1.3 8051 핀 구조와 기능
PDIP형
PLCC형
8/49
포트 0(P0) (핀번호 : 32~39)
기본 기능으로 8비트 양방향성 I/O 포트로 사용
P0 포트 핀은 오픈 드레인의 구성이어서 I/O 포트로
풀업(pull-up) 저항
을 연결
8개의 TTL을 구동 가능(fan-out : LS-TTL 8개)
외부 메모리(ROM, RAM) 확장 시 하위 어드레스(A0-A7)와 데이터 버스(D0∼D7)
로 사용
포트 1(P1) (핀번호 : 1~8)
8비트 양방향성 I/O 포트로 내부에서 풀업되어 있음
4개의 TTL을 구동 가능(fan-out : LS-TTL 4개)
포트 2(P2) (핀번호 : 21~28)
8비트 양방향성 I/O 포트로 내부에서 풀업되어 있음
4개의 TTL을 구동 가능(fan-out : LS-TTL 4개).
외부 메모리(ROM, RAM) 확장 시 상위 어드레스(A8~A15)로 사용
포트 3(P3) (핀번호 : 10~17)
8비트 양방향성 I/O 포트로 사용되며, 내부에서 풀업되어 있음
4개의 TTL을 구동 가능(fan-out : LS-TTL 4개).
타이머/카운터, 직렬포트, read, write 제어기능이 포트설정에 따라 자동설정
핀(핀 번호) 명칭 기 능 P3.0(핀 10번) RxD 직렬통신에서 수신 핀(입력) P3.1(핀 11번) TxD 직렬통신에서 송신 핀(출력) P3.2(핀 12번) 외부 인터럽트 0 P3.3(핀 13번) 외부 인터럽트 1 P3.4(핀 14번) T0 외부 타이머 인터럽트 0(입력) P3.5(핀 15번) T1 외부 타이머 인터럽트 1(입력) P3.6(핀 16번) 외부 데이터 메모리 쓰기 스트로브(strobe) P3.7(핀 17번) 외부 데이터 메모리 읽기 스트로브(strobe) INT 0 INT 1 WR RD01. 8051 기본 구조와 핀 기능
포트 3의 2차 기능
10/49
시스템 리셋(RST) (핀번호 : 9)
시스템 리셋은 모든 동작 조건에 우선하며, RST 핀을 적어도 2 기계사이클(24
클록 시간) 동안 high 상태로 함으로써 이루어진다.
Power on 리셋 및 스위치 리셋 회로
01. 8051 기본 구조와 핀 기능
+ 10uF 4.7K +5V RST스위치만 추가한 단순 리셋 회로
클록 오실레이터(XTAL2, XTAL1) (핀번호 : 18, 19)
명령어 수행에 소요되는 최소한의 클럭 수는 12이다.
클럭 회로
클록 오실레이터 연결방법
외부 클록신호를 연결하는 방법
18 19 C2 MCS-51 XTAL1 XTAL2 C1 18 19 MCS-51 XTAL1 XTAL2 외부 클록 신호 NC01. 8051 기본 구조와 핀 기능
12/49
(핀번호 : 29)
프로그램 메모리(ROM에) 저장되어 있는 데이터를 읽을 때 사용
(핀번호 : 30)
하위 어드레스(A0~A7)의 유효한 출력임을 나타내는 신호
(핀번호 : 31)
내부 ROM을 사용할 경우에는 High(V
cc)
에 연결하고, 외부에 ROM을 사용할 경
우에는 Low(접지, ground, GND)에 연결
V
SS(핀번호 : 20), V
CC(핀번호 : 40)
직류전원을 연결하는 단자이며, V
CC=+5V, V
SS=0V 연결
PSEN
PROG
/
ALE
PPV
/
EA
01. 8051 기본 구조와 핀 기능
02. 8051 메모리 구조
(필기)
Bank 0 (R0~R7) 비트 단위로 처리가 가능한 영역 Bank 1 (R0~R7) Bank 2 (R0~R7) Bank 3 (R0~R7) 사용자 데이터 메모리 영역 특수 기능 레지스터 FFH 80H 7FH 30H 2FH 20H 1FH 18H 17H 10H 0FH 08H 07H 00H 내부 ROM 혹은 외부 ROM 외부 ROM FFFFH 1000H 0FFFH 0000H 외부 데이터 메모리 FFFFH 0000H 내부 데이터 RAM 128바이트 (00H~7FH) 내장 특수 기능 레지스터 128바이트 (80H~FFH) 내부 ROM 4K바이트 (0000H~0FFFH) 외부 확장 ROM 60K/64K바이트 (1000H/0000H~FFFFH) 외부 확장 데이터 메모리 64K바이트 (0000H~FFFFH)
2.1 8051 메모리 구조 개요
14/49
02. 8051 메모리 구조
2.2 내부 데이터 메모리: RAM 00H~7FH
* 컴파일러가 자동적으로 설정
레지스터 뱅크(register bank) R0~R7이라는 범용 레지스터의 이름을 사용 뱅크는 PSW의 RS1과 RS0를 사용하여 설정 비트 어드레스 영역(bit addressable segment)
비트 단위로 저장하거나 연산할 경우 사용하는 영역 (16 Byte) : RAM 20H~2F 사용자 데이터 메모리 영역: RAM 08H~7F 사용자 임의로 사용할 수 있는 영역 데이터 메모리이나 스택 영역으로 사용 Reset되면 SP가 07H가 되므로 사용자가 스택을 지정하려면 다른 곳으로 설정하여야 함 Bank 0 (R0~R7) Bank 1 (R0~R7) Bank 2 (R0~R7) Bank 3 (R0~R7) 1FH 18H 17H 10H 0FH 08H 07H 00H R0 R1 R2 R3 R4 R5 R6 R7 00H 01H 02H 03H 04H 05H 06H 07H Bank 0 (R0~R7) 비트 단위로 처리가 가능한 영역 Bank 1 (R0~R7) Bank 2 (R0~R7) Bank 3 (R0~R7) 2FH 20H 1FH 18H 17H 10H 0FH 08H 07H 00H 07 06 05 04 03 02 01 00 0F 0E 0D 0C 0B 0A 09 08 17 16 15 14 13 12 11 10 1F 1E 1D 1C 1B 1A 19 18 27 26 25 24 23 22 21 20 2F 2E 2D 2C 2B 2A 29 28 37 36 35 34 33 32 31 30 3F 3E 3D 3C 3B 3A 39 38 47 46 45 44 43 42 41 40 4F 4E 4D 4C 4B 4A 49 48 57 56 55 54 53 52 51 50 5F 5E 5D 5C 5B 5A 59 58 67 66 65 64 63 62 61 60 6F 6E 6D 6C 6B 6A 69 68 77 76 75 74 73 72 71 70 7F 7E 7D 7C 7B 7A 79 78 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 22H 23H 24H 21H 20H 내부 메모 리 주소 내 부 메 모 리 비 트 주 소
02. 8051 메모리 구조
특수기능 레지스터 영역(SFR:Special Function Register)
범용 레지스터의 기능과 각종 칩 내장 장치들을 위한 기능을 수행
F8 FF F0 B F7 E8 EF E0 ACC E7 D8 DF D0 PSW D7 C8 CF C0 C7 B8 IP BF B0 P3 B7 A8 IE AF A0 P2 A7 98 SCON SBUF 9F 90 P1 97 88 TCON TMOD TL0 TL1 TH0 TH1 8F
16/49
02. 8051 메모리 구조
기 호 명 칭 주 소
Acc
Accumulator(누산기)
E0H
B
B Register
F0H
PSW
Program Status Word
D0H
SP
Stack Pointer
81H
DPTR(DPL) Data Pointer Register : Low Byte
82H
DPTR(DPH) Data Pointer Register : High Byte
83H
P0
Port 0
80H
Port 1
90H
Port 2
A0H
P3
Port 3
B0H
Interrupt Priority Control
B8H
Interrupt Enable Control
A8H
Timer/Counter Mode Control
89H
TCON
Timer/Counter Control
88H
Timer/Counter 0 High Byte
8CH
Timer/Counter 0 Low Byte
8AH
TH1
Timer/Counter 1 High Byte
8DH
Timer/Counter 1 Low Byte
8BH
SCON
Serial Control
98H
SBUF
Serial Data Buffer
99H
PCON
Power Control
87H
02. 8051 메모리 구조
2.3 프로그램 메모리
내부 ROM의 사용 여부는 를 사용하여 선택.
내부 ROM 혹은 외부 ROM 외부 ROM 외부 데이터 메모리 0000H FFFFH FFFFH 0000H 0FFFH 1000HEA
프로그램 메모리
데이터 메모리
H
EA
L
EA
내부 ROM 사용 내부 ROM 사용하지 않음 이 경우 1000H 번지 이상을 읽으면 자동적으로 외부 ROM을 액세스
18/49
03. MCS-51 기본 설계
3.1 Flash ROM Type의 최소 설계
회로상의 를 VCC로 연결하여 내부 프로그램 메모리를 사용. 89C51의 내부 프로그램 메모리는 4kbyte인데 그 이상이 되면 당연히 으로 외부 프로그램 메모리를 액세스한다. EA PSEN 20pF 4.7K 10uF +5V 12MHz AT89C51 1 Vcc XTAL2 XTAL1 + 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Vcc RESET P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VPP TXD RXD INT0 INT1 T0 T1 WR RD XTAL2 XTAL1 Vss 20pF ALE/P PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 VCC
03. MCS-51 기본 설계
3.2 ROM less Type의 최소 설계
20pF 4.7K 10uF +5V 12MHz 80C31 1 Vcc + 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Vcc RESET P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VPP TXD RXD INT0 INT1 T0 T1 WR RD XTAL2 XTAL1 Vss 20pF ALE/P PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 VCC 74HC573 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A15 A14 A13 A12 A11 A10 A9 A8 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 2 3 4 5 6 7 8 9 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A0 A1 A2 A3 A4 A5 A6 A7 AD 0~ AD 7 A8 ~A 15 AD0~AD7 A8~A15 19 18 17 16 15 14 13 12 20 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 I/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7 19 18 17 16 15 14 13 3 2 31 1 12 4 5 11 21 22 23 25 26 27 28 29 OE WE CE Vcc 8 24 GND Vcc AT29C512 11 1 20 LE OE Vcc Vcc Vcc 1D 2D 3D 4D 5D 6D 7D 8D 1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q 10 GND
20/49
04. 회로도의 기본 규칙, 저항 및 커패시터
저항
탄소 피막 저항: 가격이 저렴하고 가장 많이 사용
어레이(Array) 저항: 여러 개(4~10개 정도)의 저항을 하나의 패키지 형태
탄소 피막 저항
어레이 저항
04. 회로도의 기본 규칙, 저항 및 커패시터
저항값과 컬러 코드
(Ex 1) 갈색, 흑색, 적색, 금색 : 10
100 = 1000
= 1K
(오차 5% )
(Ex 2) 황색, 자색, 등색, 금색 :
(Ex 3) 등색, 등색, 황색, 갈색 :
(Ex 4) 황색, 녹색, 갈색, 은색 :
22/49
04. 회로도의 기본 규칙, 저항 및 커패시터
4.3 커패시터의 사용 방법
커패시터의 기능 전기를 저장하거나 방출하는 축전지로서의 기능 직류를 통과하지 않는 성질을 이용하는 기능 커패시터의 단위 : [ F ] [pF ] = 10-12 , [F ] = 10-6 커패시터의 종류 전해 커패시터 정격 전압(2V~500V)이 있으며, 비교적 용량이 크다(0.1μF~15000μF). ±의 극성이 있으며, 2개의 리드선 중 긴 쪽이 플러스 극이다.. 탄탈 커패시터 정격 전압(3V~35V)이 있으며, 비교적 용량(0.1μF~220μF)이 크다. ±의 극성이 있으며, 2개의 리드선 중 긴 쪽이 플러스 극이다 . 세라믹 커패시터 정격 전압(25V~3KV)이 있으며, 비교적 용량(수pF~수 μF)이 작다. 극성이 없으며 허용오차(±10%, ±20%)가 크다.
04. 회로도의 기본 규칙, 저항 및 커패시터
커패시터 용량
전해 커패시터, 탄탈 커패시터
세라믹 커패시터
48 × 102 20 × 103 = 4800 [pF] = 20000 [pF] = 0.0048 [F] = 0.02 [F] 오차 J = ± 5 % 오차 K = ± 10 %
오차의 표시
J:5% 이내 K:10%이내 M:20%이내
24/49