intTypePromotion=3

Giáo trình Kỹ thuật vi điều khiển - ĐH Sư Phạm Kỹ Thuật

Chia sẻ: Dang Xuan Lam | Ngày: | Loại File: PDF | Số trang:80

0
189
lượt xem
59
download

Giáo trình Kỹ thuật vi điều khiển - ĐH Sư Phạm Kỹ Thuật

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

Giáo trình Kỹ thuật vi điều khiển gồm các chương: kiến trúc hệ vi xử lý, bộ vi điều khiển AT89C51 (80C51), Tập lệnh của họ VĐK AT89/80C51; hai phần phụ lục: tra cứu nhanh tập lệnh và các hệ thống số cùng tài liệu tham khảo. Cuốn sách là tài liệu học tập, giảng dạy cho sinh viên và giảng viên ngành Điện tử, các ngành về kỹ thuật.

Chủ đề:
Lưu

Nội dung Text: Giáo trình Kỹ thuật vi điều khiển - ĐH Sư Phạm Kỹ Thuật

  1. Kỹ Thuật Vi Điều Khiển
  2. CƯƠNG MÔN H C K THU T VI I U KHI N CHƯƠNG I : GI I THI U T NG QUÁT V H VI X LÝ 1.1. Ki n trúc c a h Vi x lý Ki n trúc h Vi x lý là m t thu t ng dùng ch rõ nh ng c trưng c a h vi x lý trong ó bao g m có c u trúc ph n c ng và t ch c ph n m m ư c cài t trong h . M t h th ng vi x lý hay g i ng n hơn là h vi x lý thư ng bao g m các thành ph n cơ b n như: - B x lý trung tâm CPU (Central Processing Unit ) là trung tâm u não c a h - B nh tâm bao g m 2 thành ph n là ROM và RAM - Thi t b vào/ra d li u - Các kênh thông tin hay Bus h th ng… T t c các thi t b có các ch c năng như v y u ư c g i là m t h vi x lý.Trong th c t có r t nhi u hãng ch t o các b vi x lý cho các máy vi tính như: IBM, Intel, Cyrix, AMD, Motorola.... nhưng thông d ng nh t v n là b vi x lý c a Intel. Các b vi x lý c a Intel ư c phát tri n qua các th i kỳ như sau: Năm 1971, Intel ưa ra b vi x lý 4004 v i 4 bit d li u, 12 bit a ch ; 0,8MHz Năm 1972, b vi x lý Intel 8080 ra i v i 8bit d li u, 12 bit a ch ; Năm 1978, b vi x lý Intel 8086 ra i v i 16bit d li u, 20 bit a ch ; t c 10MHz Năm 1979, b vi x lý Intel 8088 ra i nhưng v n tương thích v i h th ng 8086 Năm 1982 b vi x lý 80286 ra i v i 16bit d li u, 20 bit a ch , t c 20MHz Năm 1985-1988, b vi x lý 80386 ra i v i 32 bit d li u và 32 bit a … Năm 1989, b vi x lý 80486 ra i v i 32 bit d li u và 32 bit a ch t c n 60M Năm 1993, b vi x lý Pentium ra i v i 64 bit d li u, t c x lý 100MHz sau ó là các b vi x lý Pentium Pro,Pentium II, Pentium III, Celeron, Pentium 4… 1.1.1. Sơ kh i t ng quát c a h Vi x lý Sơ kh i : Data Controlu B Bus ROM CPU I/O U RAM Adress Bus Hình 1.1 C u trúc các kênh thông tin trong h VXL Ch c năng các kh i : B x lý trung tâm CPU (Central Processing Unit ) là trung tâm u não c a h , nó có ch c năng thu th p, x lý thông tin và i u khi n m i ho t ng c a h vi x lý. B nh trung tâm có nhi m v lưu tr thông tin d li u trư c khi CPU x lý KHOA I N – I N T - HSPKT-HY_12/2004 Trang 1
  3. CƯƠNG MÔN H C K THU T VI I U KHI N Thi t b I/O th c hi n vi c nh n d li u t các kênh thông tin t bên ngoài vào cho CPU x lý và xu t ra các tín hi u i u khi n h th ng Các kênh thông tin hay Bus h th ng là c u n i liên k t gi a các kh i trong ó th c hi n 3 vi c chính là liên k t các Bus a ch , Bus i u khi n và Bus d li u. T ch c các kênh thông tin trong h Vi x lý Memory 0 Address Bus Program Memory Ki n trúc CPU Data Bus Von Neumann Data Memory Memory 0 Address Bus Program Fetch Bus CPU Ki n trúc Harvard Address Bus 0 Data Data Bus Hình 1.2: C u trúc các kênh thông tin trong h VXL Trên ây là 2 cách t ch c b nh theo ki u Von Neumann và Harvard. V i ki u t ch c b nh chương trình và d li u tách bi t cho phép t c truy xu t thông tin nhanh hơn áng k . Các kênh d li u u là kênh song song và dùng chung cho t t c các b nh , tuy nhiên nó ph i ư c ki m soát thông qua các c ng lôgic 3 tr ng thái. C ng này có nhi m v t o ra tr ng thái c bi t khi có nh ng thành ph n không ư c kích ho t làm vi c, tr ng thái c bi t này s cách ly v m t tín hi u gi a kênh thông tin v i t ng thành ph n trong h m c dù chúng v n ư c k t n i v i nhau v m t v t lý. 1.1.2. Kh i x lý trung tâm (Central Processing Unit) B vi x lý là h t nhân c a h vi x lý, nó là thành ph n quan tr ng nh t ki m soát t t c các ho t ng c a h và th c hi n các thao tác trên d li u. H u h t các CPU ư c hình thành t các m ch lôgic nh m th c hi n liên t c 2 thao tác là tìm n p l nh t b nh gi i mã và th c thi l nh. CPU có kh năng hi u và th c thi các l nh d a trên m t t p các mã nh phân KHOA I N – I N T - HSPKT-HY_12/2004 Trang 2
  4. CƯƠNG MÔN H C K THU T VI I U KHI N g i là mã máy trong ó m i mã nh m th c hi n m t thao tác nào ó.T h p các l nh cho m i lo i CPU g i là t p l nh và nó thư ng chia ra thành các nhóm l nh như: - Nhóm l nh chuy n d li u - Nhóm l nh s h c - Nhóm l nh Lôgic - Nhóm l nh r nhánh chương trình - Nhóm l nh x lý bít C u trúc ơn gi n c a m t lo i CPU ư c minh h a như sau: CPU Registe PC Adress Bus MAR Data Bus TM AC I CU ALU Control Bus FLAG Hình 1.3 C u trúc chung c a m t b CPU - PC (Program Couter): B m trương trình có vai trò như m t con tr , tr nô nh ch a l nh mà CPU c n truy nh p - IR (Instruction Register):Thanh ghi l nh IR (Instruction Register) Thanh ghi l nh th c hi n ch c năng ch a l nh mà CPU ang th c hi n. - CU (Control Unit) ơn v i u khi n có ch c năng gi i mã l nh. - MAR ( Memory Address Register) Thanh ghi ch b nh th c hi n ch c năng ch a a ch c a ô nh hi n th i mà CPU ang truy nh p. - ALU (Arithmetic Logic Unit) ơn v s h c logic, th c hi n các phép tính s h c, logic và các phép x lý d li u khác. - ACC (Accumulator) Thanh ch a , ch a toán h ng c a m t phép tính ho c k t qu c a phép tính. - TMP (Temporary) Thanh ghi t m, ch a toán h ng th hai c a phép tính. - FLAGS Thanh ghi c ch a thông tin v tr ng thái k t qu phép tính sau khi th c hi n l nh. - Address Bus : Bus a ch - Data Bus : Bus d li u - Control Bus : Bus i u khi n KHOA I N – I N T - HSPKT-HY_12/2004 Trang 3
  5. CƯƠNG MÔN H C K THU T VI I U KHI N 1.1.3. Quá trình truy xu t và x lý thông tin Vi c tìm n p m t l nh t Ram h th ng là m t trong nh ng thao tác cơ b n nh t mà CPU ph i th c hi n. Quá trình tìm n p l nh ư c th c hi n theo trình t như sau: Address Bus CPU PC n Data Bus IR opcode RAM n+2 Control Bus n+1 Clock opcode n Read n-1 Hình1.4 : Ho t ng c a Bus cho chu kỳ tìm n p l nh a ch ang ch a trong PC s ư c g i lên trên bus a ch . Tín hi u cho phép c l nh t b nh s ư c kích ho t sang tr ng thái tích c c D li u hay mã l nh s ư c c t b nh và g i lên kênh d li u r i chuy n v thanh ghi l nh IR. Ti p theo ó là n i dung c a PC (t c a ch ) s ư c tăng lên1 tr t i a ch k ti p trong b nh . Mã l nh s ư c chuy n xu ng b gi i mã và căn c theo mã l nh CPU s tri n khai th c hi n l nh.Trư ng h p toán h ng n m trong b nh chương trình ngay sau mã l nh. CPU ti p t c ưa PC nên bus a ch tr t i toán h ng r i ưa ra thanh ghi th c hi n l nh. VD: ADD A,#3EH N u toán h ng n m ngay trong thanh ghi c a CPU, khi ó CPU th c hi n l nh ngay VD : ADD A,R1 Toán h ng n m trong b nh mà a ch c a nó trong 1 thanh ghi c a CPU .CPU ưa a ch cho thanh ghi a ch (MAR) c d li u và th c hi n l nh. VD : ADD A,@R0 1.1.4. B nh ch c (Read Only Memory - ROM): ROM cơ b n: ROM dùng lưu tr chương trình i u hành (Monitor) c a h VXL. Chương trình này s quy nh m i ho t ng c a h VXL. B VXL s căn c vào các l nh ch a trong chương trình i u khi n h VXL th c hi n các ch c năng, nhi m v ư c n nh trong l nh. Nói cách khác, h VXL s th c hi n m t cách trung th c thu t toán mà ngư i thi t k ph n m m ã xây d ng và cài t vào ROM c a h . Ngoài ra, ROM trong h VXL còn dùng lưu tr các b ng bi u, tham s c a h th ng mà trong quá trình ho t ng không ư c thay i như: b ng a ch c ng giao ti p, các b ng tra c u s li u, các b mã c n s d ng trong h . KHOA I N – I N T - HSPKT-HY_12/2004 Trang 4
  6. CƯƠNG MÔN H C K THU T VI I U KHI N ROM cũng ư c qu n lý theo phương th c ma tr n i m, nó có nhi u ch ng lo i khác nhau: ROM, PROM, EPROM, EEPROM,… ROM là b nh c nh có c u trúc ơn gi n nh t. N i dung c a nó do nhà s n xu t ch t o, ngư i s d ng không th thay i n i dung này ư c n a. PROM (Programmable ROM - ROM có kh năng l p trình ư c): c i m chung: N i dung c a PROM do nhà s n xu t ho c ngư i thi t k h VXL n p vào nhưng ch oc 1 l n. Sau khi n p xong n i dung này không th thay i ư c n a. EPROM (Eraseable PROM ROM n p/xoá ư c nhi u l n): EPROM là b nh c nh có c u trúc c bi t. N i dung c a nó do nhà s n xu t hay ngư i thi t k h VXL n p vào và có th n p/xoá nhi u l n. Ngư i ta t o ra 1 bit thông tin trong EPROM d a trên nguyên t c làm vi c c a Transistor trư ng có c c c a cách ly kênh c m ng (MOSFET kênh c m ng). EEPROM (Electrical EPROM ROM có kh năng l p trình và xoá ư c b ng i n). 1.1.5. B nh W/R còn g i là b nh truy c p ng u nhiên (RAM) RAM là b nh có th ghi và c ư c, thông tin trên RAM s b m t khi m t ngu n cung c p. Theo phương th c lưu tr thông tin, RAM ư c chia thành 2 lo i cơ b n: RAM tĩnh và RAM ng. RAM tĩnh: Có th lưu tr thông tin lâu tuỳ ý mi n là ư c cung c p i n năng - t t c các lo i ph n t nh b ng Trigơ u thu c lo i này. RAM ng: Ch lưu ư c thông tin trong 1 kho ng th i gian nh t nh. Mu n kéo dài th i gian này c n có phương th c làm tươi l i thông tin trong ph n t nh RAM. Ph n t nh c a RAM ng ơn gi n nh t là m t linh ki n i n dung - t di n. S d ng RAM ng có ph c t p nhưng v c u trúc nh l i ơn gi n, tiêu t n ít năng lư ng, tăng m t b nh và ôi khi còn làm tăng c t c làm vi c c a b nh . C u trúc m ch i n c a các b nh RAM r t a d ng c v công ngh ch t o chúng (TTL, MOS,… ) và các yêu c u s d ng chúng như các yêu c u v ghép n i, t c làm vi c, mt linh ki n và dung lương c n thi t… 1.1.6. Các thi t b xu t/nh p: Các thi t b xu t/nh p hay các thi t b ngo i vi k t h p v i các m ch giao ti p (Interface) s t o ra các ư ng truy n thông gi a h VXL v i th gi i bên ngoài. Tuy nhiên trao i thông tin gi a h VXL v i các thi t b ngo i vi, c n có các phương pháp i u khi n thích h p như: i u khi n vào/ra b ng chương trình, i u khi n vào/ra b ng ng t, i u khi n vào/ra b ng ph n c ng vv… 1.1.7. C u trúc kênh chung c a h VXL: Kênh (Bus) là t p h p các ư ng thông tin có cùng m c ích. CPU có th giao ti p ư c v i các b ph n khác trong h VXL theo yêu c u, m i h VXL c n s d ng 3 kênh như : - Kênh a ch (Adress Bus). - Kênh d li u (Daten Bus). - Kênh i u khi n (Control Bus). KHOA I N – I N T - HSPKT-HY_12/2004 Trang 5
  7. CƯƠNG MÔN H C K THU T VI I U KHI N th c hi n thao tác c ho c ghi, CPU xác nh rõ v trí ( a ch ) c a d li u (ho c l nh) b ng cách t a ch ó lên kênh a ch , sau ó kích ho t tín hi u Read ho c Write trên kênh i u khi n ch ra thao tác là c hay ghi. N u kích ho t tín hi u i u khi n Read, thao tác c l y 1 byte d li u t b nh v trí ã xác nh và t byte này lên kênh d li u. CPU s c d li u và c t d li u vào 1 trong các thanh ghi n i c a CPU. N u kích ho t tín hi u i u khi n Write, CPU s th c hi n thao tác ghi b ng cách xu t d li u lên kênh d li u. Nh vào tín hi u i u khi n, b nh nh n bi t ư c ây là thao tác ghi và lưu d li u vào v trí ã ư c xác nh. Kênh d li u cho phép trao i thông tin gi a CPU và b nh , cũng như gi a CPU v i thi t b ngo i vi. Thông thư ng các h VXL dành h u h t th i gian cho vi c di chuy n d li u, a s các thao tác di chuy n d li u x y ra gi a 1 thanh ghi c a CPU v i ROM và RAM ngoài. Do ó l n c a kênh d li u nh hư ng r t l n t i hi u su t c a h VXL. N u b nh c a h th ng r t l n và CPU có kh năng tính toán cao, nhưng vi c truy xu t d li u – di chuy n d li u gi a b nh và CPU thông qua kênh d li u l i b ngh n thì hi n tư ng “ngh n c chai” này chính là h u qu c a r ng kênh d li u không l n. kh c ph c hi n tư ng này, c n tăng ư ng tín hi u cho kênh d li u. A CPU D D A Control Bus R E T ROM S E S N B RAM B U U S S 16 I/O Hình 1.5 :C u trúc kênh chung c a h th ng VXL Như hình 1.3, kênh d li u là kênh 2 chi u, còn kênh a ch là kênh 1 chi u. Các thông tin v a ch luôn ư c cung c p b i CPU, trong khi các d li u di chuy n theo c 2 hư ng tuỳ thu c vào thao tác th c hi n là c hay ghi. Thu t ng “d li u” ư c s d ng theo nghĩa t ng quát: “thông tin” di chuy n trên kênh d li u có th là l nh c a chương trình, a ch theo sau l nh ho c d li u ư c s d ng b i chương trình. Kênh i u khi n là t p h p các tín hi u, m i tín hi u có m t vai trò riêng trong vi c i u khi n có tr t t ho t ng c a h th ng. Các tín hi u i u khi n ư c cung c p b i CPU ng b vi c di chuy n thông tin trên các kênh a ch và d li u. Các b VXL thư ng có 3 tín hi u i u khi n: Read, Write, Clock. Tuy nhiên tuỳ vào yêu c u c th cũng như c u trúc ph n c ng c a t ng h VXL mà s lư ng tín hi u i u khi n có th khác nhau. KHOA I N – I N T - HSPKT-HY_12/2004 Trang 6
  8. CƯƠNG MÔN H C K THU T VI I U KHI N 1.2. Các h th ng s liên quan V K H m th p phân (Decimal): H m th p phân còn g i là h m cơ s mư i và nó ư c bi u di n b i 10 con s t (0,1,2,3,4,5,6,7,8,9 ) nh ng con s này ư c s d ng r t nhi u trong khoa h c k thu t cũng như trong i s ng hàng ngày, khi bi u di n s th p phân thì d ng sau dãy s thư ng có ch D. Ví d : Ba nghìn Chin trăm B y mươi Tám ư c bi u di n như sau 3978 = 3x103 + 9x102 + 7x101 + 8x100 = 3000 + 900 + 70 + 8 H m th p l c phân (Hexadecimal): H m th p phân còn g i là h m cơ s mư i sáu và nó ư c bi u di n b i 16 ký s (0,1,2,3,4,5,6,7,8,9,B,C,D,E,F) nh ng con s này ư c s d ng r t nhi u trong khoa h c k thu t c bi t là khoa h c máy tính vì bi u di n mã Hexa r t ng n g n, khi bi u di n s th p l c phân thì sau dãy s ph i có ch H. Ví d : 3978h , 12CCh, 1998h, ABCDh, 2008h … H m nh phân (Binary): H m nh phân còn g i là h m cơ s hai và nó ư c bi u di n b i 2 con s là 0 và 1, trong k thu t i n t s thì s 0 g i là m c logic th p ng v i i n áp th p, s 1g i là m c logic cao tương ng v i i n áp cao nh t. M i ký hi u 0 ho c 1 ư c g i là 1 Bit (Binary Digit), khi bi u di n s nh phân thì d ng sau dãy s ph i có ch B. Ví d : 1100b ; g i là 1 nibble 10011001b ; g i là 1 Byte 1010101111001101b ; g i là 1 Word Trong dãy s nh phân ư c bi u di n thì s nh phân sát ph i g i là bít LSB còn s nh phân sát trái g i là bít MSB Ví d : 1010101010101010 MSB LSB S nh phân thư ng ư c bi u di n 2 d ng là s nh phân có d u và s nh phân không d u, n u s nh phân không d u s ch bi u di n các s không âm (≥0) còn s nh phân có d u thì bi u di n ư c c giá tr âm Ví d : (1101) = 1x23 + 1x22 + 0x21 + 1x20 = 8 + 4 + 0 + 1 = 13 D i giá tr c a các s có d u 8 bít là [-128, +127 ] D i giá tr c a các s có d u 16 bít là [-32768, +32767 ] Trong khi bi u di n dãy s nh phân có d u thì ngư i ta s d ng bít MSB quy ư c cho bít d u, v i bít 0 cho dãy s nh phân dương còn bít 1 cho dãy s nh phân âm. H m BCD (Binary Coded Decimal): S m BCD ư c nh nghĩa là s th p phân nhưng ư c bi u di n dư i d ng nh phân 4 bít, nhưng dãy s nh phân 4 bít này khi quy sang h th p phân thì giá tr c a nó ph i ≤ 9 .Trong k thu t i n t nói chung thì mã BCD ư c s d ng gi i mã hi n th LED b y thanh… Ví d : (0011), (0100), (0101), (0110), …(1001) ; ây g i là s BCD không nén Ví d : (00110100), (01010110), … (01111000) ; ây g i là s BCD nén KHOA I N – I N T - HSPKT-HY_12/2004 Trang 7
  9. CƯƠNG MÔN H C K THU T VI I U KHI N Dư i ây là b ng các mã BCD BCD Th p phân Th p phân BCD 0 00 00 8 10 00 1 00 01 9 10 01 2 00 10 10 10 10 3 00 11 11 10 11 4 01 00 12 11 00 5 01 01 13 11 01 6 01 10 14 11 10 7 01 11 15 11 11 Ví d : Cho s th p phân là 15 , bi u di n dư i d ng s BCD là 00010101 S bù 2: Trong k thu t Vi x lý bi u di n m t con s nào ó dư i d ng dãy s nh phân thì ngoài vi c bi u di n s không d u, s có d u thì ngư i ta còn s d ng cách bi u di n s bù 2. V y s bù 2 s bi u di n như th nào? Ví d : Hãy bi u di n dãy s A = 10011001 sang s bù 2 c a nó: - b1: Tìm s bù 1 c a A(b ng cách l y bù t t c các bit c a A): 01100110 - b2: Tìm s bù 2 c a A (b ng cách l y s bù 1 c ng cho 1) : 01100111 n ây ta nh n th y r ng s bù 2 c a m t s nào ó nó chính là s i c a nó và t ng = 0 Phép c ng nh phân không d u : Ví d : Cho 2 s nh phân như sau A = 10010011 ; B = 00111001 hãy tìm t ng Y c a 2 s nh phân ã cho A: 10010011b 0 + 0 = 0 0 + 1 = 1 B: 00111001b 1 + 0 = 1 Y = A+B = 11001100b 1 + 1 = 0 ; nh 1 Phép tr nh phân: Ví d : Cho 2 s nh phân như sau A = 10010011 ; B = 00111001 hãy tìm hi u Z c a 2 s nh phân ã cho (Lưu ý r ng phép tr có th th c hi n b ng cách bi n thành phép c ng) A: 10010011b 0 - 0 = 0 0 - 1 = 1 ; mư n 1 B: 00111001b 1 - 0 = 1 Y = A - B = 01011010b 1 - 1 = 0 Phép nhân nh phân : Ví d : Cho 2 s nh phân như sau A = 00100101 ; B = 00000100 hãy tìm tích F Khi nhân 2 dãy s nh phân v i nhau thì ta t phép toán nhân gi ng như nhân s th p phân, k t qu c a phép nhân 2 dãy s nh phân 8 bít s thu ư c dãy s nh phân là 16 bít, như v y ta có F = A*B = 0000000010010100b KHOA I N – I N T - HSPKT-HY_12/2004 Trang 8
  10. CƯƠNG MÔN H C K THU T VI I U KHI N Phép chia nh phân : Ví d : Cho 2 s nh phân như sau A = 10010110 ; B = 00000100 hãy tìm thương Khi chia 2 dãy s nh phân v i nhau thì ta t phép toán chia cũng gi ng như khi chia 2 s th p phân, k t qu c a phép chia cũng như ph n dư (n u có) thu ư c tương t như khi làm phép chia i v i s th p phân, như v y ta có M = A/B = 00100101b dư 0010b Chuy n i s th p phân sang nh phân : chuy n i s th p phân sang s nh phân ngư i ta thư ng dùng phương pháp l y s th p phân c n chuy n r i chia 2 liên ti p n khi không th chia ư c n a thì d ng Ví d : Chuy n s th p phân 25 sang s nh phân không d u Chia 2 Thương s Dư s 25/2 = 12 1 LSB 12/2 = 6 0 6/2 = 3 0 3/2 = 1 1 1/2 = 0 1 MSB K t qu thu ư c là: 11001 v i s dư l n th nh t là bít có tr ng s nh nh t Chuy n i s nh phân sang th p phân : chuy n i s nh phân sang s th p phân ngư i ta thư ng dùng phương pháp l y t ng c a tích n các s nh phân c n chuy n nhân v i 20 n 2N-1 hay theo bi u th c t ng quát như sau: A = B(N-1)* 2(N-1) + B(N-2)* 2(N-2) + B(N-3)* 2(N-3) + … + B(1)* 2(1) + B(0)* 2(0) Ví d : Chuy n s nh phân không d u 01011110b sang s th p phân A = 0*27 + 1*26 +0*25 + 1*24+ 1*23 + 1*22 + 1*21 + 0*20 = 94 như v y ta có 01011110b = 94 Chuy n i s nh phân sang Hexa : Ví d : Chuy n s nh phân 1100101011111110 sang s hexa Trư c h tta chia s nh phân ã cho thành các nhóm 4-bit tính t bít có tr ng s nh nh t, sau ó thay th m i nhóm 4-bit b ng ký hi u hexa tương ng v i nó ta s thu ư c k t qu như sau: 1100 1010 1111 1110 hay 1100101011111110b = CAFEh C A F E Chuy n i s Hexa sang nh phân: Ví d : Chuy n s hexa 2F8h và ABBAh sang s nh phân Tương t như trư ng h p trên ta s thay th m i ký hi u hexa b ng 4-bit nh phân tương ng v i nó và ta s thu ư c k t qu như sau: 2 F 8 0010 1111 1000 hay 2F8h = 001011111000b A B B A 1010 1011 1011 1010 hay ABBAh = 1010101110111010b KHOA I N – I N T - HSPKT-HY_12/2004 Trang 9
  11. CƯƠNG MÔN H C K THU T VI I U KHI N Mã ASCII: (American Standard Code for Information Interchange ) Quá trình trao i thông tin trong máy tính nói chung cũng như quá trình x lý thông tin c a các b vi x lý, t t c các thông tin u ư c bi u di n dư i d ng các s 0 và 1. M i t h p s 0 ho c 1 ư c gán m t ký t ch cái, ch s ho c m t ký t c bi t nào ó. Khi thông tin ư c truy n i, ư c lưu gi trong b nh và hi n th trên màn hình u dư i d ng ký t và tuân theo m t lo i mã chu n ư c s d ng r t r ng rãi g i là mã ASCII. B NG MÃ ASSII (American Standard Code for Information Interchange) KHOA I N – I N T - HSPKT-HY_12/2004 Trang 10
  12. CƯƠNG MÔN H C K THU T VI I U KHI N B NG MÃ ASSII m r ng KHOA I N – I N T - HSPKT-HY_12/2004 Trang 11
  13. CƯƠNG MÔN H C K THU T VI I U KHI N CHƯƠNG II : B VI I U KHI N 80C51/89C51 2.1. Gi i thi u chung v các b Vi i u khi n. Vi i u khi n (V K) là m t “h ” Vi x lý (VXL) ư c t ch c trong m t chip. Nó bao g m: B VXL (CPU) - B nh chương trình (ROM/EPROM/EEPROM/FLASH). - B nh d li u (RAM). - Các thanh ghi ch c năng, các c ng I/O, cơ ch i u khi n ng t và truy n tin n i ti p. - Các b th i gian dùng trong lĩnh v c chia t n và t o th i gian th c. - ... - B V K có th ư c l p trình i u khi n các thi t b thông tin, vi n thông, thi t b o lư ng, thi t b i u ch nh cũng như các ng d ng trong công ngh thông tin và k thu t i u khi n t ng. Có th xem b V K như m t h VXL On-chip, i v i AT89C51, nó có y ch c năng c a m t h VXL 8 bit, oc i u khi n b i m t h l nh, có s l nh m nh, cho phép l p trình b ng h p ng (Assembly). 2.2. S khác nhau gi a b Vi x lý và b Vi i u khi n. VXL VK Tiêu chí SS CPU, RAM, ROM, Timers, SFR, m ch giao ti p, h th ng ng t và cơ CPU ơn chíp. P h n c ng ch i u khi n ng t….. S d ng các t p l nh bao quát, S d ng các l nh i u khi n xu t m nh v ki u nh a ch . Các nh p, có th truy xu t d li u d ng Bit ho c Byte. Các nhóm l nh chính: l nh này có th truy xu t d T p l nh li u l n, th c hi n d ng 1/2 Chuy n d li u, i u khi n bi n logic, Byte, Byte, Word, Double r nhánh chương trình, tính toán s Word. h c và logic. Trong các h máy vi tính. Trong các h th ng i u khi n, o ng d ng lư ng và i u ch nh… KHOA I N – I N T - HSPKT-HY_12/2004 Trang 12
  14. CƯƠNG MÔN H C K THU T VI I U KHI N 2.3. C u trúc chung c a b Vi i u khi n 80C51. 2.3.1. Sơ kh i. External Interrupts Timer 1 Counter 4K 128 Bytes Interrupt Inputs FLASH RAM Timer 0 Control CPU OSC Bus Serial 4 I/O Ports Control Ports /WR /RD TxD RxD P0 P2 P1 P3 Address/Data Hình 2.1 : Sơ kh i h V K AT89C51 B V K 8 bit AT89C51 ho t ng t n s 12 MHz, v i b nh ROM 4Kbyte, b nh RAM 128 Byte cư trú bên trong và có th m r ng b nh ra ngoài. b V K này còn có 4 c ng 8 bit (P0…P3) vào/ ra 2 chi u giao ti p v i thi t b ngo i vi. Ngoài ra, nó còn có: - CPU - 2 b inh th i 16 bit (Timer 0 và Timer 1) - M ch giao ti p n i ti p. - B x lý bit (thao tác trên các bit riêng r ). - H th ng i u khi n và x lý ng t. - Các kênh i u khi n/ d li u/ a ch . - Các thanh ghi ch c năng c bi t (SFR). Tuy nhiên, tuỳ thu c vào t ng h V K c a t ng hãng s n xu t khác nhau mà tính năng cũng như ph m vi ng d ng c a m i b V K là khác nhau, và chúng ư c th hi n trong các b ng th ng kê sau: KHOA I N – I N T - HSPKT-HY_12/2004 Trang 13
  15. CƯƠNG MÔN H C K THU T VI I U KHI N ROM RAM Tc Chân Timer/ HVK UART Ng t (bytes) (bytes) (MHz) I/O Counter 8051 8031AH ROMLESS 128 12 32 2 1 5 8051AH 4K ROM 128 12 32 2 1 5 8051AHP 4K ROM 128 12 32 2 1 5 8751H 4K EPROM 128 12 32 2 1 5 8751BH 4K EPROM 128 12 32 2 1 5 8052 8032AH ROMLESS 256 12 32 3 1 6 8052AH 8K ROM 256 12 32 3 1 6 8752BH 8K EPROM 256 12 32 3 1 6 80C51 32 80C31BH ROMLESS 128 12,16 32 2 1 5 80C51BH 4K ROM 128 12,16 32 2 1 5 80C31BH 4K ROM 128 12,16 32 2 1 5 87C51 4K EPROM 128 12,16,20,24 32 2 1 5 8xC52/54/58 80C32 ROMLESS 256 12,16,20,24 32 3 1 6 80C52 8K ROM 256 12,16,20,24 32 3 1 6 87C52 8K EPROM 256 12,16,20,24 32 3 1 6 80C54 16K ROM 256 12,16,20,24 32 3 1 6 87C54 16K EPROM 256 12,16,20,24 32 3 1 6 ROM RAM Tc Chân Timer/ HVK UART Ng t (bytes) (bytes) (MHz) I/O Counter 80C58 32K ROM 256 12,16,20,24 32 3 1 6 87C58 32K EPROM 256 12,16,20,24 32 3 1 6 8xL52/54/58 80L52 8K ROM 256 12,16,20 32 3 1 6 87L52 8K OTP ROM 256 12,16,20 32 3 1 6 80L54 16K ROM 256 12,16,20 32 3 1 6 87L54 16KOTP ROM 256 12,16,20 32 3 1 6 80L58 32K ROM 256 12,16,20 32 3 1 6 87L58 32KOTP ROM 256 12,16,20 32 3 1 6 KHOA I N – I N T - HSPKT-HY_12/2004 Trang 14
  16. CƯƠNG MÔN H C K THU T VI I U KHI N Công ngh HVK B nh ROM(Bytes) B nh d li u (Bytes) Timer 16 bit AT89C1051 1K Flash 64 RAM 1 CMOS AT89C2051 2K Flash 128 RAM 2 CMOS AT89C51 4K Flash 128 RAM 2 CMOS AT89C52 8K Flash 256 RAM 3 CMOS AT89C55 20K Flash 256 RAM 3 CMOS AT89S8252 8K Flash 256RAM+2K EPROM 3 CMOS AT89S53 12K Flash 256 RAM 3 CMOS B ng 2.1. Các thông s c a các h V K thu c hãng Intel _ Atmel (MSC 51) Trong th c t có r t nhi u h Vi i u khi n ư c s n xu t s d ng cho a m c ích, tuy nhiên trong khuôn kh tài li u này ch gi i h n m t s vi i u khi n c a hãng ATMEL Hình 2.2 : C u trúc các thanh ghi bên trong c a V K 80C51/89C51 KHOA I N – I N T - HSPKT-HY_12/2004 Trang 15
  17. CƯƠNG MÔN H C K THU T VI I U KHI N 2.3.2. Sơ chân tín hi u. 1 40 P1.0 -- --Vcc 2 39 P1.1-- --P0.0 (AD0) 3 38 P1.2-- --P0.1 (AD1) 4 37 P1.3-- --P0.2 (AD2) 5 36 P1.4-- --P0.3 (AD3) 80C51/89C51 6 35 P1.5-- --P0.4 (AD4) AT MEL 7 34 P1.6-- --P0.5 (AD5) 8 33 P1.7-- --P0.6 (AD6) 9 32 RST-- --P0.7 (AD7) 10 31 (RxD) P3.0-- --/EA/Vpp 11 30 (TxD) P3.1-- --ALE/(/PROG) 12 29 (/INT0) P3.2-- --/PSEN 13 28 (/INT1) P3.3-- --P2.7 (A15) 14 27 (T0) P3.4-- --P2.6 (A14) 15 26 (T1) P3.5-- --P2.5 (A13) 16 25 (/Wr) P3.6-- --P2.4 (A12) 17 24 (/Rd) P3.7-- --P2.3 (A11) 18 23 XTAL2-- --P2.2 (A10) 19 22 XTAL1-- --P2.1 (A9) 20 21 GND-- --P2.0 (A8) Hình 2.3 : Sơ chân tín hi u c a VXL 80C51/89C51 Ch c năng c a các chân tín hi u như sau: - P0.0 n P0.7 là các chân c a c ng 0. - P1.0 n P1.7 là các chân c a c ng 1. - P2.0 n P2.7 là các chân c a c ng 2 - P3.0 n P3.7 là các chân c a c ng 3 - RxD: Nh n tín hi u ki u n i ti p. - TxD: Truy n tín hi u ki u n i ti p. - /INT0: Ng t ngoài 0. - /INT1: Ng t ngoài 1. - T0: Chân vào 0 c a b Timer/Counter 0. - T1: Chân vào 1 c a b Timer/Counter 1. - /Wr: Ghi d li u vào b nh ngoài. - /Rd: c d li u t b nh ngoài. - RST: Chân vào Reset, tích c c m c logic cao trong kho ng 2 chu kỳ máy. - XTAL1: Chân vào m ch khuy ch a dao ng - XTAL2: Chân ra t m ch khuy ch a dao ng. - /PSEN : Chân cho phép c b nh chương trình ngoài (ROM ngoài). KHOA I N – I N T - HSPKT-HY_12/2004 Trang 16
  18. CƯƠNG MÔN H C K THU T VI I U KHI N - ALE (/PROG): Chân tín hi u cho phép ch t a ch truy c p b nh ngoài, khi On-chip xu t ra byte th p c a a ch . Tín hi u ch t ư c kích ho t m c cao, t n s xung ch t = 1/6 t n s dao ng c a b V K. Nó có th ư c dùng cho các b Timer ngoài ho c cho m c ích t o xung Clock. ây cũng là chân nh n xung vào n p chương trình cho Flash (ho c EEPROM) bên trong On-chip khi nó m c th p. - /EA/Vpp: Cho phép On-chip truy c p b nh chương trình ngoài khi /EA=0, n u /EA=1 thì On-chip s làm vi c v i b nh chương trình n i trú (trư ng h p c n truy c p vùng nh l n hơn dung lư ng b nh chương trình n i trú, thì b nh chương trình ngoài cũng ư c s d ng). Khi chân này ư c c p ngu n i n áp 12V (Vpp) thì On-chip m nh n ch c năng n p chương trình cho Flash bên trong nó. - Vcc: Cung c p dương ngu n cho On-chip (+ 5V). - GND: n i Mass. 2.4. Các thanh ghi ch c năng c bi t. Thanh N i dung LSB MSB ghi EA - ET2 ES ET1 EX1 ET0 EX0 IE - - PT2 PS PT1 PX1 PT0 PX0 IP CY AC FO RS1 RS0 OV - P PSW GATE C/(/T) M1 M0 GATE C/(/T) M1 M0 TMOD TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON SM0 SM1 SM2 REN TB8 RB8 TI RI SCON SMOD - - - GF1 GF0 PD IDL PCON T2 T2EX /SS MOSI MISO SCK P1 RXD TXD /INT0 /INT1 T0 T1 /WR /RD P3 B ng a ch tr c ti p c a các thanh ghi c bi t ư c lưu tr trong RAM Symbol Name Address Reset Values * ACC Thanh ghi tích lu 0E0h 00000000b *B Thanh ghi B 0F0h 00000000b * PSW T tr ng thái chương trình 0D0h 00000000b SP Con tr ngăn x p 81h 00000111b DP0L Byte cao c a con tr d li u 0 82h 00000000b DP0H Byte th p c a con tr d li u 0 83h 00000000b * P0 C ng 0 80h 11111111b * P1 C ng 1 90h 11111111b KHOA I N – I N T - HSPKT-HY_12/2004 Trang 17
  19. CƯƠNG MÔN H C K THU T VI I U KHI N Symbol Name Address Reset Values * P2 C ng 2 0A0h 11111111b * P3 C ng 3 0B0h 11111111b * IP TG i u khi n ng t ưu tiên 0B8h xxx00000b * IE TG i u khi n cho phép ng t 0A8h 0xx00000b TMOD i u khi n ki u Timer/Counter 89h 00000000b * TCON TG i u khi n Timer/Counter 88h 00000000b TH0 Byte cao c a Timer/Counter 0 8Ch 00000000b TL0 Byte th p c a Timer/Counter 0 8Ah 00000000b TH1 Byte cao c a Timer/Counter 1 8Dh 00000000b TL1 Byte th p c a Timer/Counter 1 8Bh 00000000b * SCON Serial Control 98h 00000000b SBUF Serial Data Buffer 99h indeterminate PCON Power Control 87h 0xxx0000b * : có th nh a ch bit, x: không nh nghĩa B ng 2.2 : a ch , ý nghĩa và giá tr c a các SFR sau khi Reset 2.4.1. Thanh ghi ACC: ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 Thanh ghi ACC là thanh ghi tích lu , nó có dài 8 bits và dùng lưu tr k t qu c a phép tính. Trong các t p l nh c a On-chip, nó thư ng ư c quy ư c ơn gi n là A. 2.4.2. Thanh ghi B : Thanh ghi B cũng có dài 8 bít . Nó thư ng ư c dùng chung v i thanh ghi A trong các phép toán nhân ho c chia. Khi nhân thì nó còn lưu tr k t qu c a byte cao còn khi chia thì dùng lưu k t qu ph n dư. i v i các l nh khác, nó có th xem như là thanh ghi m t m th i. Thanh ghi B dài 8 bits. 2.4.3. Thanh ghi SP: Thanh ghi con tr ngăn x p dài 8 bit. SP ch a a ch c a d li u hi n ang hi n hành nh c a ngăn x p hay n i khác là SP luôn tr t i ngăn nh s d ng cu i cùng (g i là nh ngăn x p). Giá tr c a nó ư c t ng tăng lên khi th c hi n l nh PUSH trư c khi d li u ư c lưu tr trong ngăn x p. SP s t ng gi m xu ng khi th c hi n l nh POP. Ngăn x p có th t b t c nơi nào trong RAM on-chip, nhưng sau khi kh i ng l i h th ng thì con tr ngăn x p m c nh s tr t i a ch kh i u là 07h, vì v y ngăn x p s b t u t a ch 08h. Ta cũng có th nh con tr ngăn x p t i a ch mong mu n b ng các l nh di chuy n d li u thông qua nh a ch t c th i. Nói thêm v ngăn x p: Ngăn x p là m t vùng c a b nh RAM dùng lưu tr thông tin t m th i (có th là d li u ho c a ch ), lý do c n có không gian lưu tr này là vì s lư ng KHOA I N – I N T - HSPKT-HY_12/2004 Trang 18
  20. CƯƠNG MÔN H C K THU T VI I U KHI N thanh ghi có h n. Ngăn x p chi m 1 vùng nh có a ch t 08h ÷1Fh t c là toàn b 3 bank thanh ghi1,2,3 (g m24 Byte). N u trong 1 chương trình mà c n ph i có ngăn x p > 24 Byte thì ph i gán a ch cho ngăn x p lên vùng nh có a ch t 30h tr lên. Nh r ng khi reset h th ng thì giá tr c a SP = 07h. 2.4.4. Thanh ghi DPTR: D ph D pl Thanh ghi con tr d li u (16 bit) bao g m 1 thanh ghi byte cao (DPH-8bit) và 1 thanh ghi byte th p (DPL-8bit). DPTR có th ư c dùng như thanh ghi 16 bit ho c 2 thanh ghi 8 bit c l p. Thanh ghi này ư c dùng truy c p RAM ngoài. 2.4.5. Ports 0 to 3: P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 P0, P1, P2, P3 là các ch t c a các c ng 0, 1, 2, 3 tương ng. M i ch t g m 8 bit. Khi ghi m c logic 1 vào m t bit c a ch t, thì chân ra tương ng c a c ng m c logic cao. Còn khi ghi m c logic 0 vào m i bit c a ch t thì chân ra tương ng c a c ng m c logic th p. Khi các c ng m nhi m ch c năng như các u vào thì tr ng thái bên ngoài c a các chân c ng s ư c gi bit ch t tương ng. T t c 4 c ng c a on-chip u là c ng I/O hai chi u, m i c ng u có 8 chân ra, bên trong m i ch t bit có b “Pullup-tăng cư ng” do ó nâng cao kh năng n i ghép c a c ng v i t i (có th giao ti p v i 4 n 8 t i lo i TTL). 2.4.6. Thanh ghi SBUF: SBUF SBUF m d li u n i ti p g m 2 thanh ghi riêng bi t, m t thanh ghi m phát và m t thanh ghi m thu. Khi d li u ư c chuy n t i SBUF, nó s i vào b m phát, và ư c gi y ch bi n thành d ng truy n tin n i ti p. Khi d li u ư c truy n i t SBUF, nó s i ra t b m thu. 2.4.7. Các Thanh ghi Timer: Các ôi thanh ghi (TH0, TL0), (TH1, TL1) là các thanh ghi m 16 bit tương ng v i các b Timer/Counter 0 và 1. THX TLX 2.4.8. Các thanh ghi i u khi n: Các thanh ghi ch c năng c bi t: IP, IE, TMOD, TCON, SCON, và PCON bao g m các bit tr ng thái và i u khi n i v i h th ng ng t, các b Timer/Counter và c ng n i ti p. Chúng s ư c mô t ph n sau. 2.4.9. Thanh ghi PSW: CY AC FO RS1 RS0 OV - P KHOA I N – I N T - HSPKT-HY_12/2004 Trang 19

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản