1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

VI ĐIỀU KHIỂN ỨNG DỤNG NGẮT docx

21 239 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 442,71 KB

Nội dung

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 155 VI ĐIỀU KHIỂN ỨNG DỤNG NGẮT VĐK LUÔN THỰC HIỆN MỘT CHƯƠNG TRÌNH THƯỜNG GỌI LÀ CHƯƠNG TRÌNH CHÍNH KHI CÓ MỘT SỰ T

Trang 1

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 155

VI ĐIỀU KHIỂN ỨNG DỤNG NGẮT VĐK LUÔN THỰC HIỆN MỘT CHƯƠNG TRÌNH THƯỜNG GỌI LÀ CHƯƠNG TRÌNH CHÍNH

KHI CÓ MỘT SỰ TÁC ĐỘNG TỪ BÊN NGOÀI BẰNG PHẦN CỨNG HAY TÁC ĐỘNG BÊN TRONG LÀM CHO VĐK NGỪNG THỰC HIỆN CHƯƠNG TRÌNH CHÍNH ĐỂ THỰC HIỆN MỘT CHƯƠNG TRÌNH KHÁC (CÒN GỌI LÀ CHƯƠNG TRÌNH PHỤC VỤ NGẮT ISR) VÀ SAU KHI THỰC HIỆN XONG VĐK TRỞ LẠI THỰC HIỆN TIẾP CHƯƠNG TRÌNH CHÍNH

QUÁ TRÌNH LÀM GIÁN ĐOẠN VI XỬ LÝ THỰC HIỆN CHƯƠNG TRÌNH CHÍNH XEM NHƯ LÀ NGẮT CÓ NHIỀU SỰ TÁC ĐỘNG LÀM NGỪNG CHƯƠNG TRÌNH CHÍNH GỌI LÀ CÁC NGUỒN NGẮT,

VÍ DỤ TIMER/COUNTER ĐẾM TRÀN SẼ TẠO RA NGẮT

NGẮT ĐÓNG MỘT VAI TRÒ QUAN TRỌNG TRONG LẬP TRÌNH ĐIỀU KHIỂN

TA CÓ THỂ MINH HỌA

Hình 4-27 Vi điều khiển thực hiện chương trình chính trong 2 trường hợp không và có ngắt

CÁC NGUỒN BÁO NGẮT GỒM 6 TÍN HIỆU

Trang 2

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 156

TG CHO PHÉP NGẮT/CẤM NGẮT IE (INTERRUPT ENABLE):

EA - ET2 ES ET1 EX1 ET0 EX0 CHỨC NĂNG CỦA TỪNG BIT:

BIT KÍ HIỆU ĐỊA CHỈ BIT CHỨC NĂNG (ENABLE = 1; DISABLE = 0)

IE.7 EA AFH CHO PHÉP/CẤM TOÀN BỘ CÁC NGUỒN NGẮT

IE.6 - AEH CHƯA DÙNG ĐẾN

IE.5 ET2 ADH CHO PHÉP/CẤM NGẮT TIMER 2 (8052)

IE.4 ES ACH CHO PHÉP/CẤM NGẮT PORT NỐI TIẾP

IE.3 ET1 ABH CHO PHÉP/CẤM NGẮT TIMER 1

IE.2 EX1 AAH CHO PHÉP/CẤM NGẮT NGOÀI EXTERNAL1 (INT1)

IE.1 ET0 A9H CHO PHÉP/CẤM NGẮT TIMER 0

IE.0 EX0 A8H CHO PHÉP/CẤM NGẮT NGOÀI EXTERNAL0 (INT0)

Trang 3

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 157

CÁC VECTOR NGẮT (INTERRUPT VECTORS):

Thanh ghi có chức năng thiết lập chế độ ưu tiên trong vi điều khiển là thanh ghi IP (Interrupt Priority) tại địa chỉ 0B8H Tổ chức của thanh ghi như sau:

- - PT2 PS PT1 PX1 PT0 PX0 Hoạt động của từng bit trong thanh ghi IP được tóm tắt trong bảng 4-15

Bit Kí hiệu Địa chỉ bit Chức năng

IP.7 - - Chưa sử dụng IP.6 - - Chưa sử dụng IP.5 PT2 BDH Ưu tiên cho ngắt Timer 2 (8052)

IP.4 PS BCH Ưu tiên cho ngắt Port nối tiếp

IP.3 PT1 BBH Ưu tiên cho ngắt Timer 1

IP.2 PX1 BAH Ưu tiên cho ngắt ngoài External 1

IP.1 PT0 B9H Ưu tiên cho ngắt Timer 0

IP.0 PX0 B8H Ưu tiên cho ngắt ngoài External 0

Bảng 4-15 Tóm tắt chức năng các bit của thanh ghi IP

Trang 4

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 158

CÁC VECTOR ĐỊA CHỈ NGẮT DO NHÀ THIẾT KẾ CUNG CẤP

INTERRUPT FLAG VECTORS ADDRESS SYSTEM RESET RST 0000H

Bảng 4-17 Tóm tắt vector địa chỉ ngắt

VECTOR RESET HỆ THỐNG BẮT ĐẦU TẠI ĐỊA CHỈ 0000H: KHI RESET VI ĐIỀU KHIỂN THÌ THANH GHI PC = 0000H VÀ CHƯƠNG TRÌNH CHÍNH LUÔN BẮT ĐẦU TẠI ĐỊA CHỈ NÀY

KHI BẠN SỬ DỤNG YÊU CẦU NGẮT NÀO THÌ CHƯƠNG TRÌNH CON PHỤC VỤ NGẮT PHẢI VIẾT ĐÚNG TẠI ĐỊA CHỈ TƯƠNG ỨNG VÍ DỤ BẠN SỬ DỤNG NGẮT TIMER T0 THÌ CHƯƠNG TRÌNH NGẮT BẠN PHẢI VIẾT TẠI ĐỊA CHỈ 000BH

BÀI SỐ 1: YÊU CẦU:

MỘT HỆ THỐNG DÙNG VĐK CÓ 2 PORT ĐIỀU KHIỂN 16 LED ĐƠN

1 P0 ĐIỀU KHIỂN 8 LED SÁNG TẮT DẦN VỚI TGIAN TRỂ LÀ 50MS (TIMER0)

2 P1 CÓ 1 ĐIỂM SÁNG DI CHUYỂN VỚI TGIAN TRỂ LÀ 1S (TIMER1)

PHÂN TÍCH YÊU CẦU:

Trang 5

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 159

P0 ĐIỀU KHIỂN 8 LED SÁNG TẮT DẦN VỚI TGIAN TRỂ LÀ 50MS THỰC HIỆN

LIÊN TỤC – GIAO CHO CHƯƠNG TRÌNH CHÍNH THỰC HIỆN

P1 CÓ 1 ĐIỂM SÁNG DI CHUYỂN VỚI TGIAN TRỂ LÀ 1S (TIMER1) – GIAO CHO

CHƯƠNG TRÌNH PHỤC VỤ NGẮT TIMER1

CJNE BDN,#20,INT0EXIT MOV BDN,#0

Trang 6

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 160

Trang 7

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 161

JNB TF0,$

RET END

BÀI SỐ 2: YÊU CẦU:

MỘT HỆ THỐNG DÙNG VĐK CÓ 2 PORT ĐIỀU KHIỂN 16 LED ĐƠN

P0 ĐIỀU KHIỂN 8 LED SÁNG TẮT DẦN VỚI TGIAN TRỂ LÀ 50MS (TIMER0) P1 HIỂN THỊ DỮ LIỆU TỪ MÁY TÍNH GỞI XUỐNG

PHÂN TÍCH YÊU CẦU:

P0 ĐIỀU KHIỂN 8 LED SÁNG TẮT DẦN VỚI TGIAN TRỂ LÀ 50MS THỰC HIỆN

LIÊN TỤC – GIAO CHO CHƯƠNG TRÌNH CHÍNH THỰC HIỆN

P1 CÓ 1 ĐIỂM SÁNG DI CHUYỂN VỚI TGIAN TRỂ LÀ 1S (TIMER1) – GIAO CHO

CHƯƠNG TRÌNH PHỤC VỤ NGẮT TIMER1

Trang 8

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 162

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Trang 9

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 163

CJNE BDN,#20,INT_T0A MOV BDN,#0

PUSH ACC MOV A,P1

Trang 10

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 164

RL A MOV P1,A POP ACC INT_T0A: RETI

MAIN: MOV IE,#10001000B ;TIMER1 NGAT

MOV TMOD,#00010001B SETB TR1

MOV P1,#01H MOV P0,#00H MAIN1: CALL DELAY50MS

SETB C MOV A,P0 RLC A MOV P0,A JNC MAIN1 MAIN2: CLR C

MOV A,P0 RLC A MOV P0,A CALL DELAY50MS JNC MAIN2

JMP MAIN1 DELAY50MS:

MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0

JNB TF0,$

CLR TR0 CLR TF0 RET

END CHƯƠNG TRÌNH ĐỒNG HỒ SỐ GIỜ PHÚT GIÂY – HIỂN THỊ TRÊN LED 7 ĐOẠN SỬ DỤNG TIMER0 BÁO NGẮT ĐỂ TĂNG THỜI GIAN GIÂY

Trang 11

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 165

TIMER0 ĐỊNH THỜI 50MS THÌ BÁO NGẮT ĐỂ TĂNG BIẾN CÓ TÊN BDN (GỌI LÀ BIẾN ĐẾM NGẮT) KHI BIẾN ĐẾM NGẮT BẰNG 20 THÌ ĐƯỢC 1 GIÂY

Begin

Khởi tạo timer0 đếm thời gian 50ms Cho phép timer0 ngắt để tăng BDN

BDN=20 Đ S

End

BDN = 00 Giải mã giây từ số BCD sang mã 7 đoạn

Giây : = Giây +1

Giây =60 S

ORG 0000H ;SYSTEM RESET JMP MAIN

ORG 000BH ;T0 ADDRESS INC BDN

Trang 12

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 166

MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) RETI

MAIN: MOV DPTR,#MA7DOAN

MOV IE,#10000010B ;82H MOV TMOD,#00000001B ;TIME0: MOD1, DEM XUNG NOI SETB TR0 ;CHO TIMER0 DEM

CJNE BDN,#20,LBA ;BDN=20 => TG=50MS×20=1S

INC GIAY CJNE GIAY,#60,LB1 INC PHUT

CJNE PHUT,#60,LB2 MOV PHUT,#0

INC GIO CJNE GIO,#24,LB2 MOV GIO,#0

JMP LB2

HEXTOBCD: MOV A,GIAY

MOV B,#10 DIV AB ;(A)=CHUC GIAY, (B)=DONVI GIAY MOV 27H,B

MOV 26H,A

MOV A,PHUT MOV B,#10 DIV AB ;(A)=CHUC PHUT, (B)=DONVI PHUT MOV 25H,B

Trang 13

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 167

MOV 24H,A

MOV A,GIO MOV B,#10 DIV AB ;(A)=CHUC GIO, (B)=DONVI GIO MOV 23H,B

MOV 22H,A RET

GIAIMA: MOV A,27H

MOVC A,@A+DPTR ;GIAI MA HANG DON VI GIAY MOV 37H,A ;(37H) LUU MA7DOAN DVI GIAY

MOV A,26H MOVC A,@A+DPTR ;CHUC GIAY MOV 36H,A ;(36H) LUU MA7DOAN CHUC GIAY

MOV A,25H MOVC A,@A+DPTR ;DON VI PHUT MOV 35H,A ;(35H) LUU MA7DOAN DVI PHUT

MOV A,24H MOVC A,@A+DPTR ;CHUC PHUT MOV 34H,A ;(34H) LUU MA7DOAN CHUC PHUT

MOV A,23H MOVC A,@A+DPTR ;DON VI PHUT MOV 33H,A ;(35H) LUU MA7DOAN DVI PHUT

MOV A,22H MOVC A,@A+DPTR ;CHUC PHUT MOV 32H,A ;(34H) LUU MA7DOAN CHUC PHUT RET

HIENTHI: MOV P0,37H ;HTHI DV GIAY

MOV P2,#11111110B CALL DELAY1MS

Trang 14

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 168

MOV P0,36H ;HTHI CHUC GIAY MOV P2,#11111101B

DO THỜI GIAN NGẮT NHANH HƠN THỜI GIAN XỬ LÝ CỦA CHƯƠNG TRÌNH CHÍNH – CHƯƠNG TRÌNH HIỂN THỊ MẤT NHIỀU THỜI GIAN HƠN 10MS

CHTR DK DEM PHUT GIAY

GIO EQU R3 PHUT EQU R2 GIAY EQU R1 BDN EQU R4 ORG 0000H ;SYSTEM RESET

Trang 15

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 169

JMP MAIN

ORG 000BH ;T0 ADDRESS INC BDN

MOV TH0,#HIGH(-5000) MOV TL0,#LOW(-5000) RETI

MAIN: MOV DPTR,#MA7DOAN

MOV IE,#10000010B ;82H MOV TMOD,#00000001B ;TIME0: MOD1, DEM XUNG NOI SETB TR0 ;CHO TIMER0 DEM

MOV BDN,#00 MOV GIO,#08 MOV PHUT,#50 LB2: MOV GIAY,#00

LB1: MOV BDN,#00

CALL HEXTOBCD CALL GIAIMA LBA: CALL HIENTHI

CJNE BDN,#2,LBA ;BDN=20 => TG=50MS×20=1S

INC GIAY CJNE GIAY,#60,LB1 INC PHUT

CJNE PHUT,#60,LB2 MOV PHUT,#0

INC GIO CJNE GIO,#24,LB2 MOV GIO,#00H JMP LB2

CÁC CHƯƠNG TRÌNH CON CÒN LẠI GIỐNG NHƯ TRÊN

Trang 16

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 170

LÝ LUẬN CHÍNH XÁC KHÔNG BỊ TRƯỢT KHI QUÁ GIÁ TRỊ 2 CỦA BDN

;CHTR DK DEM PHUT GIAY

GIO EQU R3 PHUT EQU R2 GIAY EQU R1 BDN EQU R4

ORG 0000H ;SYSTEM RESET JMP MAIN

ORG 000BH ;T0 ADDRESS INC BDN

MOV TH0,#HIGH(-5000) MOV TL0,#LOW(-5000) RETI

MAIN: MOV DPTR,#MA7DOAN

MOV IE,#10000010B ;82H MOV TMOD,#00000001B ;TIME0: MOD1, DEM XUNG NOI SETB TR0 ;CHO TIMER0 DEM

MOV BDN,#00 MOV GIO,#08 MOV PHUT,#50 LB2: MOV GIAY,#00

LB1: CALL HEXTOBCD

CALL GIAIMA LBA: CALL HIENTHI

CJNE BDN,#2,LBB ;BDN=20 => TG=50MS×20=1S

MOV BDN,#00 LBC: INC GIAY

CJNE GIAY,#60,LB1 INC PHUT

Trang 17

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 171

CJNE PHUT,#60,LB2 MOV PHUT,#00 INC GIO

CJNE GIO,#24,LB2 MOV GIO,#00 JMP LB2

;XXXXXXXXXXXXXX

LBB: JC LBA ;NHAY NEU NHO HON 2

MOV A,BDN CLR C

SUBB A,#2 MOV BDN,A JMP LBC CÁC CHƯƠNG TRÌNH CON CÒN LẠI GIỐNG NHƯ TRÊN

CHUONG TRINH GIO PHUT GIAY CO PHIM DIEU CHINH GIO

;CHTR DK DEM PHUT GIAY

GIO EQU R3 PHUT EQU R2 GIAY EQU R1 BDN EQU R4

ORG 0000H ;SYSTEM RESET JMP MAIN

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

;CHUONG TRINH CON NGAT INT0

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ORG 0003H ;INT0 JMP INT0_TIEPTUC

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

;CHUONG TRINH CON NGAT TIMER0

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ORG 000BH ;T0 ADDRESS INC BDN

MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000)

Trang 18

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 172

INT0_END: CALL HIENTHI

JNB P3.2,INT0_END SETB EA

SETB IT0 ;CHO PHEP NGAT CANH

CJNE BDN,#20,LBA ;BDN=20 => TG=50MS×20=1S INC GIAY

Trang 19

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 173

CJNE GIAY,#60,LB1 INC PHUT

CJNE PHUT,#60,LB2 MOV PHUT,#0 INC GIO

CJNE GIO,#24,LB2 MOV GIO,#0

JMP LB2

HEXTOBCD: MOV A,GIAY

MOV B,#10 DIV AB ;(A)=CHUC GIAY, (B)=DONVI GIAY MOV 27H,B

MOV 26H,A

MOV A,PHUT MOV B,#10 DIV AB ;(A)=CHUC PHUT, (B)=DONVI PHUT MOV 25H,B

MOV 24H,A

MOV A,GIO MOV B,#10 DIV AB ;(A)=CHUC GIO, (B)=DONVI GIO MOV 23H,B

MOV 22H,A RET

GIAIMA: MOV A,27H

MOVC A,@A+DPTR ;GIAI MA HANG DON VI GIAY MOV 37H,A ;(37H) LUU MA7DOAN DVI GIAY MOV A,26H

Trang 20

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 174

MOVC A,@A+DPTR ;CHUC GIAY MOV 36H,A ;(36H) LUU MA7DOAN CHUC GIAY

MOV A,25H MOVC A,@A+DPTR ;DON VI PHUT MOV 35H,A ;(35H) LUU MA7DOAN DVI PHUT

MOV A,24H MOVC A,@A+DPTR ;CHUC PHUT MOV 34H,A ;(34H) LUU MA7DOAN CHUC PHUT

MOV A,23H MOVC A,@A+DPTR ;DON VI PHUT MOV 33H,A ;(35H) LUU MA7DOAN DVI PHUT

MOV A,22H MOVC A,@A+DPTR ;CHUC PHUT MOV 32H,A ;(34H) LUU MA7DOAN CHUC PHUT RET

HIENTHI: MOV P0,37H ;HTHI DV GIAY

MOV P2,#11111110B CALL DELAY1MS

MOV P0,36H ;HTHI CHUC GIAY MOV P2,#11111101B

CALL DELAY1MS

MOV P0,35H ;HTHI DV PHUT MOV P2,#11110111B

CALL DELAY1MS MOV P0,34H ;HTHI CHUC PHUT MOV P2,#11101111B

Trang 21

Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 175

Ngày đăng: 07/08/2014, 05:23

TỪ KHÓA LIÊN QUAN

w