Xem mẫu

  1. 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í
  2. 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í
  3. 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í
  4. 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í
  5. 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í
  6. 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í
  7. 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í
  8. 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í
  9. 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í
  10. 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í
  11. 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í
  12. 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í
  13. 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í
  14. 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í
  15. 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í
  16. 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í
  17. 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í
  18. 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í
  19. 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í
  20. 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í