Bài giảng Vi điều khiển - Ngắt - interrupt - Nguyễn Đình Phú
Tóm tắt Bài giảng Vi điều khiển - Ngắt - interrupt - Nguyễn Đình Phú: ...A JNC MAIN1 MAIN2: CALL DELAY50MS CLR C MOV A,P3 RLC A MOV P3,A JC MAIN2 JMP MAIN1 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx DELAY50MS: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguye...nterrupt 11 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. LƯU ĐỒ ĐIỀU KHIỂN 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...iện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 15 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: MO...
Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 1 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 2 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). Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 3 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. Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 4 CÁC VECTOR ĐỊA CHỈ NGẮT DO NHÀ THIẾT KẾ CUNG CẤP INTERRUPT FLAG VECTORS ADDRESS SYSTEM RESET RST 0000H EXTERNAL0 IE0 0003H TIMER0 TF0 000BH EXTERNAL1 IE1 0013H TIMER1 TF1 001BH SERIAL PORT RI OR TI 0023H TIMER2 TF2 OR EXF2 002BH 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) LƯU ĐỒ ĐIỀU KHIỂN PHÂN TÍCH YÊU CẦU: Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 5 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 1 LED SÁNG (P1) SÁNG TẮT DẦN (P0) BEGIN END TẮT 8 LED (P0) CHO TIMER1 NGẮT (50MS) KT T0, T1: ĐẾM 50MS BDN:=0 DỊCH ĐIỂM SÁNG (P1) INT_T1 RET_I KHỞI TẠO LẠI 50MS BDN:= BDN+1 BDN=20 Đ S VIẾT CHƯƠNG TRÌNH ;CHUONG TRINH DIEU KHIEN BDN EQU R2 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ORG 0000H ;DC CUA CHƯƠNG TRÌNH CHÍNH JMP MAIN ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ORG 001BH ;DC CUA CT NGAT TIMER1 MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000) INC BDN CJNE BDN,#20,INT0EXIT MOV BDN,#0 MOV A,P1 RL A Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 6 MOV P1,A INT0EXIT: RETI ;RETURN FROM INTERRUPT ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx MAIN: MOV IE,#10001000B ;CHO PHEP NGAT EA=1, ET1=1 MOV TMOD,#00010001B ; SETB TR1 ;CHO TIMER1 DEM MOV P1,#00000001B MOV P3,#00H MOV BDN,#0 MAIN1: CALL DELAY50MS SETB C MOV A,P3 RLC A MOV P3,A JNC MAIN1 MAIN2: CALL DELAY50MS CLR C MOV A,P3 RLC A MOV P3,A JC MAIN2 JMP MAIN1 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx DELAY50MS: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 7 JNB TF0,$ CLR TF0 CLR TR0 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 LƯU ĐỒ ĐIỀU KHIỂN 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 1 LED SÁNG (P1) SÁNG TẮT DẦN (P0) BEGIN END TẮT 8 LED (P0) CHO TIMER1 NGẮT (50MS) KT T0, T1: ĐẾM 50MS BDN:=0 DỊCH ĐIỂM SÁNG (P1) INT_T1 RET_I KHỞI TẠO LẠI 50MS BDN:= BDN+1 BDN=20 Đ S VIẾT CHƯƠNG TRÌNH ;CHUONG TRINH DIEU KHIEN BDN EQU R2 DEM EQU R3 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 8 ORG 0000H JMP MAIN ORG 001BH ;BẮT ĐẦU CT NGẮT CỦA MOV TH1,#3CH MOV TL1,#0B0H INC BDN CJNE BDN,#20,INT_T1 MOV BDN,#0 PUSH ACC ;CẤT NỘI DUNG TGA VÀO BNNX MOV A,P1 RL A MOV P1,A POP ACC ;LẤY LẠI INT_T1: RETI ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx MAIN: MOV IE,#10001000B MOV TMOD,#00010001B ;T0,T1: MOD1 SETB TR1 MOV P1,#11111110B ;1 LED SANG MOV BDN,#0 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx MAIN3: MOV DEM,#8 ;8 LAN XOAY MOV P0,#11111111B ;8 LED TAT MAIN1: CALL DELAY50MS_T0 CLR C MOV A,P0 RLC A MOV P0,A DJNZ DEM,MAIN1 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 9 MOV DEM,#8 MAIN2: SETB C MOV A,P0 RLC A MOV P0,A CALL DELAY50MS_T0 DJNZ DEM,MAIN2 JMP MAIN3 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx DELAY50MS_T0: MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET END ;CHUONG TRINH BDN EQU R2 ORG 0000H JMP MAIN ORG 001BH MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000) INC BDN CJNE BDN,#20,INT_T0A MOV BDN,#0 PUSH ACC MOV A,P1 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 10 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 11 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. LƯU ĐỒ ĐIỀU KHIỂN 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 Đ Hiển thị trên led 7 đoạn Giây = 00 Tăng BĐN Ngắt TIMER0 RETI Khởi tạo lại timer0 – đếm 50ms tiếp theo VIẾT CHƯƠNG TRÌNH ;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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 12 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 LB: MOV GIO,#08 LB3: MOV PHUT,#30 LB2: MOV GIAY,#00 LB1: MOV BDN,#00 CALL HEXTOBCD CALL GIAIMA LBA: CALL HIENTHI 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 13 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 14 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 CALL DELAY1MS MOV P0,33H ;HTHI CHUC PHUT MOV P2,#10111111B CALL DELAY1MS MOV P0,32H ;HTHI CHUC PHUT MOV P2,# 01111111B CALL DELAY1MS RET $INCLUDE(TV_DELAY.ASM) MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H END KHI GIẢM THỜI GIAN (BDN SO SÁNH 2, GIẢM THỜI GIAN CỦA CHƯƠNG TRÌNH NGẮT TIMER0 CÒN 5MS) ĐỂ CHẠY NHANH THÌ THẤY HIỆN TƯỢNG ĐẾM CÀ GIỰT LÝ LUẬN KHÔNG CHÍNH XÁC BỊ TRƯỢT KHI QUÁ GIÁ TRỊ 2 CỦA BDN – CHỜ CHO ĐẾN KHI BDN TĂNG TỪ 3 ĐẾN 255 RỒI VỀ 0, 1, 2 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 15 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 16 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 17 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) Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 18 RETI ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;CHUONG TRINH CON NGAT INT0 DUNG DE CHINH GIO ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX INT0_TIEPTUC: CLR EA INC GIO CJNE GIO,#24,INT0_END MOV GIO,#00 INT0_END: CALL HIENTHI JNB P3.2,INT0_END SETB EA RETI ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;CHUONG TRINH CHINH ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MAIN: MOV DPTR,#MA7DOAN MOV IE,#10000011B ;83H MOV TMOD,#00000001B ;TIME0: MOD1, DEM XUNG NOI SETB TR0 ;CHO TIMER0 DEM SETB IT0 ;CHO PHEP NGAT CANH LB: MOV GIO,#14 LB3: MOV PHUT,#45 LB2: MOV GIAY,#00 LB1: MOV BDN,#00 CALL HEXTOBCD CALL GIAIMA LBA: CALL HIENTHI CJNE BDN,#20,LBA ;BDN=20 => TG=50MS×20=1S INC GIAY Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 19 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 20 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 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: ngắt – interrupt 21 CALL DELAY1MS MOV P0,33H ;HTHI CHUC PHUT MOV P2,#10111111B CALL DELAY1MS MOV P0,32H ;HTHI CHUC PHUT MOV P2,# 01111111B CALL DELAY1MS RET $INCLUDE(TV_DELAY.ASM) MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H END
File đính kèm:
- bai_giang_vi_dieu_khien_ngat_interrupt_nguyen_dinh_phu.pdf