Thông tin tài liệu
GIẢI BÀI TẬP VI XỬ LÝ (HỌ VI ĐIỀU KHIỂN 8051)
Họ tên : Đinh Thanh Nhân
MSSV: 40901793
1. CẤU TRÚC PHẦN CỨNG – GIẢI MÃ ĐỊA CHỈ
Giải:
Giải:
Giải:
2. SỬ DỤNG TẬP LỆNH
Truy xuất RAM nội
2.1 Viết CT ghi 40H vào ô nhớ 30H của RAM nội theo 2 cách (định địa chỉ ô nhớ trực tiếp
và định địa chỉ ô nhớ gián tiếp).
Giải:
Định địa chỉ trực tiếp
ORG 0000H
MOV A, #40H
MOV 30H, A
SJMP $
END
Định địa chỉ gián tiếp
ORG 0000H
MOV A, #40H
MOV R0, #30H
MOV @R0, A
END
2.2 Viết CT xóa ô nhớ 31H của RAM nội theo 2 cách (định địa chỉ ô nhớ trực tiếp và định địa
chỉ ô nhớ gián tiếp).
Giải:
Định địa chỉ trực tiếp
ỎRG 0000H
MOV 31H, #00H
END
Định địa chỉ gián tiếp
ORG 0000H
MOV R0, #31H
MOV @R0, #00H
END
2.3 Viết CT ghi nội dung thanh ghi A vào ô nhớ 32H của RAM nội theo 2 cách (định địa
chỉ ô nhớ trực tiếp và định địa chỉ ô nhớ gián tiếp).
Giải:
Định địa chỉ trực tiếp
ORG 0000H
MOV 32H, A
END
Định địa chỉ gián tiếp
ORG 000H
MOV R0, #32H
MOV @R0, A
END
2.4 Viết CT đọc ô nhớ 33H của RAM nội vào thanh ghi A theo 2 cách (định địa chỉ ô nhớ
trực tiếp và định địa chỉ ô nhớ gián tiếp).
Giải:
Định địa chỉ trực tiếp
ORG 0000H
MOV A, 33H
END
Định địa chỉ gián tiếp
ORG 0000H
MOV R0, #33H
MOV A, @R0
END
2.5 Viết CT chuyển dữ liệu ô nhớ 34H của RAM nội vào ô nhớ 35H của RAM nội theo 2
cách (định địa chỉ ô nhớ trực tiếp và định địa chỉ ô nhớ gián tiếp).
Giải:
Định địa chỉ trực tiếp
ORG 0000H
MOV 35H, 34H
END
Định địa chỉ gián tiếp
ORG 0000H
MOV R0, #35H
MOV @R0, 34H
END
Truy xuất RAM ngoài
2.6 Viết CT ghi 40H vào ô nhớ 0030H của RAM ngoài.
Giải:
ORG 0000H
MOV A, #40H
MOV DPTR, #0030H
MOVX @DPTR, A
END
2.7 Viết CT xóa ô nhớ 0031H của RAM ngoài.
Giải:
ORG 0000H
MOV A, #00H
MOV DPTR, #0031H
MOVX @DPTR, A
END
2.8 Viết CT đọc ô nhớ 0032H của RAM ngoài vào thanh ghi A.
Giải:
ORG 0000H
MOV DPTR, #0032H
MOVX A, @DPTR
END
2.9 Viết CT ghi nội dung thanh ghi A vào ô nhớ 0033H của RAM ngoài.
Giải:
ORG 0000H
MOV DPTR, #0033H
MOVX @DPTR, A
END
2.10 Viết CT chuyển dữ liệu ô nhớ 0034H của RAM ngoài vào ô nhớ 0035H của RAM
ngoài.
Giải:
ORG 0000H
MOV DPTR, #0034H
MOVX A, @DPTR
MOV DPTR, #0035H
MOVX @DPTR, A
END
Truy xuất Port
2.11 Viết CT xuất 0FH ra Port 1.
Giải:
ORG 0000H
MOV A, #0FH
MOV P1, A
END
2.12 Viết CT xuất F0H ra Port 2.
Giải:
ORG 0000H
MOV A, #F0H
MOV P2, A
END
2.13 Viết CT xuất nội dung thanh ghi A ra Port 1.
Giải:
ORG 0000H
MOV P1, A
END
2.14 Viết CT nhập từ Port 1 vào thanh ghi A.
Giải:
ORG 0000H
MOV P1, #0FFH
MOV A, P1
END
2.15 Viết CT nhập từ Port 1 và xuất ra Port 2.
Giải:
ORG 0000H
MOV P1, #0FFH
MOV A, P1
MOV P2, A
END
2.16 Viết CT xuất 1 (mức logic cao) ra chân P1.0
Giải:
ORG 0000H
SETB P1.0
END
2.17 Viết CT xuất 0 (mức logic thấp) ra chân P1.1
Giải:
ORG 0000H
CLR P1.1
END
Truy xuất RAM nội, RAM ngoài và Port
2.18 Viết CT chuyển dữ liệu ô nhớ 40H (RAM nội) đến ô nhớ 2000H (RAM ngoài). Làm
theo 2 cách (định địa chỉ ô nhớ trực tiếp và định địa chỉ ô nhớ gián tiếp).
Giải:
Định địa chỉ trực tiếp:
ORG 0000H
MOV A, 40H
MOV DPTR, #2000H
MOVX @DPTR, A
END
Định địa chỉ gián tiếp:
ORG 0000H
MOV R0, #40H
MOV A, @R0
MOV DPTR, #2000H
MOVX @DPTR, A
END
2.19 Viết CT chuyển dữ liệu ô nhớ 2001H (RAM ngoài) vào ô nhớ 41H (RAM nội). Làm
theo 2 cách (định địa chỉ ô nhớ trực tiếp và định địa chỉ ô nhớ gián tiếp).
Giải:
Định địa chỉ trực tiếp:
ORG 0000H
MOV A, 41H
MOV DPTR, #2001H
MOVX A, @DPTR
END
Định địa chỉ gián tiếp:
ORG 0000H
MOV R0, #41H
MOV A, @R0
MOV DPTR, #2001H
MOVX A, @DPTR
END
2.20 Viết CT nhập từ Port 1 vào ô nhớ 42H (RAM nội). Làm theo 2 cách (định địa chỉ ô
nhớ trực tiếp và định địa chỉ ô nhớ gián tiếp).
Giải:
Định địa chỉ trực tiếp:
ORG 0000H
MOV P1, #0FFH
MOV 42H, P1
END
Định địa chỉ gián tiếp:
ORG 0000H
MOV P1, #0FFH
MOV A, #42H
MOV @A, P1
[...]... (delay) 2 .35 Vi t CT con delay 100μs, biết rằng thạch anh (xtal) dùng trong hệ thống là: a 12 MHz b 6 MHz Giải: a) DELAY: MOV R3, #50 DJNZ R3, $ RET b) DELAY: MOV R3, #25 DJNZ R3, $ RET 2 .36 Vi t CT con delay 100ms, biết rằng thạch anh (xtal) dùng trong hệ thống là: a 12 MHz b 11,05 92 MHz Giải: a) DELAY: R2, #20 0 MOV R3, #25 0 DJNZ R3, $ DJNZ LOOP: MOV R2, LOOP RET b) DELAY: R2, #1 92 MOV R3, #24 0 DJNZ R3,... #24 0 DJNZ R3, $ DJNZ LOOP: MOV R2, LOOP RET 2 .37 Vi t CT con delay 1s, biết rằng thạch anh (xtal) dùng trong hệ thống là: a 12 MHz b 24 MHz Giải: c) DELAY: MOV R2, #8 LOOP: MOV R3, #25 0 LOOP1: MOV R4, #25 0 DJNZ R4, $ DJNZ R3, LOOP1 DJNZ R2, LOOP RET d) DELAY: MOV R4, #16 LOOP: MOV R2, #25 0 LOOP1: MOV R3, #25 0 DJNZ R3, $ DJNZ R2, LOOP1 DJNZ R4, LOOP RET Tạo xung 2 .38 Vi t CT tạo một xung dương ( ) tại...END 2. 21 Vi t CT nhập từ Port 1 vào ô nhớ 20 02H (RAM ngoài) Giải: ORG 0000H MOV P1, #0FFH MOV DPTR, #20 02H MOV A, P1 MOVX @DPTR, A END 2. 22 Vi t CT lấy ô nhớ 43H (RAM nội) xuất ra Port 1 Làm theo 2 cách (định địa chỉ ô nhớ trực tiếp và định địa chỉ ô nhớ gián tiếp) Giải: Định địa chỉ trực tiếp: ORG 0000H MOV P1, 43H END Định địa chỉ gián tiếp: ORG 0000H MOV R0, #43H MOV P1, @R0 END 2. 23 Vi t CT... là 12 MHz Giải: CLR P1.0 SETB P1.0 MOV R3, #5 LOOP: MOV R2, #100 DJNZ R2, $ DJNZ R3, LOOP CLR P1.0 END 2 .39 Vi t CT tạo chuỗi xung vuông có f = 100 KHz tại chân P1.1 (Xtal 12 MHz) Giải: ORG LOOP: 0000H CPL P1.1 NOP NOP SJMP LOOP END 2. 40 Vi t CT tạo chuỗi xung vuông có f = 100 KHz và có chu kỳ làm vi c D = 40% tại chân P1 .2 (Xtal 12 MHz) Giải: ORG LOOP: 0000H SETB P1 .2 NOP NOP NOP CLR P1 .2 2.41 Vi t... lấy ô nhớ 20 03H (RAM ngoài) xuất ra Port 1 Giải: ORG 0000H MOV DPTR, #20 03H MOVX A, @DPTR MOV P1, A END Sử dụng vòng lặp 2. 24 Vi t CT xóa 20 ô nhớ RAM nội có địa chỉ bắt đầu là 30 H Giải: ORG CLR A MOV R0, #30 H MOV R1, #20 MOV @R0, A INC R0 DJNZ LOOP: 0000H R1, LOOP SJMP $ END 2. 25 Vi t CT xóa các ô nhớ RAM nội từ địa chỉ 20 H đến 7FH Giải: ORG 0000H CLR A MOV MOV @R0, A INC R0 CJNE LOOP: R0, #20 H R0,... nhớ 30 H và byte thấp của số 16 bit đầu tiên được cất tại ô nhớ 31 H) Hãy vi t CT con cộng chuỗi số này và cất kết quả vào ô nhớ 2EH:2FH LOOP: MOV MOV MOV CLR MOV ADD XCH ADDC XCH INC INC INC INC DJNZ R7,#10 R0, #30 H R1, #31 H A 2EH,A A,@R1 A,2EH A,@R0 A,2EH R0 R0 R1 R1 R7,LOOP MOV RET 2FH,A 2. 48 Vi t CT con lấy bù 2 số 16 bit chứa trong R2:R3 MOV CPL ADD MOV MOV CPL ADDC MOV RET A,R3 A A,#1 R3,A A,R2 A... f = 10 KHz tại chân P1 .3 (Xtal 24 MHz) 0000H P1 .3 DELAY LOOP MOV DJNZ RET END LOOP: ORG CPL CALL SJMP R4,#46 R4,$ DELAY: 2. 42 Vi t CT tạo chuỗi xung vuông có f = 10 KHz và có chu kỳ làm vi c D = 30 % tại chân P1 .3 (Xtal 24 MHz) ORG LOOP: SETB ACALL CLR ACALL SJMP DELAY30: MOV DJNZ RET DELAY70: MOV DJNZ RET END 0000H P1 .3 DELAY30 P1 .3 DELAY70 LOOP R4, #26 R4,$ R4,#67 R4,$ 2. 43 Vi t CT tạo chuỗi xung vuông... A,R3 A A,#1 R3,A A,R2 A A,#0 R2,A So sánh 2. 49 Cho hai số 8 bit, số thứ 1 chứa trong (30 H), số thứ 2 chứa trong (31 H) Vi t CT con so sánh hai số này Nếu số thứ 1 lớn hơn hoặc bằng số thứ 2 thì set cờ F0, nếu ngược lại thì xóa cờ F0 TT: MOV CLR CJNE JC SETB RET A ,30 H F0 A ,31 H,$+1 TT F0 2. 50 Cho hai số 16 bit, số thứ 1 chứa trong (30 H): (31 H), số thứ 2 chứa trong ( 32 H): (33 H) Vi t CT con so sánh hai số này... #7FH, LOOP SJMP $ END 2. 26 Vi t CT xóa 25 0 ô nhớ RAM ngoài có địa chỉ bắt đầu là 4000H Giải: CLR MOV DPTR, #4000H MOV R0, #25 0 MOVX @DPTR, A INC DPTR DJNZ LOOP: A R0, LOOP SJMP $ END 2. 27 Vi t CT xóa 25 00 ô nhớ RAM ngoài có địa chỉ bắt đầu là 4000H Giải: CLR MOV DPTR, #4000H MOV NEXT: A R1, #10 MOV R0, #25 0 LOOP: MOVX @DPTR, A INC DPTR DJNZ R0, LOOP DJNZ R1, NEXT SJMP $ END 2. 28 Vi t CT xóa toàn bộ RAM... địa chỉ đầu là 20 00H Giải: CLR A MOV DPTR, #20 00H MOV R1, #64 NEXT: MOV R0, # 128 LOOP: MOVX @DPTR, A INC DPTR DJNZ R0, LOOP DJNZ R1, NEXT SJMP $ END 2. 29 Vi t CT chuyển một chuỗi dữ liệu gồm 10 byte trong RAM nội có địa chỉ đầu là 30 H đến vùng RAM nội có địa chỉ đầu là 40H Giải: MOV MOV R1, #40H MOV R2, #10 MOV A, @R0 MOV @R1, A INC R0 INC R1 DJNZ LOOP: R0, #30 H R2, LOOP SJMP $ END 2 .30 Vi t CT chuyển . DELAY: MOV R2, #20 0
LOOP: MOV R3, #25 0
DJNZ R3, $
DJNZ R2, LOOP
RET
b) DELAY: MOV R2, #1 92
LOOP: MOV R3, #24 0
DJNZ R3, $
DJNZ R2, LOOP
RET
2 .37 Vi t CT con. GIẢI BÀI TẬP VI XỬ LÝ (HỌ VI ĐIỀU KHIỂN 8051)
Họ tên : Đinh Thanh Nhân
MSSV: 409017 93
1. CẤU TRÚC PHẦN CỨNG – GIẢI MÃ ĐỊA CHỈ
Giải:
Giải:
Giải:
2.
Ngày đăng: 01/03/2014, 09:31
Xem thêm: GIẢI BAI tập VI xử lý CHƯƠNG 3 2, GIẢI BAI tập VI xử lý CHƯƠNG 3 2