Chương 2: Phần cứng chip vi điều khiển 8051

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:31

0
159
lượt xem
74
download

Chương 2: Phần cứng chip vi điều khiển 8051

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số,......

Chủ đề:
Lưu

Nội dung Text: Chương 2: Phần cứng chip vi điều khiển 8051

  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í

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản