vi xử lý hệ thống điều khiển bàn phím

12 622 0
vi xử lý hệ thống điều khiển bàn phím

Đ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

KHOA CÔNG NGHỆ ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP T T À À I I L L I I Ệ Ệ U U H H Ư Ư Ớ Ớ N N G G D D Ẫ Ẫ N N T T H H Í Í N N G G H H I I Ệ Ệ M M - - T T H H Ự Ự C C H H À À N N H H D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Giáo trình thực hành vi xử lý. 2 Biên soạn: Phạm Quang Trí A. MỤC ĐÍCH: • Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng. • Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển các thiết bị ngoại vi bằng bàn phím (bàn phím thiết kế theo kiểu ma trận). • Trình bày kỹ thuật quét phím cho dạng bàn phím ma trận 16 phím (4 hàng x 4 cột). • Trình bày một số ứng dụng trong kỹ thuật điều khiển bàn phím. B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Biết cách viết các chương trình điều khiển bàn phím ma trận. • Nắm được sơ đồ và nguyên hoạt động của khối bàn phím ma trận trên mô hình thí nghiệm. • Nắm được nguyên và kỹ thuật quét phím cho các dạng bàn phím ma trận. • Biết cách viết các chương trình ứng dụng có sử dụng bàn phím ma trận để điều khiển các thiết bị ngoại vi khác nhau. D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 1: Chương trình điều khiển bàn phím và hiển thị mã của phím nhấn trên 8 LED dưới dạng số BIN (LED sáng = mức 1, LED tắt = mức 0), khơng phím nào được nhấn thì mã phím là FFH (KEYPAD được nối với Port0, LED được nối với Port1). Giáo trình thực hành vi xử lý. 3 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mơ hình thí nghiệm. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J11 (BAR LED 1) ở khối dãy LED. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J15 (KEYBOARD) ở khối phím ma trận. • Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn. LED DÃY BAR LED 2 BAR LED 1POWER BÀN PHÍM MA TRẬN VI ĐIỀU KHIỂN A0 A7 SELECT CHIP CLOCK OUT POWER SW NGUỒN +5V 8 8 1.2 Sơ đồ ngun của hệ thống: AD7 AD0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD4 AD0 AD1 AD2 AD3 AD7 AD6 AD5 D0 D0 D0 D1 D1 D2 D2 D3 D3 D4 D4 D5 D5 D6 D6 D7 D7 D7 D6 D5 D4 D3 D2 D1 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 33p C2 33p X1 12MHz C3 10uF R1 10k +5V D1 R2 330 +5V D2 R3 330 +5V D3 R4 330 +5V D4 R5 330 +5V D5 R6 330 +5V D6 R7 330 +5V D7 R8 330 +5V D8 R9 330 +5V 1B 1 2B 2 3B 3 4B 4 5B 5 6B 6 7B 7 8B 8 1C 18 2C 17 3C 16 4C 15 5C 14 6C 13 7C 12 8C 11 COM 10 U2 ULN2803 2 3 4 5 6 7 8 9 1 RP1 10K +5V MẠCH ĐIỀU KHIỂN BÀN PHÍM MA TRẬN 4 x 4 MẠCH ĐIỀU KHIỂN BÀN PHÍM MA TRẬN 4 x 4MẠCH ĐIỀU KHIỂN BÀN PHÍM MA TRẬN 4 x 4 MẠCH ĐIỀU KHIỂN BÀN PHÍM MA TRẬN 4 x 4 2 3 4 5 6 7 8 9 1 RP2 10K 1 2 3 654 8 9 = 7 ++ C ON 0 A B C D 1 2 4 3 +5V +5V D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 1: Chương trình điều khiển bàn phím và hiển thị mã của phím nhấn trên 8 LED dưới dạng số BIN (LED sáng = mức 1, LED tắt = mức 0), không phím nào được nhấn thì mã phím là FFH (KEYPAD được nối với Port0, LED được nối với Port1). Giáo trình thực hành vi xử lý. 4 Biên soạn: Phạm Quang Trí 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN BAN PHIM MA TRAN 4 X 4. ;*************************************************** ;KET NOI: LED -> PORT1 (CO DEM DAO), KEYPAD -> PORT0. ;*************************************************** ORG 00H MAIN: LCALL SCANKEYPAD ;QUET KEYPAD JC MP1 ;KIEM TRA CO NHAN PHIM (C = 1) MOV A,#0FFH ;KHONG NHAN PHIM A = FFH MP1: ;CO NHAN PHIM A = MA PHIM MOV P1,A ;XUAT MA PHIM RA LED HIEN THI DANG SO BIN LJMP MAIN ;QUAY LAI KIEM TRA KEYPAD TIEP ;*************************************************** SCANKEYPAD: ;CTC QUET BAN PHIM MA TRAN 4 X 4, CO CHONG DOI. PUSH 03H MOV R3,#50 ;SO LAN LAP DE CHONG DOI BACK: ACALL GETKEY ;GOI CTC QUET PHIM JNC NOPRESSED ;C = 0 -> THOAT KHI KHONG CO PHIM NHAN. DJNZ R3,BACK ;C = 1 -> CO PHIM NHAN, GIAM SO LAN LAP DE CHONG DOI NOPRESSED: POP 03H RET ;*************************************************** GETKEY: PUSH 05H PUSH 06H PUSH 07H MOV A,#0EFH ;BAT DAU TAI COT 0 MOV R6,#4 ;R6 LAM BO DEM COT TEST: MOV P0,A ;TICH CUC COT MOV R7,A ;LUU ACC MOV A,P0 ;DOC LAI TU PORT 1 ANL A,#0FH ;CACH LY CAC HANG CJNE A,#0FH,KEYPRESSED ;HANG TICH CUC ? MOV A,R7 ;N -> DI CHUYEN TOI RL A ;COT KE TIEP DJNZ R6,TEST CLR C ;KHONG CO PHIM DUOC NHAN HAY NHAN NHIEU PHIM CUNG LUC SJMP EXIT ;THOAT VOI C = 0 KEYPRESSED: MOV R7,A ;LUU TRONG R7 D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 1: Chương trình điều khiển bàn phím và hiển thị mã của phím nhấn trên 8 LED dưới dạng số BIN (LED sáng = mức 1, LED tắt = mức 0), không phím nào được nhấn thì mã phím là FFH (KEYPAD được nối với Port0, LED được nối với Port1). Giáo trình thực hành vi xử lý. 5 Biên soạn: Phạm Quang Trí MOV A,#4 ;CHUAN BI TINH CLR C ;TRONG SO CUA COT SUBB A,R6 ;4 - R6 = TRONG SO MOV R6,A ;LUU TRONG R6 MOV A,R7 ;PHUC HOI MA QUET MOV R5,#4 ;DUNG R5 LAM BO DEM AGAIN: RRC A ;QUAY CHO DEN KHI = 0 JNC DONE ;THUC THI XONG KHI C = 0 INC R6 ;CONG 4 CHO DEN KHI TIM THAY HANG TICH CUC INC R6 INC R6 INC R6 DJNZ R5,AGAIN DONE: SETB C ;CO PHIM NHAN -> C = 1 MOV A,R6 ;MA TRONG A EXIT: POP 07H POP 06H POP 05H RET END 1.4 Lưu chương trình và biên dịch chương trình. 1.5 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có. 1.6 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động. 1.7 Nạp chương trình vào vi điều khiển. 1.8 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển. 1.9 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9. 2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển và hiển thị mã của phím nhấn trên LED 7 đoạn. Tự lựa chọn phương pháp kết nối bàn phím và LED 7 đoạn. • Bài 2: Hãy viết chương trình điều khiển và hiển thị mã của phím nhấn trên LED ma trận. Tự lựa chọn phương pháp kết nối bàn phím và LED ma trận. • Bài 3: Hãy viết chương trình điều khiển và hiển thị tên của phím nhấn trên LED 7 đoạn. Tự lựa chọn phương pháp kết nối bàn phím và LED 7 đoạn. • Bài 4: Hãy viết chương trình điều khiển và hiển thị tên của phím nhấn trên LED ma trận. Tự lựa chọn phương pháp kết nối bàn phím và LED ma trận. • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: Chương trình điều khiển bàn phím và biểu diễn các kiểu hiển thị trên tám LED thông qua các phím được nhấn (KEYPAD được nối với Port0, LED được nối với Port1): Nhấn phím “F1”: 8 LED sáng tắt 3 lần. Nhấn phím “F2”: 8 LED sáng dần và tắt dần. Nhấn phím “F3”: 8 LED đếm lên nhị phân. Nhấn phím “F4”: 8 LED sáng dồn. Giáo trình thực hành vi xử lý. 6 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 1.2 Sơ đồ nguyên của hệ thống: • Sơ đồ nguyên của hệ thống tương tự như Bài 1. 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. SCANKEYPAD (XEM CTC NÀY TẠI PHẦN HƯỚNG DẪN CỦA DỤ D2) DELAY500MS (XEM CTC NÀY TẠI DỤ A1) ĐIỀU KHIỂN LED TẮT (P1) = 00000000B / 0 = TẮT CHOPTAT GỌI CTC TẠO TRỄ DELAY500MS ĐIỀU KHIỂN LED SÁNG (P1) = 11111111B / 1 = SÁNG GỌI CTC TẠO TRỄ DELAY500MS CHOPTAT: ĐIỀU KHIỂN LED SÁNG (P1) = 11111111B / 1 = SÁNG GỌI CTC TẠO TRỄ DELAY500MS ĐIỀU KHIỂN LED TẮT (P1) = 00000000B / 0 = TẮT GỌI CTC TẠO TRỄ DELAY500MS ĐIỀU KHIỂN LED SÁNG (P1) = 11111111B / 1 = SÁNG GỌI CTC TẠO TRỄ DELAY500MS ĐIỀU KHIỂN LED TẮT (P1) = 00000000B / 0 = TẮT GỌI CTC TẠO TRỄ DELAY500MS RET XUẤT DỮ LIỆU RA LED (P1) = (A) GỌI CTC TẠO TRỄ DELAY500MS TĂNG GIÁ TRỊ (+1) (A) = (A) + 1 DEMLEN DEMLEN: CẤT TẠM GIÁ TRỊ CỦA THANH GHI A VÀO STACK LẤY LẠI GIÁ TRỊ CHO THANH GHI A TỪ STACK NẠP GIÁ TRỊ BẮT ĐẦU ĐẾM (A) = 00H DL: Đ S CHƯA ĐẾM XONG (A) 00H RET SANGDAN SANGDAN: NẠP GIÁ TRỊ ĐẦU (A) = 0 / 0 = TẮT THIẾT LẬP CỜ C / 1 = SÁNG (C) = 1 XUẤT DỮ LIỆU RA PORT (P1) = (A) GỌI CTC TẠO TRỄ DELAY500MS DỊCH TRÁI (A) KÈM C RLC A / SÁNG DẦN SD1: CHƯA SÁNG 8 LED (C) = 0 Đ S CẤT TẠM GIÁ TRỊ CỦA THANH GHI A VÀO STACK XÓA CỜ C / 0 = TẮT (C) = 0 XUẤT DỮ LIỆU RA PORT (P1) = (A) GỌI CTC TẠO TRỄ DELAY500MS DỊCH TRÁI (A) KÈM C RLC A / TẮT DẦN SD2: CHƯA TẮT 8 LED (C) = 1 Đ S LẤY LẠI GIÁ TRỊ CHO THANH GHI A TỪ STACK RET NẠP SỐ LẦN DỊCH BIT (R0) = 08H TRẠNG THÁI DÃY LED Ở LẦN DỒN ĐẦU TIÊN (R1) = 00000000B / 0 = TẮT LAP2: NẠP SỐ LẦN PHẢI DỊCH BIT (R2) = (R0) NẠP TRẠNG THÁI DỊCH BIT ĐẦU TIÊN (R3) = 000000001B / 1 = SÁNG LAP1: NẠP TRẠNG THÁI DỊCH BIT (A) = (R3) KẾT HỢP TRẠNG THÁI DÃY LED VÀ TRẠNG THÁI DỊCH BIT HIỆN TẠI (A) = (R3) + (R1) XUẤT DỮ LIỆU RA PORT (P1) = (A) GỌI CTC TẠO TRỄ DELAY500MS DỊCH TRÁI (R3) RL A / SÁNG ĐUỔI GIÃM SỐ LẦN DỊCH BIT (R2) SỐ LẦN DỊCH BIT ≠ 0 (CHƯA DỊCH BIT XONG) Đ S GIÃM SỐ LẦN PHẢI DỊCH BIT (R0) = (R0) - 1 THAY ĐỔI TRẠNG THÁI DÃY LED CHO LẦN DỒN KẾ TIẾP (DỊCH PHẢI BIT 1 VÀO R1) SỐ LẦN PHẢI DỊCH ≠ 0 (CHƯA ĐỦ 8 LẦN) Đ SANGDON SANGDON: S RET CẤT TẠM GIÁ TRỊ CỦA THANH GHI A VÀO STACK GỌI CTC QUÉT BÀN PHÍM SCANKEYPAD BEGIN GỌI CTC LED CHỚP TẮT CHOPTAT MAIN: D2 Đ S PHÍM NHẤN (A) 00H ĐIỀU KHIỂN TẮT LED (P1) = 00H NEXT1: GỌI CTC LED SÁNG/TẮT DẦN SANGDAN Đ S PHÍM NHẤN (A) 04H NEXT2: F1 F2 GỌI CTC LED ĐẾM LÊN DEMLEN Đ S PHÍM NHẤN (A) 08H NEXT3: GỌI CTC LED SÁNG DỒN SANGDON Đ S PHÍM NHẤN (A) 0CH NEXT4: F3 F4 ;*************************************************** ;CHUONG TRINH DIEU KHIEN LED HIEN THI CAC KIEU KHAC NHAU KHI ;TA NHAN CAC PHIM TREN BAN PHIM MA TRAN 4 X 4. ;*************************************************** ;KET NOI: LED -> PORT1 (CO DEM DAO), KEYPAD -> PORT0. ;*************************************************** ORG 00H D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: Chương trình điều khiển bàn phím và biểu diễn các kiểu hiển thị trên tám LED thông qua các phím được nhấn (KEYPAD được nối với Port0, LED được nối với Port1): Nhấn phím “F1”: 8 LED sáng tắt 3 lần. Nhấn phím “F2”: 8 LED sáng dần và tắt dần. Nhấn phím “F3”: 8 LED đếm lên nhị phân. Nhấn phím “F4”: 8 LED sáng dồn. Giáo trình thực hành vi xử lý. 7 Biên soạn: Phạm Quang Trí MAIN: MOV P1,#00H ;LED TAT LCALL SCANKEYPAD ;QUET KEYPAD CJNE A,#00H,NEXT1 ;KHONG PHAI PHIM F1 -> KIEM TIEP LCALL CHOPTAT ;PHIM F1 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG NEXT1: CJNE A,#04H,NEXT2 ;KHONG PHAI PHIM F2 -> KIEM TIEP LCALL SANGDAN ;PHIM F2 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG NEXT2: CJNE A,#08H,NEXT3 ;KHONG PHAI PHIM F3 -> KIEM TIEP LCALL DEMLEN ;PHIM F3 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG NEXT3: CJNE A,#0CH,NEXT4 ;KHONG PHAI PHIM F4 -> KIEM TIEP LCALL SANGDON ;PHIM F4 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG NEXT4: LJMP MAIN ;QUAY LAI KIEM TRA KEYPAD TIEP ;*************************************************** SCANKEYPAD: ;CTC QUET BAN PHIM MA TRAN 4 X 4, CO CHONG DOI. PUSH 03H MOV R3,#50 ;SO LAN LAP DE CHONG DOI BACK: ACALL GETKEY ;GOI CTC QUET PHIM JNC NOPRESSED ;C = 0 -> THOAT KHI KHONG CO PHIM NHAN. DJNZ R3,BACK ;C = 1 -> CO PHIM NHAN, GIAM SO LAN LAP DE CHONG DOI NOPRESSED: POP 03H RET ;*************************************************** GETKEY: PUSH 05H PUSH 06H PUSH 07H MOV A,#0EFH ;BAT DAU TAI COT 0 MOV R6,#4 ;R6 LAM BO DEM COT TEST: MOV P0,A ;TICH CUC COT MOV R7,A ;LUU ACC MOV A,P0 ;DOC LAI TU PORT 1 ANL A,#0FH ;CACH LY CAC HANG CJNE A,#0FH,KEYPRESSED ;HANG TICH CUC ? MOV A,R7 ;N -> DI CHUYEN TOI RL A ;COT KE TIEP DJNZ R6,TEST CLR C ;KHONG CO PHIM DUOC NHAN HAY NHAN NHIEU PHIM CUNG LUC SJMP EXIT ;THOAT VOI C = 0 KEYPRESSED: MOV R7,A ;LUU TRONG R7 MOV A,#4 ;CHUAN BI TINH CLR C ;TRONG SO CUA COT SUBB A,R6 ;4 - R6 = TRONG SO MOV R6,A ;LUU TRONG R6 MOV A,R7 ;PHUC HOI MA QUET MOV R5,#4 ;DUNG R5 LAM BO DEM AGAIN: RRC A ;QUAY CHO DEN KHI = 0 JNC DONE ;THUC THI XONG KHI C = 0 INC R6 ;CONG 4 CHO DEN KHI TIM THAY HANG TICH CUC INC R6 INC R6 INC R6 DJNZ R5,AGAIN DONE: SETB C ;CO PHIM NHAN -> C = 1 MOV A,R6 ;MA TRONG A D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: Chương trình điều khiển bàn phím và biểu diễn các kiểu hiển thị trên tám LED thông qua các phím được nhấn (KEYPAD được nối với Port0, LED được nối với Port1): Nhấn phím “F1”: 8 LED sáng tắt 3 lần. Nhấn phím “F2”: 8 LED sáng dần và tắt dần. Nhấn phím “F3”: 8 LED đếm lên nhị phân. Nhấn phím “F4”: 8 LED sáng dồn. Giáo trình thực hành vi xử lý. 8 Biên soạn: Phạm Quang Trí EXIT: POP 07H POP 06H POP 05H RET ;*************************************************** CHOPTAT: ;CTC DIEU KHIEN 8 LED SANG TAT MOV P1,#0FFH ;LED SANG LCALL DELAY500MS MOV P1,#00H ;LED TAT LCALL DELAY500MS MOV P1,#0FFH ;LED SANG LCALL DELAY500MS MOV P1,#00H ;LED TAT LCALL DELAY500MS MOV P1,#0FFH ;LED SANG LCALL DELAY500MS MOV P1,#00H ;LED TAT LCALL DELAY500MS RET ;*************************************************** DEMLEN: ;CTC DIEU KHIEN 8 LED DEM LEN NHI PHAN PUSH ACC MOV A,#00H ;LED TAT DL: MOV P1,A LCALL DELAY500MS INC A ;TANG NHI PHAN CJNE A,#00H,DL ;KIEM TRA DEM LEN HOAN TAT POP ACC RET ;*************************************************** SANGDAN: ;CTC DIEU KHIEN 8 LED SANG DAN VA TAT DAN PUSH ACC MOV A,#00H ;KHOI DONG GIA TRI BAN DAU SD1: SETB C ;C=1 MOV P1,A ;HIEN THI LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI KEM C, SANG DAN JNC SD1 ;CHUA SANG HET THI LAM TIEP SD2: CLR C ;C=0 MOV P1,A ;HIEN THI LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI KEM C, TAT DAN JC SD2 ;CHUA TAT HET THI LAM TIEP POP ACC RET ;*************************************************** SANGDON: PUSH ACC MOV R0,#08H ;LUU SO LAN DICH BIT MOV R1,#00H ;TRANG THAI LED KHI DON LAN DAU TIEN LAP2: MOV R2,00H MOV R3,#01H LAP1: MOV A,R3 ORL A,R1 MOV P1,A ;HIEN THI LCALL DELAY500MS MOV A,R3 ;DON LED RL A D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: Chương trình điều khiển bàn phím và biểu diễn các kiểu hiển thị trên tám LED thông qua các phím được nhấn (KEYPAD được nối với Port0, LED được nối với Port1): Nhấn phím “F1”: 8 LED sáng tắt 3 lần. Nhấn phím “F2”: 8 LED sáng dần và tắt dần. Nhấn phím “F3”: 8 LED đếm lên nhị phân. Nhấn phím “F4”: 8 LED sáng dồn. Giáo trình thực hành vi xử lý. 9 Biên soạn: Phạm Quang Trí MOV R3,A DJNZ R2,LAP1 ;CHUA DON XONG? QUAY LAI DEC R0 ;GIAM SO LAN DON LED SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO MOV A,R1 RRC A MOV R1,A CJNE R0,#00H,LAP2 ;CHUA HOAN TAT CHU TRINH? QUAY LẠI POP ACC RET ;*************************************************** DELAY500MS: ;CTC TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H DEL1: MOV TH0,#HIGH(-5000) MOV TL0,#LOW(-5000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL1 POP 00H RET END 1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên. 2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển thị của chuỗi ký tự “DIEN-TU” trên tám LED 7 đoạn. Tự lựa chọn phương pháp kết nối bàn phím và LED 7 đoạn.  Nhấn phím “ENTER”: hiển thị chuỗi.  Nhấn phím “ESC”: không hiển thị chuỗi.  Nhấn phím “1”: sáng tắt chuỗi liên tục.  Nhấn phím “2”: dịch chuyển chuỗi từ phải sang trái liên tục.  Nhấn phím “3”: dịch chuyển chuỗi từ trái sang phải liên tục.  Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. • Bài 2: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển thị của một số chuỗi ký tự trên tám LED 7 đoạn. Tự lựa chọn phương pháp kết nối bàn phím và LED 7 đoạn.  Nhấn phím “ESC”: không hiển thị chuỗi.  Nhấn phím “1”: hiển thị chuỗi “COCACOLA”.  Nhấn phím “2”: hiển thị chuỗi “PEPSI”.  Nhấn phím “3”: hiển thị chuỗi “FANTA”.  Nhấn phím “4”: hiển thị chuỗi “TRIBECO”.  Nhấn phím “5”: hiển thị chuỗi “NUOCSUOI”.  Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. • Bài 3: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển thị của LED1. Tự lựa chọn phương pháp kết nối bàn phím và LED 7 đoạn.  Nhấn phím “ESC”: không hiển thị.  Nhấn phím “1”: hiển thị đếm BCD từ 0 lên 9 trên LED1.  Nhấn phím “2”: hiển thị đếm BCD từ 9 xuống 0 trên LED1.  Nhấn phím “3”: hiển thị đếm HEX từ 0 lên F trên LED1.  Nhấn phím “4”: hiển thị đếm HEX từ 9 xuống 0 trên LED1.  Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. • Bài 4: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển thị của ký tự “A” trên LED ma trận. Tự lựa chọn phương pháp kết nối bàn phím và LED ma trận.  Nhấn phím “F1”: hiển thị ký tự màu đỏ. D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: Chương trình điều khiển bàn phím và biểu diễn các kiểu hiển thị trên tám LED thông qua các phím được nhấn (KEYPAD được nối với Port0, LED được nối với Port1): Nhấn phím “F1”: 8 LED sáng tắt 3 lần. Nhấn phím “F2”: 8 LED sáng dần và tắt dần. Nhấn phím “F3”: 8 LED đếm lên nhị phân. Nhấn phím “F4”: 8 LED sáng dồn. Giáo trình thực hành vi xử lý. 10 Biên soạn: Phạm Quang Trí  Nhấn phím “F2”: hiển thị ký tự màu xanh.  Nhấn phím “F3”: hiển thị ký tự màu vàng.  Nhấn phím “ESC”: không hiển thị ký tự.  Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. • Bài 5: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển thị của LED ma trận. Tự lựa chọn phương pháp kết nối bàn phím và LED ma trận.  Nhấn phím “ESC”: không hiển thị.  Nhấn phím “1”: hiển thị đếm BCD từ 0 lên 9 trên LED ma trận.  Nhấn phím “2”: hiển thị đếm BCD từ 9 xuống 0 trên LED ma trận.  Nhấn phím “3”: hiển thị các ký tự từ A đến Z trên LED ma trận.  Nhấn phím “4”: hiển thị các ký tự từ Z đến A trên LED ma trận. • Bài 6: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển thị của chuỗi ký tự “DAI HOC CONG NGHIEP TP HO CHI MINH” trên LED ma trận. Tự lựa chọn phương pháp kết nối bàn phím và LED ma trận.  Nhấn phím “ESC”: không hiển thị chuỗi.  Nhấn phím “1”: dịch chuyển chuỗi từ phải sang trái liên tục.  Nhấn phím “2”: dịch chuyển chuỗi từ trái sang phải liên tục.  Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. • Bài 7: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển thị của hai chuỗi ký tự “DAI HOC CONG NGHIEP TP HO CHI MINH” và “KHOA DIEN TU” trên LED ma trận. Tự lựa chọn phương pháp kết nối bàn phím và LED ma trận.  Nhấn phím “ESC”: không hiển thị chuỗi.  Nhấn phím “1”: dịch chuyển chuỗi từ phải sang trái liên tục.  Nhấn phím “2”: dịch chuyển chuỗi từ trái sang phải liên tục.  Nhấn phím “F1”: chọn chuỗi hiển thị có màu đỏ.  Nhấn phím “F2”: chọn chuỗi hiển thị có màu xanh.  Nhấn phím “F3”: chọn chuỗi hiển thị là “DAI HOC CONG NGHIEP TP HO CHI MINH”.  Nhấn phím “F4”: chọn chuỗi hiển thị là “KHOA DIEN TU”. • Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. 3 Hướng dẫn: NHẤN PHÍM 7 NHẤN PHÍM 4 NHẤN PHÍM 1 NHẤN PHÍM ESC NHẤN PHÍM 8 NHẤN PHÍM 5 NHẤN PHÍM 2 NHẤN PHÍM 0 NHẤN PHÍM 9 NHẤN PHÍM 6 NHẤN PHÍM 3 NHẤN PHÍM ENTER NHẤN PHÍM F1 NHẤN PHÍM F2 NHẤN PHÍM F3 NHẤN PHÍM F4 KHÔNG NHẤN PHÍM [...]... KI M TRA H T PHÍM) S TC DONE: CY PHÍM NH N (CY) = 1 LƯU MÃ PHÍM Ư C NH N (A) = (R6) EXIT: L Y L I GIÁ TR CHO R5, R6, R7 T STACK RET Giáo trình th c hành vi x 11 Biên so n: Ph m Quang Trí D H TH NG I U KHI N BÀN PHÍM Bài 2: Chương trình i u khi n bàn phím và bi u di n các ki u hi n th trên tám LED thông qua các phím ư c nh n (KEYPAD ư c n i v i Port0, LED ư c n i v i Port1): Nh n phím “F1”: 8...D H TH NG I U KHI N BÀN PHÍM Bài 2: Chương trình i u khi n bàn phím và bi u di n các ki u hi n th trên tám LED thông qua các phím ư c nh n (KEYPAD ư c n i v i Port0, LED ư c n i v i Port1): Nh n phím “F1”: 8 LED sáng t t 3 l n Nh n phím “F2”: 8 LED sáng d n và t t d n Nh n phím “F3”: 8 LED m lên nh phân Nh n phím “F4”: 8 LED sáng d n Chương trình con quét phím có ch ng d i: o Lưu : SCANKEYPAD... A C T CÓ PHÍM Ư C NH N (R6) = (A) GIÁ TR B M≠0 (CHƯA QUÉT C T XONG) L Y L I MÃ HÀNG C A PHÍM Ư C NH N DÙNG TÍNH TOÁN VÀ T O MÃ PHÍM (A) = (R7) XÓA C N P GIÁ TR S PHÍM TRONG M T C T (R5) = 4 AGAIN: S CY KHÔNG CÓ PHÍM NH N (CY) = 0 XOAY MÃ HÀNG TÌM V TRÍ PHÍM Ư C NH N THU C HÀNG NÀO - TÌM M C TH P (0) RRC A TÌM Ư C V TRÍ (CY) = 0 S TĂNG TR NG S CHO HÀNG K TI P (R6) = (R6) + 4 GIÃM GIÁ TR S PHÍM TRONG... = EFH N P TH I GIAN CH NG D I PHÍM KHI NH N PHÍM (R0) = 50 - S L N L P BACK: G I CTC T O MÃ PHÍM NH N GETKEY GIÃM S N P GIÁ TR B MC T (R6) = 4 TEST: XU T MÃ QUÉT C T (P0) = (A) LƯU MÃ QUÉT C T HI N T I (R7) = (A) L N QUÉT C GIÁ TR T BÀN PHÍM (A) = (P0) = c4c3c2c1h4h3h2h1B S L NL P≠0 (CHƯA XONG) S L Y L I GIÁ TR CHO R3 T STACK TÁCH L Y GIÁ TR HÀNG RA KH I GIÁ TR C TÙ BÀN PHÍM (XÓA B GIÁ TR C T) (A) =... sáng d n Chương trình con quét phím có ch ng d i: o Lưu : SCANKEYPAD NAME: INPUT: SCANKEYPAD - QUÉT BÀN PHÍM MA TR N 4x4 P0.0 – P0.3 = HÀNG 0 – HÀNG 3 (MÃ NH N D NG PHÍM NH N) P0.4 – P0.7 = C T 0 - C T 3 (TÍN HI U QUÉT, TÍCH C C = 0) OUTPUT: CÓ PHÍM NH N – (CY) = 1 VÀ (A) = MÃ PHÍM (00H – 0FH) KHÔNG PHÍM NH N – (CY) = 0 VÀ (A) = KHÔNG XÁC NH GETKEY GETKEY: C T T M GIÁ TR C A R5, R6, R7 VÀO STACK SCANKEYPAD:... c4c3c2c1h4h3h2h1B AND 00001111B = 0000h4h3h2h1B (A) = 0000h4h3h2h1B RET LƯU MÃ HÀNG C A PHÍM Ư C NH N (R7) = (A) CÓ NH N (A) KEYPRESSED: CÓ NH N PHÍM 00001111B 0FH S N P GIÁ TR TÍNH TR NG S C A C T CÓ PHÍM Ư C NH N (A) = 4 - S LƯ NG C T KHÔNG NH N L Y L I MÃ QUÉT C T HI N T I (R7) = (A) TÍNH TR NG S (NH NH T) C A C T CÓ PHÍM Ư C NH N TR NG S (MIN) = S LƯ NG C T - GIÁ TR B MC T (A) = (A) - (R6) D CH MÃ QUÉT... bi u di n các ki u hi n th trên tám LED thông qua các phím ư c nh n (KEYPAD ư c n i v i Port0, LED ư c n i v i Port1): Nh n phím “F1”: 8 LED sáng t t 3 l n Nh n phím “F2”: 8 LED sáng d n và t t d n Nh n phím “F3”: 8 LED m lên nh phân Nh n phím “F4”: 8 LED sáng d n o Chương trình m u: ;*************************************************** ;CTC QUET BAN PHIM MA TRAN 4 X 4, CO CHONG DOI ;***************************************************... INC R6 INC R6 INC R6 DJNZ R5,AGAIN DONE: SETB C ;CO PHIM NHAN -> C = 1 MOV A,R6 ;MA TRONG A EXIT: POP 07H POP 06H POP 05H RET ;*************************************************** Giáo trình th c hành vi x 12 Biên so n: Ph m Quang Trí . 9 NHẤN PHÍM 6 NHẤN PHÍM 3 NHẤN PHÍM ENTER NHẤN PHÍM F1 NHẤN PHÍM F2 NHẤN PHÍM F3 NHẤN PHÍM F4 KHÔNG NHẤN PHÍM D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: Chương trình điều khiển bàn phím và biểu diễn. D7 D7 D6 D5 D4 D3 D2 D1 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 33p C2 33p X1 12MHz C3 10uF R1 10k +5V D1 R2 330 +5V D2 R3 330 +5V D3 R4 330 +5V D4 R5 330 +5V D5 R6 330 +5V D6 R7 330 +5V D7 R8 330 +5V D8 R9 330 +5V 1B 1 2B 2 3B 3 4B 4 5B 5 6B 6 7B 7 8B 8 1C 18 2C 17 3C 16 4C 15 5C 14 6C 13 7C 12 8C 11 COM 10 U2 ULN2803 2 3 4 5 6 7 8 9 1 RP1 10K +5V MẠCH ĐIỀU KHIỂN BÀN PHÍM MA TRẬN 4 x 4 MẠCH ĐIỀU KHIỂN BÀN PHÍM MA TRẬN 4 x 4MẠCH ĐIỀU KHIỂN BÀN PHÍM MA TRẬN 4 x 4 MẠCH ĐIỀU KHIỂN BÀN PHÍM MA TRẬN 4 x 4 2 3 4 5 6 7 8 9 1 RP2 10K 1. vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng. • Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển các thiết bị ngoại vi bằng bàn phím (bàn phím thiết

Ngày đăng: 09/05/2014, 21:12

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan