Xem mẫu
- 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 nh chương trình bên trong: 4 KB (ROM).
- B nh d li u bên trong: 128 byte (RAM).
- B nh chương trình bên ngoài: 64 KB (ROM).
- B nh d li u bên ngoài: 64 KB (RAM).
- 4 port xu t nh p (I/O port) 8 bit.
- 2 b ñ nh th i 16 bit.
- M ch giao ti p n i ti p.
- B x lý bit (thao tác trên các bit riêng l ).
- 210 v trí nh ñư c ñ nh ñ a ch , m i v trí 1 bit.
- Nhân / Chia trong 4 s.
Ngoài ra, trong h MCS-51 còn có m t s chip vi ñi u khi n khác có c u trúc tương ñương như:
Chip ROM trong RAM trong B ñ nh th i
8031 0 KB 128 byte 2
8032 0 KB 256 byte 3
8051 4 KB PROM 128 byte 2
8052 8 KB PROM 256 byte 3
8751 4 KB UV-EPROM 128 byte 2
8752 8 KB UV-EPROM 256 byte 3
8951 4 KB FLASH ROM 128 byte 2
8952 8 KB FLASH ROM 256 byte 3
2. Các phiên b n c a chip vi ñi u khi n 8051:
2.1 B vi ñi u khi n 8031:
8031 là m t phiên b n khác c a h 8051. Chip này thư ng ñư c coi là 8051 không có ROM trên
chip. ð có th dùng ñư c chip này c n ph i b sung thêm ROM ngoài ch a chương trình c n thi t cho
8031. 8051 có chương trình ñư c ch a ROM trên chip b gi i h n ñ n 4KB, còn ROM ngoài c a
8031 thì có th lên ñ n 64KB. Tuy nhiên, ñ có th truy c p h t b nh ROM ngoài thì c n dùng thêm
hai c ng (Port 0 và Port 2) , do v y ch còn l i có hai c ng (Port 1 và Port 3) ñ s d ng. Nh m kh c
ph c v n ñ này, chúng ta có th b sung thêm c ng vào/ra cho 8031.
2.2 B vi ñi u khi n 8052:
8052 là m t phiên b n c a h 8051. 8052 có t t c các thông s k thu t c a 8051, ngoài ra còn
có thêm 128 byte RAM, 4KB ROM và m t b ñ nh th i n a. Như v y, 8052 có t ng c ng 256 byte
RAM, 8KB ROM và ba b ñ nh th i.
Giáo trình Vi x lý. 8 Biên so n: Ph m 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 tính k thu t 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 ng t 5 5 6
Như b ng thông s trên ta th y 8051 là m t trư ng h p riêng c a 8052. M i chương trình vi t
cho 8051 ñ u có th ch y ñư c trên 8052 nhưng ñi u ngư c l i có th là không ñúng.
2.3 B vi ñi u khi n 8751:
Chip 8751 ch có 4KB b nh UV-EPROM trên chip. ð s d ng chip này c n ph i có thi t b
l p trình PROM và thi t b xoá UV-EPROM. Do ROM trên chip c a 8751 là UV-EPROM, nên c n
ph i m t kho ng 20 phút ñ xoá 8751 trư c khi ñư c l p trình. Vì ñây là quá trình m t nhi u th i gian
nên nhi u nhà s n xu t ñã cho ra phiên b n Flash ROM và UV-RAM.
2.4 B vi ñi u khi n AT8951 c a Atmel Corporation:
AT8951 là phiên b n 8051 có ROM trên chip là b nh Flash. Phiên b n này r t thích h p cho
các ng d ng nhanh vì b nh Flash có th ñư c xóa trong vài giây. Dĩ nhiên là ñ dùng AT8951 c n
ph i có thi t b l p trình PROM h tr b nh Flash nhưng không c n ñ n thi t b xóa ROM vì b nh
Flash ñư c xóa b ng thi t b l p trình PROM. ð ti n s d ng, hi n nay hãng Atmel ñang nghiên c u
m t phiên b n c a AT8951 có th ñư c l p trình qua c ng COM c a máy tính PC và như v y s không
c n ñ n thi t b l p trình PROM.
Ký hi u ROM RAM I/O Timer Ng t Vcc S 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 ñi u khi n DS5000 c a Dallas Semiconductor:
M t phiên b n ph bi n khác n a c a 8051 là DS5000 c a hãng Dallas Semiconductor. B nh
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ó v n trong h th ng mà không c n ph i l y ra. Cách th c hi n là dùng qua c ng COM
Giáo trình Vi x lý. 9 Biên so n: Ph m 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 r t ñư c ưa chu ng. Ngoài ra, NV-RAM còn có ưu vi t là cho
phép thay ñ i n i dung RAM theo t ng byte mà không c n ph i xóa h t trư c khi l p trình như b nh
EPROM.
Ký hi u ROM RAM I/O Timer Ng t Vcc S chân IC
DS5000-8 8KB 128 32 2 6 5V 40
DS5000-32 32KB 128 32 2 6 5V 40
DS5000T-8 8KB 128 32 2 6 5V 40
DS5000T-32 32KB 128 32 2 6 5V 40
ði m ñ c bi t là các chip có ch “T” theo sau ký hi u “5000” có nghĩa là chip ñó có thi t k
thêm m t ñ ng h th i gian th c (RTC: Real Time Clock) bên trong. Lưu ý ñ ng h th i gian th c RTC
hoàn toàn khác v i b ñ nh th i Timer. RTC t o và lưu gi th i gian c a ngày (gi /phút/giây) và ngày
tháng (ngày/tháng/năm) trên th c t ngay c khi không có ngu n cung c p.
2.6 B vi ñi u khi n P89V51xx c a Philips Corporation:
ðây là m t phiên b n c i ti n s d ng CPU là b vi ñi u khi n 80C51 v i nhi u tính năng vư t
tr i: dung lư ng ROM/RAM trên chip r t l n, 3 Timer 16 bit + 1 Watch-dog Timer, 2 thanh ghi DPTR,
8 ngu n ng t, PWM (Pulse Width Modulator), SPI (Serial Peripheral Interface) và ñ c bi t là b nh
chương trình trên chip có tính năng ISP (In-System Programming) và IAP (In-Application
Programming),…
II. CÁC CHÂN C A CHIP 8051:
1. Sơ ñ kh i và ch c năng các kh i c a chip 8051:
Giáo trình Vi x lý. 10 Biên so n: Ph m 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 v x lý trung tâm → tính toán và ñi u khi n quá
trình ho t ñ ng c a h th ng.
- OSC (Oscillator): M ch dao ñ ng → t o tín hi u xung clock cung c p cho các kh i trong
chip ho t ñ ng.
- Interrupt control: ði u khi n ng t → nh n tín hi u ng t t bên ngoài (INT0\, INT1\), t
b ñ nh th i (Timer 0, Timer 1) và t c ng n i ti p (Serial port), l n lư t ñưa các tín hi u ng t này ñ n
CPU ñ x lý.
- Other registers: Các thanh ghi khác → lưu tr d li u c a các port xu t/nh p, tr ng thái
làm vi c c a các kh i trong chip trong su t quá trình ho t ñ ng c a h th ng.
- RAM (Random Access Memory): B nh d li u trong chip → lưu tr các d li u.
- ROM (Read Only Memory): B nh 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 xu t/nh p → ñi u khi n vi c xu t nh p d li u dư i
d ng song song gi a trong và ngoài chip thông qua các port P0, P1, P2, P3.
- Serial port: Port n i ti p → ñi u khi n vi c xu t nh p d li u dư i d ng n i ti p gi a
trong và ngoài chip thông qua các chân TxD, RxD.
- Timer 0, Timer 1: B ñ nh th i 0, 1 → dùng ñ ñ nh th i gian ho c ñ m s ki n (ñ m
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 c di chuy n
thông tin trên h th ng bus.
- Bus system: H th ng bus → liên k t các kh i trong chip l i v i nhau.
2. Sơ ñ chân và ch c năng các chân c a chip 8051:
Giáo trình Vi x lý. 11 Biên so n: Ph m 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 t 32 – 39.
-
Port 0 có hai ch c năng:
• Port xu t nh p d li u (P0.0 - P0.7) → không s d ng b nh ngoài.
• Bus ñ a ch byte th p và bus d li u ña h p (AD0 – AD7) → có s d ng b nh
ngoài.
Lưu ý: Khi Port 0 ñóng vai trò là port xu t nh p d li u thì ph i s d ng các ñi n tr kéo lên
bên ngoài.
- ch ñ m c ñ nh (khi reset) thì các chân Port 0 (P0.0 - P0.7) ñư c c u hình là port xu t
d li u. Mu n các chân Port 0 làm port nh p d li u thì c n ph i l p trình l i, b ng cách ghi m c logic
cao (m c 1) ñ n t t c các bit c a port trư c khi b t ñ u nh p d li u t port (v n ñ này ñư c trình
bày ph n k ti p).
- Khi l p trình cho ROM trong chip thì Port 0 ñóng vai trò là ngõ vào c a d li u (D0 – D7)
(xem sách “H vi ñi u khi n 8051” trang 333-352).
2.2. Port 1:
-Port 1 (P1.0 – P1.7) có s chân t 1 – 8.
-Port 1 có m t ch c năng:
• Port xu t nh p d li u (P1.0 – P1.7) → s d ng ho c không s d ng b nh
ngoài.
- ch ñ m c ñ nh (khi reset) thì các chân Port 1 (P1.0 – P1.7) ñư c c u hình là port xu t
d li u. Mu n các chân Port 1 làm port nh p d li u thì c n ph i l p trình l i, b ng cách ghi m c logic
cao (m c 1) ñ n t t c các bit c a port trư c khi b t ñ u nh p d li u t port (v n ñ này ñư c trình
bày ph n k ti p).
- Khi l p trình cho ROM trong chip thì Port 1 ñóng vai trò là ngõ vào c a ñ a ch byte th p
(A0 – A7) (xem sách “H vi ñi u khi n 8051” trang 333-352).
2.3. Port 2:
- Port 2 (P2.0 – P2.7) có s chân t 21 – 28.
- Port 2 có hai ch c năng:
• Port xu t nh p d li u (P2.0 – P2.7) → không s d ng b nh ngoài.
• Bus ñ a ch byte cao (A8 – A15) → có s d ng b nh ngoài.
- ch ñ m c ñ nh (khi reset) thì các chân Port 2 (P2.0 – P2.7) ñư c c u hình là port xu t
d li u. Mu n các chân Port 2 làm port nh p d li u thì c n ph i l p trình l i, b ng cách ghi m c logic
cao (m c 1) ñ n t t c các bit c a port trư c khi b t ñ u nh p d li u t port (v n ñ này ñư c trình
bày ph n k ti p).
- Khi l p trình cho ROM trong chip thì Port 2 ñóng vai trò là ngõ vào c a ñ a ch byte cao (A8
– A11) và các tín hi u ñi u khi n (xem sách “H vi ñi u khi n 8051” trang 333-352).
2.4. Port 3:
-
Port 3 (P3.0 – P3.7) có s chân t 10 – 17.
-
Port 3 có hai ch c năng:
• Port xu t nh p d li u (P3.0 – P3.7) → không s d ng b nh ngoài ho c các
ch c năng ñ c bi t.
• Các tín hi u ñi u khi n → có s d ng b nh ngoài ho c các ch c năng ñ c bi t.
- ch ñ m c ñ nh (khi reset) thì các chân Port 3 (P3.0 – P3.7) ñư c c u hình là port xu t
d li u. Mu n các chân Port 3 làm port nh p d li u thì c n ph i l p trình l i, b ng cách ghi m c logic
cao (m c 1) ñ n t t c các bit c a port trư c khi b t ñ u nh p d li u t port (v n ñ này ñư c trình
bày ph n k ti p).
Giáo trình Vi x lý. 12 Biên so n: Ph m 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 l p trình cho ROM trong chip thì Port 3 ñóng vai trò là ngõ vào c a các tín hi u ñi u
khi n (xem sách “H vi ñi u khi n 8051” trang 333-352).
- Ch c năng c a các chân Port 3:
Bit Tên ð a ch bit Ch c năng
P3.0 RxD B0H Chân nh n d li u c a port n i ti p.
P3.1 TxD B1H Chân phát d li u c a port n i ti p.
P3.2 INT0\ B2H Ngõ vào ng t ngoài 0.
P3.3 INT1\ B3H Ngõ vào ng t ngoài 1.
P3.4 T0 B4H Ngõ vào c a b ñ nh th i/ñ m 0.
P3.5 T1 B5H Ngõ vào c a b ñ nh th i/ñ m 1.
P3.6 WR\ B6H ði u khi n ghi vào RAM ngoài.
P3.7 RD\ B7H ði u khi n ñ c t RAM ngoài.
2.5.Chân PSEN\:
- PSEN (Program Store Enable): cho phép b nh chương trình, chân s 29.
- Ch c năng:
• Là tín hi u cho phép truy xu t (ñ c) b nh chương trình (ROM) ngoài.
• Là tín hi u xu t, tích c c m c th p.
PSEN\ = 0 → trong th i gian CPU tìm - n p l nh t ROM ngoài.
PSEN\ = 1 → CPU s d ng ROM trong (không s d ng ROM ngoài).
- Khi s d ng b nh chương trình bên ngoài, chân PSEN\ thư ng ñư c n i v i chân OE\ c a
ROM ngoài ñ cho phép CPU ñ c mã l nh t ROM ngoài.
2.6. Chân ALE:
- ALE (Address Latch Enable): cho phép ch t ñ a ch , chân s 30.
- Ch c năng:
• Là tín hi u cho phép ch t ñ a ch ñ th c hi n vi c gi i ña h p cho bus ñ a ch
byte th p và bus d li u ña h p (AD0 – AD7).
• Là tín hi u xu t, tích c c m c cao.
ALE = 0 → trong th i gian bus AD0 - AD7 ñóng vai trò là bus D0 - D7.
ALE = 1 → trong th i gian bus AD0 - AD7 ñóng vai trò là bus A0 - A7.
- Khi l p trình cho ROM trong chip thì chân ALE ñóng vai trò là ngõ vào c a xung l p trình
(PGM\) (xem sách “H vi ñi u khi n 8051” trang 333-352).
Lưu ý: f = f OSC → có th dùng làm xung clock cho các m ch khác.
ALE
6
fALE (MHz): t n s xung t i chân ALE.
fOSC (MHz): t n s dao ñ ng trên chip (t n s th ch anh).
- Khi l nh l y d li u t RAM ngoài (MOVX) ñư c th c hi n thì m t xung ALE b b qua
(xem gi n ñ trang 38-39 sách “H vi ñi u khi n 8051”).
2.7. Chân EA\:
- EA (External Access): truy xu t ngoài, chân s 31.
- Ch c năng:
• Là tín hi u cho phép truy xu t (s d ng) b nh chương trình (ROM) ngoài.
Giáo trình Vi x lý. 13 Biên so n: Ph m 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 u nh p, tích c c m c th p.
EA\ = 0 → Chip 8051 s d ng chương trình c a ROM ngoài.
EA\ = 1 → Chip 8051 s d ng chương trình c a ROM trong.
- Khi l p trình cho ROM trong chip thì chân EA ñóng vai trò là ngõ vào c a ñi n áp l p trình
(Vpp = 12V – 12,5V cho h 89xx; 21V cho h 80xx, 87xx) (xem sách “H vi ñi u khi n 8051” trang
333-352).
Lưu ý: Chân EA\ ph i ñư c n i lên Vcc (n u s d ng chương trình c a ROM trong) ho c n i
xu ng GND (n u s d ng chương trình c a ROM ngoài), không bao gi ñư c 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.
- Ch c năng:
• Dùng ñ n i v i th ch anh ho c m ch dao ñ ng t o xung clock bên ngoài, cung
c p tín hi u xung clock cho chip ho t ñ ng.
• 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 = 12MHz fTYP (MHz): t n s danh ñ nh.
2.9. Chân RST:
-
RST (Reset): thi t l p l i, chân s 9.
-
Ch c năng:
• Là tín hi u cho phép thi t l p (ñ t) l i tr ng thái ban ñ u cho h th ng.
• Là tín hi u nh p, tích c c m c cao.
RST = 0 → Chip 8051 ho t ñ ng bình thư ng.
RST = 1 → Chip 8051 ñư c thi t l p l i tr ng thái ban ñ u.
Lưu ý: tRe set ≥ 2 × TMachine 12
TMachine =
f OSC
tRESET ( s): th i gian reset. fOSC (MHz): t n s th ch anh.
TMACHINE ( s): chu kỳ máy.
Giáo trình Vi x lý. 14 Biên so n: Ph m 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í d : Xác ñ nh chu kỳ máy và th i gian reset tương ng cho t ng trư ng h p fOSC = 11,0592MHz,
fOSC = 12MHz và fOSC = 16MHz.
Gi i
• fOSC = 11,0592MHz → TMACHINE = 1,085 s và tRESET ≥ 2,17 s.
• fOSC = 12MHz → TMACHINE = 1 s và tRESET ≥ 2 s.
• fOSC = 16MHz → TMACHINE = 0,75 s và tRESET ≥ 1,5 s
2.10. Chân Vcc, GND:
- Vcc, GND: ngu n c p ñi n, chân s 40 và 20.
- Ch c năng:
• Cung c p ngu n ñi n cho chip 8051 ho t ñ ng.
• Vcc = +5V ± 10% và GND = 0V.
III. C U TRÚC CÁC PORT XU T NH P CHIP 8051:
Kh năng fanout (s lư ng t i ñ u ra) c a các t ng 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 xu t nh p thì s không có ñi n tr kéo lên bên trong → do
ñó ngư i s d ng c n thêm vào ñi n tr kéo lên bên ngoài (xem Hình III.1).
• ch ñ m c ñ nh (khi reset) thì t t c các chân c a các port (P0 – P3) ñư c c u hình là
port xu t d li u.
• Mu n các chân port c a chip 8015 làm port nh p d li u thì ta c n ph i ñư c l p trình l i,
b ng cách ghi m c logic cao (m c 1) ñ n t t c các bit (các chân) c a port trư c khi b t ñ u nh p d
li u t port (v n ñ này ñư c trình bày ph n k ti p).
Giáo trình Vi x lý. 15 Biên so n: Ph m 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 nh t thi t ph i có cùng ki u c u hình (port xu t ho c
port nh p). Nghĩa là trong cùng m t port có th có chân dùng ñ nh p d li u, có th có chân dùng ñ
xu t d li u. ði u này là tùy thu c vào nhu c u và m c ñích c a ngư i l p trình.
Quá trình ghi chân port (xu t d li u ra chân port).
Quá trình ñ c chân port (nh p d li u t chân port).
Quá trình ñ c b ch t (ki m tra d li u t i chân port).
Giáo trình Vi x lý. 16 Biên so n: Ph m 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 c ñ c d li u c a b t kỳ m t port nào có th cho ta hai giá tr khác nhau tùy thu c
vào l nh mà ta s d ng ñ ñ c d li u t port (xem thêm trong ph n t p l nh). X y ra hi n tư ng
không mong mu n này là do quá trình ñ c d li u c a chip 8051 g m hai quá trình khác nhau: quá
trình ñ c chân port và quá trình ñ c b ch t.
o Quá trình ñ c chân port: Khi ta s d ng các l nh MOV, ADD,… D li u nh n
ñư c sau khi th c hi n quá trình ñ c là d li u hi n t i các chân port.
o Quá trình ñ c b ch t: Khi ta s d ng các l nh ANL, ORL, XRL, CPL, INC,
DEC, DJNZ, JBC, CLR bit, SETB bit, MOV bit. D li u nh n ñư c sau khi th c hi n quá trình ñ c là
d li u hi n t i các b ch t (là các d li u ñã ñư c ghi ra port t i th i ñi m trư c ñó b i quá trình
ghi chân port), ch không ph i là d li u hi n t i các chân port. Cho nên, n u t i th i ñi m th c hi n
quá trình ñ c mà d li u t i các chân port có b thay ñ i ñi chăng n a thì d li u ñ c v cũng không
ñư c c p nh t.
IV. T CH C B NH C A CHIP 8051:
- B vi x lý → có không gian b nh chung cho d li u và chương trình.
→ chương trình và d li u n m chung trên RAM trư c khi ñưa vào CPU ñ th c thi.
- B vi ñi u khi n → có không gian b nh riêng cho d li u và chương trình.
→ chương trình và d li u n m riêng trên ROM và RAM trư c khi ñưa vào CPU ñ th c thi.
- T ch c b nh c a chip 8051:
Giáo trình Vi x lý. 17 Biên so n: Ph m 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 so n: Ph m 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, ñ a ch truy xu t: 000H – FFFH.
1.2. B nh d li u (RAM):
- Dùng ñ lưu tr các d li u và tham s .
- Chip 8051 có 128 byte RAM trong, ñ a ch truy xu t: 00H – 7FH.
- RAM trong c a chip 8051 ñư c chia ra:
• RAM ña ch c năng:
• RAM ñ nh ñ a ch bit:
→ cho phép x lý t ng bit d li u riêng l mà không nh hư ng ñ n các bit khác trong c byte.
Lưu ý: N u trong chương trình không s d ng các bit trong vùng RAM ñ nh ñ a ch bit này, ta
có th s d ng vùng nh 20H – 2FH cho các m c ñích khác c a ta. Ngư c l i, ta ph i vi t chương trình
c n th n khi s d ng vùng nh 20H – 2FH vì n u sơ su t ta có th ghi d li u ñè lên các bit ñã ñư c s
d ng.
Ví d : Vi t l nh làm cho 8 bit trong ô nh có ñ a ch 20H thu c RAM n i có giá tr là 1 (xét
trư ng h p ñ a ch byte và ñ a ch bit).
Giáo trình Vi x lý. 19 Biên so n: Ph m 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 xu t d li u nhanh, l nh truy xu t ñơn gi n và ng n g n.
B ng s li u dư i ñây minh h a ñ a ch c a các ô nh trong m t dãy và các ký hi u thanh ghi
R0 – R7 ñư c gán cho t ng ô nh trong dãy tích c c.
Lưu ý:
o ch ñ m c ñ nh thì dãy thanh ghi tích c c (ñang ñư c s d ng) là dãy 0 và các thanh
ghi trong dãy l n lư t có tên là R0 - R7. Có th thay ñ i dãy tích c c b ng cách thay ñ i các bit ch n
dãy thanh ghi RS1 và RS0 trong thanh ghi PSW (xem ph n thanh ghi PSW).
o N u chương trình c a ta ch s d ng dãy thanh ghi ñ u tiên (dãy 0) thì ta có th s d ng
vùng nh 08H – 1FH cho các m c ñích khác c a ta. Nhưng n u trong chương trình có s d ng các dãy
thanh ghi (dãy 1, 2 ho c 3) thì ph i r t c n th n khi s d ng vùng nh t 1FH tr xu ng vì n u sơ su t
ta có th ghi d li u ñè lên các thanh ghi R0 – R7 c a ta.
Ví d 1: Quan h gi a ký hi u thanh ghi R4 v i các ô nh có ñ a ch tương ng trong dãy thanh
ghi tích c c?
o N u dãy 0 tích c c: Thanh ghi R4 Ô nh 04H RAM n i.
o N u dãy 1 tích c c: Thanh ghi R4 Ô nh 0CH RAM n i.
o N u dãy 2 tích c c: Thanh ghi R4 Ô nh 14H RAM n i.
o N u dãy 3 tích c c: Thanh ghi R4 Ô nh 1CH RAM n i.
Ví d 2: Khi chip 8051 th c hi n l nh MOV R4, #1AH thì giá tr “1AH” s ñư c n p vào trong
ô nh có ñ a ch là bao nhiêu thu c RAM n i. Xét tương ng cho t ng trư ng h p dãy thanh ghi tích
c c là Dãy 0 và Dãy 3?
Giáo trình Vi x lý. 20 Biên so n: Ph m 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 ch c năng ñ c bi t (SFR):
Lưu ý:
o Không ñư c phép ñ c hay ghi d li u vào các ñ a ch SFR mà nó chưa ñư c ñăng ký
(nghĩa là các ñ a ch SFR chưa ñư c ñ t tên). Vì vi c ñ c hay ghi d li u vào các nơi này có th làm
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 v i các phiên b n sau c a chip MCS-51 (có th các phiên b n ñó các ñ a ch SFR
này ñư c s d ng cho m t vài m c ñích khác).
o Ch ñư c truy xu t các SFR b ng ki u ñ nh ñ a ch tr c ti p (tuy t ñ i không s
d ng ki u ñ nh ñ a ch gián ti p trong trư ng h p này).
Ví d : Cho bi t trư c (R0)=90H. Vi t l nh dùng ñ xu t (ghi) giá tr 5AH ra Port1 như sau (xem
gi i thích l nh trong “Chương 3: T p l nh c a 8051.”):
S d ng ki u ñ nh ñ a ch tr c ti p:
MOV P1, #5AH ho c MOV 90H, #5AH
S d ng ki u ñ nh ñ a ch gián ti p:
MOV @R0, #5AH SAI
ði u này không h p l ñ i v i chip 8051 vì phương pháp ñ nh ñ a ch gián ti p như trên
ch s d ng cho vùng nh RAM n i. Trong khi ñó RAM n i c a chip 8051 ch có 128 byte (00H –
7FH), cho nên khi th c hi n l nh này nó s tr v k t qu không xác ñ nh. (Lưu ý: n u ta dùng phiên
b n chip 8052 thì s tránh ñư c ñi u này).
1.3.1. Thanh ghi A:
Accumulator: thanh ghi tích luõy
E0H E7 E6 E5 E4 E3 E2 E1 E0 A
Thanh ghi
Ñòa chæ byte: E0H
A
Ñòa chæ bit: E0H - E7H
Coâng duïng: chöùa döõ lieäu cuûa caùc pheùp toaùn
maø vi ñieàu khieån xöû lyù
1.3.2. Thanh ghi B:
- Phép nhân 2 s 8 bit không d u → k t qu là s 16 bit.
• Byte cao → ch a vào thanh ghi B.
• Byte th p → ch a 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 so n: Ph m 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 → ch a vào thanh ghi A.
• S dư → ch a vào thanh ghi B.
Ví d : Th c hi n phép tính 12H x 2AH. H i (A)=?, (B)=?
x1 2 H
2 A H
B 4 (A) = F4H
2 4 (B) = 02H
0 2 F 4 H
(B) (A)
Ví d : Th c hi n phép tính A6H : 21H. H i (A)=?, (B)=?
Ví d : Th c hi n phép tính FDH : 0CH. H i (A)=?, (B)=?
1.3.3. Thanh ghi t PSW:
- C CY (Carry Flag): c nh → báo có nh /mư n t i bit 7.
• CY = 0: n u không có nh t bit 7 ho c không có mư n cho bit 7.
• CY = 1: n u có nh t bit 7 ho c có mư n cho bit 7.
- C AC (Auxiliary Carry): c nh ph → báo có nh /mư n t i bit 3.
• AC = 0: n u không có nh t bit 3 ho c không có mư n cho bit 3.
• AC = 1: n u có nh t bit 3 ho c có mư n cho bit 3.
- C F0 (Flag 0): c zero → có nhi u m c ñích dành cho các ng d ng khác nhau c a
ngư i l p trình (d tr cho các phiên b n chip trong tương lai).
Giáo trình Vi x lý. 22 Biên so n: Ph m 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.
- Bit RS0, RS1 (Register Select): bit ch n dãy thanh ghi → cho phép xác ñ nh dãy thanh
ghi tích c c (hay dãy thanh ghi mà các thanh ghi có tên là R0-R7).
RS1 RS0 Dãy thanh ghi R0 → R7
0 0 Dãy 0 00H → 07H
0 1 Dãy 1 08H → 0FH
1 0 Dãy 2 10H → 17H
1 1 Dãy 3 18H → 1FH
- C OV (Overflow): c tràn → báo k t qu tính toán c a phép toán s h c (phép toán có
d u) có n m trong kho ng t -128 ñ n +127 hay không.
• OV = 0: n u -128 ≤ k t qu ≤ +127.
• OV = 1: n u k t qu < -128 ho c k t qu > +127. Nói cách khác là: ð i v i phép
c ng thì OV=1 n u có nh t bit 7 nhưng không có nh t bit 6 ho c n u có nh t bit 6 nhưng không
có nh t bit 7. ð i v i phép tr thì OV=1 n u có mư n cho bit 7 nhưng không có mư n cho bit 6
ho c n u có mư n bit 6 nhưng không có mư n bit 7.
- C P (Parity): c ch n l → báo s ch s 1 trong thanh ghi A là s ch n hay s l (trong
chip 8051 s d ng ch ñ parity ch n).
• P = 0: n u s ch s 1 trong thanh ghi A là s ch n (parity ch n).
• P = 1: n u s ch s 1 trong thanh ghi A là s l (parity ch n).
Ví d : Minh h a cách 8051 bi u di n s -5.
Gi i
Các bư c th c hi n:
B1: 0000 0101 Bi u di n s 5 d ng nh phân 8 bit.
B2: 1111 1010 L y bù 1.
B3: 1111 1011 L y bù 2.
V y s FBH là bi u di n s có d u d ng bù 2 c a s -5.
Ví d : Minh h a cách 8051 bi u di n s -34H.
Các bư c th c hi n:
B1: 0011 0100 Bi u di n s 34H d ng nh phân 8 bit.
B2: 1100 1011 L y bù 1.
B3: 1100 1100 L y bù 2.
V y s CCH là bi u di n s có d u d ng bù 2 c a s -34H.
Giáo trình Vi x lý. 23 Biên so n: Ph m 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í d : Minh h a cách 8051 bi u di n s -128.
Các bư c th c hi n:
B1: 1000 0000 Bi u di n s -128 d ng nh phân 8 bit.
B2: 0111 1111 L y bù 1.
B3: 1000 0000 L y bù 2.
V y s 80H là bi u di n s có d u d ng bù 2 c a s -128.
Ví d : Minh h a tr ng thái ho t ñ ng c a các c CY, AC, OV và P khi th c hi n phép c ng/tr
s h c hai giá tr v i nhau.
C nh (CY):
Minh h a ho t ñ ng c a c CY trong trư ng h p CY = 1:
Xét c CY trong hai trư ng h p “7AH+28H” và “9AH-5DH”:
Xét c CY trong hai trư ng h p “95H+86H” và “00H-A6H”:
C nh ph (AC):
Minh h a ho t ñ ng c a c AC trong trư ng h p AC = 1
AC=1 AC=1
? 7 6 5 4 3 2 1 0 B H L H
7 6 5 4 3 2 1 0 B H L H - -
+ + 7 6 5 4 3 2 1 0 B H L H
7 6 5 4 3 2 1 0 B H L H ?
AC=1 AC=1 Kieåu BIN Kieåu HEX
Kieåu BIN Kieåu HEX
Giáo trình Vi x lý. 24 Biên so n: Ph m 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.
Xét c AC trong hai trư ng h p “92H+28H” và “4AH-E3H”:
Xét c AC trong hai trư ng h p “7AH+59H” và “97H-5DH”:
C tràn (OV):
Minh h a ho t ñ ng c a c OV trong trư ng h p OV = 1
Xét c OV trong các trư ng h p “B3H+25H”, “BBH+C9H”, “BBH-96H” và “4BH-F3H”:
Xét c OV trong các trư ng h p “53H+45H”, “82H+BAH”, “9AH-3EH” và “66H-DAH”:
C Parity (P):
Xét c P trong các trư ng h p “(A)=45H”, “(A)=E7H”, “(A)=00H”:
Giáo trình Vi x lý. 25 Biên so n: Ph m 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í d : Xác ñ nh n i dung các ô nh thu c RAM n i c a ño n chương trình sau:
Ví d : Xác ñ nh n i dung các ô nh thu c RAM n i c a ño n chương trình sau:
1.3.4. Thanh ghi SP:
- Ngăn x p là vùng nh dùng ñ lưu tr t m th i các d li u.
- ð i v i chip 8051 thì vùng nh ñư c dùng ñ làm ngăn x p ñư c gi trong RAM n i.
- ð s d ng ngăn x p thì ta ph i kh i ñ ng thanh ghi SP (nghĩa là n p giá tr cho thanh
ghi SP) → vùng nh c a ngăn x p có ñ a ch b t ñ u: (SP)+1 và ñ a ch k t thúc: 7FH.
- N u không kh i ñ ng SP → vùng nh c a ngăn x p có ñ a ch b t ñ u: 08H và ñ a ch
k t thúc: 7FH (ch ñ m c ñ nh).
Lưu ý: Trong trư ng h p không kh i ñ ng SP (ch ñ m c ñ nh) thì dãy thanh ghi 1 (và có th
là dãy 2 và dãy 3) s không còn h p l vì khi ñó vùng nh này ñã ñư c s d ng ñ làm ngăn x p. ði u
này có nghĩa là n u ta s d ng các dãy thanh ghi này và lưu tr d li u vào ñó thì có kh năng s b
m t do tác ñ ng c t d li u vào ngăn x p c a các l nh (PUSH, ACALL, LCALL, …).
Giáo trình Vi x lý. 26 Biên so n: Ph m 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í d : Hãy cho bi t t m ñ a ch c a vùng nh ngăn x p trong hai trư ng h p sau: (SP)=5FH và
(SP)=49H.
Theo qui ñ nh thì vùng nh c a ngăn x p có ñ a ch b t ñ u: (SP)+1 và ñ a ch k t thúc: 7FH.
Trư ng h p (SP)=5FH: t m ñ a ch c a vùng nh ngăn x p là 60H - 7FH.
Trư ng h p (SP)=49H: t m ñ a ch c a vùng nh ngăn x p là 4AH - 7FH.
Ví d : Hãy cho bi t giá tr c n ph i n p cho thanh ghi SP ñ vùng nh ngăn x p có t m ñ a ch
trong hai trư ng h p sau: 62H – 7FH và 50H – 7FH.
Theo qui ñ nh thì vùng nh c a ngăn x p có ñ a ch b t ñ u: (SP)+1 và ñ a ch k t thúc: 7FH.
Trư ng h p 62H – 7FH: giá tr c n n p cho thanh ghi SP là 61H.
Trư ng h p 50H – 7FH: giá tr c n n p cho thanh ghi SP là 4FH.
Ví d : Minh h a vùng nh ngăn x p trong trư ng h p không kh i ñ ng SP (ch ñ m c ñ nh) và
có kh i ñ ng SP (v i (SP) = 3FH).
N u ngư i s d ng không kh i ñ ng thanh ghi SP (ch ñ m c ñ nh) thì: (xem hình bên
dư i, phía trái)
Stack memory
memory
Stack
N u ngư i s d ng mu n vùng nh ngăn x p (ch ñ tùy ñ nh) có t m ñ a ch là 40H–7FH
thì: (xem hình bên trên, phía ph i)
1.3.5. Thanh ghi DPTR:
Data Pointer Register: thanh ghi con troû döõ lieäu
83H DPH
Thanh ghi
82H DPL
DPTR
Ñòa chæ byte: 83H vaø 82H
Ñòa chæ bit: khoâng ñònh ñòa chæ bit
Coâng duïng: laø thanh ghi 16 bit (DPH+DPL), chöùa ñòa chæ cuûa oâ
nhôù caàn truy xuaát thuoäc ROM (trong/ngoaøi) vaø RAM ngoaøi.
Giáo trình Vi x lý. 27 Biên so n: Ph m Quang Trí
nguon tai.lieu . vn