cẤu trÚc vi xỬ lÝ vÀ vi ĐiỀu khiỂn
DESCRIPTION
CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN. PHAN HẢI PHONG Khoa Vật Lý – Trường ĐH Khoa Học Huế [email protected]. Mở đầu. 1971: tập đoàn Inter đã giới thiệu 8080. Sau đó các tập đoàn như Motorola, MOS-Technology, Zilog cũng giới thiệu các bộ vi xử lý tương tự: 6800, 6520, Z80... - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/2.jpg)
Mở đầu 1971: t p đoàn Inter đã gi i thi u 8080. ậ ớ ệ
Sau đó các t p đoàn nh Motorola, MOS-Technology, Zilog cũng ậ ưgi i thi u các b vi x lý t ng t : 6800, 6520, Z80...ớ ệ ộ ử ươ ự
1976: Inter gi i thi u b vi đi u khi n 8748, chip đ u ớ ệ ộ ề ể ầtiên trong h VĐK MCS-48.ọ
8748 bao g m: 1 CPU, 1Kb EPROM, 64 Byte RAM, 27 chân xu t ồ ấnh p và m t b đ nh th i 8 bit. ậ ộ ộ ị ờ
1980: Inter công b 89C51, VĐK đ u tiên c a h MSC-ố ầ ủ ọ51.
89C51 ch a trên 60000 transistor bao g m 4Kb ROM, 128 byte ứ ồRAM, 32 đ ng IO, 1 port n i ti p, 2 b đ nh th i 16 bit. ườ ố ế ộ ị ờ
04/20/2304/20/23 22
![Page 3: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/3.jpg)
Ch ng Iươ
04/20/2304/20/23 33
![Page 4: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/4.jpg)
Sơ đồ khối một hệ vi xử lý
04/20/2304/20/23 44
![Page 5: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/5.jpg)
Vi xử lý (μP)
Th c hi n các thao tác tính toán trên d li uự ệ ữ ệ Đ a ra tín hi u đi u khi n ho t đ ng cho toàn b h ư ệ ề ể ạ ộ ộ ệ
th ngố G m các m ch lô-gíc th c hi n liên t c vi c n p l nh và ồ ạ ự ệ ụ ệ ạ ệ
th c hi n l nhự ệ ệ Ho t đ ng theo m t chu i các l nh máy có s n -> ạ ộ ộ ỗ ệ ẵ
ch ng trìnhươ
04/20/2304/20/23 55
![Page 6: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/6.jpg)
Phân loại vi xử lý
Theo s bit có th đ c x lý đ ng th i: 4 bit, 8 bit, 16 ố ể ượ ử ồ ờbit, 32 bit…
Theo t p l nh: ậ ệ t p l nh ph c h p (CISC: Complex Instruction Set Computer) ậ ệ ứ ợ t p l nh thu g n (RISC: Reduced Instruction Set Computer)ậ ệ ọ
Theo ki n trúc:ế ki n trúc Von Neumann: vùng nh d li u và ch ng trình ế ớ ữ ệ ươ
không đ c phân chia đ c l p (truy c p trên cùng m t đ ng ượ ộ ậ ậ ộ ườđ a ch )ị ỉ
ki n trúc Harvard: vùng nh cho ch ng trình và cho d li u ế ớ ươ ữ ệđ c phân bi t rõ ràngượ ệ
04/20/2304/20/23 66
![Page 7: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/7.jpg)
Cấu trúc một vi xử lý
Lu ng d li u (Datapath): l u gi và x lý (tính toán) ồ ữ ệ ư ữ ửd li u, tác đ ng tr c ti p trên thông tinữ ệ ộ ự ế
Đ n v đi u khi n (Control Unit): đ a ra nh ng tín hi u ơ ị ề ể ư ữ ệđi u khi n đ đi u khi n ho t đ ng c a Datapathề ể ể ề ể ạ ộ ủ
o Hai thành ph n này cùng đ c xây d ng t các m ch ầ ượ ự ừ ạdãy và m ch lô-gíc t h pạ ổ ợ
04/20/2304/20/23 77
![Page 8: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/8.jpg)
Kiến trúc chung của vi xử lý
04/20/2304/20/23 88
![Page 9: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/9.jpg)
Cấu trúc Datapath
Kh i tính toán s h c lô-gíc (ALU: Arithmetic Logic ố ố ọUnit): x lý thông tin (th c hi n các phép toán trên d ử ự ệ ữli u)ệ
Kh i nh : l u tr d li u đ u vào, đ u ra, các bi n t m ố ớ ư ữ ữ ệ ầ ầ ế ạth i, các tham s …ờ ố
Đ ng bus d li u: v n chuy n d li u gi a các ph n t ườ ữ ệ ậ ể ữ ệ ữ ầ ửnh và t các ph n t nh đ n kh i tính toánớ ừ ầ ử ớ ế ố
04/20/2304/20/23 99
![Page 10: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/10.jpg)
Khối tính toán số học và logic
G m:ồ B c ngộ ộ B trộ ừ B ghi d chộ ị Kh i th c hi n phép toán lô-gícố ự ệ B nhân chiaộ
Các m ch tính toán là m ch lô-gíc t h p (không ch a ạ ạ ổ ợ ứcác ph n t nh ) => đ ng vào c a các toán h ng và ầ ử ớ ở ườ ủ ạ ởl i ra cho k t qu /tr ng thái luôn ph i có thêm các ố ế ả ạ ảm ch ch t đ l u các giá tr này.ạ ố ể ư ị
04/20/2304/20/23 1010
![Page 11: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/11.jpg)
Khối nhớ
Các thanh ghi (register) chung: l u d li u t m th iư ữ ệ ạ ờ Các thanh ghi có ch c năng đ c bi t:ứ ặ ệ
thanh ghi l nh (instruction register): l u tr mã l nh c a l nh ệ ư ữ ệ ủ ệ(opcode)
thanh ghi b đ m ch ng trình (Program counter): cung c p ộ ế ươ ấđ a ch hi n t i mà vi x lý đang truy nh p t i b nh ch ng ị ỉ ệ ạ ử ậ ớ ộ ớ ươtrình
thanh ghi con tr ch a đ a ch d li u (DPTR: Data Pointer)ỏ ứ ị ỉ ữ ệ đ a ch vùng ngăn x p (SP: Stack Pointer)ị ỉ ế
Các thanh ghi đ c đánh đ a ch và đ c qu n lý nh ượ ị ỉ ượ ả ưm t vùng nh đ c bi t.ộ ớ ặ ệ
04/20/2304/20/23 1111
![Page 12: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/12.jpg)
Cấu trúc và hoạt động của đơn vị điều khiển
Đ c th c thi b ng m t máy tr ng thái (SM), k t h p ượ ự ằ ộ ạ ế ợv i các m ch logic đi u khi n.ớ ạ ề ể
Tín hi u ra c a SM: đi u khi n Datapathệ ủ ề ể Tín hi u vào c a SM: các l nh đi u khi nệ ủ ệ ề ể
L nh đ c l u trong b nh ch ng trìnhệ ượ ư ộ ớ ươ Quá trình th c thi m t l nh:ự ộ ệ
N p l nhạ ệ Gi i mã l nhả ệ Th c hi n l nhự ệ ệ
04/20/2304/20/23 1212
![Page 13: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/13.jpg)
Quá trình nạp lệnh
Đ n v đi u khi n đ a n i dung c a b đ m ch ng ơ ị ề ể ư ộ ủ ộ ế ươtrình lên bus đ a ch c a b nh ch ng trình và cho ị ỉ ủ ộ ớ ươphép đ c b nh này.ọ ộ ớ
D li u đ c đ c ra t b nh ch ng trình sẽ đ c ữ ệ ượ ọ ừ ộ ớ ươ ượđ a lên bus l i vào c a vi x lý. D li u này chính là mã ư ố ủ ử ữ ệl nh (opcode).ệ
Opcode đ c ch t vào thanh ghi l nh c a vi x lý và b ượ ố ệ ủ ử ộđ m ch ng trình đ c tăng lên m t đ n v , tr t i byte ế ươ ượ ộ ơ ị ỏ ớmã ch ng trình ti p theo.ươ ế
04/20/2304/20/23 1313
![Page 14: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/14.jpg)
Hoạt động bus cho chu kì tìm nạp lệnh
04/20/2304/20/23 1414
N
Opcode
Thanh ghi lệnh
Bộ đếm chương trình
Bus địa chỉ
Bus dữ liệu
Opcode N
N+1
N-1
N+2
RAM
Clock
Read
![Page 15: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/15.jpg)
Bộ nhớ bán dẫn
Các ch ng trình và d li u đ c l u gi trong b nh . ươ ữ ệ ượ ư ữ ộ ớ Các b nh đ c truy xu t tr c ti p b i CPU: ROM, ộ ớ ượ ấ ự ế ở
RAM, flash. RAM:
B nh có th đ c/ghi ộ ớ ể ọ M t n i dung khi m t ngu n nuôi.ấ ộ ấ ồ Ch ng trình và d li u c a ng i dùng sẽ đ c n p vào RAM ươ ữ ệ ủ ườ ượ ạ
đ th c thi.ể ự ROM:
B nh ch đ c ộ ớ ỉ ọ Không m t n i dung khi không có ngu n nuôi. ấ ộ ồ
Flash: B nh đ c/ghi, không m t d li u khi m t ộ ớ ọ ấ ữ ệ ấngu n nuôiồ
04/20/2304/20/23 1515
![Page 16: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/16.jpg)
BUS: địa chỉ, dữ liệu và điều khiển
Bus: t p các dây d n mang nh ng thông tin có cũng m t ậ ẫ ữ ộm c đích. ụ
Vi c truy c p đ n m t m ch quanh CPU s d ng ba bus: ệ ậ ế ộ ạ ử ụbus đ a ch , bus d li u, bus đi u khi n.ị ỉ ữ ệ ề ể
Thao tác đ c/ghi:ọ CPU xác đ nh v trí c a d li u b ng cách đ t m t đ a ch lên ị ị ủ ữ ệ ằ ặ ộ ị ỉ
bus đ a chị ỉ Xu t tín hi u đi u khi n lên bus đi u khi n đ xác đ nh thao ấ ệ ề ể ề ể ể ị
tác là đ c hay ghiọ L y byte d li u t b nh đ a ch xác đ nh, đ t byte này lên ấ ữ ệ ừ ộ ớ ở ị ỉ ị ặ
bus d li u.ữ ệ CPU đ c d li u và đ a vào các thanh ghi n i ho c CPU xu t d ọ ữ ệ ư ộ ặ ấ ữ
li u lên bus d li uệ ữ ệ
04/20/2304/20/23 1616
![Page 17: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/17.jpg)
CPUCPU
Bus địa chỉ
Bus dữ liệu
Bus điều khiển
RAM ROMMạch giao tiếp
Thiết bị ngoại vi
Cấu trúc chung của một VĐK
04/20/2304/20/23 1717
![Page 18: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/18.jpg)
Ch ng IIươ
04/20/2304/20/23 1818
![Page 19: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/19.jpg)
Tổng quát
Vi m ch đ c tr ng c a h MSC-51 là chip 89C51. ạ ặ ư ủ ọ 4 KB b nh Flashộ ớ 128 byte RAM 4 port xu t nh p 8 bitấ ậ 2 b đ nh th i 16 bitộ ị ờ M ch giao ti p n i ti p UARTạ ế ố ế Không gian nh ch ng trình ngoài 64Kbyteớ ươ Không gian nh d li u ngoài 64Kbyteớ ữ ệ B x lý bitộ ử 210 v trí nh đ c đánh đ a ch , m i v trí 1 bitị ớ ượ ị ỉ ỗ ị
04/20/2304/20/23 1919
![Page 20: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/20.jpg)
Sơ đồ chân của VĐK 89C51
04/20/2304/20/23 2020
![Page 21: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/21.jpg)
CPU
On-chip RAM
On-chip ROM for program code
4 I/O Ports
Timer 0
Serial PortOSC
Interrupt Control
External interrupts
Timer 1
Timer/Counter
Bus Control
TxD RxDP0 P1 P2 P3
Address/Data
Counter Inputs
Sơ đồ khối tổng quát của chip 89C51
04/20/2304/20/23 2121
![Page 22: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/22.jpg)
Sơ đồ khối chi tiết của chip 89C51
04/20/2304/20/23 2222
![Page 23: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/23.jpg)
Các cổng vào ra của VĐK 89C51
Port 0 (các chân t 32-39): làm nhi m v xu t/nh p ừ ệ ụ ấ ậho c làm bus đ a ch và bus d li u đa h p (byte th p ặ ị ỉ ữ ệ ợ ấc a bus đ a ch ). ủ ị ỉ
Port 1 (các chân t 1-8): làm nhi m v xu t/nh p đ ừ ệ ụ ấ ậ ểgiao ti p v i thi t b ngoài.ế ớ ế ị
Port 2 (các chân t 21-28): làm nhi m v xu t/nh p ừ ệ ụ ấ ậho c làm byte đ a ch cao c a bus đ a ch 16-bit.ặ ị ỉ ủ ị ỉ
Port 3 (các chân t 10 đ n 17): N u không làm ch c ừ ế ế ứnăng xu t nh p thì m i chân c a port 3 có nh ng ch c ấ ậ ỗ ủ ữ ứnăng riêng khác nhau
04/20/2304/20/23 2323
![Page 24: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/24.jpg)
Bit Tên Địa chỉ bit
Chức năng
P3.0 RxD B0h Nhận dữ liệu của port nối tiếp
P3.1 TxD B1h 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 bộ nhớ dữ liệu ngoài
P3.7 /RD B7h Điều khiển đọc bộ nhớ dữ liệu ngoài
P1.0 T2 90h Ngõ vào của bộ định thời/đếm 2
P1.1 T2EX 91h Nạp lại/thu nhận tín hiệu của bộ định thời 2
Chức năng các chân của P3 và P1
04/20/2304/20/23 2424
![Page 25: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/25.jpg)
Chân cho phép bộ nhớ chương trình PSEN
Cho phép truy xu t b nh ch ng trình ngoài. ấ ộ ớ ươ Chân này th ng đ c n i v i chân cho phép xu t OE ườ ượ ố ớ ấ
c a EPROM (ho c ROM) đ cho phép đ c các byte l nh.ủ ặ ể ọ ệ Có m c tích c c th p.ứ ự ấ Khi th c hi n ch ng trình RAM n i, chân này đ c ự ệ ươ ở ộ ượ
duy trì m c logic 1.ở ứ
04/20/2304/20/23 2525
![Page 26: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/26.jpg)
Chân cho phép chốt địa chỉ ALE
Xu t tín hi u cho phép ch t đ a ch đ gi i đa h p bus ấ ệ ố ị ỉ ể ả ợd li u và bus đ a ch .ữ ệ ị ỉ
Khi port 0 đ c dùng làm bus đ a ch / d li u đa h p, ượ ị ỉ ữ ệ ợchân ALE xu t tín hi u đ ch t đ a ch và m t thanh ghi ấ ệ ể ố ị ỉ ộngoài trong su t ½ chu kì đ u c a chu kì b nh . Sau đó, ố ầ ủ ộ ớcác chân c a port 0 sẽ xu t nh p d li u h p l trong ½ ủ ấ ậ ữ ệ ợ ệchu kì ti p theo.ế
ALE có f=1/6 fclock.
04/20/2304/20/23 2626
![Page 27: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/27.jpg)
Chân truy xuất ngoài EA
N u m c logic “1” thì VĐK th c thi ch ng trình trong ế ở ứ ự ươROM n i.ộ
N u m c logic “0” thì VĐK th c thi ch ng trình ế ở ứ ự ươ ởtrên b nh ngoài.ộ ớ
04/20/2304/20/23 2727
![Page 28: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/28.jpg)
Các chân khác
Chân Vcc (chân 40) n i v i ngu n +5Vố ớ ồ Chân GND (chân 20) n i v i đ tố ớ ấ Chân RESET (chân 9) dùng đ thi t l p l i tr ng thái ể ế ậ ạ ạ
ban đ u cho h th ng. ầ ệ ố Khi đ c treo logic 1 trong th i gian t i thi u 2 chu kì máy, ượ ở ờ ố ể
các thanh ghi bên trong 89C51 đ c n p l i các giá tr thích h p ượ ạ ạ ị ợcho vi c kh i đ ng l i h th ngệ ở ộ ạ ệ ố
Chân XTAL1 và XTAL2 (chân 18-19) n i v i th ch anh ố ớ ạcung c p dao đ ng ngo i cho VĐK, ho c là nh n dao ấ ộ ạ ặ ậđ ng t ngu n xung clock TTL. ộ ừ ồ
04/20/2304/20/23 2828
![Page 29: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/29.jpg)
Mạch dao động
04/20/2304/20/23 2929
XTAL1
XTAL2
Dao động TTL
89C51
XTAL1
XTAL2
89C51
Ghép với mạch dao động TTL ngoài
Ghép với mạch dao động thạch anh
![Page 30: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/30.jpg)
Tổ chức bộ nhớ
B nh n i c a chip 89c51 bao g m ROM và RAMộ ớ ộ ủ ồ RAM trên chip bao g m: ồ
Vùng RAM đa ch c năngứ Vùng RAM đ nh đ a ch bitị ị ỉ Các dãy thanh ghi Các thanh ghi ch c năng đ c bi tứ ặ ệ
Hai đ c tính c n chú ý:ặ ầ Các thanh ghi và các port xu t/nh p đ c đ nh đ a ch theo ấ ậ ượ ị ị ỉ
ki u ánh x b nh và đ c truy xu t nh m t v trí trong b ể ạ ộ ớ ượ ấ ư ộ ị ộnh .ớ
Vùng Stack th ng trú trong RAM n i thay vì trong RAM ngoài ườ ộ ởnh đ i v i vi x líư ố ớ ử
04/20/2304/20/23 3030
![Page 31: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/31.jpg)
Sơ đồ địa chỉ RAM nội
04/20/2304/20/23 3131
R0 –R7
Bank 1
Bank 2
Bank 3
Vùng RAM định địa chỉ bit
Vùng RAM đa mục đích
00h
07h
08h
0Fh10h
17h18h
1Fh20h
2Fh30h
7Fh
![Page 32: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/32.jpg)
Vùng RAM đa mục đích
G m 80 byte t đ a ch 30h đ n 7Fhồ ừ ị ỉ ế Vùng RAM t đ a ch 00h đ n 2Fh: vùng có th đ nh đ a ừ ị ỉ ế ể ị ị
ch đ n t ng bit.ỉ ế ừ Vi c truy xu t m t v trí nh đ c th c hi n b ng cách ệ ấ ộ ị ớ ượ ự ệ ằ
s d ng ki u đ nh đ a ch tr c ti p ho c gián ti p.ử ụ ể ị ị ỉ ự ế ặ ế Ví d : đ c n i dung t i đ a ch 5Fh c a RAM n i vào ụ ọ ộ ạ ị ỉ ủ ộ
thanh ghi A Đ nh đ a ch tr c ti p: ị ị ỉ ự ế
MOV A,5Fh Đ nh đ a ch gián ti p:ị ị ỉ ế
MOV R0, #5FH
MOV A,@R0
04/20/2304/20/23 3232
![Page 33: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/33.jpg)
Vùng RAM định địa chỉ bit
89C51 ch a 210 v trí bit đ c đ nh đ a ch tr c ti p:ứ ị ượ ị ị ỉ ự ế 128 bit đ c ch a trong các byte t 20h đ n 2Fh. ượ ứ ừ ế Ph n còn l i n m trong các thanh ghi đ c bi t (trong kho ng ầ ạ ằ ặ ệ ả
đ a ch t 80h đ n FFh).ị ỉ ừ ế Vi c đ nh đ a ch đ n t ng bit cho phép các bit có th đ c đ t ệ ị ị ỉ ế ừ ể ượ ặ
và xóa...b ng m t l nh.ằ ộ ệ Các port c a 89C51 cũng đ c đ nh đ a ch bitủ ượ ị ị ỉ
Ví d : đ set bit 67h ta dùng l nh: SETB 67hụ ể ệ N u không đ c đ nh đ a ch bit (v i vi x lí) thì ta ph i dùng ế ượ ị ị ỉ ớ ử ả
l nhệMOV A,2Ch
OR A,#10000000b
MOV 2Ch,A
04/20/2304/20/23 3333
![Page 34: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/34.jpg)
Các dãy thanh ghi
Ch a trong 32 v trí th p nh t c a RAM, g m 4 dãy ứ ị ấ ấ ủ ồthanh ghi. M i dãy g m 8 thanh ghi t R0 đ n R7. ỗ ồ ừ ế
L nh s d ng các thanh ghi trong dãy là l nh ng n và ệ ử ụ ệ ắth c hi n nhanh h n so v i ki u đ nh đ a ch tr c ti p. ự ệ ơ ớ ể ị ị ỉ ự ế
Ví d : l nh đ c n i dung t i đ a ch 05h vào thanh ch a ụ ệ ọ ộ ạ ị ỉ ứA
MOV A,R5 ;l nh 1 byteệho c:ặ MOV A,05h ;l nh 2 byteệ
04/20/2304/20/23 3434
![Page 35: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/35.jpg)
Các dãy thanh ghi
Dãy thanh ghi đang ho t đ ng đ c g i là dãy thanh ghi ạ ộ ượ ọtích c c và có th thay đ i b ng cách thay đ i các bit ự ể ổ ằ ổch n dãy trong thanh ghi t tr ng thái ch ng trình ọ ừ ạ ươPSW. Dãy thanh ghi m c đ nh sau khi reset h th ng là ặ ị ệ ốdãy 0.
Ví d : gi s dãy 3 đang tích c c, l nh ghi n i dung c a ụ ả ử ự ệ ộ ủthanh ch a A vào v trí 18h làứ ị
MOV R0,A
04/20/2304/20/23 3535
![Page 36: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/36.jpg)
Các thanh ghi chức năng đặc biệt (SFR)
VĐK 89C51 có 21 thanh ghi đ c bi t SFR chi m ph n ặ ệ ế ầtrên c a RAM n i t đ a ch 80h đ n FFh (Chú ý: không ủ ộ ừ ị ỉ ếph i t t c các đ a ch đ u đ c đ nh nghĩa).ả ấ ả ị ỉ ề ượ ị
04/20/2304/20/23 3636
![Page 37: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/37.jpg)
Bit Kí hiệu
Địa chỉ
Mô tả
PSW.7 CY D7h Cờ nhớ
PSW.6 AC D6h Cờ nhớ phụ
PSW.5 F0 D5h Cờ 0
PSW.4 RS1 D4h Chọn dãy thanh ghi (bit 1)
PSW.3 RS0 D3h Chọn dãy thanh ghi (bit 0)00 = bank 0: địa chỉ từ 00h - 07h01 = bank 1: địa chỉ từ 08h - 0Fh10 = bank 2: địa chỉ từ 10h - 17h11 = bank 3: địa chỉ từ 18h - 1Fh
PSW.2 OV D2h Cờ tràn
PSW.1 - D1h Dự trữ
PSW.0 P D0h Cờ kiểm tra chẵn lẻ
Thanh ghi từ trạng thái chương trình PSW
04/20/2304/20/23 3737
![Page 38: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/38.jpg)
Thanh ghi B
Đ a ch : F0h – F7hị ỉ Thanh ghi B có đ a ch F0h đ c dùng chung v i thanh ị ỉ ượ ớ
ghi A trong các phép toán nhân, chia. L nh MUL AB: nhân hai s 8 bit không d u ch a trong A ệ ố ấ ứ
và B. K t qu 16 bit đ c ch a trong c p thanh ghi B:A ế ả ượ ứ ặ(thanh ghi A ch a byte th p, thanh ghi B ch a byte cao).ứ ấ ứ
L nh DIV AB:chia A b i B, th ng s c t trong thanh ệ ở ươ ố ấch a A và d s c t trong thanh ghi B.ứ ư ố ấ
04/20/2304/20/23 3838
![Page 39: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/39.jpg)
Con trỏ Stack
Con tr Stack (Stack pointer – SP) là 1 thanh ghi 8 bit ỏ ởđ a ch 81h. SP ch a đ a ch c a d li u hi n đang đ nh ị ỉ ứ ị ỉ ủ ữ ệ ệ ở ỉc a Stack.ủ
N u ta không kh i đ ng SP, n i dung m c đ nh c a ế ở ộ ộ ặ ị ủthanh ghi này là 07h.
04/20/2304/20/23 3939
![Page 40: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/40.jpg)
Con trỏ dữ liệu DPTR
Con tr d li u DPTR (data pointer) đ c dùng đ truy ỏ ữ ệ ượ ểxu t b nh ch ng ngoài ho c b nh d li u ngoài. ấ ộ ớ ươ ặ ộ ớ ữ ệ
DPTR là 1 thanh ghi 16 bit có đ a ch là 82h (DPL, byte ị ỉth p) và 83h (DPH, byte cao).ấ
Ví d : ghi giá tr 55h vào đ a ch 1000h RAM ngoàiụ ị ị ỉ ởMOV A,#55h
MOV DPTR,#1000h
MOV @DPTR,A
04/20/2304/20/23 4040
![Page 41: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/41.jpg)
Các thanh ghi cổng
Các port xu t nh p c a 89C51 bao g m: port 0 (đ a ch ấ ậ ủ ồ ị ỉ80h), port 1 (đ a ch 90h), port 2 (đ a ch A0h), port 3 ị ỉ ị ỉ(đ a ch B0h).ị ỉ
Các port 0, 2, 3 không đ c dùng đ xu t/nh p n u ta ượ ể ấ ậ ếs d ng b nh ngoài ho c các ch c năng đ c bi t c a ử ụ ộ ớ ặ ứ ặ ệ ủ89C51.
Các port đ u đ c đ nh đ a ch t ng bit.ề ượ ị ị ỉ ừ
04/20/2304/20/23 4141
![Page 42: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/42.jpg)
Các thanh ghi định thời
89C51 có 2 b đ nh th i/đ m 16 bit: ộ ị ờ ế B đ nh th i 0 có đ a ch 8Ah (TL0 – byte th p) và 8Ch (TH0 – ộ ị ờ ị ỉ ấ
byte cao). B đ nh th i 1 có đ a ch 8Bh (TL1 – byte th p) và 8Dh (TH1 – ộ ị ờ ị ỉ ấ
byte cao). Ho t đ ng c a b đ nh th i đ c thi t l p b i:ạ ộ ủ ộ ị ờ ượ ế ậ ở
Thanh ghi ch đ đ nh th i TMOD (time mode register) đ a ế ộ ị ờ ở ịch 89h.ỉ
Thanh ghi đi u khi n đ nh th i TCON (time control register) ề ể ị ờ ởđ a ch 88h. ị ỉ
04/20/2304/20/23 4242
![Page 43: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/43.jpg)
Các thanh ghi của cổng nối tiếp
Thanh ghi đ m d li u n i ti p SBUF (serial data ệ ữ ệ ố ếbuffer):
Có đ a ch 99H. ị ỉ N i l u d li u truy n đi và d li u nh n vơ ư ữ ệ ề ữ ệ ậ ề
Thanh ghi đi u khi n port n i ti p SCON (serial port ề ể ố ếcontrol register) đ a ch 98H. ở ị ỉ
04/20/2304/20/23 4343
![Page 44: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/44.jpg)
Các thanh ghi ngắt
89C51 có m t c u trúc ng t v i 2 m c u tiên và 5 ộ ấ ắ ớ ứ ưnguyên nhân ng t.ắ
Ng t b vô hi u hóa khi reset h th ng và sau đó đ c ắ ị ệ ệ ố ượcho phép b ng cách ghi vào thanh ghi cho phép ng t IE ằ ắ(interrupt enable register - A8h).
M c u tiên ng t đ c thi t l p thông qua thanh ghi u ứ ư ắ ượ ế ậ ưtiên ng t IP (interupt priority register - B8h).ắ
04/20/2304/20/23 4444
![Page 45: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/45.jpg)
Thanh ghi điều khiển nguồn PCON (87h)
04/20/2304/20/23 4545
Bit Kí hiệu Mô tả
7 SMOD Tăng gấp đôi tốc độ baud
6 - Không định nghĩa
5 - Không định nghĩa
4 - Không định nghĩa
3 GF1 Bit cờ đa mục đích 1
2 GF0 Bit cờ đa mục đích 2
1 PD Chế độ nguồn giảm
0 IDL Chế độ nguồn nghỉ
![Page 46: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/46.jpg)
Bộ nhớ ngoài
C u trúc c a MCS-51 cho phép m r ng không gian b ấ ủ ở ộ ộnh và không gian d li u lên đ n 64 Kbyte.ớ ữ ệ ế
Khi s d ng b nh ngoài, port 0 tr thành bus đ a ch ử ụ ộ ớ ở ị ỉ(A0-A7) và bus d li u (D0-D7) đa h p. Port 2 th ng ữ ệ ợ ườđ c dùng làm byte cao c a bus đ a ch .ượ ủ ị ỉ
04/20/2304/20/23 4646
![Page 47: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/47.jpg)
Đa hợp và không đa hợp
04/20/2304/20/23 4747
A0-A15 Địa chỉ
D0-D7 Dữ liệu
Không đa hợp
Chu kì máy
A8-A15 Địa chỉ
Địa chỉAD0-AD7 Dữ liệu
Đa hợp (Multiplex)
Chu kì máy
![Page 48: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/48.jpg)
D
74LS373ALE
P0.0
P0.7
PSEN
A0
A7
D0
D7
P2.0
P2.7
A8
A15
OE
OC
EA
G
89C51 ROM
1. Send address to ROM
2. 74373 latches the address and send to
ROM
Address
Đọc ROM (1)
04/20/2304/20/23 4848
![Page 49: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/49.jpg)
D
74LS373ALE
P0.0
P0.7
PSEN
A0
A7
D0
D7
P2.0
P2.7
A8
A15
OE
OC
EA
G
89C51 ROM
2. 74373 latches the address and send to ROM
Address
3. ROM send the instruction back
Đọc ROM (2)
04/20/2304/20/23 4949
![Page 50: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/50.jpg)
D
74LS373ALE
P0.0
P0.7
RS
A0
A7
D0
D7P2.0
P2.1
A8
A9
OE
EA
G
89C51 RAM
Address
WR WCS
Đọc RAM
04/20/2304/20/23 5050
![Page 51: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/51.jpg)
Ch ng 3ươ
04/20/2304/20/23 5151
![Page 52: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/52.jpg)
Các kiểu định địa chỉ
Thanh ghi (register) Tr c ti p (direct)ự ế Gián ti p (indirect)ế T c th i (immediate)ứ ờ T ng đ i (relative)ươ ố Tuy t đ i (absolute)ệ ố Dài (long) Ch s (indexed)ỉ ố
04/20/2304/20/23 5252
![Page 53: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/53.jpg)
opcode n n n
Định địa chỉ thanh ghi
L nh s d ng ki u đánh đ a ch thanh ghi đ c mã hóa ệ ử ụ ể ị ỉ ượb ng cách dùng 3 bit th p nh t c a mã l nh (opcode) ằ ấ ấ ủ ệđ ch ra m t thanh ghi bên trong không gian đ a ch ể ỉ ộ ị ỉlogic
Mã l nh và đ a ch toán h ng (3 bit) k t h p thành 1 ệ ị ỉ ạ ế ợl nh ng n (1 byte)ệ ắ
Truy xu t tr c ti p 8 thanh ghi R0 – R7ấ ự ế Ví d : ụ ADD A,R7 (opcode: 00101111b) 00101: l nh c ngệ ộ 111: thanh ghi R7
04/20/2304/20/23 5353
![Page 54: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/54.jpg)
Định địa chỉ trực tiếp
Đ c s d ng đ truy xu t các bi n nh ho c các thanh ượ ử ụ ể ấ ế ớ ặghi trên chip
Mã l nh và đ a ch toán h ng k t h p thành 1 l nh 2 ệ ị ỉ ạ ế ợ ệbyte
Ví d : chuy n n i dung c a thanh ghi A vào đ a ch 90h ụ ể ộ ủ ị ỉ(P1)
MOV P1,A (opcode: 10001001 - 10010000) 10001001: opcode 10010000: đ a ch c a P1 (90h)ị ỉ ủ
04/20/2304/20/23 5454
![Page 55: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/55.jpg)
Định địa chỉ gián tiếp
Các thanh ghi R0 và R1 ho t đ ng nh là các con trạ ộ ư ỏ N i dung c a chúng ch ra đ a ch trong RAM, n i d ộ ủ ỉ ị ỉ ơ ữ
li u đ c đ c ho c ghi.ệ ượ ọ ặ Bit có ý nghĩa th p nh t trong opcode xác đ nh thanh ấ ấ ị
ghi đ c dùng làm con tr .ượ ỏ Đ c nh n bi t nh vào kí t @ đ t tr c R0 ho c R1.ượ ậ ế ờ ự ặ ướ ặ Ví d : n u R1 ch a 40h và đ a ch 40h ch a 55h, l nh:ụ ế ứ ị ỉ ứ ệ
MOV A,@R1
N p 55h cho Aạ
04/20/2304/20/23 5555
![Page 56: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/56.jpg)
Định địa chỉ tức thời
Dùng khi toán h ng ngu n là m t h ng s thay vì m t ạ ồ ộ ằ ố ộbi n.ế
Nh n bi t nh vào kí t # đ t tr c toán h ng.ậ ế ờ ự ặ ướ ạ Ví d : MOV A, #12; ụ N p giá tr 12 (0Ch) vào thanh ghi Aạ ị
04/20/2304/20/23 5656
![Page 57: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/57.jpg)
Các loại lệnh
Nhóm l nh s h cệ ố ọ Nhóm l nh logicệ Nhóm l nh di chuy n d li u ệ ể ữ ệ Nhóm l nh x lí bitệ ử Nhóm l nh rẽ nhánhệ
04/20/2304/20/23 5757
![Page 58: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/58.jpg)
Một số phương pháp định địa chỉ
Đ nh đ a ch thanh ghi: truy xu t tr c ti p các thanh ghi ị ị ỉ ấ ự ết R0 – R7ừ
Đ nh đ a ch tr c ti p: truy c p đ n đ a ch đ c tr b i ị ị ỉ ự ế ậ ế ị ỉ ượ ỏ ởtoán h ng.ạ
Đ nh đ a ch gián ti p:ị ị ỉ ế Địa chỉ của toán hạng sẽ được chứa trong một thanh ghi con trỏ
(R0 hoặc R1 đối với RAM trong, DPTR đối với RAM ngoài). Nh n bi t b ng kí t @ đ t tr c thanh ghiậ ế ằ ự ặ ướ
Đ nh đ a ch t c th i: ị ị ỉ ứ ờ Giá trị của toán hạng được nêu ra rõ ràng ngay trong câu lệnh. Đặc điểm : luôn kèm theo ký tự “#” phía trước toán h ngạ . MOV A, 4Fh (Ram o 4Fh đang có 14h)
04/20/2304/20/23 5858
![Page 59: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/59.jpg)
Ví dụ
MOV R0, #4Fh; đang ch a 14hứ MOV A,@R0 ; A ch a 14hứ
04/20/2304/20/23 5959
![Page 60: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/60.jpg)
Cú pháp
[Nhãn]:
[L nh] [Toán h ng đích],[Toán h ng ngu n] ;[chú thích]ệ ạ ạ ồ Ví d : ụ
Lenhcong: ADD A,#30H ; cong thanh ghi A voi gia tri 30H
04/20/2304/20/23 6060
![Page 61: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/61.jpg)
Các lệnh tính toán số học
04/20/2304/20/23 6161
![Page 62: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/62.jpg)
Các lệnh tính toán số học
04/20/2304/20/23 6262
![Page 63: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/63.jpg)
Các lệnh thực hiện các phép toán lôgic
04/20/2304/20/23 6363
![Page 64: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/64.jpg)
4Fh: n i dung 03h;11ộ A: n i dung 02h; trong RAM 02h có 01hộ ở ANL 4Fh, @A -> 4Fh:02h; ANL 4Fh,#01 -> 01
A: 00000001b RL A -> 0011 1011b SWAP A -> 1011 0011b
04/20/2304/20/23 6464
![Page 65: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/65.jpg)
Các lệnh thực hiện các phép toán lôgic
04/20/2304/20/23 6565
![Page 66: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/66.jpg)
Các lệnh trao đổi dữ liệu
04/20/2304/20/23 6666
![Page 67: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/67.jpg)
Các lệnh trao đổi dữ liệu
04/20/2304/20/23 6767
![Page 68: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/68.jpg)
Các lệnh trao đổi dữ liệu
04/20/2304/20/23 6868
![Page 69: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/69.jpg)
Các lệnh thao tác xử lý đại số Boolean
04/20/2304/20/23 6969
![Page 70: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/70.jpg)
Các lệnh rẽ nhánh
04/20/2304/20/23 7070
![Page 71: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/71.jpg)
Các lệnh rẽ nhánh chương trình
04/20/2304/20/23 7171
![Page 72: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/72.jpg)
Các lệnh rẽ nhánh chương trình
04/20/2304/20/23 7272
![Page 73: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/73.jpg)
Chương trình ASM mẫu
#include <sfr51.inc> ; đầu chương trình, khai báo file chứa địa chỉ của các thanh ghi SFR
; định nghĩa tên gọi cho các chân cổng vào/ra (nếu muốn)
#define led1 P1.0
#define led2 P1.1
...
; khai báo các biến dạng byte (nếu có)
var1 data 0x30
var2 data 0x31
...
04/20/2304/20/23 7373
![Page 74: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/74.jpg)
Chương trình ASM mẫu (tt)
; khai báo các biến dạng bit (nếu có)
flag1 bit 0x00
flag2 bit 0x01
...
; định nghĩa các hằng số (nếu có)
constant1 equ 123
constant2 equ 456
04/20/2304/20/23 7474
![Page 75: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/75.jpg)
Chương trình ASM mẫu (tt)
org 0x0000 ; tạo mã đặt tại địa chỉ reset
ajmp main
; tạo mã đặt tại các vector ngắt (nếu sử dụng ngắt)
org 0x0003
ljmp ChuongTrinhXuLyNgatNgoai0
org 0x000B
ljmp ChuongTrinhXuLyNgatTimer0
...
04/20/2304/20/23 7575
![Page 76: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/76.jpg)
Chương trình ASM mẫu (tt)
; đặt địa chỉ đầu cho chương trình chính
org 0x0030
main:
; bắt đầu viết các lệnh cho chương trình chính từ đây
mov SP,#0x6F
; viết các thủ tục khởi tạo hệ thống
...
; viết thân chương trình chính (vòng lặp chính)
main_loop:
...
sjmp main_loop
04/20/2304/20/23 7676
![Page 77: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/77.jpg)
Chương trình ASM mẫu (tt)
; viết các chương trình con và các chương trình xử lý ngắt (nếu có)
ChuongTrinhCon1:
; các lệnh xử lý của chương trình con 1
...
; kết thúc bằng lệnh ret
ret
ChuongTrinhCon2:
; các lệnh xử lý của chương trình con 2
...
ret ; kết thúc bằng lệnh ret
...
04/20/2304/20/23 7777
![Page 78: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/78.jpg)
Chương trình ASM mẫu (tt)
; định nghĩa các bảng hằng số lưu sẵn trong bộ nhớ chương trình
Bang1:
db 0,1,0x02,0x86
Bang2:
db 156,235,8,9
...
; chỉ dẫn báo hiệu kết thúc toàn bộ đoạn chương trình
end
04/20/2304/20/23 7878
![Page 79: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/79.jpg)
Chương trình ASM mẫu (tt)
ChuongTrinhXuLyNgatNgoai0:
; các lệnh xử lý của chương trình xử lý ngắt ngoài 0
...
; kết thúc bằng lệnh reti
reti
ChuongTrinhXuLyNgatTimer0:
; các lệnh xử lý của chương trình xử lý ngắt timer 0
...
; kết thúc bằng lệnh reti
reti
...
04/20/2304/20/23 7979
![Page 80: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/80.jpg)
Ch ng 4ươ
04/20/2304/20/23 8080
![Page 81: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/81.jpg)
Giới thiệu
89C51 có 2 b đ nh th i 16 bít, m i b có 4 ch đ ho t ộ ị ờ ỗ ộ ế ộ ạđ ngộ
Các b đ nh th i đ c dùng đ :ộ ị ờ ượ ể Đ nh th i trong m t kho ng th i gian.ị ờ ộ ả ờ Đ m s ki n.ế ự ệ T o t c đ baud cho port n i ti p c a chip 89C51ạ ố ộ ố ế ủ
04/20/2304/20/23 8181
![Page 82: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/82.jpg)
Bộ định thời 3-bit
04/20/2304/20/23 8282
XUNG NHỊP
Q0Q0
Q1Q1
Q2Q2
FLAGFLAG
Giản đồ thời gian
D /QD /Q
Q0Q0
D /QD /Q
Q1Q1
D /QD /Q
Q2Q2
D /QD /Q
FLIP-FLOP
CỜ
TIMER FLIP-FLOPS (3 bit)
XUNG NHỊP
Sơ đồ logic
cờ
![Page 83: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/83.jpg)
Các SFR của bộ định thời
Thanh ghi
Mục đích Địa chỉ Định địa chỉ bit
TCON Điều khiển 88H Có
TMOD Chọn chế độ 89H Không
TL0 Byte thấp của bộ định thời 0
8AH Không
TL1 Byte thấp của bộ định thời 1
8BH Không
TH0 Byte cao của bộ định thời 0
8CH Không
TH1 Byte cao của bộ định thời 1
8DH Không
04/20/2304/20/23 8383
![Page 84: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/84.jpg)
Thanh ghi chế độ định thời (TMOD)
04/20/2304/20/23 8484
Bit Tên Bộ định thời
Mô tả
7 GATE 1 Bit điều khiển cổng. Khi được set lên 1, bộ định thời chỉ hoạt động trong khi INT1 ở mức cao và TRx = 1.
6 1 Bit chọn chức năng đếm hoặc định thời: 1 = đếm sự kiện 0 = định thời trong một khoảng thời gian.
5 M1 1 Bit chọn chế độ thứ nhất.
4 M0 1 Bit chọn chế độ thứ hai.
3 GATE 0 Bit điều khiển cổng cho bộ định thời 0.
2 0 Bit chọn chức năng đếm hoặc định thời cho bộ định thời 0.
1 M1 0 Bit chọn chế độ thứ nhất.
0 M0 0 Bit chọn chế độ thứ hai.
![Page 85: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/85.jpg)
Thanh ghi điều khiển định thời (TCON)
04/20/2304/20/23 8585
Bit Ký Hiệu
Địa chỉ bit
Mô tả
TCON.7 TF1 8FH Cờ tràn của bộ định thời 1.
TCON.6 TR1 8EH Bit điều khiển hoạt động của bộ định thời 1.
TCON.5 TF0 8DH Cờ tràn của bộ định thời 0.
TCON.4 TR0 8CH Bit điều khiển hoạt động của bộ định thời 0.
TCON.3 IE1 8BH Cờ ngắt bên ngoài 1 (kích khởi cạnh).
TCON.2 IT1 8AH Cờ ngắt bên ngoài 1 (kích khởi cạnh hoặc mức).
TCON.1 IE0 89H Cờ ngắt bên ngoài 0 (kích khởi cạnh).
TCON.0 IT0 88H Cờ ngắt bên ngoài 0 (kích khởi cạnh hoặc mức).
![Page 86: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/86.jpg)
Các chế độ hoạt động
04/20/2304/20/23 8686
M1 M0 Chế độ Mô tả
0 0 0 Chế độ định thời 13 bit
0 1 1 Chế độ định thời 16 bit
1 0 2 Chế độ tự động nạp lại 8 bit
1 1 3 Chế độ định thời chia sẻ
![Page 87: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/87.jpg)
Chế độ định thời 13 bit
Byte cao THx đ c ghép v i 5 bit th p c a TLx đ t o ượ ớ ấ ủ ể ạthành b đ nh th i 13-bit.ộ ị ờ
Khi có xung clock đ n, b đ nh th i đ m lên t giá tr ế ộ ị ờ ế ừ ịđ m đ c n p.ế ượ ạ
Tràn sẽ xu t hi n khi chuy n s đ m t 2000H xu ng ấ ệ ể ố ế ừ ố0000H và set c tràn TFx b ng 1.ờ ằ
04/20/2304/20/23 8787
TLxTLx
(5 (5 bit)bit)
THxTHx
(8 (8 bit)bit)
TFxTFxTime Time clockclock
![Page 88: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/88.jpg)
Chế độ định thời 16 bit
Có c u hình gi ng ch đ đ nh th i 13 bitấ ố ế ộ ị ờ Thanh ghi đ nh th i TLx/THx có th đ c đ c/ghi t i ị ờ ể ượ ọ ạ
b t kì th i đi m nàoấ ờ ể
04/20/2304/20/23 8888
TLxTLx
(8 (8 bit)bit)
THxTHx
(8 (8 bit)bit)
TFxTFxTime Time clockclock
![Page 89: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/89.jpg)
Chế độ tự nạp lại 8 bit
Byte th p c a b đ nh th i (TLx) ho t đ ng đ nh th i 8 ấ ủ ộ ị ờ ạ ộ ị ờbit.
Byte cao TFx l u gi giá tr n p l i.ư ữ ị ạ ạ Khi s đ m tràn t FFH xu ng 00H, c tràn đ c set và ố ế ừ ố ờ ượ
giá tr trong THx đ c n p vào TLx.ị ượ ạ
04/20/2304/20/23 8989
TLxTLx(8 (8
bit)bit)THxTHx(8 (8
bit)bit)
TFxTFxTime Time clockclock
![Page 90: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/90.jpg)
Chế độ định thời chia sẻ
B đ nh th i 0:ộ ị ờ Đ c chia thành 2 b đ nh th i 8 bit TL0 và TH0. ượ ộ ị ờ M i b sẽ set c tràn t ng ng là TF0 và TF1.ỗ ộ ờ ươ ứ
B đ nh th i 1:ộ ị ờ Không ho t đ ng ch đ 3 nh ng có th chuy n qua ch đ ạ ộ ở ế ộ ư ể ể ế ộ
khác. C tràn TF1 không b nh h ng.ờ ị ả ưở
04/20/2304/20/23 9090
![Page 91: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/91.jpg)
Chế độ định thời chia sẻ
04/20/2304/20/23 9191
TL0TL0
(8 (8 bit)bit)
TH0TH0
(8 (8 bit)bit)
TF1TF1
Time Time clockclock TF0TF0
Time Time clockclock
TL1TL1
(8 (8 bit)bit)
TH1TH1
(8 (8 bit)bit)
Time Time clockclock
![Page 92: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/92.jpg)
Nguồn xung clock định thời
C/T = 0: Ngu n xung clock do m ch dao đ ng trong chip t o ra.ồ ạ ộ ạ Đ c dùng đ đ nh m t kho ng th i gian.ượ ể ị ộ ả ờ
C/T = 1: Đ c c p xung clock t ngu n ngoài (trên 2 chân P3.4 và P3.5)ượ ấ ừ ồ Đ c dùng đ đ m s ki n. Các thanh ghi đ nh th i tăng khi có ượ ể ế ự ệ ị ờ
chuy n tr ng thái t 1 ->0 ngõ vào Tx.ể ạ ừ ở
04/20/2304/20/23 9292
![Page 93: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/93.jpg)
Điều khiển các bộ định thời
S d ng bit TRx trong thanh ghi TCON:ử ụ TRx = 1: kh i đ ngở ộ TRx = 0 : d ngừ
S d ng bit GATE và ngõ vào INTx:ử ụ Khi INTx m c cao, b đ nh th i nh n xung clock.ở ứ ộ ị ờ ậ Khi INTx m c th p, b đ nh th i b khoá, không nh n xung ở ứ ấ ộ ị ờ ị ậ
n a.ữ
04/20/2304/20/23 9393
![Page 94: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/94.jpg)
Ví dụ
MOV TMOD,#xxxxH ;thi t l p ch đ ho t đ ngế ậ ế ộ ạ ộ MOV TL1,#xxH ;ghi giá tr đ m vào TLxị ế MOV TH1,#XXH ;ghi giá tr đ m vào THxị ế SETB TRx ;b đ nh th i ho t đ ngộ ị ờ ạ ộ ..... CLR TR1 ;ng ng b đ nh th iừ ộ ị ờ CLR TF1 ;xoá c trànờ
04/20/2304/20/23 9494
![Page 95: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/95.jpg)
Đọc bộ định thời đang hoạt động
Sai pha có th x y ra khi đ c 2 thanh ghi đ nh th i, do ể ả ọ ị ờkhông th đ c 2 thanh ghi b ng 1 l nhể ọ ằ ệ
Gi i pháp:ả Đ c byte caoọ Đ c byte th pọ ấ Đ c l i byte caoọ ạ N u byte cao đ i giá tr thì th c hi n l i thao tác đ c trênế ổ ị ự ệ ạ ọ
04/20/2304/20/23 9595
![Page 96: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/96.jpg)
Ví dụ
LAP: MOV A,TH1 MOV R6, TL1 CJNE A,TH1,LAP MOV R7,A
04/20/2304/20/23 9696
![Page 97: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/97.jpg)
Ch ng 5ươ
04/20/2304/20/23 9797
![Page 98: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/98.jpg)
Mở đầu
Chip 89C51 có 1 c ng n i ti p v i 4 ch đ ho t đ ng ổ ố ế ớ ế ộ ạ ộkhác nhau.
Vi c truy xu t port n i ti p đ c th c hi n thông qua ệ ấ ố ế ượ ự ệchân TxD và RxD
Đ c tr ng c a port n i ti p là kh năng ho t đ ng song ặ ư ủ ố ế ả ạ ộcông (full duplex)
Các thanh ghi liên quan: SBUF: đ c dùng đ truy xu t giá tr trên c ng n i ti pượ ể ấ ị ổ ố ế SCOM: đ c dùng đ đi u khi n port n i ti p.ượ ể ề ể ố ế PCON: s d ng bit PCON.7 (SMOD) đ xác đ nh t c đ truy nử ụ ể ị ố ộ ề
SMOD = 0: truy n v i t c đ th ngề ớ ố ộ ườ SMOD = 1: truy n v i t c đ g p đôiề ớ ố ộ ấ
04/20/2304/20/23 9898
![Page 99: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/99.jpg)
SBUF(write only) Shift register
SBUF(read only)
CLK
Q
CLK
D
Baud rate clock (transmit)
Baud rate clock (receive)
TxD RxD
89C51 internal bus
Sơ đồ khối port nối tiếp
04/20/2304/20/23 9999
![Page 100: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/100.jpg)
Thanh ghi điều khiển port nối tiếp SCON
04/20/2304/20/23 100100
Bit Kí hiệu Địa chỉ Mô tả
SCON.7 SM0 9FH Bit 0 chọn chế độ của port nối tiếp
SCON.6 SM1 9EH Bit 1 chọn chế độ của port nối tiếp
SCON.5 SM2 9DH Bit 2 chọn chế độ của port nối tiếp, cho phép truyền thông đa xử lí ở chế độ 2 và 3.
SCON.4 REN 9CH Cho phép nhận dữ liệu. Phải bằng 1 để nhận kí tự
SCON.3 TB8 9BH Bit dữ liệu thứ 9 được phát ở chế độ 2 và 3 (9 bit)
SCON.2 RB8 9AH Bit dữ liệu thứ 9 trong trường hợp nhận 9 bit
SCON.1 TI 99H Cờ ngắt phát, được set ngay khi kết thúc việc phát một khung dữ liệu
SCON.0 RI 98H Cờ ngắt nhận, được set ngay khi kết thúc việc nhận một khung dữ liệu
![Page 101: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/101.jpg)
Các chế độ hoạt động
04/20/2304/20/23 101101
SM0 SM1 Chế độ Mô tả Tốc độ baud
0 0 0 Đồng bộ 8 bit
Cố định (fOSC/12)
0 1 1 UART 8-bit
Thay đổi (thiết lập bởi bộ định thời)
1 0 2 UART 9-bit
Cố định (fOSC/32 hoặc fOSC/64)
1 1 3 UART 9-bit
Thay đổi (thiết lập bởi bộ định thời)
![Page 102: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/102.jpg)
Chế độ 0
Là chế độ truyền đồng bộ duy nhất. Chân RxD sẽ là tín hiệu truyền/nhận dữ liệu, chân TxD là tín hiệu xung nhịp. Bit LSB (bit 0) của dữ liệu đ c phát đ u tiênượ ầ
T c đ baud c đ nh và b ng fOSC/12ố ộ ố ị ằ Phát d li u đ c kh i đ ng b ng m t l nh ghi d li u ữ ệ ượ ở ộ ằ ộ ệ ữ ệ
vào SBUF Nh n d li u đ c kh i đ ng khi bit REN m c 1 và RI ậ ữ ệ ượ ở ộ ở ứ
m c 0.ở ứ
04/20/2304/20/23 102102
![Page 103: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/103.jpg)
Chế độ 1
Port n i ti p ho t đ ng nh m t b thu phát không ố ế ạ ộ ư ộ ộđ ng b UARTồ ộ
D li u g m 10 bit: ữ ệ ồ 1 bit start (m c 0)ứ 8 bit d li uữ ệ 1 bit stop (m c 1)ứ
Khi thu, bit stop đ c đ a đ n RB8 c a SCONượ ư ế ủ Vi c phát đ c kh i đ ng b ng cách ghi vào SBUFệ ượ ở ộ ằ T c đ baud đ c thi t l p b i t c đ tràn c a b đ nh ố ộ ượ ế ậ ở ố ộ ủ ộ ị
th i 1.ờ
04/20/2304/20/23 103103
![Page 104: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/104.jpg)
Chế độ 2 và 3
D li u g m 11 bit:1 bit start, 8 bit d li u, 1 bit stop, 1 ữ ệ ồ ữ ệbit l p trình đ c (bit th 9)ậ ượ ứ
Khi phát, bit 9 là bit đ c đ t vào TB8 c a SCONượ ặ ủ Khi thu, bit 9 nh n đ c sẽ đ t vào RB8ậ ượ ặ T c đ baud b ng fOSC/32 ho c fOSC/64ố ộ ằ ặ
04/20/2304/20/23 104104
![Page 105: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/105.jpg)
Bit cho phép thu
Bit REN trong thanh ghi SCON ph i set b ng 1 đ cho ả ằ ểphép nh n kí tậ ự
L nh: ệ SETB REN Ho cặ MOV SCON,#xxx1xxxxB
04/20/2304/20/23 105105
![Page 106: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/106.jpg)
Bit dữ liệu thứ 9
Bit d li u th 9 đ c phát ch đ 2 và 3 ph i đ c ữ ệ ứ ượ ở ế ộ ả ượn p cho bit TB8 b ng ph n m mạ ằ ầ ề
Bit d li u th 9 thu đ c ph i đ t vào bit RB8 c a ữ ệ ứ ượ ả ặ ủSCON
04/20/2304/20/23 106106
![Page 107: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/107.jpg)
Bit chẵn lẻ
Bit th 9 th ng đ c dùng làm bit ch n l (s d ng bit ứ ườ ượ ẵ ẻ ử ụP c a PSW)ủ
L nh phát 8 bit v i bit ki m tra ch n:ệ ớ ể ẵMOV C,P
MOV TB8,C
MOV SBUF,A L nh phát 8 bit v i bit ki m tra l :ệ ớ ể ẻ
MOV C,P
CPL C
MOV TB8,C
MOV SBUF,A
04/20/2304/20/23 107107
![Page 108: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/108.jpg)
Các cờ ngắt
C ng t thu RI đ c set khi k t thúc nh n kí t và ch ra ờ ắ ượ ế ậ ự ỉb đ m thu đ yộ ệ ầ
WAIT: JNB RI,WAIT
CLR RI
MOV A,SBUF C ng t phát TI đ c set khi k t thúc vi c phát 1 kí t và ờ ắ ượ ế ệ ự
b đ m phát r ngộ ệ ỗWAIT: JNB TI,WAIT
CLR TI
MOV SBUF,A
04/20/2304/20/23 108108
![Page 109: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/109.jpg)
Truyền thông đa xử lý
Các ch đ 2 và 3 đ c ng d ng đ t o thành m t môi ế ộ ượ ứ ụ ể ạ ộtr ng m ng s d ng nhi u VĐK 89C51 s p x p theo ườ ạ ử ụ ề ắ ếmô hình master/slaver
04/20/2304/20/23 109109
89C51 Master 89C51 Slaver 1 89C51 Slaver 2
I/OI/O I/OI/O
![Page 110: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/110.jpg)
Tốc độ baud của port nối tiếp
Mode 0:
Baud rate = fOSC/12 Mode 2:
Baud rate = (2SMOD/64)*fOSC Mode 1,3:
04/20/2304/20/23 110110
![Page 111: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/111.jpg)
Sử dụng cổng nối tiếp
Chọn chế độ cho cổng nối tiếp (đồng bộ/dị bộ, 8bit/9bit...), từ đó chọn được giá trị cho các bit trong thanh ghi SCON. Lưu ý xóa các bit TI và RI.
Chọn tốc độ truyền mong muốn, từ đó tính ra giá trị của thanh ghi TH1. Cho timer1 chạy ở chế độ Auto Reload 8bit (không dùng ngắt tràn timer1).
Đặt mức ưu tiên ngắt và cho phép ngắt cổng nối tiếp nếu muốn.
04/20/2304/20/23 111111
![Page 112: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/112.jpg)
Sử dụng cổng nối tiếp
Bắt đầu quá trình truyền dữ liệu bằng một lệnh ghi dữ liệu muốn truyền vào thanh ghi SBUF. Quá trình truyền kết thúc thì cờ TI sẽ tự động đặt lên 1.
Khi một khung dữ liệu đã được nhận đầy đủ, cờ RI sẽ tự động đặt lên 1 và người lập trình lúc này có thể dùng lệnh đọc thanh ghi SBUF để lấy dữ liệu nhận được ra xử lý.
04/20/2304/20/23 112112
![Page 113: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/113.jpg)
Khởi động port nối tiếp
Baud rate = 2400 S d ng b đ nh th i 1 đ c p xung clockử ụ ộ ị ờ ể ấ
04/20/2304/20/23 113113
SM0 SM1 SM2 REN TB8 RB8 TI RI
SCON 0 1 0 1 0 0 1 0
GTE C/T M1 M0 GTE C/T M1 M0
TMOD 0 0 1 0 0 0 0 0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TCON 0 1 0 0 0 0 0 0
TH1 1 1 1 1 0 0 1 1
![Page 114: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/114.jpg)
Lệnh khởi động port nối tiếp
ORG 8100H
INIT: MOV SCON,#52H ;port n i ti p, ch đ 1ố ế ế ộMOV TMOD,#20H ;b đ nh th i 1, ch đ 2ộ ị ờ ế ộMOV TH1,#F4H ;giá tr n p l i đ có 2400 ị ạ ạ ể
baud
SETB TR1 ;b đ nh th i 1 ho t đ ngộ ị ờ ạ ộEND
04/20/2304/20/23 114114
![Page 115: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/115.jpg)
Ch ng 6ươ
04/20/2304/20/23 115115
![Page 116: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/116.jpg)
Giới thiệu
Ng t là vi c x y ra m t s ki n làm cho ch ng trình ắ ệ ả ộ ự ệ ươhi n hành b t m ng ng trong khi m t đi u ki n khác ệ ị ạ ư ộ ề ệđ c th c hi n.ượ ự ệ
04/20/2304/20/23 116116
Main programMain program
timetime
Chương trình không có ngắtChương trình không có ngắt
MaiMainn
MaiMainn MainMain MaiMai
nn
ISRISR ISRISR ISRISR
timetimeChương trình có ngắtChương trình có ngắt
![Page 117: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/117.jpg)
Tổ chức ngắt
89C51 có 5 nguyên nhân ng t:ắ 2 ng t ngoàiắ 2 ng t do b đ nh th iắ ộ ị ờ 1 ng t do port n i ti pắ ố ế
Có 2 s đ x lý ng t:ơ ồ ử ắ S đ chu i vòngơ ồ ỗ S đ hai m c u tiênơ ồ ứ ư
04/20/2304/20/23 117117
![Page 118: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/118.jpg)
Thanh ghi cho phép ngắt (IE)
04/20/2304/20/23 118118
M i nguyên nhân ng t đ c cho phép ho c không thông ỗ ắ ượ ặqua thanh ghi cho phép ng t IE có đ a ch 0A8Hắ ị ỉ
Bit Kí hiệu Địa chỉ Mô tả
IE.7 EA AFH Cho phép/không cho phép toàn cục
IE.6 - AEH Không sử dụng
IE.5 ET2 ADH Cho phép ngắt do bộ định thời 2
IE.4 ES ACH Cho phép ngắt do port nối tiếp
IE.3 ET1 ABH Cho phép ngắt do bộ định thời 1
IE.2 EX1 AAH Cho phép ngắt từ bên ngoài (1)
IE.0 EX0 A8H Cho phép ngắt từ bên ngoài (0)
IE.1 ET0 A9H Cho phép ngắt do bộ định thời 0
![Page 119: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/119.jpg)
Ưu tiên ngắt
M i nguyên nhân ng t đ c l p trình đ có m t trong ỗ ắ ượ ậ ể ộhai m c u tiên ng t thông qua thanh ghi u tiên ng t IE ứ ư ắ ư ắcó đ a ch 0B8Hị ỉ
04/20/2304/20/23 119119
Bit Kí hiệu Địa chỉ Mô tả
IP.7 - Không sử dụng
IP.6 - Không sử dụng
IP.5 PT2 BDH Ưu tiên ngắt do bộ định thời 2
IP.4 PS BCH Ưu tiên ngắt do port nối tiếp
IP.3 PT1 BBH Ưu tiên ngắt do bộ định thời 1
IP.2 PX1 BAH Ưu tiên ngắt từ bên ngoài (1)
IP.1 PT0 B9H Ưu tiên ngắt do bộ định thời 0
IP.0 PX0 B8H Ưu tiên ngắt từ bên ngoài (0)
![Page 120: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/120.jpg)
Chuỗi vòng
Chu i vòng xác đ nh ng t nào đ c u tiên ph c v ỗ ị ắ ượ ư ụ ụtr c.ướ
M c đ u tiên:ứ ộ ư Ng t ngoài 0ắ Ng t do b đ nh th i 0ắ ộ ị ờ Ng t ngoài 1ắ Ng t do b đ nh th i 1ắ ộ ị ờ Ng t do port n i ti pắ ố ế
04/20/2304/20/23 120120
![Page 121: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/121.jpg)
Xử lý ngắt
Quá trình x lý ng t:ử ắ Hoàn t t vi c th c thi l nh hi n hànhấ ệ ự ệ ệ B đ m ch ng trình PC đ c c t vào stackộ ế ươ ượ ấ Tr ng thái c a ng t hi n hành đ c l u gi l iạ ủ ắ ệ ượ ư ữ ạ Các ng t đ c ch n l i m c ng tắ ượ ặ ạ ở ứ ắ B đ m ch ng trình PC đ c n p đ a ch vector c a trình ộ ế ươ ượ ạ ị ỉ ủ
ph c v ng t ISRụ ụ ắ ISR đ c th c thiượ ự
Vi c th c thi ISR k t thúc khi g p l nh RETI.L nh này ệ ự ế ặ ệ ệl y l i giá tr cũ c a b đ m ch ng trình PC t stack và ấ ạ ị ủ ộ ế ươ ừph c h i tr ng thái c a ng t cũụ ồ ạ ủ ắ
04/20/2304/20/23 121121
![Page 122: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/122.jpg)
Các vector ngắt
Giá tr đ c n p cho b đ m ch ng trình đ c g i là ị ượ ạ ộ ế ươ ượ ọvector ng t.ắ
Vector ng t chính là đ a ch b t đ u c a trình ph c v ắ ị ỉ ắ ầ ủ ụ ụng t c a nguyên nhân t ng ngắ ủ ươ ứ
Khi trình gây ng t đ c tr t i, c gây ng t t đ ng b ắ ượ ỏ ớ ờ ắ ự ộ ịxóa b i ph n c ng, ngo i tr c RI và TIở ầ ứ ạ ừ ờ
04/20/2304/20/23 122122
![Page 123: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/123.jpg)
Địa chỉ các vector ngắt
Ngắt Cờ Địa chỉ
Reset hệ thống RST 0000H
Ngắt ngoài 0 IE0 0003H
Bộ định thời 0 TF0 000BH
Ngắt ngoài 1 IE1 0013H
Bộ định thời 1 TF1 001BH
Port nối tiếp RI hoặc TI 0023H
04/20/2304/20/23 123123
![Page 124: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/124.jpg)
Chương trình sử dụng ngắt
ORG 000H ;đi m nh p sau khi resetể ậLJMP MAIN
... ;các đi m nh p c a ISRể ậ ủORG 0030H;đi m nh p ch ng trình chínhể ậ ươ
MAIN: ;ch ng trình chính b t đ uươ ắ ầ...
04/20/2304/20/23 124124
![Page 125: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/125.jpg)
Trình phục vụ ngắt kích thước nhỏ Các trình ph c v ph i đ c b t đ u g n đáy c a b nh .ụ ụ ả ượ ắ ầ ở ầ ủ ộ ớ Ch có 8 byte gi a các đi m nh p c a trình ph c ng t -> ỉ ữ ể ậ ủ ụ ắ
trình ph c v ng t t ng ng có đ dài không quá 8 byte.ụ ụ ắ ươ ứ ộ Ví d : ng t do b đ nh th i 0ụ ắ ộ ị ờ
ORG 0000H; reset
LJMP MAIN
ORG 000BH; đi m nh p c a ng t do b đ nh th i ể ậ ủ ắ ộ ị ờ0
T0_ISR: ;b t đ u ISR cho b đ nh th i 0ắ ầ ộ ị ờRETI ;tr v ch ng trình chínhở ề ươMAIN:
04/20/2304/20/23 125125
![Page 126: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/126.jpg)
Trình phục vụ ngắt kích thước lớn
V i trình ph c v ng t l n h n 8 byte, ta ph i chuy n ớ ụ ụ ắ ớ ơ ả ểch ng trình này đ n m t n i khác trong b nh ươ ế ộ ơ ộ ớch ng trình ho c l n qua đi m nh p c a ISR khácươ ặ ấ ể ậ ủ
Ví d : kh o sát b đ nh th i 0ụ ả ộ ị ờORG 0000H ;reset
LJMP MAIN
ORG 000BH ;đi m nh p b đ nh th i 0ể ậ ộ ị ờLJMP T0_ISR
ORG 0030H ;phía trên các vector ng tắMAIN:
T0_ISR: ;ISR c a b đ nh th i 0ủ ộ ị ờRETI ;quay v ch ng trình chínhề ươ
04/20/2304/20/23 126126
![Page 127: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/127.jpg)
Ngắt do port nối tiếp
Xu t hi n khi c ng t phát TI ho c c ng t thu RI đ c ấ ệ ờ ắ ặ ờ ắ ượset b ng 1ằ
Ng t phát xu t hi n khi vi c phát m t kí t đã ghi vào SBUF ắ ấ ệ ệ ộ ựhoàn t t(SBUF r ng).ấ ỗ
Ng t thu xu t hi n khi m t kí t đ c thu đ y đ và đang ắ ấ ệ ộ ự ượ ầ ủ ởtrong SBUF (SBUF đ y).ầ
C ng t do port n i ti p gây ra không đ c xóa b i ờ ắ ố ế ượ ởph n c ng. Nguyên nhân ng t ph i đ c xác đ nh trong ầ ứ ắ ả ượ ịtrình ph c v ng t và c ng t ph i đ c xóa b i ph n ụ ụ ắ ờ ắ ả ượ ở ầm mề
04/20/2304/20/23 127127
![Page 128: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN](https://reader033.vdocuments.pub/reader033/viewer/2022061600/56813a41550346895da22f3f/html5/thumbnails/128.jpg)
Các ngắt ngoài
Ng t ngoài x y ra khi có m c th p ho c c nh âm trên ắ ả ứ ấ ặ ạchân /INT0 và /INT1
C t o ra các ng t: bit IE0 và IE1 c a thanh ghi TCONờ ạ ắ ủ C t o ra ng t đ c xóa b i ph n c ng n u là ng t th c lo i tác ờ ạ ắ ượ ở ầ ứ ế ắ ộ ạ
đ ng c nh.ộ ạ N u ng t thu c lo i tác đ ng m c, nguyên nhân ng t sẽ đi u ế ắ ộ ạ ộ ứ ắ ề
khi n m c c a c .ể ứ ủ ờ Vi c ch n lo i tác đ ng ng t là c nh hay m c đ c th c ệ ọ ạ ộ ắ ạ ứ ượ ự
hi n thông qua bit IT0 và IT1 c a TCONệ ủ
04/20/2304/20/23 128128