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

 

ppt39 trang | Chuyên mục: Vi Xử Lý – Vi Điều Khiển | Chia sẻ: tuando | Lượt xem: 369 | Lượt tải: 0download
Tóm tắt nội dung 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, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pptbai_giang_vi_dieu_khien_8051_mot_so_bai_tap_giao_dien_voi_ng.ppt