Tải bản đầy đủ (.pdf) (14 trang)

bài tập dài vi xử lý

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 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

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

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>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×