Vi điều khiển giao tiếp với phím nhấn- bàn phím
Đạ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: bàn phím nút nhấn 91 VI ĐIỀU KHIỂN GIAO TIẾP VỚI PHÍM NHẤN – BÀN PHÍM PHÍM NHẤN, NÚT NHẤN, BÀN PHÍM DÙNG ĐỂ GIAO TIẾP GIỮA CON NGƯỜI VÀ THIẾT BỊ ĐIỀU KHIỂN. VÍ DỤ: BÀN PHÍM MÁY TÍNH, BÀN PHÍM ĐIỆN THOẠI, BÀN PHÍM MÁY BÁN XĂNG DẦU DÙNG NHẬP SỐ TIỀN CẦN BÁN, SỐ LÍT CẦN BÁN, … MÁY GIẶT TỰ ĐỘNG CĨ BÀN PHÍM ĐỂ CHỈNH CHẾ ĐỘ GIẶT, CHỌN MỰC NƯỚC, … CĨ 2 DẠNG GIAO TIẾP: HỆ THỐNG ÍT PHÍM: VÍ DỤ ĐK ĐỘNG CƠ BẰNG 3 PHÍM: START, STOP, INV, ĐỒNG HỒ CĨ 3 ĐẾN 4 PHÍM ĐỂ CHỈNH THỜI GIAN. HỆ THỐNG NHIỀU PHÍM: HỆ THỐNG BÁN XĂNG DẦU, …, MÁY TÍNH, ĐIỆN THOẠI, MẠCH ĐIỆN GIAO TIẾP – HỆ THỐNG ÍT PHÍM HOẠT ĐỘNG CỦA PHÍM NHẤN: SỬ DỤNG PHÍM THƯỜNG HỞ, NÊN CÁC NGÕ VÀO THƯỜNG Ở MỨC 1. KHI NHẤN THÌ KÍN MẠCH HAY NGẮN MẠCH NỐI MASS LÀM NGÕ VÀO XUỐNG MỨC 0 VÀ BUÔNG TAY – KHÔNG NHẤN NỮA THÌ TRỞ LẠI MỨC 1. CHƯƠNG TRÌNH KIỂM TRA XEM CHÚNG TA CÓ NHẤN PHÍM HAY KHÔNG BẰNG CÁCH KIỂM TRA MỨC LOGIC: NẾU MỨC LOGIC LÀ 1 THÌ KHÔNG NHẤN, LÀ 0 THÌ CÓ NHẤN PHÍM THÌ TIẾN HÀNH XỬ LÝ THEO 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: bàn phím nút nhấn 92 BÀI SỐ 5-1: CHƯƠNG TRÌNH ĐK ĐỘNG CƠ ĐC CHẠY THUẬN – NGỪNG CÓ 2 PHÍM NHẤN: START, STOP NẾU ĐCƠ NGỪNG THÌ NHẤN START – ĐCƠ SẼ QUAY THUẬN NẾU ĐCƠ ĐANG QUAY MÀ NHẤN STOP THÌ ĐCƠ NGỪNG DÙNG 1 NGÕ RA ĐIỀU KHIỂN ĐC: VIẾT CHƯƠNG TRÌNH ;CHUONG TRINH DIEU KHIEN DONG CO QUAY THUAN NGHICH START BIT P3.0 ;PHIM START NOI VOI P3.0 STOP BIT P3.1 DC1 BIT P1.0 ;XANH – DK DONG CO ORG 0H LB: CLR DC1 ;NGUNG DONG CO JB START,$ ;CHO NHAN PHIM START SETB DC1 ;DCO CHAY THUAN - XANH SANG JB STOP,$ ;CHO NHAN STOP JMP LB $INCLUDE(TV_DELAY.ASM) END BÀI SỐ 5-2: CHƯƠNG TRÌNH ĐK ĐỘNG CƠ DC QUAY THUẬN NGHỊCH CÓ 3 PHÍM NHẤN: START, STOP, INV NẾU ĐCƠ NGỪNG THÌ NHẤN START – ĐCƠ SẼ QUAY THUẬN NẾU ĐCƠ ĐANG QUAY MÀ NHẤN STOP THÌ ĐCƠ NGỪNG NẾU ĐCƠ ĐANG QUAY MÀ NHẤN INV THÌ ĐCƠ ĐẢO CHIỀU DÙNG 2 NGÕ RA ĐIỀU KHIỂN ĐÈN XANH ĐỎ: 2 ĐÈN TẮT – ĐCƠ NGỪNG XANH SÁNG THÌ ĐCƠ QUAY THUẬN ĐỎ SÁNG THÌ ĐCƠ QUAY NGHỊCH DC1 DC2 TRẠNG THÁI 0 0 ĐC NGỪNG - 2 ĐÈN TẮT CLR DC1, CLR DC2 Đạ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: bàn phím nút nhấn 93 1 0 ĐC QUAY THUẬN – XANH SÁNG, ĐỎ TẮT SETB DC1 0 1 LƯU ĐỒ ĐIỀU KHIỂN 2 LED TẮT START? Đ BEGIN S LED XANH SÁNG STOP? Đ INV? S S ĐẢO LED BEGIN STOP ? Đ S ĐỘNG CƠ NGỪNG START ? ĐỘNG CƠ QUAY THUẬN Đ INV ? END S S Đ ĐẢO CHIỀU ĐỘNG CƠ 1. Lệnh nhảy khi bit = 1 : Cú pháp : JB BIT, REL Chức năng: nếu nội dung của bit có đòa chỉ bit [được xác đònh bởi byte thứ 2] bằng 1 thì vi điều khiển sẽ nhảy đến thực hiện chương trình tại đòa chỉ rel. 2. Lệnh nhảy khi bit = 0 : Cú pháp : JNB BIT, REL Chức năng: nếu nội dung của bit có đòa chỉ bit [được xác đònh bởi byte thứ 2] bằng 0 thì vi điều khiển sẽ nhảy đến thực hiện chương trình tại đòa chỉ bằng rel. Đạ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: bàn phím nút nhấn 94 CHÚ Ý: KHI BẮT ĐẦU THÌ ĐỘNG CƠ NGỪNG – CHỈ CẦN KIỂM TRA XEM CÓ NHẤN START KHÔNG? NẾU KHÔNG NHẤN THÌ CHỜ – KHÔNG CẦN KIỂM TRA STOP VÀ INV VÌ CHÚNG KHÔNG CÓ TÁC DỤNG. KHI ĐỘNG CƠ ĐÃ QUAY THÌ KIỂM TRA LẦN LƯT CÁC PHÍM STOP VÀ INV. CHUONG TRINH DIEU KHIEN DONG CO QUAY THUAN NGHICH START BIT P3.0 ;PHIM START NOI VOI P3.0 Đạ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: bàn phím nút nhấn 95 STOP BIT P3.1 INV BIT P3.2 DC1 BIT P1.0 ;XANH – DK DONG CO DC2 BIT P1.2 ;DO – DK DONG CO ORG 0H LB: CLR DC1 ;NGUNG DONG CO CLR DC2 JB START,$ ;CHO NHAN PHIM START SETB DC1 ;DCO CHAY THUAN - XANH SANG LB2: JNB STOP,LB ;NEU NHAN THI NHAY VE NGUNG 2 DC JB INV,LB2 ;NHAY VE LB2 KHI KHONG NHAN INV CPL DC1 ;NGHICH DAO COMPLEMENT CPL DC2 JMP LB2 $INCLUDE(TV_DELAY.ASM) END KHUYẾT ĐIỂM LÀ NHẤN PHÍM BỊ DỘI PHÍM VÀ TỐC ĐỘ XỬ LÝ NGUYÊN NHÂN THỨ 1 – DỘI PHÍM: DO PHÍM LÀM BẰNG CƠ CẤU CƠ KHÍ NÊN KHI NHẤN THÌ LÒ XO ĐẨY PHÍM NGƯC LẠI LỰC TÁC ĐỘNG LÀM PHÍM TIẾP XÚC NHIỀU LẦN TRƯỚC KHI ỔN ĐỊNH VÀ NGUYÊN NHÂN THỨ 2: DO TỐC ĐỘ CỦA VXL HOẶC VĐK NHANH NÊN XEM NHƯ TA NHẤN NHIỀU LẦ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: bàn phím nút nhấn 96 PHẢI CHỐNG DỘI PHÍM: CHỐNG DỘI PHÍM: CÓ 2 CÁCH: 1. KIỂM TRA TRẠNG THÁI CỦA PHÍM NẾU CHUYỂN TRẠNG THÁI VÀ TỒN TẠI ÍT NHẤT KHOẢNG 20 MS THÌ XEM NHƯ CÓ PHÍM NHẤN. 2. SAU KHI PHÁT HIỆN PHÍM NHẤN, THÌ KIỂM TRA BUÔNG PHÍM HOẶC CÓ THỂ DELAY 20MS RỒI KIỂM TRA VÀ CHỜ CHO ĐẾN KHI BUÔNG PHÍM LƯU ĐỒ CHỐNG DỘI Đạ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: bàn phím nút nhấn 97 BEGIN Đ S PHÍM ? DELAY10MS Đ PHÍM ? END S Đ PHÍM ? DELAY10MS S ;CHUONG TRINH DIEU KHIEN DONG CO QUAY THUAN NGHICH – CO C DOI PHIM START BIT P3.0 STOP BIT P3.1 INV BIT P3.2 DC1 BIT P1.0 ;XANH DC2 BIT P1.2 ;DO ORG 0000H MOV P1,#00 LB: CLR DC1 ;NGUNG 2 DONG CO CLR DC2 JB START,$ ;CHO NHAN PHIM START SETB DC1 ;DCO CHAY THUAN - XANH SANG LB2: JNB STOP,LB LB1: CALL PHIM_INV ;GOI CHTR KIEM TRA VA CHONG DOI JMP LB2 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXFFFFFF PHIM_INV:JB INV,LBD1 ;KTRA LAN 1, NHAY NEU KHONG AN CALL DELAY10MS JB INV,LBD1 ;KTRA LAN 2, NHAY NEU KHONG AN CALL DELAY10MS Đạ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: bàn phím nút nhấn 98 JB INV,LBD1 ;KTRA LAN 3, NHAY NEU KHONG AN CPL DC1 ;DAO CHIEU DONG CO CPL DC2 JNB INV,$ ;CHO NHA PHIM LBD1: RET ;THOAT $INCLUDE(TV_DELAY.ASM) END CHỐNG DỘI CÁCH 2 LÀ NHẤN PHÍM THỰC THI XONG CHỜ BUÔNG PHÍM ;CHUONG TRINH ĐIỀU KHIỂN DCO TRONG THỰC TẾ CÓ DELAY CHỜ ĐỘNG CƠ DỪNG START BIT P3.4 STOP BIT P3.5 INV BIT P3.6 DC1 BIT P1.0 ;XANH DC2 BIT P1.2 ;DO DCT1 BIT 00H ;BIT TAM DCT2 BIT 01H ORG 0000H LB: SETB DCT1 ;NGUNG 2 DONG CO SETB DCT2 CALL OUTDCO JB START,$ ;CHO NHAN PHIM START CLR DCT1 ;DCO CHAY THUAN - XANH SANG CALL OUTDCO LB2: JB STOP,LB1 JMP LB ;NEU NHAN THI NHAY VE NGUNG 2 DC LB1: JB INV,LB2 CALL DELAY10MS Đạ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: bàn phím nút nhấn 99 JNB INV,$ SETB DC1 SETB DC2 CALL DELAY1S CALL DELAY1S CALL DELAY1S CPL DCT1 CPL DCT2 CALL OUTDCO JMP LB2 OUTDCO: MOV C,DCT1 MOV DC1,C MOV C,DCT2 MOV DC2,C RET $INCLUDE(TV_DELAY.ASM) END HỆ THỐNG NHIỀU PHÍM - MA TRẬN PHÍM VỚI CÁCH 1 THÌ MỖI PHÍM SỬ DỤNG 1 NGÕ VÀO ĐỂ KẾT NỐI. 16 PHÍM SẼ DÙNG 16 NGÕ VÀO – TỐN NHIỀU ĐƯỜNG TÍN HIỆU. VỚI CÁCH KẾT NỐI DẠNG MA TRẬN THÌ 16 PHÍM CHỈ DÙNG 8 TÍN HIỆU: 4 CHO HÀNG VÀ 4 CHO CỘT – GỌI LÀ MA TRẬN 4×4 = 16 PHÍM VÍ DỤ MA TRẬN 8×8 = 64 PHÍM ƯU ĐIỂM TIẾT KIỆM ĐƯỜNG ĐIỀU KHIỂN KHUYẾT ĐIỂM: CHƯƠNG TRÌNH PHỨC TẠP Đạ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: bàn phím nút nhấn 100 H0=P3.4 C3=P3.3 C2=P3.2 C1=P3.1 C0=P3.0 0 4 8 C 1 2 3 5 6 7 V CC =1 0 1 1 1 H1=P3.5 H2=P3.6 H3=P3.7 TRONG MA TRẬN 4×4 THÌ CÓ 4 HÀNG VÀ 4 CỘT HÀNG ĐƯC CHỌN LÀ TÍN HIỆU VÀO – CỘT ĐƯC CHỌN LÀ TÍN HIỆU RA H0=P3.4 C3=P3.3 C2=P3.2 C1=P3.1 C0=P3.0 0 4 8 C 1 2 3 5 6 7 V CC =1 0 1 1 1 H1=P3.5 H2=P3.6 H3=P3.7 HÀNG THÌ TREO ĐIỆN TRỞ LÊN NGUỒN VCC – NÊN MỨC LOGIC LÀ 1 CÁC PHÍM NHẤN THƯỜNG HỞ NÊN HÀNG LUÔN Ở MỨC 1. H3H2H1H0 =1111 CỘT LÀ TÍN HIỆU RA CHÚNG TA ĐIỀU KHIỂN CHO 1 CỘT Ở MỨC 0, 3 CỘT CÒN LẠI Ở MỨC 1. VÍ DỤ CỘT C0 = 0, C1C2C3=111 [...]... công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 120 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú END BÀI SỐ 6-2: CHƯƠNG TRÌNH ĐIỀU KHIỂN ĐỘNG CƠ DC QUAY THUẬN NGHỊCH CÓ PHÍM ĐIỀU KHIỂN DÙNG BÀN PHÍM MA TRẬN START LÀ PHÍM SỐ 0, STOP LÀ PHÍM SỐ 1, INV LÀ PHÍM SỐ 2 PHÍM SỐ 0 CÓ MÃ LÀ 00H, PHÍM SỐ 1 CÓ MÃ LÀ 01H, PHÍM SỐ 2 CÓ MÃ LÀ 02H, LƯU ĐỒ ĐIỀU KHIỂN BEGIN ĐỘNG CƠ NGỪNG... C3C2C1C0=0111 H3H2H1H0=1111 S END S Đ MP:=FFH END NẾU KHÔNG CÓ NHẤN PHÍM THÌ THOÁT VỚI MÃ PHÍM = FFH NẾU NHẤN PHÍM SỐ 0 H3 H2 H1 H0 C 1 1 1 0 X TRƯỚC KHI THỰC HIỆN H3 H2 H1 H0 C x 1 1 1 0 SAU KHI THỰC HIỆN NẾU NHẤN PHÍM SỐ 0 THÌ THỐT VỚI MP = 00H NẾU NHẤN PHÍM SỐ 1, MÃ PHÍM XUẤT PHÁT: MP=00 Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 104 Đại học sư phạm kỹ thuật tp HCM khoa điện... C0=P3.0 NHẤN PHÍM SỐ ‘C’ THÌ LÀM H0=0 HAY H3H2H1H0 = 1110 NHẤN PHÍM SỐ ‘D’ THÌ LÀM H1=0 HAY H3H2H1H0 = 1101 NHẤN PHÍM SỐ ‘E’ THÌ LÀM H2=0 HAY H3H2H1H0 = 1011 NHẤN PHÍM SỐ ‘F’ THÌ LÀM H3=0 HAY H3H2H1H0 = 0111 CÂU HỎI LÀM SAO ĐỂ PHÂN BIỆT CÁC PHÍM ? CÂU TRẢ LỜI LÀ MỖI PHÍM CÓ MỘT MÃ SỐ HAY MÃ PHÍM (MP) KHÁC NHAU VÀ CÓ 1 TÊN CÁC CHƯƠNG TRÌNH DÙNG MÃ PHÍM ĐỂ ĐIỀU KHIỂN, CÒN TÊN TRÊN PHÍM LÀ PHỤC... TÊN TRÊN PHÍM LÀ PHỤC VỤ CHO CON NGƯỜI CHÚNG TA XÂY DỰNG: PHÍM 0 CÓ MÃ LÀ 00H, PHÍM 1 CÓ MÃ LÀ 01, TƯƠNG TỰ CHO CÁC PHÍM CÒN LẠI CÓ THỂ TÊN PHÍM VÀ MÃ KHÔNG TRÙNG NHAU Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 102 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú VẬY KHI QUÉT PHÍM THÌ PHẢI TẠO RA MÃ PHÍM NHẤN VCC=1 0 4 1 5 2 6 3 7 0 8 1 C 1 1 H0=P3.4 H1=P3.5... C2=P3.2 C1=P3.1 C0=P3.0 QUÉT PHÍM XUẤT MỨC 0 LẦN LƯT RA CÁC CỘT BẮT ĐẦU TỪ CỘT C0, SAU ĐÓ KIỂM TRA CÁC HÀNG H3H2H1H0=1111 NẾU H3H2H1H0=1111(ĐÚNG) THÌ KHÔNG NHẤN PHÍM – HOẶC NHẤN PHÍM KHÁC, PHẢI QUÉT CỘT TIẾP THEO CHO ĐẾN KHI HẾT TẤT CẢ CÁC CỘT NẾU H3H2H1H0 ≠ 1111(SAI) THÌ CÓ NHẤN PHÍM – PHẢI XEM HÀNG NÀO BẰNG 0 Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 103 Đại học sư... A ;XU LY PHIM NHAN JC KEYP3 ;NHAY KHI C=1 RET BÀI SỐ 6-2: CTR TEST QUÉT PHÍM MA TRẬN VÀ HIỂN THỊ TRÊN 1 LED 7 ĐOẠN CHƯƠNG TRÌNH TEST QT MA TRẬN PHÍM XEM ĐÚNG HAY SAI BẰNG CÁCH GỌI CHƯƠNG TRÌNH QT PHÍM VÀ GIẢI MÃ HIỂN THỊ MÃ PHÍM TRÊN 1 LED 7 ĐOẠN ORG MOV Bộ môn điện tử công nghiệp 0H DPTR,#CODE7SEG bài giảng vi điều khiển: bàn phím nút nhấn 107 Đại học sư phạm kỹ thuật tp HCM MAIN1: khoa điện – điện... nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 101 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú VCC=1 0 4 1 5 2 6 3 7 1 8 C 0 1 1 H0=P3.4 H1=P3.5 H2=P3.6 H3=P3.7 C3=P3.3 C2=P3.2 C1=P3.1 C0=P3.0 NHẤN PHÍM SỐ ‘8’ THÌ LÀM H0=0 HAY H3H2H1H0 = 1110 NHẤN PHÍM SỐ ‘9’ THÌ LÀM H1=0 HAY H3H2H1H0 = 1101 NHẤN PHÍM SỐ ‘A’ THÌ LÀM H2=0 HAY H3H2H1H0 = 1011 NHẤN PHÍM SỐ ‘B’ THÌ LÀM... C0=P3.0 NẾU NHẤN PHÍM SỐ ‘0’ THÌ NỐI HÀNG H0=1(5V) VỚI C0=0 (0V): KHÁC ÁP – NGẮN MẠCH LÀM CHO H0 = 0 – DO CÓ ĐIỆN TRỞ NÊN KHÔNG SAO, VẬY: NHẤN PHÍM SỐ ‘0’ THÌ LÀM H0=0 HAY H3H2H1H0 = 1110 NHẤN PHÍM SỐ ‘1’ THÌ LÀM H1=0 HAY H3H2H1H0 = 1101 NHẤN PHÍM SỐ ‘2’ THÌ LÀM H2=0 HAY H3H2H1H0 = 1011 NHẤN PHÍM SỐ ‘3’ THÌ LÀM H3=0 HAY H3H2H1H0 = 0111 NẾU NHẤN PHÍM SỐ ‘4’ THÌ NỐI HÀNG H0=1(5V) VỚI C1=1 (5V):... PHÁT HIỆN 4 PHÍM ‘0’, ‘1’, ‘2’, ‘3’ NẾU KHÔNG NHẤN 4 PHÍM ‘0’, ‘1’, ‘2’, ‘3’ MÀ NHẤN CÁC PHÍM KHÁC THÌ TA PHẢI LÀM C1 = 0, C0C2C3=111 VCC=1 0 4 1 5 2 6 3 7 1 8 0 C 1 1 H0=P3.4 H1=P3.5 H2=P3.6 H3=P3.7 C3=P3.3 C2=P3.2 C1=P3.1 C0=P3.0 NHẤN PHÍM SỐ ‘4’ THÌ LÀM H0=0 HAY H3H2H1H0 = 1110 NHẤN PHÍM SỐ ‘5’ THÌ LÀM H1=0 HAY H3H2H1H0 = 1101 NHẤN PHÍM SỐ ‘6’ THÌ LÀM H2=0 HAY H3H2H1H0 = 1011 NHẤN PHÍM SỐ ‘7’... PHIM RET KEYP3: INC MP KEYP1: RRC A JC KEYP3 RET $INCLUDE(TV_DELAY.ASM) END BÀI SỐ 6-4: CTR CON QUÉT PHÍM MA TRẬN 5×4 NẾU 20 PHÍM MA TRẬN 5×4 THÌ LƯU ĐỒ THAY ĐỔI CÁI GÌ? 5 HÀNG + 4 CỘT = 9 ĐƯỜNG TÍN HIỆU NÊN KHÔNG DÙNG ĐƯC 1 PORT MÀ PHẢI DÙNG 2 PORT Bộ môn điện tử công nghiệp bài giảng vi điều khiển: bàn phím nút nhấn 109 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú KEYPAD DEM:=4