Câu 10 : ết CT con đổi n ký tự Vithà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,@R0LCALL TESTJNC NOT_LOWER1
Trang 1Bài tập dài Vi xử lýHọ và tên : Trần Tùng Sơn
MSSV : 20202510Lớp : EE2-07-k65Mã lớp học : 141854Giảng viên : Nguyễn Tuấn Ninh
Trang 2Bài 1: ết CT đếm số âm trong miềVi n nhớ 200 byte từ ô nhớ 123H tại RAM ngoài.
ORG 30H
MOV DPTR, #123HMOV R0,0MOV R1, #200
lap1:
MOVX A, @DPTRRLC A
JNC lap2INC R0 lap2:INC DPTRDJNZ R2,lap1END
Trang 3Câu 2: ết CT chuyển 2 mảng dữ Viliệ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
MOV DPTR,#1000HMOV R0, #70HMOV R2, #8Lap:
MOVX A,@DPTRXCH A,@R0MOVX @DPTR, AINC DPTRINC R0DJNZ R2,lapEND
Trang 4Câu 3: ết CT cộng hai số BCD 4 Vichữ số trong RAM trong, kết quả cất vào sô thứ 2 Biết số ứ 1 đặt tại ô thnhớ 70H, và số thứ 2 đặt tại ô nhớ 60H.
ORG 30HMOV R0,#70HMOV R1,#60HMOV R2,#2CLR CLap:MOV A,@R1ADDC A,@R0DA AMOV @R1,AINC R1INC R0DJNZ R2, LapJC,TranMOV R1,00HSJMP ENDTran:MOV R1,00HEND:END
Trang 5Câu 4: ết CT tính trung bình 8 byte Vitrong Ram ngoài từ ô nhớ 1234H.Thương được lưu trữ trong R0 số dư được lưu trữ trong R1.
ORG 30H
MOV DPTR,#1234HMOV R0,#00HMOV R1,#00HMOV R2,#8Lap:
MOVX A,@DPTRMOV B,#8DIV ABADD A,R0MOV R0,AMOV A,BADD A,R1MOV R1,AINC DPTRDJNZ R2,LapMOV A,R1MOV B,#8DIV ABADD A,R0MOV R0,AMOV A,B
MOV R1,AEND
Trang 6Câu 5: ết CT sử dụng Timer tạo Vixung tần số 1Hz tại chân P1.5 Biết xung nhịp thạch anh MHz ( 12Ton =50%, Toff = 50%)ORG 30H
MOV TMOD, #01HLap:
MOV R2, #10Lap1:
MOV TH0, #3CHMOV TL0, #0AFHSETB TR0Wait: JNB TF0,WaitCLR TR0DJZN R2, Lap1CPL P1.5SJMP LapEND
Trang 7Câu 6: ết CT tạo xung 10Hz tạVi i chân P1.0 Biết xung nhịp thạch anh 12MHz (Ton =70% và Toff=30%)ORG 30H
MOV TMOD, #01HSETB P1.0Bat:MOV R2, #7SJMP lapTat:MOV R2, #3lap
MOV TH0, #0D8HMOV TL0, #0EFHSETB TR0Wait:JNB TF0,WaitCLR TR0DJNZ R2, lapJNB P1.0, TatSJMP BatEND
Trang 8Câu 7: ết CT con đọc 400 byte dữ Viliệ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,#200MOV R1,#2MOV DPTR,#100HLap:
JNB RI, LapMOV A,SBUFMOVX @DPTR,ACLR RI
INC DPTRDJNZ R0, LapMOV R0,#200DJNZ R1, Lap
RET
Trang 9Câu 8: ết CT điều khiển đèn giao Vithô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,#25MOV P1,#11011110BLJMP DELAYMOV A,#3
MOV P1,#11011101BLJMP DELAYMOV A,#33MOV P1,11110011BLJMP DELAYMOV A,#3MOV P1,11101011BLJMP DELAYLJMP MAINDELAY:
MOV TMOD,#01HCLR TF0
MOV R0,#20LAP:
MOV TH0,#3CHMOV TL0,#0AFH
Trang 10SETB TR0WAITJNB TF0,WAITCLR TR0CLR TF0DJNZ R0,LAPRET
Câu 9 : ết CT hiêVi n thi trên 2 LED 7 thanh đếm lùi từ 20s với sơ đô phân cứng SV tư đề xuât.
Trang 11Sử dụng Port2 của VĐK làm port dữ ệu, và 2 chân P3.0 và P3.1 điều khiển quét liLED.
ORG 0000HMAIN:MOV R0,#20DEM_LUI:MOV R1,#125LCALL HIEN_THIDJNZ R0,DEM_LUISJMP MAINHIEN_THI:MOV A,R0MOV B,#10DIV AB
LCALL GIAI_MA
Trang 12MOV P2,ASETB P3.0MOV A,#4
LCALL DELAY_A_MSCLR P3.0
MOV A,BLCALL GIAI_MAMOV P2,ASETB P3.1MOV A,#ON
LCALL DELAY_A_MSCLR P3.1
DJNZ R1,HIEN_THIRET
DELAY_A_MS:MOV TMOD,#01HLOOP: CLR TF0MOV TH0,#0FCHMOV TL0,#18HSETB TR0WAIT:JNB TF0,WAITCLR TR0DJNZ 0E0H,LOOPRET
Trang 13MOV DPTR,#MA_SOMOVC A,@A+DPTRRET
MA_SO:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND
Trang 14Câu 10 : ết CT con đổi n ký tự Vithà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,@R0LCALL TESTJNC NOT_LOWER1SUBB A,#20HMOV @R0,ANOT_LOWER1:INC R0
DJNZ R7,TO_UPPERRET
TEST:SETB C
CJNE A,#122,NOT_EQ1SETB C
SJMP EXITNOT_EQ1:JNC EXITCLR CCJNE A,#97SETB CSJMP EXITNOT_EQ2