

















Preview text:
lOMoAR cPSD| 61554479
Bài tập dài Vi xử lý Họ và tên : Trần Tùng Sơn MSSV : 20202510 Lớp : EE2-07-k65 Mã lớp học : 141854
Giảng viên : Nguyễn Tuấn Ninh lOMoAR cPSD| 61554479
Bài 1: Viết CT đếm số âm trong miền nhớ
200 byte từ ô nhớ 123H tại RAM ngoài. ORG 30H MOV DPTR, #123H MOV R0,0 MOV R1, #200 lap1: MOVX A, @DPTR RLC A JNC lap2 INC R0 lap2: INC DPTR DJNZ R2,lap1 END lOMoAR cPSD| 61554479
Câu 2: Viết CT chuyển 2 mảng dữ
liệu 8 byte. Biết mảng 1 có địa chỉ
1000H trong RAM ngoài và mảng 2 có địa chỉ 70H trong RAM trong. ORG 30H lOMoAR cPSD| 61554479 MOV DPTR,#1000H MOV R0, #70H MOV R2, #8 Lap: MOVX A,@DPTR XCH A,@R0 MOVX @DPTR, A INC DPTR INC R0 DJNZ R2,lap END
Câu 3: Viết CT cộng hai số BCD 4 chữ số
trong RAM trong, kết quả cất
vào sô thứ 2 . Biết số thứ 1 đặt tại ô lOMoAR cPSD| 61554479
nhớ 70H, và số thứ 2 đặt tại ô nhớ 60H. ORG 30H MOV R0,#70H MOV R1,#60H MOV R2,#2 CLR C Lap: MOV A,@R1 ADDC A,@R0 DA A MOV @R1,A INC R1 INC R0 DJNZ R2, Lap JC,Tran MOV R1,00H SJMP END Tran: MOV R1,00H END: END lOMoAR cPSD| 61554479
Câu 4: Viết CT tính trung bình 8 byte trong MOV R1,A
Ram ngoài từ ô nhớ 1234H. END
Thương được lưu trữ trong R0 số dư được lưu trữ trong R1. ORG 30H lOMoAR cPSD| 61554479 MOV DPTR,#1234H MOV R0,#00H MOV R1,#00H MOV R2,#8 Lap: MOVX A,@DPTR MOV B,#8 DIV AB ADD A,R0 MOV R0,A MOV A,B ADD A,R1 MOV R1,A INC DPTR DJNZ R2,Lap MOV A,R1 MOV B,#8 DIV AB ADD A,R0 MOV R0,A MOV A,B lOMoAR cPSD| 61554479
Câu 5: Viết CT sử dụng Timer tạo xung tần
số 1Hz tại chân P1.5. Biết
xung nhịp thạch anh 12MHz ( Ton =50%, Toff = 50%) ORG 30H MOV TMOD, #01H Lap: MOV R2, #10 Lap1: MOV TH0, #3CH MOV TL0, #0AFH SETB TR0 Wait: JNB TF0,Wait CLR TR0 DJZN R2, Lap1 CPL P1.5 SJMP Lap END
Câu 6: Viết CT tạo xung 10Hz tại
chân P1.0. Biết xung nhịp thạch anh 12MHz (Ton =70% và Toff=30%) ORG 30H lOMoAR cPSD| 61554479 MOV TMOD, #01H SETB P1.0 Bat: MOV R2, #7 SJMP lap Tat: MOV R2, #3 lap MOV TH0, #0D8H MOV TL0, #0EFH SETB TR0 Wait: JNB TF0,Wait CLR TR0 DJNZ R2, lap JNB P1.0, Tat SJMP Bat END lOMoAR cPSD| 61554479
Câu 7: Viết CT con đọc 400 byte dữ liệu từ cổng nối tiếp và cất vào vùng nhớ
có địa chỉ đầu 100H.biết cổng nối tiếp đã được khởi tạo sẵn, cổng cho phép đọc khi
cờ RI =1, và cờ RI sẽ tự xóa khi đọc xong 1 byte. MOV R0,#200 MOV R1,#2 MOV DPTR,#100H Lap: JNB RI, Lap MOV A,SBUF MOVX @DPTR,A CLR RI INC DPTR DJNZ R0, Lap MOV R0,#200 DJNZ R1, Lap RET lOMoAR cPSD| 61554479
Câu 8: Viết CT điều khiển đèn giao thông
tại 1 ngã tư theo yêu cầu sau:
Biết điều khiển 0 là đèn sáng , 1 là đèn tắt. MAIN: MOV A,#25 MOV P1,#11011110B lOMoAR cPSD| 61554479 LJMP DELAY MOV A,#3 MOV P1,#11011101B LJMP DELAY MOV A,#33 MOV P1,11110011B LJMP DELAY MOV A,#3 MOV P1,11101011B LJMP DELAY LJMP MAIN DELAY: MOV TMOD,#01H CLR TF0 MOV R0,#20 LAP: MOV TH0,#3CH MOV TL0,#0AFH SETB TR0 WAIT JNB TF0,WAIT CLR TR0 CLR TF0 DJNZ R0,LAP RET lOMoAR cPSD| 61554479
Câu 9 : Viết CT hiển thi trên 2 LED 7 thanh đ ̣ ếm lùi từ 20s với sơ đồ phần cứng SV tư đ ̣ ề xuất.
Sử dụng Port2 của VĐK làm port dữ liệu, và 2 chân P3.0 và P3.1 điều khiển quét LED. lOMoAR cPSD| 61554479 ORG 0000H MAIN: MOV R0,#20 DEM_LUI: MOV R1,#125 LCALL HIEN_THI DJNZ R0,DEM_LUI SJMP MAIN HIEN_THI: MOV A,R0 MOV B,#10 DIV AB LCALL GIAI_MA lOMoAR cPSD| 61554479 MOV P2,A SETB P3.0 MOV A,#4 LCALL DELAY_A_MS CLR P3.0 MOV A,B LCALL GIAI_MA MOV P2,A SETB P3.1 MOV A,#ON LCALL DELAY_A_MS CLR P3.1 DJNZ R1,HIEN_THI RET DELAY_A_MS: MOV TMOD,#01H LOOP: CLR TF0 MOV TH0,#0FCH MOV TL0,#18H SETB TR0 WAIT: JNB TF0,WAIT CLR TR0 DJNZ 0E0H,LOOP lOMoAR cPSD| 61554479 RET GIAI_MA: MOV DPTR,#MA_SO MOVC A,@A+DPTR RET MA_SO:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END lOMoAR cPSD| 61554479
Câu 10 : Viết CT con đổi n ký tự thành chữ
hoa (nếu đang là chữ thường). Biết chuỗi ký
tự trong bộ nhớ có địa chỉ đầu trong R0 , độ dài trong R7. TO_UPPER: MOV A,@R0 LCALL TEST JNC NOT_LOWER1 SUBB A,#20H MOV @R0,A NOT_LOWER1: INC R0 DJNZ R7,TO_UPPER RET TEST: SETB C CJNE A,#122,NOT_EQ1 SETB C SJMP EXIT NOT_EQ1: JNC EXIT CLR C lOMoAR cPSD| 61554479 CJNE A,#97 SETB C SJMP EXIT NOT_EQ2 JC NOT_LOWER2 SETB C SJMP EXIT NOT_LOWER2: CLR C SJMP EXIT EXIT: RET