1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đề cương môn vi xử lí

16 463 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 541,5 KB

Nội dung

Câu 1Câu hỏi: Viết đoạn chương trình chuyển mảng dữ liệu từ vùng nhớ bufer1 có địa chỉ offset bắt đầu từ 200h lên vùng nhớ buffer2 có địa chỉ offset bắt đầu từ 300h. Biết rằng địa chỉ mảng của cả 2 vùng nhớ này đều do DS quản lý, kích thước 2 vùng nhớ bằng nhau và bằng 100 byte.5.0Đáp án: MOV SI, 200H MOV DI, 300H MOV CX, 100LAP100: MOV AL, SI MOV DI, AL INC SI INC DI LOOP LAP1005.0Câu 2Câu hỏi: Viết đoạn chương trình chuyển mảng dữ liệu từ vùng nhớ bufer1 có địa chỉ offset bắt đầu từ 500h lên vùng nhớ buffer2 có địa chỉ offset bắt đầu từ 700h. Biết rằng địa chỉ mảng của cả 2 vùng nhớ này đều do DS quản lý, kích thước 2 vùng nhớ bằng nhau và bằng 50 byte.5.0Đáp án. MOV SI, 500H MOV DI, 700H MOV CX, 50LAP50: MOV AL, SI MOV DI, AL INC SI INC DI LOOP LAP505.0

Trang 1

Câu 1

Câu hỏi: Viết đoạn chương trình chuyển mảng dữ liệu từ vùng nhớ bufer1 có địa chỉ offset bắt đầu từ 200h lên vùng nhớ buffer2 có địa chỉ offset bắt đầu từ 300h Biết rằng địa chỉ mảng của cả 2 vùng nhớ này đều do DS quản lý, kích thước 2 vùng nhớ bằng nhau và bằng 100 byte

5.0

Đáp án:

MOV SI, 200H

MOV DI, 300H

MOV CX, 100

LAP100:

MOV AL, [SI]

MOV [DI], AL

INC SI

INC DI

LOOP LAP100

5.0

Câu 2

Câu hỏi: Viết đoạn chương trình chuyển mảng dữ liệu từ vùng nhớ bufer1 có địa

chỉ offset bắt đầu từ 500h lên vùng nhớ buffer2 có địa chỉ offset bắt đầu từ 700h Biết rằng địa chỉ mảng của cả 2 vùng nhớ này đều do DS quản lý, kích thước 2 vùng nhớ bằng nhau và bằng 50 byte

5.0

Đáp án.

MOV SI, 500H

MOV DI, 700H

MOV CX, 50

LAP50:

MOV AL, [SI]

MOV [DI], AL

INC SI

INC DI

LOOP LAP50

5.0

Câu 3

Câu hỏi: Viết đoạn chương trình để chuyển 1 byte mã BCD chứa trong thanh ghi

AL thành các byte mã ASCII rồi lưu vào 2 byte nhớ có địa chỉ mảng là 500H, địa chỉ offset là 300H và 301H Biết rằng 1 byte mã BCD bao gồm 2 từ mã BCD chứa

ở 4 bit cao và 4 bit thấp

5.0

Đáp án.

MOV AH, AL

AND AL, 0FH; lọc bỏ 4 bit cao

ADD AL, 30H; chuyển sang mã ASCII (số 0 là 30H)

MOV 500H: 300H, AL

MOV AL, AH

MOV CL, 4; bước nhảy là 4 bit

SHR AL, CL; dịch phải 4 bit, lấy lại 4 bit cao

ADD AL, 30H

MOV 500H: 301H, AL

5.0

Trang 2

Câu 4

Câu hỏi: Viết đoạn chương trình để chuyển 1 byte mã BCD chứa trong thanh ghi

BL thành các byte mã ASCII rồi lưu vào 2 byte nhớ có địa chỉ mảng là 700H, địa

chỉ offset là 500H và 501H Biết rằng 1 byte mã BCD bao gồm 2 từ mã BCD chứa

ở 4 bit cao và 4 bit thấp

5.0

Đáp án.

MOV BH, BL

AND BL, 0FH

ADD BL, 30H

MOV 700H: 500H, BL

MOV BL, BH

MOV CL, 4

SHR BL, CL

ADD BL, 30H

MOV 700H: 501H, BL

5.0

Câu 5

Câu hỏi: Viết đoạn chương trình để chuyển 1 byte mã hexa chứa trong thanh ghi BH thành các byte mã ASCII rồi chuyển ra ngoài qua cổng 8 bit có địa chỉ là 600h Biết rằng 1 byte mã hexa bao gồm 2 từ mã hexa chứa ở 4 bit cao và 4 bit thấp

5.0

Đáp án.

MOV DX, 600H

MOV BL, BH

AND BH, 0FH; lọc bỏ 4 bit cao

CMP BH, 10; so sánh với 10 nếu lớn hơn nhảy tới BCD1

JAE BCD1

ADD BH, ‘0’

BCD1:

ADD BH, ‘A’ – 10

MOV AL, BH

OUT DX, AL

MOV BH, BL

MOV CL, 4

SHR BH, CL

CMP BH, 10

JAE BCD1

ADD BH, ‘0’

MOV AL, BH

OUT DX, AL

5.0

Câu 6

Câu hỏi: Viết đoạn chương trình để chuyển 1 byte mã hexa chứa trong thanh ghi

AH thành các byte mã ASCII rồi chuyển ra ngoài qua cổng 8 bit có địa chỉ là 300h Biết rằng 1 byte mã hexa bao gồm 2 từ mã hexa chứa ở 4 bit cao và 4 bit thấp

5.0

Trang 3

Đáp án.

MOV DX, 300H

MOV BL, AH

AND AH, 0FH

CMP AH, 10

JC BCD1

ADD AH, ‘A’ – 10

MOV AL, AH

OUT DX, AL

MOV AH, BL

MOV CL, 4

SHR AH, CL

CMP AH, 10

JC BCD2

ADD AH, ‘A’ -10

MOV AL, AH

OUT DX, AL

5.0

Câu 7

Câu hỏi: Xét hệ vi xử lý cần đọc các byte từ cổng dữ liệu 8 bit có địa chỉ 200h vào

bộ vi xử lý Biết rằng để xác định cổng đó có dữ liệu hay không, người ta dùng

thêm một cổng trạng thái có địa chỉ 201h Trong đó bit D3 của cổng này bằng 1

báo rằng có dữ liệu, ngược lại D3 bằng 0 báo rằng không có dữ liệu

Yêu cầu: Viết đoạn chương trình để đọc 1 byte dữ liệu từ cổng đã cho vào bộ

vi xử lý và lưu vào trong thanh ghi BH.

5.0

Đáp án.

Đoạn chương trình đọc 1 byte trong bài tập chuyển mã Chương 3 – Giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

Port_STATUS 201h

Port_DATA 200h

MOV DX, Port_STATUS

READ_AGAIN:

IN AL,DX

AND AL,08h

JZ READ_AGAIN

MOV DX,Port_DATA

IN AL,DX

MOV BH,AL

5.0

Câu 8

Câu hỏi: Xét hệ vi xử lý cần đọc các byte từ cổng dữ liệu 8 bit có địa chỉ 400h vào

bộ vi xử lý Biết rằng để xác định cổng đó có dữ liệu hay không, người ta dùng

thêm một cổng trạng thái có địa chỉ 401h Trong đó bit D5 của cổng này bằng 1

báo rằng có dữ liệu, ngược lại D5 bằng 0 báo rằng không có dữ liệu

Yêu cầu: Viết đoạn chương trình để đọc 1 byte dữ liệu từ cổng đã cho vào bộ

vi xử lý và lưu vào trong thanh ghi BH.

5.0

Đáp án.

Đoạn chương trình đọc 1 byte trong bài tập chuyển mã Chương 3 – Giáo trình kỹ

5.0

Trang 4

thuật vi xử lý – Tác giả Đỗ Xuân Tiến

Port_STATUS 401H

Port_DATA 400H

MOV DX,Port_STATUS

READ_AGIAN:

IN AL,DX

AND AL,20H

JZ READ_AGAIN

MOV DX,Port_DATA

IN AL,DX

MOV BH,AL

Câu 9

Câu hỏi: Viết chương trình chuyển mảng dữ liệu từ vùng nhớ có địa chỉ offset DISPLAY_VIDEO = 900h và có địa chỉ mảng là DISPLAY_BASE = 5000h tới vùng dữ liệu BUFFER_SAVE có địa chỉ mảng do DS quản lý Biết rằng vùng nhớ DISPLAY_VIDEO chứa 2 kbyte ký tự

5.0

Đáp án.

Chương trình chuyển mảng trong chương 3 – Giáo trình kỹ thuật vi xử

lý – Tác giả Đỗ Xuân Tiến

BUFFER_SAVE DB 2*1024 DUP(?)

DISPLAY_VIDEO = 900h

DISPLAY_BASE = 5000h

MOV SI, DISPLAY_BASE

LEA DI BUFFER_SAVE

MOV AX, DISPLAY_VIDEO

MOV DS,AX

MOV AX,DS

MOV ES,DS

CLD

LOOP_2KB

MOVS

LOOP LOOP_2KB

5.0

Câu 10

Câu hỏi: Viết chương trình chuyển mảng dữ liệu từ vùng nhớ Buffer1 có địa chỉ offset bắt đầu là 128h tới vùng nhớ Buffer2 có địa chỉ offset bắt đầu là 512h Biết rằng cả hai vùng nhớ đều nằm trong mảng có địa chỉ Segment là 200h và kích thước 2 vùng nhớ bằng nhau và bằng 500 byte

5.0

Đáp án.

MOV AX, 200H

MOV DS, AX

MOV SI, 128H

MOV DI, 512H

MOV CX, 500

BACK:

MOV AL, [SI]

MOV [DI], AL

5.0

Trang 5

INC SI

INC DI

LOOP BACK

Câu 11

Câu hỏi:Viết đoạn chương trình để thu và xử lý tin trong bài toán thu tin đa kênh Biết sơ đồ ngoại vi thu tin như sau:

5.0

Đáp án.

Chương trình con Thu_xulytin trong chương 4 – giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

IN AL,FLOPS

MOV AH,AL

NOT AL

OUT FLOPS,AL

MOV AL,FFH

OUT FLOPS,AL

MOV CX,6

MOV BX,RAM

LOOP_6K:

MOV AL,AH

SHR AL,1

MOV AH,AL

MOV AL,00H

ADC AL,[BX]

ADD AL

MOV [BX],AL

INC BX

MOV AL,00H

ADC AL,[BX]

ADD AL

5.0

D Q Clk

R

Vc c Sensor 0

Bộ đệm vào 367

Bộ đệm

ra 174

D Q

Clk

R

c

/FLOP_In

/ FLOP_Out

K 0

K 5

Data Bus

D5 D1 D0

Rst 5

Rst 0

FlipFop 7474

Trang 6

MOV [BX],AL

INC BX

MOV AL,00H

ADC AL,[BX]

ADD AL

MOV [BX],AL

INC BX

MOV AL,00H

ADC AL,[BX]

ADD AL

MOV [BX],AL

INC BX

LOOP LOOP_6K

POPA

Câu 12

Câu hỏi:Viết đoạn chương trình để hiển thị dữ liệu của kênh 0 trong bài toán thu tin đa kênh Biết rằng dữ liệu kênh 0 gồm 3 byte có địa chỉ offset bắt đầu từ 8000h,

sơ đồ ngoại vi hiển thị như sau

5.0

Đáp án.

5.0

G m BCD7Seg

A B C D

a b c d e f g

Giải mã tuyến tính

d5d4d3d2d1d0

D

15

D5 D4 D3 D2 D1 D0

é kh

Kªnh d÷ liÖu 16

bit

DATAPOS

N5 N4 N3 N2 N1 N0

N5 N4 N3 N2 N1 N0

/DATAVALUE

FNA 5520

Trang 7

Chương trình con HT_BF trong chương 4 – giáo trình kỹ thuật vi xử lý – Tác giả Đỗ

Xuân Tiến

Câu 13

Câu hỏi:Viết đoạn chương trình để xác định phím được nhấn theo sơ đồ tổ chức bàn phím sau:

5.0

Đáp án.

Chương trình con HT_BF trong chương 4 – giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

5.0

Câu 14

Diode

Vcc

KBD In

KBD In

/KBD_Out

/KBD_In

D6

D0

D0

D1

D1

D2

D2

D3

D3

D4

D4

D5

Minh họa cấu trúc phím ấn

Kênh dữ liệu

Trang 8

Câu hỏi:Viết đoạn chương trình để khởi tạo cho đơn PIC 8259, biết rằng địa chỉ

CS của PIC = 10h, vector ngắt cơ sở = 40h, khoảng cách 4 byte/ vector, hệ dùng EOI thường, không đệm kệnh Biết dạng thức các từ điều khiển khởi đầu như sau:

ICW1:

ICW2:

ICW4:

5.0

Đáp án.

MOV AL, 17H

OUT 10H, AL

MOV AL, 40H

5.0

Trang 9

OUT 11H, AL

MOV AL, 01H

OUT 11H, AL

m

m

Mov al,00h

Out 10h,al

Sti;cho phép ngắt hoạt động trở lại

Câu 15

Câu hỏi:

A 1 5

A 4

V c c

A 0 / R D / W R / I N T A

I N T R

A 0

/ I O R D

/ I O W R

/ I N T A

I N T R

S P / E N

V c c

/ C S

C a s 0

C a s 1

C a s 2

I R 0

I R 1

I R 2

I R 3

I R 4

I R 5

I R 6

I R 7

N V 0

N V 1

N V 2

N V 3

N V 4

N V 5

N V 6

N V 7

H ? V X L

8 0 2 8 6

K ê n h d ? li? u 8 b it c ? a P I C 8 2 5 9 A

đ ư ? c n ? i v ? i b y t e t h ? p c ? a k ê n h d ? li? u h ? v i x ? lý 8 0 2 8 6

A E N

A 1

A 2

A 3

A

B C

/ Q 0

7 4 1 3 8

/ E 3 / E 2

E 1

7 4 1 3 8

/ Q 7

Cho sơ đồ ghép nối giữa PIC 8259 với hệ vi xử lý như trên, yêu cầu viết đoạn chương trình để cài đặt ngắt NV5 vào bảng vector ngắt của bộ vi xử lý 80286 Biết rằng số hiệu ngắt cơ sở của PIC là 30h và đã có sẵn chương trình con phục vụ ngắt IR5_Service

5.0

Trang 10

Đáp án.

MOV AX, 00H

MOV ES, AX

MOV DX, OFFSET IR5_SERVICE

MOV WORD PTR ES: [35H*4], DX

MOV DX, CS

MOV WORD PTR ES: [35H * 4 + 2], DX

5.0

Câu 16

Câu hỏi: Cho sơ đồ ghép nối ADC 0809 với hệ vi xử lý như sau:

Biết rằng địa chỉ chọn chip của ADC là 200h Viết đoạn chương trình để đọc 1 byte dữ liệu sau lấy mẫu của kênh 3 vào bộ vi xử lý và lưu trong thanh ghi BL

5.0

Đáp án.

Chương trình trong bài tập ADC 8 bit – chương 8 – Giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

5.0

Câu 17

Câu hỏi: Cho sơ đồ ghép nối ADC 0809 với hệ vi xử lý như sau: 5.0

A B C

/ IORD

/ IOWR

/CS 0809 có địa chỉ xác định từ bộ giải mã địa chỉ

8 kênh vào

3 bit địa chỉ kênh vào

START

ALE

OE

vi xử lý biết:

đã biến đổi xong

Kênh dữ liệu hệ thống

A B C

/ IORD

/ IOWR

/CS 0809 có địa chỉ xác định từ bộ giải mã địa chỉ

8 kênh vào

3 bit địa chỉ kênh vào

START

ALE

OE

xử lý biết: đã biến đổi xong

Kênh dữ liệu

hệ thống

Trang 11

Biết rằng địa chỉ chọn chip của ADC là 100h Viết đoạn chương trình để đọc 1 byte dữ liệu sau lấy mẫu của kênh 5 vào bộ vi xử lý và lưu trong thanh ghi BH

Đáp án.

Chương trình trong bài tập ADC 8 bit – chương 8 – Giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

5.0

Câu 18

Câu hỏi: Viết đoạn chương trình Assembly cho Onchip 80c51 để thức hiện đọc 1

byte từ ROM có địa chỉ 200h và đưa byte giá trị đó ra cổng P1

5.0

Đáp án.

MOV A, #0

MOV DPTR, #200H

MOVC A, @A+DPTR

MOV P1, A

5.0

Câu 19

Câu hỏi: Viết đoạn chương trình Assembly cho Onchip 80c51 để thực hiện đọc 1

byte từ ROM có địa chỉ 100h và lưu giá trị đó vào ô nhớ có địa chỉ 40h trên RAM

trong

5.0

Đáp án.

MOV A, #0

MOV DPTR, #100H

MOVC A, @A+DPTR

MOV 40H, A

5.0

Câu 20

Câu hỏi: Hệ đo độ rộng xung trên hệ vi xử lý on-chip 80C51 với focs= 12 MHZ,

xung cần đo độ rộng được đưa vào chân tín hiệu INT0 (bit P3.2 – chân IC 12), kết

quả đo phải chuyển vào máy tính PC qua đường truyền UART của hệ vi xử lý

on-chip 80C51 với tốc độ = 9600 baud, khung tin = 8 bit DATA, 1 bit STOP, không

5.0

Trang 12

PARITY Giữa các giá trị kết quả phải có dấu “,” ngăn cách.

Yêu cầu: Phân tích phương pháp đo độ rộng xung và trình bày lưu đồ thuật toán cho bài toán này (không yêu cầu viết chương tình).

Đáp án.

Bài toán đo độ rộng xung – Chương 11 - Giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

5.0

Câu 21

Câu hỏi: Hệ đo độ rộng xung trên hệ vi xử lý on-chip 80C51 với focs= 12 MHZ,

xung cần đo độ rộng được đưa vào chân tín hiệu INT0 (bit P3.2 – chân IC 12), kết quả đo phải chứa trong hai thanh ghi: R1 chứa byte cao của kết quả, R0 chứa byte thấp của kết quả

Yêu cầu: Hãy phân tích phương pháp đo độ rộng xung và trình bày thuật

toán cho bài toán này (không yêu cầu viết chương trình).

5.0

Đáp án.

Bài toán đo độ rộng xung – Chương 11 - Giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

5.0

Câu 22

Câu hỏi: Viết đoạn chương trình bằng ngôn ngữ Assembly cho Onchip 80c51 thực hiện:

Khởi tạo cho UART làm việc ở MODE 1, cho phép UART nhận dữ liệu, tốc độ baud = 9600 baud/s Biết tần số dao động đưa vào Onchip là 11,059 MHz

Khởi tạo để Timer 0 chạy ở MODE 2, với giá trị bắt đầu của bộ đếm (giá trị reload) là 156

Cho biết dạng thức của các thanh ghi SCON và TMOD lần lượt là:

5.0

Đáp án.

MOV SCON, #50H

MOV TMOD, #22H

MOV TH1, #0FDH

MOV TH0, #156

SETB TR1

SETB TR0

5.0

Trang 13

Câu 23

Câu hỏi: Hệ đo độ rộng xung trên hệ vi xử lý on-chip 80C51 với focs= 12 MHZ,

xung cần đo độ rộng được đưa vào chân tín hiệu INT0 (bit P3.2 – chân IC 12), kết quả đo phải chuyển vào máy tính PC qua đường truyền UART của hệ vi xử lý on-chip 80C51 với tốc độ = 9600 baud, khung tin = 8 bit DATA, 1 bit TOP, không

PARITY Giữa các giá trị kết quả phải có dấu “,” ngăn cách

Yêu cầu: Viết chương trình cho hệ vi xử lý thực hiện chức năng trên, cho sẵn lưu đồ thuật toán như sau:

a/ Lưu đồ thuật toán chương trình con phát 1 byte

b/ Lưu đồ thuật toán chương trình chính:

5.0

Trang 14

Đáp án.

Bài toán đo độ rộng xung – Chương 11 - Giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

5.0

Câu 24

Câu hỏi: Hệ đo độ rộng xung trên hệ vi xử lý on-chip 80C51 với focs= 12 MHZ,

xung cần đo độ rộng được đưa vào chân tín hiệu INT0 (bit P3.2 – chân IC 12), kết quả đo phải chứa trong hai thanh ghi: R1 chứa byte cao của kết quả, R0 chứa byte thấp của kết quả

Yêu cầu: Viết chương trình cho hệ vi xử lý thực hiện chức năng trên, cho sẵn lưu đồ thuật toán như sau:

5.0

Trang 15

Đáp án.

Bài toán đo độ rộng xung – Chương 11 - Giáo trình kỹ thuật vi xử lý – Tác giả Đỗ Xuân Tiến

5.0

Câu 25

Câu hỏi: Cho bài toán dùng hệ vi xử lý Onchip 80c51 với nguồn dao động thạch anh 12 MHz để tạo ra đồng hồ Hãy trình bày ý tưởng sử dụng tài nguyên của Onchip và viết đoạn chương trình để tạo ra đơn vị là 1 giây

5.0

Đáp án.

Ý 1: Sử dụng Timer0 ở Mode 2 với giá trị TH0 = 6 Như vậy chu kỳ ngắt là 250 us Ta cần đếm 40 * 100 chu kỳ ngắt để có được đơn vị là 1 giây

Ý 2: ORG 0BH

INC R0

CJNE R0, #40, END_

MOV R0, #0

INC R1

CJNE R1, #100, END_

MOV R1, #0

5.0

Trang 16

INC R2 ; R2 chứa biến giây CJNE R2, #60, END_

MOV R2, #0

Ngày đăng: 01/12/2017, 19:23

TỪ KHÓA LIÊN QUAN

w