Bài giảng Vi điều khiển 8051 - Một số bài tập giao diện với ngoại vi - Tống Văn On
Đoạn chương trình sau đây sẽ xuất nội dung của ô nhớ 30H ở RAM bên trong ra ngoại vi ghép với U2 và xuất nội dung của ô nhớ 31H ở RAM bên trong ra ngoại vi ghép với U3.
MOV A, 30H
MOV DPTR, #0C000H
MOVX @DPTR, A
MOV A, 31H
MOV DPTR, #0E000H
MOVX @DPTR, A
Vi điều khiển 8051Một số bài tập giao diện với ngoại viBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Mở rộng port xuất với các mạch chốtBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Đoạn chương trình sau đây sẽ xuất nội dung của ô nhớ 30H ở RAM bên trong ra ngoại vi ghép với U2 và xuất nội dung của ô nhớ 31H ở RAM bên trong ra ngoại vi ghép với U3. MOV A, 30H MOV DPTR, #0C000H MOVX @DPTR, A MOV A, 31H MOV DPTR, #0E000H MOVX @DPTR, AMở rộng port xuất với các mạch chốtBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Mở rộng port nhậpBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Nhập từ ngoại viĐoạn chương trình sau đây sẽ nhập dữ liệu từ ngoại vi ghép với U2 rồi cất vào ô nhớ 40H ở RAM bên trong và nhập dữ liệu từ ngoại vi ghép với U3 rồi cất vào ô nhớ 41H ở RAM bên trong. MOV DPTR, #8000HMOVX A, @DPTR MOV 40H, A MOV DPTR, #0A000H MOVX A, @DPTR MOV 41H, AMở rộng port nhậpBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Mở rộng port với PPI 8255Biên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Byte thấp của bus địa chỉPort A: địa chỉ là 6000H. Port B: địa chỉ là 6001H. Port C: địa chỉ là 6002H. Thanh ghi điều khiển: địa chỉ là 6003H.8255A có 3 chế độ hoạt động: chế độ 0, chế độ 1 và chế độ 2. Để PPI này hoạt động nhập/xuất, trước tiên ta phải khởi động để chọn chế độ và xác định việc nhập/xuất cho các port của 8255A. Đọan chương trình sau đây sẽ khởi động 8255A theo yêu cầu sau:Port A xuất ở chế độ 1. Port B nhập ở chế độ 0. MOV DPTR, #6003H MOV A, #10100010B MOV @DPTR, AMở rộng port với PPI 8255Biên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Đọan chương trình sau đây sẽ nhập dữ liệu từ ngoại vi qua port A, ghi kết quả vào ô nhớ 30H của RAM bên trong. Lấy nội dung ở nhớ 31H của RAM bên trong xuất ra ngoại vi qua port B và port C. Các port A, B, C hoạt động ở chế độ 0. MOV DPTR, #6003H MOV A, #10010000B MOVX @DPTR, A MOV DPTR, #6000H MOVX A, @DPTR MOV 30H, A MOV A, 31H MOV DPTR, #6001H MOVX @DPTR, A MOV DPTR, #6002H MOVX @DPTR, AMở rộng port với PPI 8255Mở rộng port với PPI 8255Địa chỉ port A: 6000H. Địa chỉ port B: 6100H. Địa chỉ port C: 6200H. Địa chỉ của thanh ghi điều khiển : 6300H.Mở rộng port với PPI 8255Biên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Hiển thị sốBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Địa chỉ của các IC chốt như sau: U3: 8000H. U4: A000H. U5: C000H. U6: E000H.Đọan chương trình sau đây hiển thị 4 số trên 4 LED 7-đọan. Các số hàng ngàn và hàng trăm cất trong ô nhớ 31H của RAM bên trong, còn các số hàng chục và hàng đơn vị cất trong ô nhớ 30H dưới dạng số BCD.Hiển thị sốBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Số cần hiển thịMã BCDMã 7 đoạnMã xuất ra port 0D7D6D5D4D3D2D1D0.gfedcba0000011000000C0H1000111111001F9H2001010100100A4H3001110110000B0H401001001100199H501011001001092H601101000001082H7011111111000F8H810001000000080H910011001000090HHiển thị sốBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. ORG 0000H CS4 EQU 8000H CS5 EQU 0A000H CS6 EQU 0C000H CS7 EQU 0E000H MOV A, 30H ANL A, #0FH ACALL BCDTO7SEG MOV DPTR, #CS7 MOVX @DPTR, A MOV A, 30H SWAP A ANL A, #0FH ACALL BCDTO7SEG Hiển thị sốBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. MOV DPTR, #CS6 MOVX @DPTR, A MOV A, 31H ANL A, #0FH ACALL BCDTO7SEG MOV DPTR, CS5 MOVX @DPTR, A MOV A, 31H SWAP A ANL A, #0FH ACALL BCDTO7SEG Hiển thị sốBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. MOV DPTR, #CS4 MOVX @DPTR, A BCDTO7SEG: MOV DPTR, #LED7SEG_TABLE MOVC A, @A+DPTR RET LED7SEG_TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H ENDHiển thị sốBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Hiển thị số - phương pháp quétBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.P1.7(L3)P1.6(L2)P1.5(L1)P1.4(L0)P1.3(D3)P1.2(D2)P1.1(D1)P1.0(D0)11104 bit của số BCD hàng đơn vị.11014 bit của số BCD hàng chục.10114 bit của số BCD hàng trăm.01114 bit của số BCD hàng ngàn.Hiển thị số - phương pháp quétBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. ORG 0000H MOV TMOD, #01H MOV A, 30H ANL A, #0FH ORL A, #0E0H MOV P1, A ACALL DELAY MOV A, 30H SWAP A ANL A, #0FH ORL A, #0D0H MOV P1, A ACALL DELAY Hiển thị số - phương pháp quétBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. MOV A, 31H ANL A, #0FH ORL A, #0B0H MOV P1, A ACALL DELAY MOV A, 31H SWAP A ANL A, #0FH ORL A, #70H MOV P1, A ACALL DELAY SJMP AGAIN Hiển thị số - phương pháp quétBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. DELAY: MOV TH0, #HIGH(1000) MOV TL0, #LOW(1000) SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 RET ENDHiển thị số - phương pháp quétBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Hiển thị số - phương pháp quétL3 ORG 0000H DONVI BIT P3.0 CHUC BIT P3.1 TRAM BIT P3.2 NGAN BIT P3.3 MOV TMOD, #01H SETB DONVI SETB CHUC SETB TRAM SETB NGAN Hiển thị số - phương pháp quétBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. AGAIN: MOV A, 30H ANL A, #0FH ACALL BCDTO7SEG ACALL OUT SETB NGAN CLR DONVI ACALL DELAY MOV A, 30H SWAP A ANL A, #0FH ACALL BCDTO7SEG ACALL OUT Hiển thị số - phương pháp quétBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. SETB DONVI CLR CHUC ACALL DELAY MOV A, 31H ANL A, #0FH ACALL BCDTO7SEG ACALL OUT SETB CHUC CLR TRAM ACALL DELAY MOV A, 31H SWAP A ANL A, #0FH ACALL BCDTO7SEG ACALL OUT SETB TRAM CLR NGAN ACALL DELAY SJMP AGAIN Hiển thị số - phương pháp quét BCDTO7SEG: MOV DPTR, #LED7SDEG_TABLE MOVC A, @A+DPTR RET OUT: MOV DPTR, #0E000H MOVX @DPTR, A RET DELAY: MOV TH0, #HIGH(1000) MOV TL0, #LOW(1000) SETB TR0 JNB TF0, $ CLR TR0 CLR TF0 RET ENDHiển thị số - phương pháp quétBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Baét ñaàuKhoâng cho pheùp ngoõ ra (OE = 0)Choïn keânh töông töï (xaùc laäp caùc ñòa chæ CBA)Taïo xung ALETaïo xung StartChôø bieán ñoåi xong(taïo trì hoaõn 120 s hoaëc chôø EOC = 1)Cho pheùp ngoõ ra (OE = 1)Ñoïc döõ lieäuKeát thuùcGiao diện với ADCBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Giao diện với ADCBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. ADC: CLR P3.0 ; chọn kênh 0. CLR P3.1 CLR P3.2 CLR P3.3 ; tạo xung START và ALE. SETB P3.3 CLR P3.3 JNB P3.4, $ ; chờ EOC lên 1. MOV 40H, P1 ; đọc ADC. RETGiao diện với ADCBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. ADC: CLR P3.0 ; chọn kênh 0. CLR P3.1 CLR P3.2 CLR P3.3 ; tạo xung START và ALE. SETB P3.3 CLR P3.3 ACALL DELAY120 ; chờ 120 s. MOV 40H, P1 ; đọc ADC. RET DELAY120: PUSH 07H ; cất nội dung R7 vào stack. MOV R7, #60 ; lặp lại 60 lần. DJNZ R7, $ ; lệnh này thực thi trong 2 s nên ta trì hoãn 120 s. POP 07H RETGiao diện với ADCBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Giao diện với ADCBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. ADC: CLR P1.0 ; chọn kênh 0. CLR P1.1 CLR P1.2 MOV DPTR, #4000H ; địa chỉ của ADC. MOVX @DPTR, A ; tạo xung START và ALE (Y2 ; và WR bằng 0). JNB P1.3, $ ; chờ EOC lên 1. MOVX A, @DPTR ; đọc ADC (Y2 và RD bằng 0). MOV 40H, A ; cất vào ô nhớ 40H RETGiao diện với ADCBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Giao diện với ADCBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051. ORG 0000H LJMP MAIN ORG 0003H LJMP EXT0_ISR ORG 0030H MAIN: CLR P1.0 ; chọn kênh 0. CLR P1.1 CLR P1.2 MOV DPTR, #4000H ; địa chỉ của ADC. MOVX @DPTR, A ; tạo xung START và ALE (Y2 và WR bằng 0). SJMP $ ; chờ ngắt. EXT0_ISR: MOV DPTR, #4000H ; địa chỉ của ADC. MOVX A, @DPTR ; đọc ADC (Y2 và RD bằng 0). MOV 40H, A ; cất vào ô nhớ 40H RETI ENDGiao diện với ADCBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Giao diện với DACCác dòng lệnh sau đây sẽ xuất ra Vanalog_out điện áp 4 V.MOV DPTR, #8000HMOV A, #(255 x 4 / 5)MOVX @DPTR, AGiao diện với DACBiên soạn: Tống Văn On, dựa theo tài liệu Thiết kế hệ thống với họ 8051.Giao diện với bàn phím máy tínhGiao diện với bàn phím máy tính
File đính kèm:
- bai_giang_vi_dieu_khien_8051_mot_so_bai_tap_giao_dien_voi_ng.ppt