!""
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM.
CHƯƠNG 1
GI I THI U CHUNG V B
I. S
PHÁT TRI N C A CÁC B
VI X
VI X
LÝ
LÝ:
1. Th! h" 1 (1971 $ 1973):
ð
•
•
•
•
c ñi m chung c a các vi x lý th h này:
Bus d li u: 4 bit.
Bus ñ"a ch#: 12 bit.
Cơng ngh ch t(o: PMOS.
T/c đ0 th1c hi n l nh: 10 – 60 5s/l nh v7i fCLOCK = 0,1 – 0,8 MHz.
M0t s/ b0 vi x lý ñ c trưng cho th h này: 4040 (Intel), PPSD4 (Rockwell International), …
2. Th! h" 2 (1974 $ 1977):
ð
•
•
•
•
c đi m chung c a các vi x lý th h này:
Bus d li u: 8 bit.
Bus đ"a ch#: 16 bit.
Cơng ngh ch t(o: NMOS ho c CMOS.
T/c ñ0 th1c hi n l nh: 1 – 8 5s/l nh v7i fCLOCK = 1 – 5 MHz.
M0t s/ b0 vi x lý ñ c trưng cho th h này: 6502 (Mos Technology), 6800/6809 (Motorola),
8080/8085 (Intel), Z80 (Zilog), …
3. Th! h" 3 (1978 $ 1982):
ð
•
•
•
•
c ñi m chung c a các vi x lý th h này:
Bus d li u: 16 bit.
Bus ñ"a ch#: 20 D 24 bit.
Cơng ngh ch t(o: HMOS.
T/c đ0 th1c hi n l nh: 0,1 – 1 5s/l nh v7i fCLOCK = 5 – 10 MHz.
M0t s/ b0 vi x lý ñ c trưng cho th h này: 68000 / 68010 (Motorola), 8086 / 80186 / 80286
(Intel), …
4. Th! h" 4 (1983 $ nay):
ð
•
•
•
•
c đi m chung c a các vi x lý th h này:
Bus d li u: 32 D 64 bit.
Bus đ"a ch#: 32 bit.
Cơng ngh ch t(o: HCMOS.
T/c ñ0 th1c hi n l nh: 0,01 – 0,1 5s v7i fCLOCK = 20 – 100 MHz.
M0t s/ b0 vi x lý ñ c trưng cho th h này: 68020 / 68030 / 68040 / 68060 (Motorola), 80386 /
80486 / Pentium (Intel), …
II. SƠ ð) KH+I C A M T H VI X
LÝ:
ð"nh nghĩa h vi x lý:
• KhN năng ñưPc lQp trình ñ thao tác trên các d li u mà không cVn s1 can thi p c a con
ngưWi.
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Cơng nghi p Tp.HCM.
• KhN năng lưu tr và phXc hYi d li u.
TZng quát, h vi x lý gYm:
• PhVn c\ng (Hardware): các thi t b" ngo(i vi → ñ giao ti p v7i con ngưWi.
• PhVn m]m (Software): chương trình → đ x lý d li u.
CPU (Central Processing Unit): ñơn v" x lý trung tâm.
RAM (Random Access Memory): b0 nh7 truy xuct ngdu nhiên.
ROM (Read Only Memory): b0 nh7 ch# ñec.
Interface Circuitry: m(ch ñi n giao ti p.
Peripheral Devices (Input): các thi t b" ngo(i vi (thi"t b$ nh%p).
Peripheral Devices (Output): các thi t b" ngo(i vi (thi"t b$ xu't).
Address bus: bus ñ"a ch#.
Data bus: bus d li u.
Control bus: bus ñi]u khi n.
III. ðƠN V- X
LÝ TRUNG TÂM:
CPU đóng vai trị ch ñ(o trong h vi x lý, nó quNn lý tct cN các ho(t ñ0ng c a h và th1c hi n
tct cN các thao tác trên d li u.
CPU là m0t vi m(ch đi n t có đ0 tích hPp cao. Khi ho(t ñ0ng, CPU ñ,c mã l nh ñưPc ghi dư7i
d(ng các bit 0 và bit 1 tj b0 nh7, sau đó nó sk th1c hi n gi/i mã các l nh này thành dãy các xung ñi]u
khi n tương \ng v7i các thao tác trong l nh ñ ñi]u khi n các kh/i khác th0c hi n tjng bư7c các thao
tác đó và tj đó t(o ra các xung đi]u khi n cho tồn h .
!
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM.
IR (Instruction Register): thanh ghi l nh.
PC (Program Counter / Instruction Pointer): b0 ñ m chương trình / con trm l nh.
Instruction decode and control unit: ñơn v" giNi mã l nh và ñi]u khi n.
ALU (Arithmetic and Logic Unit): ñơn v" s/ hec và logic.
Registers: các thanh ghi.
Tóm l(i, khi ho(t đ0ng CPU sk th1c hi n liên tXc 2 thao tác: tìm n=p l nh và gi/i mã – th0c
hi n l nh.
• Thao tác tìm n=p l nh:
N0i dung c a thanh ghi PC ñưPc CPU ñưa lên bus ñ"a ch# (1).
Tín hi u đi]u khi n đec (Read) chuy n sang tr(ng thái tích c1c (2).
Mã l nh (Opcode) tj b0 nh7 ñưPc ñưa lên bus d li u (3).
Mã l nh ñưPc chuy n vào trong thanh ghi IR trong CPU (4).
N0i dung c a thanh ghi PC tăng lên m0t đơn v" đ chunn b" tìm n(p l nh k ti p tj b0 nh7.
• Thao tác gi/i mã – th0c hi n l nh:
Mã l nh tj thanh ghi IR ñưPc ñưa vào ñơn v" giNi mã l nh và ñi]u khi n.
ðơn v" giNi mã l nh và ñi]u khi n sk th1c hi n giNi mã opcode và t(o ra các tín hi u ñ
ñi]u khi n vi c xuct nhQp d li u gi a ALU và các thanh ghi (Registers).
Căn c\ trên các tín hi u đi]u khi n này, ALU th1c hi n các thao tác ñã ñưPc xác ñ"nh.
M0t chuoi các l nh (Opcode) k t hPp l(i v7i nhau đ th1c hi n m0t cơng vi c có ý nghĩa đưPc
gei là chương trình (Program) hay phVn m]m (Software).
IV. B
NH
BÁN D=N:
B0 nh7 bán ddn là m0t b0 phQn khác rct quan treng c a h vi x lý, các chương trình và d li u
đ]u đưPc lưu gi trong b0 nh7.
B0 nh7 bán ddn trong h vi x lý gYm:
• ROM: b0 nh7 chương trình → lưu gi chương trình đi]u khi n ho(t đ0ng c a tồn h th/ng.
• RAM: b0 nh7 d li u → lưu gi d li u, m0t phVn chương trình đi]u khi n h th/ng, các
\ng dXng và k t quN tính tốn.
"
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM.
Sơ lưPc v] ccu trúc và phân lo(i ROM – RAM:
• ROM (Read Only Memory): b0 nh7 ch# đec, thơng tin trong ROM sk khơng b" mct đi ngay
cN khi nguYn đi n cung ccp cho ROM khơng cịn.
Ccu trúc ROM:
Phân lo(i m0t s/ lo(i ROM:
MROM (Mask ROM): ROM m t n(.
PROM (Programmable ROM): ROM lQp trình đưPc.
EPROM (Eraseable PROM): ROM lQp trình và xóa đưPc.
UVDEPROM (Ultra Violet EPROM): ROM xóa bsng tia c1c tím.
EEPROM (Electric EPROM): ROM lQp trình và xóa bsng tín hi u đi n.
Flash ROM: ROM lQp trình và xóa bsng tín hi u đi n.
• RAM (Random Access Memory): b0 nh7 truy xuct ngdu nhiên (b* nh+ ghi ñ-c), thông tin
trong RAM sk b" mct ñi khi nguYn đi n cung ccp cho RAM khơng cịn..
Ccu trúc RAM:
Phân lo(i m0t s/ lo(i RAM:
DRAM (Dynamic RAM): RAM ñ0ng
SRAM (Static RAM): RAM tĩnh
Cách xác ñ"nh dung lưPng b0 nh7 bán ddn 8 bit s dXng cho chip vi ñi]u khi n 8051 như sau:
• D1a vào s/ lưPng chân đ"a ch#:
Dung lư?ng = 2N , v7i N là s/ ñưWng ñ"a ch# c a b0 nh7.
Ví d0: B0 nh7 bán ddn 8 bit có 10 đưWng đ"a ch#. Cho bi t dung lưPng c a b0 nh7 là bao nhiêu?
N = 10 → Dung lưPng = 210 = 1024 = 1 KB
#
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Cơng nghi p Tp.HCM.
• D1a vào mã s/ c a b0 nh7:
Mã s/: XX YYYY
XX: lo(i b0 nh7
27: UVDEPROM
28: EEPROM
61,62: SRAM
40,41: DRAM
YYYY: dung lưPng b0 nh7
Dung lư?ng = YYYY (Kbit) ho c Dung lư?ng = YYYY / 8 (KB)
Ví d0: B0 nh7 có mã s/ 27256, dung lưPng c a b0 nh7 là bao nhiêu ?
27 → B0 nh7 UVFEPROM
256 → Dung lưPng = 256 (Kbit) = 32 (KB)
V. CÁC THIKT B- NGOLI VI (CÁC THIKT B- XUMT NHNP):
M(ch ñi n giao ti p (Interface Circuitry) và các thi t b" xuct nhQp hay thi t b" ngo(i vi
(Peripheral Devices) t(o ra khN năng giao ti p gi a h vi x lý v7i th gi7i bên ngoài. B0 phQn giao
ti p gi a bus h th/ng c a h vi x lý v7i các th gi7i bên ngồi thưWng đưPc gei là cZng (Port). Như
vQy tùy theo tjng lo(i thi t b" giao ti p mà ta có các cZng nhQp (Input) đ lcy thơng tin tj ngồi vào h
và các cZng xuct (Output) đ đưa thơng tin tj trong h ra ngồi.
TZng qt, ta có 3 lo(i thi t b" xuct nhQp sau:
• Thi t b" lưu tr l7n: băng tj, ñĩa tj, ñĩa quang, …
• Thi t b" giao ti p v7i con ngưWi: màn hình, bàn phím, máy in, …
• Thi t b" ñi]u khi n / ki m tra: các b0 kích thích, các b0 cNm bi n, …
VI. H TH+NG BUS:
Bus là tQp hPp các đưWng dây mang thơng tin có cùng ch\c năng. Vi c truy xuct thơng tin t7i
m0t m(ch đi n xung quanh CPU thì nó s dXng 3 lo(i bus: bus ñ"a ch#, bus d li u và bus ñi]u khi n.
CPU s dXng h th/ng bus này ñ th1c hi n các thao tác ñec (READ) và ghi (WRITE) thông tin gi a
CPU v7i b0 nh7 ho c các thi t b" ngo(i vi.
• Bus ñ"a ch# (Address bus):
ð chuy n tNi thông tin c a các bit ñ"a ch#.
Là lo(i bus 1 chi]u (CPU → MEM hay I/O).
ð xác ñ"nh b0 nh7 ho c thi t b" ngo(i vi mà CPU cVn trao ñZi thơng tin.
ð xác đ"nh dung lưPng b0 nh7 ho c ngo(i vi mà CPU có khN năng truy xuct.
• Bus d li u (Data bus):
ð chuy n tNi thông tin c a các bit d li u.
Là lo(i bus 2 chi]u (CPU ↔ MEM hay I/O).
ð xác ñ"nh s/ bit d li u mà CPU có khN năng x lý cùng m0t lúc.
• Bus đi]u khi n (Control bus):
ð chuy n tNi thơng tin c a các bit đi]u khi n (moi đưWng dây là m0t tín hi u đi]u khi n
khác nhau).
Là lo(i bus 1 chi]u (CPU → MEM5I/O ho6c MEM5I/O → CPU).
ð ñi]u khi n các kh/i khác trong h và nhQn tín hi u đi]u khi n tj các kh/i đó đ ph/i
hPp ho(t đ0ng.
$
Chương 1: Gi i thi u chung v b vi x lý.
VII. VI X
Trư ng ðH Công nghi p Tp.HCM.
LÝ – VI ðI U KHI N:
ð phân bi t b0 vi x lý và b0 vi ñi]u khi n ta có th d1a trên các y u t/ như sau:
Y!u tP phân loSi
Ccu trúc phVn c\ng
(Hardware
architecture)
Các \ngdXng
(Applications)
Các ñ c trưng c a
tQp l nh
(Instruction set
feature)
CPU
ROM
RAM
M(ch giao ti p n/i
ti p
M(ch giao ti p song
song
M(ch ñi]u khi n ngyt
Các m(ch ñi]u khi n
khác
zng dXng l7n, tính
tốn ph\c t(p
zng dXng nhm, tính
tốn ñơn giNn
Các ki u ñ"nh ñ"a ch#
ð0 dài tj d li u x
lý
Vi xU lý
(Microprocessor)
X
Vi điXu khiZn
(Microcontroller)
X
X
X
X
X
X
X
X
X
Nhi]u
Ít
Byte, Word, Double word,
…
Bit, Byte
VIII. MINH H[A KIKN TRÚC C A M T H VI ðI U KHI N:
WDT (Watch5Dog Timer): B0 ñ"nh thWi WatchDDog.
OSC., OSC/N (Oscillator): B0 dao ñ0ng (N: h s/ chia tVn).
Timer: B0 đ"nh thWi.
A/D (Analog/Digital): B0 bi n đZi tín hi u tương t1/s/.
SFR Registers (Special Function Register): Các thanh ghi ch\c năng ñ c bi t.
RAM Memory: B0 nh7 d li u.
%
Chương 1: Gi i thi u chung v b vi x lý.
Trư ng ðH Công nghi p Tp.HCM.
Program Memory: B0 nh7 chương trình.
EEPROM: B0 nh7 EEPROM.
I/O Ports: Các port xuct/nhQp.
Instruction Decoder: B0 giNi mã l nh.
ALU: ðơn v" logic và s/ hec.
Accumulator: Thanh ghi tích lũy.
Control Logic: ði]u khi n logic.
Program Counter: B0 đ m chương trình.
Instructions/Addresses: Các l nh / ñ"a ch#.
IX. L A CH[N B VI ðI U KHI N KHI THIKT KK:
Có b/n he vi đi]u khi n thông dXng trên th" trưWng hi n nay là: 68xxx c a Motorola, 80xxx c a
Intel, Z8xx c a Zilog và PIC16xxx c a Microchip Technology. Moi lo(i vi ñi]u khi n trên ñ]u có m0t
tQp l nh và thanh ghi riêng nên chúng khơng tương thích ldn nhau. VQy khi ta ti n hành thi t k m0t h
th/ng s dXng vi đi]u khi n thì ta cVn d1a trên nh ng tiêu chunn nào? Có ba tiêu chnn chính:
• Tiêu chu@n thA nhBt là: ðáp \ng u cVu tính tốn m0t cách hi u quN và kinh t . Do vQy,
trư7c tiên ta cVn phNi xem xét b0 vi ñi]u khi n 8 bit, 16 bit hay 32 bit là thích hPp nhct. M0t s/ tham s/
k€ thuQt cVn ñưPc cân nhyc khi chen l1a là:
TDc ñ : t/c ñ0 l7n nhct mà vi ñi]u khi n ho trP là bao nhiêu.
KiFu IC: là ki u 40 chân DIP, QFP hay là ki u đóng vm khác (DIP: v8 d9ng hai hàng
chân, QFP: v8 vuông d?t). Ki u đóng vm rct quan treng khi có u cVu v] không gian, ki u lyp ráp và
t(o mdu th cho sNn phnm cu/i cùng.
Công suBt tiêu thG: là m0t tiêu chunn cVn ñ c bi t lưu ý n u sNn phnm dùng pin ho c
ñi n áp lư7i.
Dung lưPng b0 nh7 ROM và RAM tích hPp s‚n trên chip.
S/ chân vào/ra và b0 ñ"nh thWi trên chip.
KhN năng dƒ dàng nâng cao hi u suct ho c giãm cơng suct tiêu thX.
Giá thành trên m0t đơn v" khi mua s/ lưPng l7n. Vì đây là vcn đ] có Nnh hư…ng ñ n giá
thành cu/i cùng c a sNn phnm.
• Tiêu chu@n thA hai là: Có s‚n các cơng cX phát tri n phVn m]m, ch†ng h(n như các chương
trình mơ phmng, trình biên d"ch, trình hPp d"ch và g‡ r/i.
• Tiêu chu@n thA ba là: KhN năng đáp \ng v] s/ lưPng … hi n t(i cũng như … tương lai. ð/i
v7i m0t s/ nhà thi t k thì tiêu chunn này thQm chí cịn quan treng hơn cN hai tiêu chunn trên.
&
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
CHƯƠNG 2
PH N C NG CHIP VI ðI U KHI N 8051
I. T NG QUÁT:
1. Gi i thi!u chung:
MCS 51 là h vi ñi u khi n c a hãng Intel. Vi m ch t ng quát c a h MCS 51 là chip 8051.
Chip 8051 có m't s) đ*c trưng cơ b/n sau:
B' nh2 chương trình bên trong: 4 KB (ROM).
B' nh2 d; li
B' nh2 chương trình bên ngoài: 64 KB (ROM).
B' nh2 d; li
4 port xuAt nhBp (I/O port) 8 bit.
2 b' ñCnh thDi 16 bit.
M ch giao tiEp n)i tiEp.
B' xF lý bit (thao tác trên các bit riêng l ).
210 vC trí nh2 đưIc đCnh đCa chJ, mLi vC trí 1 bit.
Nhân / Chia trong 4 Ps.
Ngồi ra, trong h MCS 51 cịn có m't s) chip vi đi u khi n khác có cAu trúc tương đương như:
Chip
8031
8032
8051
8052
8751
8752
8951
8952
ROM trong
0 KB
0 KB
4 KB PROM
8 KB PROM
4 KB UV EPROM
8 KB UV EPROM
4 KB FLASH ROM
8 KB FLASH ROM
RAM trong
128 byte
256 byte
128 byte
256 byte
128 byte
256 byte
128 byte
256 byte
B. ñ0nh th1i
2
3
2
3
2
3
2
3
2. Các phiên b5n c6a chip vi ñi9u khi;n 8051:
2.1
B. vi ñi9u khi;n 8031:
8031 là m't phiên b/n khác c a h 8051. Chip này thưDng đưIc coi là 8051 khơng có ROM trên
chip. ð có th dùng đưIc chip này cbn ph/i b sung thêm ROM ngồi chca chương trình cbn thiEt cho
8031. 8051 có chương trình đưIc chca d ROM trên chip bC gi2i h n đEn 4KB, cịn ROM ngồi c a
8031 thì có th lên đEn 64KB. Tuy nhiên, đ có th truy cBp hEt b' nh2 ROM ngồi thì cbn dùng thêm
hai c ng (Port 0 và Port 2) , do vBy chJ còn l i có hai c ng (Port 1 và Port 3) đ sF dfng. Nhgm khhc
phfc vAn đ này, chúng ta có th b sung thêm c ng vào/ra cho 8031.
2.2
B. vi ñi9u khi;n 8052:
8052 là m't phiên b/n c a h 8051. 8052 có tAt c/ các thơng s) ki thuBt c a 8051, ngồi ra cịn
có thêm 128 byte RAM, 4KB ROM và m't b' ñCnh thDi n;a. Như vBy, 8052 có t ng c'ng 256 byte
RAM, 8KB ROM và ba b' đCnh thDi.
Giáo trình Vi x* lý.
8
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
ð=c tính k? thu@t
Trư ng ðH Cơng nghi!p Tp.HCM.
8031
8051
8052
ROM trên chip (KB)
0
4
8
RAM trên chip (byte)
128
128
256
B$ ñ&nh th'i
2
2
3
Chân vào/ra
32
32
32
C*ng n+i ti,p
1
1
1
Ngu/n ng0t
5
5
6
Như b/ng thông s) trên ta thAy 8051 là m't trưDng hIp riêng c a 8052. M i chương trình viEt
cho 8051 đ u có th ch y ñưIc trên 8052 nhưng ñi u ngưIc l i có th là khơng đúng.
2.3
B. vi đi9u khi;n 8751:
Chip 8751 chJ có 4KB b' nh2 UV EPROM trên chip. ð sF dfng chip này cbn ph/i có thiEt bC
lBp trình PROM và thiEt bC xoá UV EPROM. Do ROM trên chip c a 8751 là UV EPROM, nên cbn
ph/i mAt kho/ng 20 phút đ xố 8751 trư2c khi đưIc lBp trình. Vì đây là q trình mAt nhi u thDi gian
nên nhi u nhà s/n xuAt ñã cho ra phiên b/n Flash ROM và UV RAM.
2.4
B. vi ñi9u khi;n AT8951 c6a Atmel Corporation:
AT8951 là phiên b/n 8051 có ROM trên chip là b' nh2 Flash. Phiên b/n này rAt thích hIp cho
các cng dfng nhanh vì b' nh2 Flash có th ñưIc xóa trong vài giây. Dĩ nhiên là ñ dùng AT8951 cbn
ph/i có thiEt bC lBp trình PROM hL trI b' nh2 Flash nhưng khơng cbn đEn thiEt bC xóa ROM vì b' nh2
Flash đưIc xóa bgng thiEt bC lBp trình PROM. ð ti
m't phiên b/n c a AT8951 có th ñưIc lBp trình qua c ng COM c a máy tính PC và như vBy sl khơng
cbn đEn thiEt bC lBp trình PROM.
Ký hi!u
ROM
RAM
I/O
Timer
NgIt
Vcc
SK chân IC
AT89C51
4KB
128
32
2
5
5V
40
AT89LV51
4KB
128
32
2
5
3V
40
AT89C1051
1KB
64
15
1
3
3V
20
AT89C2051
2KB
128
15
2
5
3V
20
AT89C52
8KB
256
32
3
6
5V
40
AT89LV52
8KB
256
32
3
6
3V
40
2.5
B. vi đi9u khi;n DS5000 c6a Dallas Semiconductor:
M't phiên b/n ph biEn khác n;a c a 8051 là DS5000 c a hãng Dallas Semiconductor. B' nh2
ROM trên chip c a DS5000 là NV RAM. DS5000 có kh/ năng n p chương trình vào ROM trên chip
trong khi nó vnn d trong h< th)ng mà khơng cbn ph/i lAy ra. Cách thoc hi
Giáo trình Vi x* lý.
9
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
c a máy tính PC. ðây là m't đi m m nh rAt đưIc ưa chu'ng. Ngồi ra, NV RAM cịn có ưu vi
phép thay ñ i n'i dung RAM theo tqng byte mà khơng cbn ph/i xóa hEt trư2c khi lBp trình như b' nh2
EPROM.
Ký hi!u
ROM
RAM
I/O
Timer
NgIt
Vcc
SK chân IC
DS500098
8KB
128
32
2
6
5V
40
DS5000932
32KB
128
32
2
6
5V
40
DS5000T98
8KB
128
32
2
6
5V
40
DS5000T932
32KB
128
32
2
6
5V
40
ði m đ*c bi
thêm m't ñtng ht thDi gian thoc (RTC: Real Time Clock) bên trong. Lưu ý đtng ht thDi gian thoc RTC
hồn tồn khác v2i b' đCnh thDi Timer. RTC t o và lưu gi; thDi gian c a ngày (gi'/phút/giây) và ngày
tháng (ngày/tháng/năm) trên thoc tE ngay c/ khi khơng có ngutn cung cAp.
2.6
B. vi ñi9u khi;n P89V51xx c6a Philips Corporation:
ðây là m't phiên b/n c/i tiEn sF dfng CPU là b' vi ñi u khi n 80C51 v2i nhi u tính năng vưIt
tr'i: dung lưIng ROM/RAM trên chip rAt l2n, 3 Timer 16 bit + 1 Watch dog Timer, 2 thanh ghi DPTR,
8 ngutn nght, PWM (Pulse Width Modulator), SPI (Serial Peripheral Interface) và đ*c bi
chương trình trên chip có tính năng ISP (In9System Programming) và IAP (In9Application
Programming),…
II. CÁC CHÂN CSA CHIP 8051:
1. Sơ ñU khKi và chWc năng các khKi c6a chip 8051:
Giáo trình Vi x* lý.
10
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
CPU (Central Processing Unit): ðơn vC xF lý trung tâm → tính tốn và đi u khi n q
trình ho t đ'ng c a h< th)ng.
OSC (Oscillator): M ch dao ñ'ng → t o tín hi
chip ho t ñ'ng.
Interrupt control: ði u khi n nght → nhBn tín hi
b' ñCnh thDi (Timer 0, Timer 1) và tq c ng n)i tiEp (Serial port), lbn lưIt đưa các tín hi
CPU ñ xF lý.
Other registers: Các thanh ghi khác → lưu tr; d; li
làm vi
RAM (Random Access Memory): B' nh2 d; li
ROM (Read Only Memory): B' nh2 chương trình trong chip → lưu tr; chương trình
ho t đ'ng c a chip.
I/O ports (In/Out ports): Các port xuAt/nhBp → ñi u khi n vi
d ng song song gi;a trong và ngồi chip thơng qua các port P0, P1, P2, P3.
Serial port: Port n)i tiEp → ñi u khi n vi
trong và ngồi chip thơng qua các chân TxD, RxD.
Timer 0, Timer 1: B' ñCnh thDi 0, 1 → dùng ñ ñCnh thDi gian ho*c ñEm so ki
xung) thông qua các chân T0, T1.
Bus control: ði u khi n bus → ñi u khi n ho t ñ'ng c a h< th)ng bus và vi
thông tin trên h< th)ng bus.
Bus system: H< th)ng bus → liên kEt các kh)i trong chip l i v2i nhau.
2. Sơ ñU chân và chWc năng các chân c6a chip 8051:
Giáo trình Vi x* lý.
11
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
2.1.
Port 0:
Port 0 (P0.0 – P0.7) có s) chân tq 32 – 39.
Port 0 có hai chcc năng:
• Port xuAt nhBp d; li
• Bus ñCa chJ byte thAp và bus d; li
ngồi.
Lưu ý: Khi Port 0 đóng vai trị là port xuDt nhEp dF li!u thì phGi s* dHng các đi!n trI kéo lên
bên ngồi.
y chE đ' m*c đCnh (khi reset) thì các chân Port 0 (P0.0 9 P0.7) đưIc cAu hình là port xuDt
d; li
cao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; li
bày O phPn k, ti,p).
Khi lBp trình cho ROM trong chip thì Port 0 đóng vai trị là ngõ vào c a d; li
(xem sách “HS vi ñiKu khiTn 8051” trang 3339352).
2.2.
Port 1:
Port 1 (P1.0 – P1.7) có s) chân tq 1 – 8.
Port 1 có m't chcc năng:
• Port xuAt nhBp d; li
ngồi.
y chE đ' m*c đCnh (khi reset) thì các chân Port 1 (P1.0 – P1.7) đưIc cAu hình là port xuDt
d; li
cao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; li
bày O phPn k, ti,p).
Khi lBp trình cho ROM trong chip thì Port 1 đóng vai trị là ngõ vào c a đCa chJ byte thAp
(A0 – A7) (xem sách “HS vi ñiKu khiTn 8051” trang 3339352).
2.3.
Port 2:
Port 2 (P2.0 – P2.7) có s) chân tq 21 – 28.
Port 2 có hai chcc năng:
• Port xuAt nhBp d; li
• Bus đCa chJ byte cao (A8 – A15) → có sF dfng b' nh2 ngồi.
y chE đ' m*c đCnh (khi reset) thì các chân Port 2 (P2.0 – P2.7) đưIc cAu hình là port xuDt
d; li
cao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; li
bày O phPn k, ti,p).
Khi lBp trình cho ROM trong chip thì Port 2 đóng vai trị là ngõ vào c a đCa chJ byte cao (A8
– A11) và các tín hi
2.4.
Port 3:
Port 3 (P3.0 – P3.7) có s) chân tq 10 – 17.
Port 3 có hai chcc năng:
• Port xuAt nhBp d; li
chcc năng đ*c bi
• Các tín hi
y chE ñ' m*c ñCnh (khi reset) thì các chân Port 3 (P3.0 – P3.7) ñưIc cAu hình là port xuDt
d; li
cao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; li
bày O phPn k, ti,p).
Giáo trình Vi x* lý.
12
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Cơng nghi!p Tp.HCM.
Khi lBp trình cho ROM trong chip thì Port 3 đóng vai trị là ngõ vào c a các tín hi
khi n (xem sách “HS vi ñiKu khiTn 8051” trang 3339352).
Chcc năng c a các chân Port 3:
Bit
Tên
ðCa chJ bit
Chcc năng
P3.0
RxD
B0H
Chân nhBn d; li
P3.1
TxD
B1H
Chân phát d; li
P3.2
INT0\
B2H
Ngõ vào nght ngoài 0.
P3.3
INT1\
B3H
Ngõ vào nght ngồi 1.
P3.4
T0
B4H
Ngõ vào c a b' đCnh thDi/đEm 0.
P3.5
T1
B5H
Ngõ vào c a b' ñCnh thDi/ñEm 1.
P3.6
WR\
B6H
ði u khi n ghi vào RAM ngồi.
P3.7
RD\
B7H
ði u khi n đ c tq RAM ngoài.
2.5.
Chân PSEN\:
PSEN (Program Store Enable): cho phép b' nh2 chương trình, chân s) 29.
Chcc năng:
• Là tín hi
• Là tín hi
PSEN\ = 0 → trong thDi gian CPU tìm n p l
PSEN\ = 1 → CPU sF dfng ROM trong (khơng sW dXng ROM ngồi).
Khi sF dfng b' nh2 chương trình bên ngồi, chân PSEN\ thưDng đưIc n)i v2i chân OE\ c a
ROM ngồi đ cho phép CPU đ c mã l
2.6.
Chân ALE:
ALE (Address Latch Enable): cho phép ch)t đCa chJ, chân s) 30.
Chcc năng:
• Là tín hi
byte thAp và bus d; li
• Là tín hi
ALE = 0 → trong thDi gian bus AD0 AD7 đóng vai trị là bus D0 D7.
ALE = 1 → trong thDi gian bus AD0 AD7 đóng vai trị là bus A0 A7.
Khi lBp trình cho ROM trong chip thì chân ALE đóng vai trị là ngõ vào c a xung lBp trình
(PGM\) (xem sách “HS vi ñiKu khiTn 8051” trang 3339352).
Lưu ý: f = f OSC → có th dùng làm xung clock cho các m ch khác.
ALE
6
fALE (MHz): tbn s) xung t i chân ALE.
fOSC (MHz): tbn s) dao ñ'ng trên chip (tbn s) th ch anh).
Khi l
(xem gi\n ñ/ trang 38939 sách “HS vi ñiKu khiTn 8051”).
2.7.
Chân EA\:
EA (External Access): truy xuAt ngoài, chân s) 31.
Chcc năng:
• Là tín hi
Giáo trình Vi x* lý.
13
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Cơng nghi!p Tp.HCM.
• Là tín hi
EA\ = 0 → Chip 8051 sF dfng chương trình c a ROM ngồi.
EA\ = 1 → Chip 8051 sF dfng chương trình c a ROM trong.
Khi lBp trình cho ROM trong chip thì chân EA đóng vai trị là ngõ vào c a đi
(Vpp = 12V – 12,5V cho hS 89xx; 21V cho hS 80xx, 87xx) (xem sách “HS vi ñiKu khiTn 8051” trang
3339352).
Lưu ý: Chân EA\ ph/i ñưIc n)i lên Vcc (n,u sW dXng chương trình c`a ROM trong) ho*c n)i
xu)ng GND (n,u sW dXng chương trình c`a ROM ngồi), khơng bao giD đưIc phép b~ tr)ng chân này.
2.8.
Chân XTAL1, XTAL2:
XTAL (Crystal): tinh th th ch anh, chân s) 18 19.
Chcc năng:
• Dùng đ n)i v2i th ch anh ho*c m ch dao đ'ng t o xung clock bên ngồi, cung
cAp tín hi
• XTAL1 → ngõ vào m ch t o xung clock trong chip.
• XTAL2 → ngõ ra m ch t o xung clock trong chip.
Lưu ý:
fTYP (MHz): tbn s) danh ñCnh.
fTYP = 12MHz
2.9.
Chân RST:
RST (Reset): thiEt lBp l i, chân s) 9.
Chcc năng:
• Là tín hi
• Là tín hi
RST = 0 → Chip 8051 ho t đ'ng bình thưDng.
RST = 1 → Chip 8051 ñưIc thiEt l*p l i tr ng thái ban đbu.
12
Lưu ý:
tRe set ≥ 2 × TMachine
TMachine =
f OSC
tRESET (Ps): thDi gian reset.
fOSC (MHz): tbn s) th ch anh.
TMACHINE (Ps): chu kỳ máy.
Giáo trình Vi x* lý.
14
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Cơng nghi!p Tp.HCM.
Ví dX: Xác ñCnh chu kỳ máy và thDi gian reset tương cng cho tqng trưDng hIp fOSC = 11,0592MHz,
fOSC = 12MHz và fOSC = 16MHz.
Gi\i
• fOSC = 11,0592MHz → TMACHINE = 1,085Ps và tRESET ≥ 2,17Ps.
• fOSC = 12MHz → TMACHINE = 1Ps và tRESET ≥ 2Ps.
• fOSC = 16MHz → TMACHINE = 0,75Ps và tRESET ≥ 1,5Ps
2.10. Chân Vcc, GND:
Vcc, GND: ngutn cAp đi
Chcc năng:
• Cung cAp ngutn đi
• Vcc = +5V ± 10% và GND = 0V.
III. CcU TRÚC CÁC PORT XUcT NHeP CHIP 8051:
Kh/ năng fanout (s) lưIng t/i ñbu ra) c a các tqng chân port chip 8051 là:
• Port 0: 8 t/i TTL.
• Port 1: 4 t/i TTL.
• Port 2: 4 t/i TTL.
• Port 3: 4 t/i TTL.
Lưu ý:
• Khi Port 0 đóng vai trị là port xuDt nhEp thì sl khơng có đi
đó ngư i s* dHng c n thêm vào đi!n trI kéo lên bên ngồi (xem Hình III.1).
• y chE đ' m*c đCnh (khi reset) thì tAt c/ các chân c a các port (P0 – P3) đưIc cAu hình là
port xuDt d; li
• Mu)n các chân port c a chip 8015 làm port nhEp d; li
bgng cách ghi mcc logic cao (mcc 1) ñEn tAt c/ các bit (các chân) c a port trư2c khi bht ñbu nhBp d;
li
Giáo trình Vi x* lý.
15
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Cơng nghi!p Tp.HCM.
• Các chân trong cùng m't port khơng nhAt thiEt ph/i có cùng ki u cAu hình (port xuJt hoac
port nhcp). Nghĩa là trong cùng m't port có th có chân dùng đ nhBp d; li
xuAt d; li
Q trình ghi chân port (xuJt dd lieu ra chân port).
Q trình đ c chân port (nhcp dd lieu tf chân port).
Quá trình ñ c b' ch)t (kiTm tra dd lieu tgi chân port).
Giáo trình Vi x* lý.
16
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
Lưu ý: Vi
vào l
không mong mu)n này là do quá trình đ c d; li
trình đSc chân port và q trình đSc b$ ch+t.
Q trình đOc chân port: Khi ta sF dfng các l
ñưIc sau khi thoc hi
Q trình đOc bW chXt: Khi ta sF dfng các l
DEC, DJNZ, JBC, CLR bit, SETB bit, MOV bit. D; li
dF li!u hi!n t0i I các bW chXt (là các dd lieu ñã ñưMc ghi ra port tgi th'i điTm trưjc đó bOi q trình
ghi chân port), chc không ph/i là d; li
q trình đ c mà d; li
đưIc cBp nhBt.
IV. T
CH C Bf NHg CSA CHIP 8051:
B' vi xF lý → có khơng gian b' nh2 chung cho d; li
→ chương trình và d; li
B' vi đi u khi n → có khơng gian b' nh2 riêng cho d; li
→ chương trình và d; li
T chcc b' nh2 c a chip 8051:
Giáo trình Vi x* lý.
17
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
1. B. nh trong:
Giáo trình Vi x* lý.
18
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
1.1. B. nh chương trình (ROM):
Dùng đ lưu tr; chương trình đi u khi n cho chip 8051 ho t đ'ng.
Chip 8051 có 4 KB ROM trong, ñCa chJ truy xuAt: 000H – FFFH.
1.2. B. nh dl li!u (RAM):
Dùng ñ lưu tr; các d; li
Chip 8051 có 128 byte RAM trong, ñCa chJ truy xuAt: 00H – 7FH.
RAM trong c a chip 8051 đưIc chia ra:
• RAM đa chcc năng:
• RAM ñCnh ñCa chJ bit:
→ cho phép xF lý tqng bit d; li
Lưu ý: NEu trong chương trình khơng sF dfng các bit trong vùng RAM đCnh ñCa chJ bit này, ta
có th sF dfng vùng nh2 20H – 2FH cho các mfc đích khác c a ta. NgưIc l i, ta ph/i viEt chương trình
c‡n thBn khi sF dfng vùng nh2 20H – 2FH vì nEu sơ suAt ta có th ghi d; li
dfng.
Ví dX: ViEt l
trư'ng hMp đ&a chm byte và đ&a chm bit).
Giáo trình Vi x* lý.
19
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Cơng nghi!p Tp.HCM.
• Các dãy thanh ghi:
→ cho phép truy xuAt d; li
B/ng s) li
R0 – R7 đưIc gán cho tqng ơ nh2 trong dãy tích coc.
Lưu ý:
y chE đ' m*c đCnh thì dãy thanh ghi tích coc (đang đưIc sF dfng) là dãy 0 và các thanh
ghi trong dãy lbn lưIt có tên là R0 o R7. Có th thay đ i dãy tích coc bgng cách thay đ i các bit ch n
dãy thanh ghi RS1 và RS0 trong thanh ghi PSW (xem phPn thanh ghi PSW).
NEu chương trình c a ta chJ sF dfng dãy thanh ghi ñbu tiên (dãy 0) thì ta có th sF dfng
vùng nh2 08H – 1FH cho các mfc đích khác c a ta. Nhưng nEu trong chương trình có sF dfng các dãy
thanh ghi (dãy 1, 2 hoac 3) thì ph/i rAt c‡n thBn khi sF dfng vùng nh2 tq 1FH trd xu)ng vì nEu sơ suAt
ta có th ghi d; li
Ví dX 1: Quan h< gi;a ký hi
ghi tích coc?
NEu dãy 0 tích coc: Thanh ghi R4
Ơ nh2 04H RAM n'i.
NEu dãy 1 tích coc: Thanh ghi R4
Ơ nh2 0CH RAM n'i.
NEu dãy 2 tích coc: Thanh ghi R4
Ơ nh2 14H RAM n'i.
NEu dãy 3 tích coc: Thanh ghi R4
Ơ nh2 1CH RAM n'i.
Ví dX 2: Khi chip 8051 thoc hi
ơ nh2 có đCa chJ là bao nhiêu thu'c RAM n'i. Xét tương cng cho tqng trưDng hIp dãy thanh ghi tích
coc là Dãy 0 và Dãy 3?
Giáo trình Vi x* lý.
20
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Công nghi!p Tp.HCM.
1.3. Thanh ghi chWc năng đ=c bi!t (SFR):
Lưu ý:
Khơng đưIc phép đ c hay ghi d; li
(nghĩa là các đ&a chm SFR chưa đưMc đat tên). Vì vi
phát sinh nh;ng ho t đ'ng khơng mong mu)n và đó có th là nguyên nhân làm cho chương trình c a ta
khơng tương thích v2i các phiên b/n sau c a chip MCS 51 (có thT O các phiên b\n đó các ñ&a chm SFR
này ñưMc sW dXng cho m$t vài mXc đích khác).
Chq đưrc truy xust các SFR bung ki;u ñ0nh ñ0a chq trvc tiwp (tuy!t ñXi không s*
dHng ki u ñ^nh ñ^a ch_ gián ti`p trong trư ng hap này).
Ví dX: Cho biEt trư2c (R0)=90H. ViEt l
gi\i thích lenh trong “Chương 3: TEp l!nh cba 8051.”):
SF dfng ki u ñCnh ñCa chJ troc tiEp:
MOV P1, #5AH
ho*c
MOV 90H, #5AH
SF dfng ki u ñCnh ñCa chJ gián tiEp:
MOV @R0, #5AH
SAI
ði u này khơng hIp l< đ)i v2i chip 8051 vì phương pháp đCnh đCa chJ gián tiEp như trên
chJ sF dfng cho vùng nh2 RAM n'i. Trong khi đó RAM n'i c a chip 8051 chJ có 128 byte (00H –
7FH), cho nên khi thoc hi
b\n chip 8052 thì sr tránh đưMc ñiKu này).
1.3.1. Thanh ghi A:
!
"# " $
'( ) * +
%
# &
, -"% #
#&
#
1.3.2. Thanh ghi B:
Phép nhân 2 s) 8 bit khơng dAu → kEt qu/ là s) 16 bit.
• Byte cao → chca vào thanh ghi B.
• Byte thAp → chca vào thanh ghi A.
Phép chia 2 s) 8 bit → thương s) và s) dư là s) 8 bit.
Giáo trình Vi x* lý.
21
Biên so0n: Ph0m Quang Trí
Chương 2: Ph n c ng chip vi ñi u khi n 8051.
Trư ng ðH Cơng nghi!p Tp.HCM.
• Thương s) → chca vào thanh ghi A.
• S) dư → chca vào thanh ghi B.
Ví dX: Thoc hi
Ví dX: Thoc hi
Ví dX: Thoc hi
1.3.3. Thanh ghi ty PSW:
CD CY (Carry Flag): cD nh2 → báo có nh2/mưIn t i bit 7.
• CY = 0: nEu khơng có nh2 tq bit 7 ho*c khơng có mưIn cho bit 7.
• CY = 1: nEu có nh2 tq bit 7 ho*c có mưIn cho bit 7.
CD AC (Auxiliary Carry): cD nh2 phf → báo có nh2/mưIn t i bit 3.
• AC = 0: nEu khơng có nh2 tq bit 3 ho*c khơng có mưIn cho bit 3.
• AC = 1: nEu có nh2 tq bit 3 ho*c có mưIn cho bit 3.
CD F0 (Flag 0): cD zero → có nhi u mfc đích dành cho các cng dfng khác nhau c a
ngưDi lBp trình (ds trd cho các phiên b\n chip trong tương lai).
Giáo trình Vi x* lý.
22
Biên so0n: Ph0m Quang Trí