Tải bản đầy đủ (.pdf) (249 trang)

Giao trinh vi xy ly 8051 dhcn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.06 MB, 249 trang )

!""



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Ý:

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


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; liB' nh2 chương trình bên ngoài: 64 KB (ROM).
B' nh2 d; li4 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. ð tim'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 hiGiá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 viphé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 bithê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 bichươ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 hichip ho t ñ'ng.
Interrupt control: ði u khi n nght → nhBn tín hib' ñCnh thDi (Timer 0, Timer 1) và tq c ng n)i tiEp (Serial port), lbn lưIt đưa các tín hiCPU ñ xF lý.
Other registers: Các thanh ghi khác → lưu tr; d; lilàm viRAM (Random Access Memory): B' nh2 d; liROM (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 vitrong 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 kixung) 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à vithô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; lingồ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; licao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; libà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; lingồ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; licao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; libà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; licao (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 hi2.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; lichcc năng đ*c bi• Các tín hiy 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; licao (mIc 1) ñEn tAt c/ các bit c a port trư2c khi bht ñbu nhBp d; libà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 hikhi 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 hiPSEN\ = 0 → trong thDi gian CPU tìm n p lPSEN\ = 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ã l2.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 hibyte 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 hiRST = 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 điChcc 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; libgng 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; lixuAt 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 ý: Vivào lkhông mong mu)n này là do quá trình đ c d; litrì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 hiQ trình đOc bW chXt: Khi ta sF dfng các lDEC, DJNZ, JBC, CLR bit, SETB bit, MOV bit. D; lidF 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; liq 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; liB' vi đi u khi n → có khơng gian b' nh2 riêng cho d; li
→ chương trình và d; liT 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; liChip 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; lidfng.
Ví dX: ViEt ltrư'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) liR0 – 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; liVí dX 1: Quan h< gi;a ký highi 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ì viphá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 lgi\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 hib\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í


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×