cẤu trÚc vi xỬ lÝ vÀ vi ĐiỀu khiỂn

128
PHAN HẢI PHONG Khoa Vật Lý – Trường ĐH Khoa Học Huế [email protected]

Upload: zubeda

Post on 05-Jan-2016

94 views

Category:

Documents


5 download

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 Presentation

TRANSCRIPT

Page 1: 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]

Page 2: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN

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

Ch ng Iươ

04/20/2304/20/23 33

Page 4: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ch ng IIươ

04/20/2304/20/23 1818

Page 19: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Đ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

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

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

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

Ch ng 3ươ

04/20/2304/20/23 5151

Page 52: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN

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

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

Đị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

Đị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

Đị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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ch ng 4ươ

04/20/2304/20/23 8080

Page 81: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN

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

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

QQ

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

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

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

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

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

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

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

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

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

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

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

Đ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

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

Đọ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

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

Ch ng 5ươ

04/20/2304/20/23 9797

Page 98: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ch ng 6ươ

04/20/2304/20/23 115115

Page 116: CẤU TRÚC VI XỬ LÝ VÀ VI ĐIỀU KHIỂN

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

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

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

Ư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

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

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

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

Đị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

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

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

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

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

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