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

báo cáo thí nghiệm ee2000 bài 2

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.13 MB, 11 trang )

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

<b> ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ</b>

<b>Học kỳ : 20231 </b>

Hà Nội 2023

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

<b>BÀI TẬP DÀI MÔN KỸ THUẬT VI XỬ LÝ</b>

<b>Câu 1</b>: Viết CT đếm số <b>dương </b>trong miền nhớ 50 byte từ ô nhớ 38H tại RAM trong.

( Tham khảo tại khoa-ha-noi/ky-thuat-vi-xu-ly/bai-tap-dai-vi-xu-ly-btl/76150205 )

nhận biết số dương: Trong sơ đồ mã hóa, bit ngồi cùng bên trái hay MSBbit là bit dấu. Nó cho bộ xử lý biết về dấu của số - bit MSB bằng 1 thì là số âm,ngược lại bit MSB bằng 0 thì là số dương.

Chọn R0 làm biến điếm số dương, R1 làm biến đếm số vịng lặp.Lưu đồ thuật tốn:

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

CODE 1:ORG 00HMAIN :

MOV R0 , #00 D MOV R1 , #50 D MOV DPTR , #0038 HLOOP 1:

MOV A , @DPTR JB ACC.7 , LOOP 2 INC R0

LOOP 2 : INC DPTR DJNZ R1 , LOOP 1END

<b>Câu 2: Viết CT chuyển 2 mảng dữ liệu. Biết mảng 1 có địa chỉ từ 1000H đến</b>

1009H trong RAM ngồi và mảng 2 có địa chỉ từ 50H -59H trong RAM trong.( Tham khảo tại )Ta sử dụng:

1. R0 - con trỏ cho mảng RAM trong2. R1 - biến đếm vịng lặp

3. DPTR - con trỏ mảng RAM ngồi

Lưu đồ thuật toán: Code 2:

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

ORG 00HMAIN :

MOV R0 , #50 H MOV R1 , #10 D MOV DPTR , #1000 H LOOP :

MOVX A , @DPTR XCH A , @R0 MOVX @DPTR , A INC R0

INC DPTR DJNZ R1 , LOOPEND

Câu 3: Viết CT xóa 10byte trong vùng nhớ RAM trong có địa đầu là 6CH.( Tham khảo tại )Ta chọn R0 làm biến con trỏ địa chỉ bắt đầu (6CH), R1 là biến đếm vòng lặp.Lưu đồ thuật toán: Code 3 :

ORG 00HMAIN :

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

MOV R0 , #6 CH MOV R1 , #10 DLOOP :

MOV @R0 , #00 H INC R0

DJNZ R1 , LOOP END

Câu 4: Viết CT tính checksum 1byte (theo cách của lệnh ADD) của 1 frame dữ liệu 6byte trong vùng nhớ trong có địa chỉ đầu từ 20H. Kết quả cất vào thanh ghi R7 Bank thanh ghi số 3.

Lưu đồ thuật toán: Code 4:ORG 00HMAIN:

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

SETB PSW.3 SETB PSW.4 MOV R0, #20H MOV R1, #06H MOV R7, #00HLOOP:

ADD R7,@R0 INC R0 DJNZ R1,LOOPMOV R1, #lFHMOV @R1,R7END

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

Câu 5: Viết CT sử dụng Timer tạo xung tần số 10Hz tại chân P3.0. Biết xungnhịp thạch anh 12MHz (Ton =50%, Toff = 50%).

( Tham khảo tại )Tần số 10Hz => T=0,1s. Ton=Toff=50.000us

Sử dụng Timer0 chế độ 16 bit , 15535D = 3CAFHCode 5:ORG 00HMAIN:

MOV TMOD, #01HLOOP:

MOV TH0, #3CH MOV TL0, #AFH SETB TR0WAIT:

JNB TF0, WAIT CLR TR0 CPL P3.0 LJMP LOOPEND

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

Câu 7: Viết CT con truyền 10byte dữ liệu từ bộ nhớ ngồi có địa chỉ đầu là 100H quacổng nối tiếp. Biết cổng nối tiếp đã được khởi tạo sẵn, cổng truyền xong 1byte sẽ báocờ TI =1, và cờ TI sẽ tự xóa khi bắt đầu truyền 1 byte.

(Tham khảo bài bạn Trịnh Cao Cường 20212714)

ORG 00HMAIN:

MOV R0, #10H MOV DPTR, #100H

LCALL UART_TRANS_STARTHERE:

SJMP HEREUART_TRANS_START: MOVX A,@DPTR MOV SBUF, AWAIT_TO_TRAINS:

JNB TI, WAIT_TO_TRAINS CLR TI

INC DPTR

DJNZ R0, UART_TRANS_START RET

END

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

Câu 8: Viết CT hiển thị giá trị trong thanh ghi Acc lên Led 7 thanh AC theo sơ đồmạch hình sau. Biết giá trị trong thanh ghi Acc < 9.

Lưu đồ thuật toán: Code 8:MALEG:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,8FH,80H,90HORG 00H

MOV DPTR, #MALEDMOV R0, #00HLOOP:MOV A, R0

MOVX A, @A+DPTRMOV P1, A

END

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

Lưu đồ thuật toán: Code 9:MALEG:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,8FH,80H,90HORG 00H

MOV DPTR, #MALEG MOV R0,#00H MOV A,#00HLOOP1:

MOVX @A+DPTR MOV P1,ALOOP2:

JNB INTO, LOOP2 INC R0

MOV A,R0

CJNE RO,#10H,LOOP1END

Câu 9: Viết CT hiển thị số lần bấm phím PB1 lên Led 7 thanh AC theo sơ đồ mạchhình sau. Biết số lần bấm phím từ 0-9.

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

Câu 10: Viết CT con đổi n ký tự thành chữ thường (nếu đang là chữ hoa). Biết chuỗiký tự trong bộ nhớ có địa chỉ đầu trong R0, độ dài trong R7

(Tài liệu tham khảo Hồng Bá Ln 20181572)Lưu đồ thuật tốn: Code 10:

ORG 00HMAIN:LOOP1:

CJNE @R0, #41H, LOOP4LOOP2:

MOV A, @R0ADD A, #32DMOV @R0, ALOOP3:INC R0DJNZ R7, LOOP1RET

LOOP4:JC LOOP3

CJNE @R0, #5AH, LOOP5LJMP LOOP2

LOOP5:JNC LOOP3LJMP LOOP2

</div>

×