Bài giảng kỹ thuật vi xử lý - Chương số 3
lượt xem 22
download
Tài liệu tham khảo giáo trình Kỹ thuật vi xử lý gồm 2 phần - Phần 1 Lý thyết - Chương 3 Hệ vi điều khiển 8 bit họ 8051
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng kỹ thuật vi xử lý - Chương số 3
- CHƯƠNG III: H VI I U KHI N 8 BIT H 8051 3.1. C U TRÚC PH N C NG H VI I U KHI N 8051 3.1.1. GI I THI U CHUNG các chương 1 và 2 ã gi i thi u v c u trúc bên trong và ch c năng c a các kh i bên trong cũng như trình t ho t ng x lý d li u c a vi x lý và i nghiên c u c th m t lo i vi x lý 8086. Khi s d ng vi x lý c n ph i thi t k m t h th ng g m có: - B vi x lý. - B b nh . - Các IC ngo i vi (các m ch c ng giao ti p). B nh dùng ch a chương trình cho vi x lý th c hi n và ch a d li u x lý, các IC ngo i vi dùng xu t nh p d li u t bên ngoài vào x lý và i u khi n tr l i. Các kh i này liên k t v i nhau t o thành m t h th ng vi x lý. Yêu c u i u khi n càng cao thì h th ng càng ph c t p và n u yêu c u i u khi n có ơn gi n ví d ch c n óng m 1 èn led theo m t th i gian yêu c u nào ó thì h th ng vi x lý cũng ph i có y các kh i trên. k t n i các kh i trên t o thành m t h th ng vi x lý òi h i ngư i thi t k ph i r t hi u bi t v t t c các thành ph n vi x lý, b nh , các thi t b ngo i vi. H th ng t o ra khá ph c t p, chi m nhi u không gian, m ch in, và v n chính là òi h i ngư i thi t k , ngư i s d ng hi u th t rõ v h th ng. M t lý do chính n a là vi x lý th ơng x lý d li u theo byte ho c word trong khi ó các i tư ng i u khi n trong công nghi p thư ng i u khi n theo bit. Chính vì s ph c t p nên các nhà ch t o ã tích h p m t ít b nh và m t s các thi t b ngo i vi cùng v i vi x lý t o thành m t IC g i là vi i u khi n (Microcontroller). Hình 3.1.1 so sánh h th ng vi x lý v i h th ng vi i u khi n Khi vi i u khi n ra i ã mang l i s ti n l i là d dàng s d ng trong i u khi n công nghi p, vi c s d ng vi i u khi n không òi h i ngư i s d ng ph i hi u bi t m t lư ng ki n th c quá nhi u như ngư i s d ng vi x lý – dĩ nhiên ngư i s d ng hi u bi t càng nhi u thì càng t t nhưng i v i ngư i b t u thì vi c s d ng vi x lý là i u r t khó. Có r t nhi u hãng ch t o ư c vi i u khi n, hãng s n xu t n i ti ng là ATMEL. Hãng Intel là nhà thi t k . Có nhi u h vi i u khi n mang các mã s khác nhau, m t trong h n i ti ng là h MCS-51. - 103 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- Trong h MCS-51 thì vi i u khi n u tiên là 80C31 không có b nh bên trong là do không tích h p ư c. Vi i u khi n 8051 tích h p ư c 4 kbyte b nh Prom. Ch l p trìnnh 1 l n không th xóa l p trình l i ư c. Vi i u khi n 8751 tích h p ư c 4 kbyte b nh Eprom. Cho phép l p trình nhi u l n và xóa b ng tia c c tím. Vi i u khi n 8951 tích h p ư c 4 kbyte b nh flash rom n p và xóa b ng i n m t cách ti n l i và nhanh chóng. Có th cho phép n p xóa hàng ngàn l n. Data bus CPU CPU ROM RAM General- Serial RAM ROM Timer I/O Purpose COM Port Port Micro- processor Serial COM I/O Timer Port Address bus (a) General-Purpose Microcessor System (b) Microcontroller Hình 3.1.1 so sánh h th ng vi x lý v i h th ng vi i u khi n Song song v i h MCS-51 là h MCS-52 có 3 timer nhi u hơn h MCS- 51 m t timer và dung lư ng b nh n i l n g p ôi t c là 8 Kbyte. Hi n nay có r t nhi u vi i u khi n th h sau có nhi u c tính hay hơn, nhi u thanh ghi hơn, dung lư ng b nh l n hơn. ng d ng c a vi i u khi n r t nhi u trong các h th ng i u khi n công nghi p, các dây chuy n s n xu t, các b i u khi n l p trình, máy gi t, máy i u hòa nhi t , máy bơm xăng t ng, … Vi m ch t ng quát c a h MCS-51 là chip 8051 ư c s n xu t vào năm 1981 v i các thông s k thu t như sau: - 4 KB ROM. - 128 byte RAM. - 4 port xu t nh p (I/O port) 8 bit. - 2b nh th i 16 bit. - M t c ng n i ti p. - Không gian nh chương trình ngoài 64 K. - B x lý bit (thao tác trên các bit riêng r ). - 104 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- - 210 v trí nh ưc nh a ch , m i v trí m t bit. Nhân/chia trong 4 µs. - Và sau ây là b ng các c tính k thu t c a h MCS-51 và MCS-52: Ký hi u ROM RAM Chân I/O Timer Ng t Vcc óng v AT89C51 4K 128 32 2 6 5V 40 AT89LV51 4K 128 32 2 6 3V 40 AT89C1051 1K 64 15 1 3 3V 20 AT89C2051 2K 128 15 2 6 3V 20 AT89C52 8K 128 32 3 8 5V 40 AT89LV52 8K 128 32 3 8 3V 40 3.1.2. SƠ C U TRÚC C A H VI I U KHI N 8051 Hình 3.1.2 mô t sơ c u trúc bên trong vi i u khi n 8051 - Kh i ALU i kèm v i các thanh ghi temp1, temp2 và thanh ghi tr ng thái PSW. - B i u khi n logic (timing and control). - Vùng nh RAM n i và vùng nh Flash Rom lưu tr chương trình. - M ch t o dao ng n i k t h p v i t th ch anh bên ngoài t o dao ng. - Kh i x lý ng t, truy n d li u, kh i timer/counmter. - Thanh ghi A, B, dptr và 4 port0, port1, port2, port3 có ch t và m. - Thanh ghi b m chương trình PC (program counter). - Con tr d li u dptr (data pointer). - Thanh ghi con tr ngăn x p SP (stack pointer). - Thanh ghi l nh IR (instruction register). - Ngoài ra còn có 1 s các thanh ghi h tr qu n lý a ch b nh ram n i bên trong cũng như các thanh ghi qu n lý a ch truy xu t b nh bên ngoài. Các kh i bên trong c a vi i u khi n có các thành ph n gi ng như ã trình bày ph n chương 1 như kh i ALU, thanh ghi temp1, thanh ghi temp2, thanh ghi b m chương trình PC, thanh con tr ngăn x p, thanh ghi tr ng thái PSW, thanh ghi l nh IR, kh i gi i mã l nh, kh i i u khi n logic. - 105 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- P0.0 - P0.7 P2.0 - P2.7 Vcc PORT 0 DRIVES PORT 2 DRIVES GND PORT 2 RAM ADDR PORT 0 FLASH RAM LATCH REGISTER LATCH PROGRAM B STACK ACC ADDRESS REGISTER POITER REGISTER REGISTER TEM 1 TEMP 2 BUFFER PC INCREMENTER ALU INTERRUPT, SERIAL PORT AND TIMER BLOCK PROGRAM PSW COUNTER PSEN ALE/PROG TIMMING AND INSTRUCTION EA/Vpp DPTR CONTROL REGISTER RST PORT 3 PORT 1 LATCH LATCH OSB PORT 1 DRIVES PORT 3 DRIVES P1.0 - P1.7 P3.0 - P3.7 Hình 3.1.2. Sơ c u trúc c a h vi i u khi n 8051 3.1.3. MÔ T CH C NĂNG CÁC CHÂN C A 8051 Sơ chân c a vi i u khi n 8051 ư c trình bày hình 3.1.a. Vi i u khi n 8051 có t t c 40 chân. Trong ó có 32 chân dành cho 4 c ng (Port) là P0, P1, P2, P3. M i c ng có 8 bit (chân – pin). 3.1.3.1. Các Port Port 0 Port 0 là port có 2 ch c năng v i s th t chân 32 – 39. Trong các h th ng i u khi n ơn gi n s d ng b nh bên trong không dùng b nh m r ng bên ngoài thì port 0 ư c dùng làm các ư ng i u khi n IO (Input- Output). Trong các h th ng i u khi n có quy mô l n s d ng b nh m r ng bên ngoài thì port 0 có ch c năng d n kênh bus a ch và bus d li u AD7 - AD0. Port 1 Port 1 v i s th t chân 1- 8. Port1 ch có 1 ch c năng dùng làm các ư ng i u khi n xu t nh p IO, port 1 không có ch c năng khác. Port 2 - 106 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- Port 2 là port có 2 ch c năng v i s th t chân 21 – 28. Trong các h th ng i u khi n ơn gi n s d ng b nh bên trong không dùng b nh m r ng bên ngoài thì port 2 ư c dùng làm các ư ng i u khi n IO (Input- Output). Trong các h th ng i u khi n có quy mô l n s d ng b nh m r ng bên ngoài thì port 2 có ch c năng là bus a ch cao A8 - A15. Hình 3.1.a. Sơ chân c a vi i u khi n 8051 Port 3 Port 3 là port có 2 ch c năng v i s th t chân 10 -17. Khi không ho t ng xu t nh p, các chân c a port này có nhi u ch c năng (b ng 1.3.1) B ng 1.3.1 Bit Tên a ch Ch c năng P3.0 RxD B0H Ngõ vào nh n d li u n i ti p. P3.1 TxD B1H Ngõ xu t d li u n i ti p. P3.2 INT0\ B2H Ngõ vào ng t c ng th 0. - 107 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- P3.3 INT1\ B3H Ngõ vào ng t c ng th 1. P3.4 T0 B4H Ngõ vào c a timer/counter th 0. P3.5 T1 B5H Ngõ vào c a timer/counter th 1. P3.6 WR\ B6H Tín hi u i u khi n ghi d li u lên b nh ngoài. P3.7 RD\ B7H Tín hi u i u khi n c d li u t b nh ngoài. 3.1.3.2. Các ngõ tín hi u i u khi n Ngõ tín hi u PSEN (Program Store ENable) PSEN là tín hi u ngõ ra chân 29 có tác d ng cho phép c b nh chương trình m r ng thư ng n i n chân OE (output enable ho c RD) c a Eprom cho phép c các byte mã l nh. Khi có giao ti p v i b nh chương trình bên ngoài thì m i dùng n PSEN, n u không có giao ti p thì chân PSEN b tr ng. PSEN m c th p trong th i gian vi i u khi n 8051 l y l nh. Các mã l nh c a chương trình c t Eprom qua bus d li u và ư c ch t vào thanh ghi l nh IR bên trong 8051 gi i mã l nh. Khi 8051 thi hành chương trình trong EPROM n i thì PSEN mc logic 1. Ngõ tín hi u i u khi n ALE (Address Latch Enable) Khi vi i u khi n 8051 truy xu t b nh bên ngoài, port 0 có ch c năng là bus t i a ch và bus d li u [AD7 – AD0] do ó ph i tách các ư ng d li u và a ch . Tín hi u ra ALE chân th 30 dùng làm tín hi u i u khi n gi i a h p các ư ng a ch và d li u khi k t n i chúng v i IC ch t. Xem hình 3.1.3b Hình 3.1.3b. Ghép n i vi i u khi n 8951 v i IC ch t, m ch Reset, t th ch anh - 108 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- Tín hi u ra chân ALE là m t xung trong kho ng th i gian port 0 óng vai trò là a ch th p nên vi c ch t a ch ư c th c hi n 1 cách hoàn toàn t ng. Các xung tín hi u ALE có t c b ng 1/6 l n t n s dao ng c a t th ch anh g n vào vi i u khi n và có th dùng tín hi u xung ngõ ra ALE làm xung clock cung c p cho các ph n khác c a h th ng. Trong ch l p trình cho b nh n i c a vi i u khi n thì chân ALE ư c dùng làm ngõ vào nh n xung l p trình t bên ngoài l p trình cho b nh flash rom trong 8051. Ngõ tín hi u EA (External Access) Tín hi u vào EA chân 31 thư ng n i lên m c 1 ho c m c 0. N u n i EA lên m c logic 1 (+5v) thì vi i u khi n s thi hành chương trình t b nh n i. N u n i EA v i m c logic 0 (0V) thì vi i u khi n s thi hành chương trình t b nh ngo i. Các phiên b n c a 8051 còn s d ng EA làm chân nh n i n áp c p i n 21V (Vpp) cho vi c l p trình EPROM n i (n p EPROM). Ngõ tín hi u RST (Reset) Ngõ vào RST chân 9 là ngõ vào Reset c a 8051. Sơ k t n i m ch reset như hình v 3.1.3b. Khi c p i n cho h th ng ho c khi nh n nút reset thì m ch s reset vi i u khi n. Khi reset thì tín hi u reset ph i m c cao ít nh t là 2 chu kỳ máy, khi ó các thanh ghi bên trong ư c n p nh ng giá tr thích h p kh i ng h th ng. 3.1.3.3. Các chân ngu n và ng h Các ngõ vào b dao ng XTAL1, XTAL2 B dao ng ư c ư c tích h p bên trong 8051, khi s d ng 8051 ngư i thi t k ch c n k t n i thêm t th ch anh và các t như hình v trong sơ hình 3.1.3b. T n s t th ch anh thư ng s d ng cho 8051 là 12Mhz n 24Mhz. Chân 40 (Vcc) ư c n i lên ngu n 5V Chân 20 GND n i mass 3.1.4. T CH C B NH C A 8051 Vi i u khi n 8051 có b nh n i bên trong và có thêm kh năng giao ti p v i b nh bên ngoài n u b nh bên trong không kh năng lưu tr chương trình. B nh n i bên trong g m có 2 lo i b nh : b nh d li u và b chương trình. B nh d li u có 256 byte, b nh chương trình có dung lư ng 4kbyte. B nh m r ng bên ngoài cũng ư c chia ra làm 2 lo i b nh : b nh d li u và b nh chương trình. Kh năng giao ti p là 64kbyte cho m i lo i. - 109 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- Hình 3.1.4.a minh h a kh năng giao ti p b nh c a vi i u khi n 8051. B nh m r ng bên ngoài và b nh chương trình bên trong không có gì c bi t – ch có ch c năng lưu tr d li u và mã chương trình nên không c n ph i kh o sát. B nh ram n i bên trong là m t b nh c bi t ngư i s d ng vi i u khi n c n ph i n m rõ các t ch c và các ch c năng c bi t c a b nh này. Sơ c u trúc bên trong c a b nh này ư c trình bày như b ng 3.1.4b. FFFFH FFFFH 0FFFH Bé nhí Bé nhí FFH ch¦¬ng tr×nh d÷ liÖu cho phÐp cho phÐp Bé nhí theo ®¦êng theo ®¦êng Bé nhí ch¦¬ng tr×nh PSEN RD, WR d÷ liÖu 0000H 0000H 00H 0000H Hình 3.1.4a: B ng tóm t t các vùng nh 8051. RAM bên trong 8051 ư c phân chia như sau: - Các bank thanh ghi có a ch t 00H n 1FH. - RAM a ch hóa t ng bit có a ch t 20H n 2FH. - RAM a d ng t 30H n 7FH. - Các thanh ghi ch c năng c bi t t 80H n FFH. a a a ch bit a ch bit ch ch byte byte 7F FF RAM a d ng F0 F7 F6 F5 F4 F3 F2 F1 F0 B E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW - 110 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- 30 B8 - - - BC BB BA B9 B8 IP 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 99 SBUF 27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 8D TH1 22 17 16 15 14 13 12 11 10 8C TH0 21 0F 0E 0D 0C 0B 0A 09 08 8B TL1 20 07 06 05 04 03 02 01 00 8A TL0 1F 89 TMOD Bank 3 18 88 8F 8E 8D 8C 8B 8A 89 88 TCON 17 87 PCON Bank 2 10 0F 83 DPH Bank 1 08 82 DPL 07 81 SP Bank thanh ghi 0 (m c nh cho gán cho R0 -R7) 00 80 87 86 85 84 83 82 81 80 P0 RAM n i Các thanh ghi có ch c năng c bi t B ng 3.1.4b: C u trúc b nh d li u bên trong vi i u khi n 8051 3.1.4.1. Các bank thanh ghi có a ch t 00H – 1FH 32 byte th p c a b nh n i ư c dành cho 4 bank thanh ghi. - 111 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- B l nh 8051 h tr thêm 8 thanh ghi có tên là R0 n R7 và theo m c nh sau khi reset h th ng thì các thanh ghi R0 n R7 ư c gán cho 8 ô nh có a ch t 00H n 07H. Các d li u ư c dùng thư ng xuyên nên lưu tr m t trong các thanh ghi này. Do có 4 bank thanh ghi nên t i m t th i i m ch có m t bank thanh ghi ư c truy xu t b i các thanh ghi R0 n R7, chuy n i vi c truy xu t các bank thanh ghi ta ph i thay i các bit ch n bank trong thanh ghi tr ng thái. Ngư i l p trình dùng vùng nh 4 bank thanh ghi lưu tr d li u ph c v cho vi c x lý d li u khi vi t chương trình. Ch c năng chính c a 4 bank thanh ghi này là n u trong h th ng có s d ng nhi u chương trình thì chương trình th nh t có th s d ng h t các thanh ghi R0 n R7 c a bank0, khi b n chuy n sang chương trình th 2 x lý m t công vi c gì ó và v n s d ng các thanh ghi R0 n R7 lưu tr cho vi c x lý d li u mà không làm nh hư ng n các d li u R0 n R7 trư c ây và không c n ph i th c hi n công vi c c t d li u thì cách nhanh nh t là b n gán nhóm thanh ghi R0 n R7 cho bank1 là xong. Tương t b n có th m thêm hai chương trình n a và gán cho các bank 3 và 4. 3.1.4.2. RAM a ch hóa t ng bit có a ch t 20H n 2FH RAM có th truy xu t t ng bit. Vi i u khi n 8051 có 210 ô nh có th truy xu t t ng bit, trong ó có 128 bit n m các các ô nh byte có a ch t 20H n 2FH và các bit còn l i ch a trong nhóm thanh ghi có ch c năng c bi t. Các ô nh cho phép truy xu t t ng bit và các l nh x lý bit là m t th m nh c a vi i u khi n. Các bit có th ư c t, xóa, AND, OR b ng 1 l nh ơn trong khi ó x lý các bit thì vi x lý v n x lý ư c nhưng ph i s d ng r t nhi u l nh t ư c cùng m t k t qu . Các port cũng có th truy xu t ư c t ng bit. 128 ô nh bit cho phép truy xu t t ng bit và cũng có th truy xu t byte ph thu c vào l nh ư c dùng là l nh x bit hay l nh x lý byte. Chú ý a ch c a ô nh byte và bit trùng nhau. Ví d : t bit 67H lên 1 ta có th s d ng m t trong 2 l nh sau: MOV 2Ch, #10000000b ;ho c SETB 67h - 112 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- Ngư i l p trình dùng vùng nh này lưu tr d li u ph c v cho vi c x lý d li u byte ho c bit. Các d li u x lý bit nên lưu vào vùng nh này. 3.1.4.3. RAM a d ng có a ch t 30H – 7FH Vùng nh ram a d ng g m có 80 byte có a ch t 30H n 7FH – vùng nh này không có gì c bi t so v i 2 vùng nh trên. Vùng nh bank thanh ghi 32 byte t 00H n 1FH cũng có th dùng làm vùng nh ram a d ng m c dù các các ô nh này ã có ch c năng như ã trình bày. M i a ch trong vùng RAM a d ng u có th truy xu t t do dùng ki u a ch tr c ti p ho c gián ti p. 3.1.4.4. Các thanh ghi có ch c năng c bi t Các thanh ghi n i c a 8051 ư c truy xu t ng m nh b i b l nh. Các thanh ghi trong 8051 ư c nh d ng như m t ph n c a RAM trên chip vì v y m i thanh ghi s có m t a ch (ngo i tr thanh ghi b m chương trình và thanh ghi lưu tr mã l nh vì các thanh ghi này ã có ch c năng c nh). Cũng như các thanh ghi R0 n R7, vi i u khi n 8051 có 21 thanh ghi có ch c năng c bi t n m vùng trên c a RAM n i có a ch t 80H n FFH. Trong 128 ô nh có a ch t 80H n FFH thì ch có 21 thanh ghi có ch c năng c bi t ư c xác nh các a ch – còn các ô nh còn l i thì chưa thi t l p và trong tương lai s ư c các nhà thi t k vi i u khi n thi t l p thêm khi ó s có các vi i u khi n th h m i hơn. Các Port (tương ng các ô nh có a ch 80H, 90H, A0h, B0h) Là các Port c a 8051 bao g m Port0 có a ch 80H, Port1 có a ch 90H, Port2 có a ch A0H và Port3 có a ch B0H. T t c các Port này u có th truy xu t t ng bit nên r t thu n ti n trong i u khi n IO. a ch c a các bit ư c t tên v i ô b t u chính là a ch c a port tương ng ví d như bit u tiên c a port 0 là 80h cũng chính là a ch b t u c a port 0. Ngư i l p trình không c n nh a ch các bit trong các port vì ph n m m l p trình cho phép truy xu t b ng tên t ng bit d nh như sau: p0.0 chính là bit có a ch 80h c a port0. Ngo i tr thanh ghi A có th ư c truy xu t ng m, a s các thanh ghi có ch c năng c bi t SFR có th a ch hóa t ng bit ho c byte. Thanh ghi con tr ngăn x p SP (ô nh có a ch 81h) - 113 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- Là thanh ghi con tr ngăn x p SP (stack pointer) - có ch c năng qu n lý a ch c a b nh ngăn x p. B nh ngăn x p dùng lưu tr t m th i các d li u trong quá trình th c hi n chương trình c a vi i u khi n. Các l nh liên quan n ngăn x p bao g m các l nh c t d li u vào ngăn x p (l nh push) và l y d li u ra kh i ngăn x p (l nh pop). L nh c t d li u vào ngăn x p s làm tăng SP trư c khi ghi d li u vào. Sau l nh l y ra kh i ngăn x p s làm gi m SP. B nh ngăn x p c a 8051 n m trong RAM n i và b gi i h n v cách truy xu t a ch - ch cho phép truy xu t a ch gián ti p. Dung lư ng b nh ngăn x p l n nh t là 128 byte ram n i c a 8051. Khi Reset 8051 thì thanh ghi SP s mang giá tr m c nh là 07H và d li u u tiên s ư c c t vào ô nh ngăn x p có a ch 08H. Ngăn x p ư c truy xu t tr c ti p b ng các l nh PUSH và POP lưu tr t m th i và l y l i d li u, ho c truy xu t ng m b ng l nh g i chương trình con (ACALL, LCALL) và các l nh tr v (RET, RETI) lưu tr a ch c a b m chương trình khi b t u th c hi n chương trình con và l y l i a ch khi k t thúc chương trình con. Thanh ghi con tr d li u DPTR (ô nh có a ch 82h và 83h) Là 2 thanh ghi DPL (byte th p) có a ch là 82H và DPH (byte cao) có a ch 83H. Hai thanh ghi này có th s d ng c l p lưu tr d li u và có th k t h p l i t o thành 1 thanh ghi 16 bit có tên là DPTR và g i là con tr d li u - ư c dùng lưu a ch 16 bit khi truy xu t d li u c a b nh d li u bên ngoài. Thanh ghi PCON (ô nh có a ch 87h) Là thanh ghi PCON (power control) có ch c năng i u khi n công su t khi vi i u khi n làm vi c hay ch ch . Khi vi i u khi n không còn x lý gì n a thì ngư i l p trình có th l p trình cho vi i u khi n chuy n sang ch ch gi m b t công su t tiêu th nh t là khi ngu n cung c p cho vi i u khi n là pin. Các thanh ghi ph c v cho Timer/Counter (các ô nh có a ch t 88h n 8dh) Là các thanh ghi ph c v cho 2 timer/ counter T1, T0. Thanh ghi TCON(timer control): thanh ghi i u khi n timer / counter. - 114 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- Thanh ghi TMOD (timer mode): thanh ghi l a ch n ch (mode) ho t ng cho timer/counter. Thanh ghi TH0 và TL0 k t h p l i t o thành 1 thanh ghi 16 bit có ch c năng lưu tr xung m cho timer/counter T0. Tương t cho 2 thanh ghi TH1 và TL1 k t h p l i lưu tr xung m cho timer/counter T1. Kh năng lưu tr s lư ng xung m ư c là 65536 xung. Các thanh ghi ph c v truy n thông n i ti p (các ô nh có a ch t 98h n 99h) Là 2 thanh ghi SCON và SBUF: SCON (series control): thanh ghi i u khi n truy n d li u n i ti p. SBUF (series buffer): thanh ghi m d li u truy n n i ti p. D li u mu n truy n i thì ph i lưu vào thanh ghi SBUF và d li u nh n v n i ti p cũng lưu thanh ghi này. Khi có s d ng truy n d li u thì ph i s d ng 2 thanh ghi này. Các thanh ghi ph c v ng t (các ô nh có a ch t A8h n B8h) Là 2 thanh ghi IE và IP – thanh ghi IE (interrupt enable): thanh ghi i u khi n cho phép / không cho phép ng t. IP (interrupt priority): thanh ghi i u khi n ưu tiên ng t. Khi có s d ng n ng t thì ph i dùng n 2 thanh ghi này. M c nhiên các thanh ghi này ư c kh i t o ch c m ng t. Thanh ghi tr ng thái chương trình (PSW: Program Status Word) Thanh ghi tr ng thái chương trình a ch D0H ư c tóm t t như sau: KÝ A BIT MÔ T HI U CH PSW. C ho c D7H Cary Flag: C nh 7 CY PSW. AC D6H Auxiliary Cary Flag: C nh ph 6 PSW. F0 D5H Flag 0 còn g i là c Zero kí hi u là Z 5 PSW4 RS1 D4H Register Bank Select 1: bit l a ch n bank thanh ghi. PSW. RS0 D3H Register Bank Select 0: bit l a ch n bank thanh ghi. 3 - 115 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- 00 = Bank 0; ô nh có address 00H÷07H gán cho R0- R7 01 = Bank 1; ô nh có address 08H÷0FH gán cho R0- R7 10 = Bank 2; ô nh có address 10H÷17H gán cho R0- R7 11 = Bank 3; ô nh có address 18H÷1FH gán cho R0- R7 PSW. OV D2H Overflow Flag: c tràn s nh phân có d u. 2 PSW. - D1H Reserved: chưa thi t k nên chưa s d ng ư c. 1 PSW. P D0H Even Parity Flag: c ch n l . 0 Ch c năng t ng bit tr ng thái: - C Carry CY (Carry Flag): C nh có tác d ng kép. C C ư c s d ng cho các l nh toán h c: C = 1 n u phép toán c ng có tràn ho c phép tr có mư n, C = 0 n u phép toán c ng không tràn và phép tr không có mư n. - C Carry ph AC (Auxiliary Carry Flag): Khi c ng nh ng giá tr BCD (Binary Code Decimal), c nh ph AC ư c set [AC=1] n u k t qu 4 bit l n hơn 09H, ngư c l i AC= 0. C AC ư c dùng ch nh s BCD khi th c hi n l nh c ng 2 s BCD. - C 0 (Flag 0): C 0 (F0) còn g i là c zero, c zero =1 khi k t q a x lý b ng 0 và c zero = 0 khi k t qu x lý khác 0. - Các bit ch n bank thanh ghi truy xu t: Hai bit RS1 và RS0 dùng thay i cách gán 8 thanh ghi R7 – R0 cho 1 trong 4 bank thanh ghi. Hai bit này s b xóa sau khi reset vi i u khi n và ư c thay i b i chương trình c a ngư i l p trình. Hai bit RS1, RS0 = 00, 01, 10, 11 s ư c ch n Bank thanh ghi tích c c tương ng là Bank 0, Bank1, Bank2, Bank3. RS1 RS0 Bank thanh ghi ư c l a ch n 0 0 Bank 0 - 116 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- 0 1 Bank 1 1 0 Bank 2 1 1 Bank 3 - C tràn OV (Over Flag): Khi các s có d u ư c c ng ho c tr v i nhau, ph n m m có th ki m tra bit này xác nh xem k t qu có n m trong vùng giá tr xác nh hay không. V i s nh phân 8 bit có d u thì s dương t 0 n +127, s âm t -128 n – 1. N u k t qu c ng 2 s dương l n hơn +127 ho c c ng 2 s âm k t qu nh hơn – 128 thì k t qu ã vư t ra ngoài vùng giá tr cho phép thì kh i ALU trong vi i u khi n s làm bit OV = 1. Khi c ng các s nh phân không d u thì không c n quan tâm n bit OV. - Bit Parity (P): Bit P t ng ư c Set hay Clear m i chu kỳ máy l p Parity ch n v i thanh ghi A. m các bit 1 trong thanh ghi A c ng v i bit Parity luôn luôn là s ch n. Ví d thanh ghi A ch a nh phân 10101101B thì bit P set lên m t cho bi t t ng s bit 1 trong thanh ghi A và c bit P t o thành s ch n. Bit Parity thư ng ư c dùng k t h p v i nh ng th t c truy n d li u n i ti p t o ra bit Parity cho d li u trư c khi truy n i ho c ki m tra bit Parity sau khi nh n d li u. Thanh ghi t ng A (ô nh có a ch E0h) Thanh ghi A là m t thanh ghi quan tr ng c a vi x lý có ch c năng lưu tr d li u khi tính toán. H u h t các phép toán s h c và các phép toán logic u x y ra gi a ALU và Accumulator. M t ch c năng quan tr ng khác c a thanh ghi Accumulator là truy n d li u t b nh ho c t các thanh ghi bên trong c a vi x lý ra các thi t b i u khi n bên ngoài thì d li u ó ph i ch a trong thanh ghi Accumulator. Thanh ghi B (ô nh có a ch F0h) Thanh ghi B a ch F0H ư c dùng cùng v i thanh ghi A th c hi n các phép toán nhân chia. L nh MUL A B: s nhân nh ng giá tr không d u 8 bit v i 8 bit trong hai thanh ghi A và B, r i tr v k t qu 16 bit trong A (byte cao) và B(byte th p). L nh DIV A B: l y giá tr trong thanh ghi A chia cho giá tr trong thanh ghi B, k t qu nguyên lưu trong A, s dư lưu trong B. Thanh ghi B có th ư c dùng như m t thanh ghi m trung gian nhi u ch c năng. - 117 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- 3.1.5. HO T NG RESET Khi reset thì tín hi u reset ph i m c cao ít nh t là 2 chu kỳ máy, khi ó các thanh ghi bên trong ư c n p nh ng giá tr thích h p kh i ng h th ng. Tr ng thái c a t t c các thanh ghi trong 89C51 sau khi reset h th ng ư c tóm t t như sau: Thanh ghi N i dung B m chương trình PC 0000H Thanh ghi tích lũyA 00H Thanh ghi B 00H Thanh ghi tr ng thái PSW 00H Thanh ghi con tr SP 07H DPTR 0000H Port 0 n port 3 FFH IP xxx0 0000 B IE 0xx0 0000 B Các thanh ghi nh th i 00H SCON 00H SBUF 00H PCON (HMOS) 0xxx xxxxB PCON (CMOS) 0xxx 0000B Thanh ghi quan tr ng nh t là thanh ghi b m chương trình PC = 0000H sau khi reset. Sau khi reset xong vi i u khi n luôn b t u th c hi n chương trình t i a ch 0000H c a b nh chương trình nên các chương trình cho vi i u khi n luôn b t u t i a ch 0000H. N i dung c a RAM trên chip không b thay i b i tác ng c a ngõ vào reset (có nghĩa là vi i u khi n ang s d ng các thanh ghi lưu tr d li u nhưng n u vi i u khi n b reset thì d li u trong các thanh ghi v n không i). 3.2. CÁC CH A CH C A 8051 Các ki u nh a ch cho phép nh rõ nơi l y d li u ho c nơi nh n d li u tùy thu c vào cách th c s d ng l nh c a ngư i l p trình. Vi i u khi n 8051 có 8 ki u nh a ch như sau: - Ki u nh a ch dùng thanh ghi. - Ki u nh a ch tr c ti p. - Ki u nh a ch gián ti p. - Ki u nh a ch t c th i. - 118 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- - Ki u nh a ch tương i. - Ki u nh a ch tuy t i. - Ki u nh a ch dài. - Ki u nh a ch ch s . 3.2.1. Ki u nh a ch dùng thanh ghi (Register Addressing) Ki u này thư ng ư c dùng cho các l nh x lý d li u mà d li u luôn lưu trong các thanh ghi. i v i vi i u khi n thì mã l nh thu c ki u này ch có 1 byte. Ví d : MOV A, R1 ;copy noi dung thanh ghi R1 vao ;thanh ghi A 3.2.2. Ki u nh a ch tr c ti p (Direct Addressing) Ki u này thư ng ư c dùng truy xu t d li u c a b t kỳ ô nh nào trong 256 byte b nh d li u n i c a vi i u khi n 8051. Các l nh thu c ki u này thư ng có mã l nh 2 byte: byte th nh t là mã l nh, byte th 2 là a ch c a ô nh Ví d : MOV A, 05H ;copy noi dung o nho co dia chi ;05H vao thanh ghi A 3.2.3. nh a ch gián ti p (Indirect Addressing) Ki u nh a ch gián ti p ư c tư ng trưng b i ký hi u @ và ư c t trư c các thanh ghi R0, R1 (không s d ng các thanh ghi R2 – R7 trong ch a ch này) hay DPTR. R0 và R1 có th ho t ng như m t thanh ghi con tr , n i dung c a nó cho bi t a ch c a m t ô nh trong RAM n i mà d li u s ghi ho c s c. Còn DPTR dùng truy xu t ô nh ngo i. Các l nh thu c d ng này ch có 1 byte. Ví d : MOV A, @R1 ;copy noi dung o nho co dia chi ;dat trong thanh ghi R1 vao thanh ghi A 3.2.4. nh a ch t c th i (Immediate Addressing) Ki u nh a ch t c th i ư c tư ng trưng b i ký hi u # và ư c t trư c m t h ng s . L nh này thư ng dùng n p 1 giá tr là 1 h ng s byte th 2 (ho c byte th 3) vào thanh ghi ho c ô nh . Ví d : MOV A, #30H ;nap du lieu 30H vao thanh ghi A - 119 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- 3.2.5. nh a ch tương i Ki u nh a ch tương i ch s d ng v i nh ng l nh nh y. Nơi nh y n có a ch b ng a ch ang lưu trong thanh ghi PC c ng v i 1 giá tr 8 bit [còn g i là giá tr l ch tương i: relative offset] có giá tr t – 128 n +127 nên vi i u khi n có th nh y lùi [n u s c ng v i s âm] và nh y t i [ n u s c ng v i s dương]. L nh này có mã l nh 2 byte, byte th 2 chính là giá tr l ch tương i: Nơi nh y n thư ng ư c xác nh b i nhãn (label) và trình biên d ch s tính toán giá tr l ch. nh v tương i có ưu i m là mã l nh c nh, nhưng khuy t i m là ch nh y ng n trong ph m vi -128÷127 byte [256byte], n u nơi nh y n xa hơn thì l nh này không áp ng ư c – s có l i. Ví d : SJMP X1 ;nhay den nhan co ten X1 nam trong ;tam vuc 256 byte 3.2.6. nh a ch tuy t i Ki u nh a ch tuy t i ư c dùng v i các l nh ACALL và AJMP. Các l nh này có mã l nh 2 byte. nh a ch tuy t i có ưu i m là mã l nh ng n (2 byte), nhưng khuy t i m là mã l nh thay i và gi i h n ph m vi nơi nh y n, g i n không quá 2 kbyte. Ví d : AJMP X1 ;nhay den nhan co ten X1 nam trong ;tam vuc 2Kbyte 3.2.7. nh a ch dài (Long Addressing) Ki u nh a ch dài ư c dùng v i l nh LCALL và LJMP. Các l nh này có mã l nh 3 byte – trong ó có 2 byte (16bit) là a ch c a nơi n. C u trúc mã l nh là 3 byte. nh a ch dài là có th g i 1 chương trình con ho c có th nh y n b t kỳ vùng nh nào vùng nh 64K. Ví d : LJMP X1 ;nhay den nhan co ten X1 nam trong ;tam vuc 64Kbyte 3.2.8. nh a ch ch s (Index Addressing) Ki u nh a ch ch s “dùng m t thanh ghi cơ b n: là b m chương trình PC ho c b m d li u DPTR” k t h p v i “m t giá tr l ch (offset) còn - 120 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- g i là giá tr tương i [thư ng lưu trong thanh ghi]” t o ra 1 a ch c a ô nh c n truy xu t ho c là a ch c a nơi nh y n. Vi c k t h p ư c minh h a như sau: Base Register Offset Effective Address PC (or PDTR) + A = Ví d : MOVC A, @A + DPTR ;lay du lieu trong o nho ;DPTR+A de nap vao thanh ghi A 3.3. T P L NH C A 8051 kh o sát t p l nh thì ph i th ng nh t m t s qui nh v các t ng kí hi u trong t p l nh thư ng ư c s d ng: - Direct tư ng trưng cho ô nh n i có a ch Direct. - Rn tư ng trưng cho các thanh ghi t thanh ghi R0 n thanh ghi R7. - @Ri tư ng trưng cho ô nh có a ch lưu trong thanh ghi Ri và Ri ch có 2 thanh ghi là R0 và R1. - Các l nh thư ng x y ra gi a các i tư ng sau: + Thanh ghi A. + Thanh ghi Rn. + Ô nh có a ch direct. + Ô nh có a ch lưu trong thanh ghi @Ri. + D li u 8 bit #data. + Addr11 là a ch 11 bit t A11 – A0: a ch này ph c v cho l nh nh y ho c l nh g i chương trình con trong ph m vi 2 kbyte. + Addr16 là a ch 16 bit t A15 – A0: a ch này ph c v cho l nh nh y và l nh g i chương trình con xa trong ph m vi 64 kbyte – ó chính là a ch nh y n, ho c a ch c a chương trình con. 3.3.1. NHÓM L NH S HC 1. L nh c ng không nh ADD A, Rn ;C ng n i dung thanh ghi A v i n i dung ;thanh ghi Rn, k t qu lưu trong thanh ghi A. Ví d : ADD A, R0 ;A=91h, (C)=1. ADD A, direct ;C ng n i dung c a ô nh có a ch direct v i n i ;dung thanh ghi A, k t qu ch a thanh ghi A. - 121 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
- Ví d : Gi s A có n i dung 0D9h và ô nh có a ch 30h lưu n i dung 0B8h, l nh: ADD A, 30h ;A=91h, (C)=1. ADD A, @Ri ;C ng n i dung c a ô nh có a ch ch a trong ;thanh ghi Ri v i thanh ghi A, k t q a lưu tr trong thanh ghi A. Ví d : Gi s A có n i dung 0D9h, ô nh có a ch 30h có n i dung là 0B8h, R0 có a ch t là 30H, l nh: ADD A, @R0 ;A=91h, (C)=1. ADD A, #data ;C ng d li u data 8 bit (d0 n d7) v i n i dung ;thanh ghi A, k t qu lưu tr trong A. Ví d : Gi s A có n i dung D9h, d li u tr c ti p là B8h, l nh: ADD A, #0B8h ;A=91h, (C)=1. 2. L nh c ng có nh ADDC A, Rn ;C ng n i dung thanh ghi A v i n i dung thanh ghi ;Rn v i bit C, k t qu lưu trong thanh ghi A. Ví d : Gi s A có n i dung 0D9h, R0 có n i dung là 0B8h, (C) =1, l nh: ADDC A, R0 ;A=92h, (C)=1. ADDC A, direct ;C ng n i dung c a ô nh có a direct n i dung ;thanh ghi A và bit C, k t qu ch a thanh ghi A. Ví d : Gi s A có n i dung 47h, ô nh 30h có n i dung 32h và c (C) = 0, l nh: ADDC A, 30h ;A=79h, (C)=0. ADDC A, @Ri ;C ng n i dung c a ô nh có a ch ch a trong ;thanh ghi Ri v i thanh ghi A v i bit C, k t qu lưu tr trong thanh ghi A. Ví d : Gi s A có n i dung 0D9h, ô nh 30h có n i dung là 0B8h, R0 có n i dung 30h và (C) =1, l nh: ADDC A, @R0 ;A=92h, (C)=1. ADDC A, #data ;C ng d li u data 8 bit (d0 n d7) v i n i dung ;thanh ghi A và bit C, k t qu lưu tr trong A. Ví d : Gi s thanh ghi A có n i dung 37h, d li u tr c ti p 24h, c nh (C) = 1, l nh: ADDC A, 24h ;A=5Ch, (C)=0. 3. L nh tr có nh SUBB A, Rn ;Tr n i dung thanh ghi A cho n i dung thanh ghi ;Rn và tr cho c Carry, k t qu lưu trong thanh ghi A. - 122 - Biên so n: Ks Dương Qu c Hưng Giáo Trình H Vi i u khi n
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật vi xử lý: Chương 1 - Review
49 p | 421 | 169
-
Bài Bài giảng Kỹ thuật Vi xử lý - Chương 2
22 p | 414 | 159
-
Bài Bài giảng Kỹ thuật Vi xử lý - Chương 3
122 p | 388 | 157
-
Bài giảng Kỹ thuật vi xử lý - ĐH Bách Khoa Đà Nẵng
403 p | 199 | 52
-
Bài giảng Kỹ thuật vi xử lý: Chương 2 - Phạm Ngọc Nam
85 p | 307 | 43
-
Bài giảng Kỹ thuật vi xử lý: Chương 1 - Phạm Ngọc Nam
84 p | 239 | 42
-
Bài giảng Kỹ thuật vi xử lý: Chương 6 - Phạm Ngọc Nam
15 p | 128 | 12
-
Bài giảng Kỹ thuật Vi xử lý: Chương 5 - Hồ Viết Việt
33 p | 103 | 8
-
Bài giảng Kỹ thuật Vi xử lý: Chương 4 - Hồ Viết Việt
102 p | 134 | 8
-
Bài giảng Kỹ thuật Vi xử lý: Chương 3 - Hồ Viết Việt
122 p | 87 | 8
-
Bài giảng Kỹ thuật Vi xử lý: Chương 1 - Hồ Viết Việt
50 p | 101 | 8
-
Bài giảng Kỹ thuật Vi xử lý: Chương 2 - Hồ Viết Việt
22 p | 118 | 7
-
Bài giảng Kỹ thuật Vi xử lý: Chương 6 - Hồ Viết Việt
43 p | 96 | 7
-
Bài giảng Kỹ thuật Vi xử lý: Chương 2 - Nguyễn Thị Quỳnh Hoa
53 p | 22 | 7
-
Bài giảng Kỹ thuật Vi xử lý: Chương 3 - Nguyễn Thị Quỳnh Hoa
131 p | 19 | 5
-
Bài giảng Kỹ thuật Vi xử lý: Chương 5 - Nguyễn Thị Quỳnh Hoa
56 p | 14 | 5
-
Bài giảng Kỹ thuật vi xử lý: Chương 1 - Nguyễn Thị Quỳnh Hoa
64 p | 12 | 4
-
Bài giảng Kỹ thuật Vi xử lý: Chương 4 - Nguyễn Thị Quỳnh Hoa
135 p | 11 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn