Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.47 MB, 14 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
Bà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
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">Câ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 ngồ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
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Câ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
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Câu 4: ết CT tính trung bình 8 byte Vitrong Ram ngồ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
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">Câ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
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Câ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
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Câ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
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Câ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
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">SETB 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.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Sử 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
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">MOV 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
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">MOV DPTR,#MA_SOMOVC A,@A+DPTRRET
MA_SO:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">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_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
</div>