1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đề thi vi xử lý có hướng dẫn giải

12 2,6K 9
Tài liệu đã được kiểm tra trùng lặp

Đ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 12
Dung lượng 1,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đề thi vi xử lý có hướng dẫn giải

Trang 1

ĐHBK Tp HCM – Khoa ĐĐT–BMĐT

GVPT: Hồ Trung Mỹ

Vi xử lý – AY1213-S2 Đáp án của kiểm tra tại lớp đợt 1

1 Viết các “từ điều khiển” (control word) (hình 1.14 trong sách VXL) để thực hiện

các phép toán sau:

a) R5  4R1 – 2(R2 AND R4)

b) R3  R1/2 + (bù 1 của R2)/4

BG

Có nhiều cách giải loại bài này:

Cách 1: Không biến đổi biểu thức

R3 R2 AND R4 R3 = R2 And R4 010 100 011 01000

R3 R3 + R3 R3 = 2(R2 And R4) 011 011 011 00010

R5 R5 - R3 R5 = 4R1 - 2(R2 And R4) 101 011 101 00101

R3 SHR R1 R5=R1/2 (dịch phải=chia 2) 001 000 011 10000

R4 COM R2 R4 = bù 1 của R2 010 000 100 01110

R4 SHR R4 R4 = (bù 1 của R2)/2 100 000 100 10000

R4 SHR R4 R4 = (bù 1 của R2)/4 100 000 100 10000

R3 R3 + R4 R3 = R1/2 + (bù 1 của R2)/4 011 100 011 00010

Cách 2: Biến đổi các biểu thức

a) R5  4R1 – 2(R2 AND R4) = 2(2R1 – (R2 AND R4))

b) R3  R1/2 + (bù 1 của R2)/4 = (R1 + (bù 1 của R2)/2)/2

Ta có các từ điều khiển sau: (chỉ cần 4 từ điều khiển cho a) hoặc b))

R3 R2 AND R4 R3 = R2 And R4 010 100 011 01000

R5 R5 - R3 R5 = 2R1 - (R2 And R4) 101 011 101 00101

R5 R5 + R5 R5 = 4R1 - 2(R2 And R4) 101 101 101 00010

R4 COM R2 R4 = bù 1 của R2 010 000 100 01110

R4 SHR R4 R4 = (bù 1 của R2)/2 100 000 100 10000

R3 R1 + R4 R3 = R1 + (bù 1 của R2)/2 001 100 011 00010

R3 SHR R3 R3 = R1/2 + (bù 1 của R2)/4 011 000 011 10000

Trang 2

2 Hãy cho biết dung lượng bộ nhớ lớn nhất (tính theo byte và word) mà CPU có thể

quản lý được nếu nó có:

a) Số đường địa chỉ là 16 và số đường dữ liệu là 8

b) Số đường địa chỉ là 20 và số đường dữ liệu là 16

BG

Số đường

địa chỉ Số đường dữ liệu Dung lượng bộ nhớ lớn nhất mà CPU có thể quản lý

16 8 2 16 x 8 bits = 2 16 bytes =2 6 x2 10 bytes = 64 KB = 32K words

20 16 2 20 x 16 bits = 2 20 words = 1 M words = 2 MB

3 Hãy cho biết giá trị của các cờ trong thanh ghi trạng thái sau khi CPU 8 bit thực thi

lệnh sau (giả sử ban đầu tất cả các cờ có trị là 0 trước khi thực thi lệnh)

a) Cộng 2 số 8 bit: +126 với +15

b) Cộng 2 số 8 bit: E7H với 09H

c) Trừ 2 số 8 bit: +104 với –12

Chú ý: Trình bày các phép tính theo dạng số nhị phân

BG.

a) Cộng 2 số 8 bit: +126 với +15

b) Cộng 2 số 8 bit: E7H với 09H

c) Trừ 2 số 8 bit: +104 với –12

4 Viết mã để tính biểu thức F = A * ( B + C) + D trên các CPU có lệnh 2, 1, và 0 địa

chỉ Không sắp xếp lại biểu thức và khi tính toán không làm thay đổi các biến A, B, C,

và D

BG

CPU có lệnh 2 địa chỉ CPU có lệnh 1 địa chỉ CPU có lệnh 0 địa chỉ

MOV R2, B

ADD R2, C

MOV R1, A

MUL R1, R2

ADD R1, D

MOV F, R1

LOAD B ADD C STORE T LOAD A MUL T ADD D STORE F

PUSH A PUSH B PUSH C ADD MUL PUSH D ADD POP F

+

+

Trang 3

ĐHBK Tp HCM – Khoa ĐĐT–BMĐT

GVPT: Hồ Trung Mỹ

Vi xử lý – AY1213-S2

Đáp án của Kiểm tra tại lớp đợt 2 Thời gian làm bài: 30 phút (Cho mở TL)

1 (2 đ) Vẽ dạng sóng của truyền dữ liệu nối tiếp bất đồng bộ khi truyền 1 byte 4BH với LSB

được truyền đi trước cho các trường hợp sau: (nếu biết tốc độ truyền là 2400 bps)

a) Dữ liệu 7 bit, không có parity và 1 bit stop

b) Dữ liệu 8 bit, có parity lẻ và 1 bit stop

BG

4BH = 0100 10112

Tốc độ baud = 2400 bps => Thời gian cho 1 bit T = 1/2400 = 0.417 ms

a) Dữ liệu 7 bit, không có parity và 1 bit stop:

b) Dữ liệu 8 bit, có parity lẻ và 1 bit stop:

2 (3 đ) Thiết kế ROM 3K x 8 từ các chip ROM 1K x 4

BG

Trang 4

3 (5 đ) Hãy tìm dải địa chỉ của tất cả các tín hiệu /CS trong mạch sau:

BG

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Chọn CS Dải địa chỉ

\CS6 9000-97FF

\CS9 luôn luôn là 1 (vì ngõ ra của giải mã 139 có tối đa 1 ngõ ra là 0)

=> không có dải địa chỉ cho \CS9

Trang 5

ĐHBK Tp HCM – Khoa ĐĐT–BMĐT

GVPT: Hồ Trung Mỹ

Vi xử lý – AY1213-S2 – Đáp án của Kiểm tra tại lớp đợt 3

Thời gian làm bài: 30 phút (Cho mở TL)

1 (2 đ) Hãy cho biết cách định địa chỉ của mỗi toán hạng với mỗi lệnh sau:

LOOP: ADC A, (HL)

BG

Lệnh Toán hạng 1 Cách định địa chỉ Toán hạng 2

LD B, 3 Thanh ghi Tức thời

LD A, 0A5H Thanh ghi Tức thời

LD HL, 0C028H Thanh ghi Tức thời mở rộng

INC HL Thanh ghi DJNZ LOOP Tương đối

2 (6 đ) Hãy viết vài lệnh Z80 để thực hiện các công việc sau: ( PORT1 EQU 07H)

a) B  39H và D  92H; L  B và (PORT1)  D

b) B  47H và C  F2H chỉ dùng 1 lệnh; (2080H)  C và (PORT1)  B Hãy ghi mã máy cho

đoạn chương trình này và giả sử chúng bắt đầu từ địa chỉ 2000H

c) D  A và HL  2080H ; (2080H)  D

d) D  A7H và BC  2055H ; (BC)  D

e) Biết (2040H) = 98H và (2070H) = F7H Viết các lệnh để hoán đổi nội dung của 2 ô nhớ này và

viết mã máy cho đoạn đó

BG

a) B  39H và D  92H; L  B và (PORT1)  D

LD B,39H

LD D,92H

LD L,B

LD A,D OUT (PORT1),A

b) B  47H và C  F2H chỉ dùng 1 lệnh; (2080H)  C và (PORT1)  B

Org 2000H

LD BC,57F2H

LD A,C

LD (2080H),A

LD A,B OUT (PORT1),A

01 F2 57

79

32 80 20

78 D3 07

c) D  A và HL  2080H ; (2080H)  D

LD D,A

LD HL,2080H

LD (HL),D

d) D  A7H và BC  2055H ; (BC)  D

LD D,0A7H

LD BC,2055H

LD A,D

LD (BC),A

Trang 6

e) Biết (2040H) = 98H và (2070H) = F7H Viết các lệnh để hoán đổi nội dung của 2 ô nhớ này

LD A,(2040H)

LD B,A

LD A,(2070H)

LD (2040H),A

LD A,B

LD (2070H),A

3A 10 20

47 3A 70 20

32 40 20

78

32 70 20

3 (2 đ) Cho trước đoạn chương trình sau:

LD SP, 1200H

Hãy vẽ stack với địa chỉ bộ nhớ và nội dung của stack Sau khi Z80 thực thi đoạn chương trình trên,

BG

  

Trang 7

ĐHBK Tp HCM – Khoa ĐĐT–BMĐT

GVPT: Hồ Trung Mỹ

Vi xử lý – AY1213-S2

Đáp án của Kiểm tra tại lớp đợt 4

Thời gian làm bài: 30 phút (Cho mở TL)

1 (4 đ) Hãy viết vài lệnh 8051 để thực hiện các công việc sau:

a) Nạp giá trị 1234H vào DPTR bằng 2 cách (nạp thanh ghi 16 bit và nạp thanh ghi 8 bit)

b) Nạp trị số 45H vào thanh ghi R0 bằng 2 cách

c) Chép nội dung của thanh ghi R2 vào R6 (giả sử ở bank 1) bằng các cách với lệnh PUSH, MOV (4 cách)

BG

a) MOV DPTR,#1234H (*) MOV DPH,#12H

MOV DPL,#34H b) MOV R0,#45H (*) MOV 0,#45H

c) PUSH 10

POP 14 MOV A,R2 MOV R6,A MOV 14,R2 MOV R6,10 MOV 14,10 (*) Chú ý:

 Cách có “*” là cách hiệu quả nhất!

2 (2 đ)

a) Sau đoạn chương trình này, cho biết các địa chỉ bit nào (trong byte được cập nhật) trong vùng nhớ nội 20H đến 2FH có nội dung là 1:

MOV 27h, #48h MOV R0, #29h MOV @R0, 27h b) Cho biết mã máy sau thực hiện tác vụ gì?

BG

a)

(27H)= 48H = 0100 1000H  Các địa chỉ bit (hex) có nội dung là 1: 3E và 3B (29H)= 48H = 0100 1000H  Các địa chỉ bit (hex) có nội dung là 1: 4E và 4B b) Mã lệnh 75H tương ứng với lệnh 3 byte:

MOV direct, #data

Như vậy 75H 8AH E7H tương ứng với lệnh: MOV 8AH, #0E7H

3 (2 đ) Cho biết các cách định địa chỉ của các toán hạng trong các lệnh sau:

ANL C, ACC.1 ADD A, #55 MOV @R1, A MOV P1, 50H

BG

Lệnh toán hạng 1 Cách định địa chỉ của toán hạng 2 ANL C, ACC.1 Hiểu ngầm Trực tiếp (bit) ADD A, #55 Hiểu ngầm Tức thời

MOV @R1,A Gián tiếp Hiểu ngầm MOV P1,50H Trực tiếp Trực tiếp

Trang 8

4 (2 đ) Offset tương đối của lệnh sau là bao nhiêu?

a) SJMP AHEAD

nếu lệnh này đang ở ô nhớ 0480H và nhãn AHEAD biểu diễn lệnh ở địa chỉ 043AH

b) SJMP BACK

nếu lệnh này đang ở ô nhớ A078H và nhãn BACK biểu diễn lệnh ở địa chỉ 9EA8H

BG

Địa chỉ lệnh kế = Địa chỉ lệnh hiện tại + chiều dài lệnh

Hiệu số: FFB8H (-72) FE2EH (-466 < -128)

Trang 9

ĐHBK Tp HCM – Khoa ĐĐT–BMĐT

GVPT: Hồ Trung Mỹ

Vi xử lý – AY1213-S2

Đáp án của Kiểm tra tại lớp đợt 5

Thời gian làm bài: 30 phút (Cho mở TL)

1) (1 đ) Trước khi thực thi mỗi lệnh sau thì PSW=5FH và A=19H, sau khi thực thi thì PSW và A=?

a) RLC A

b) RRC A

BG

Cho trước PSW = 5FH = 0101 1111B và A = 19H = 0001 1001B trước khi thực thi lệnh

a) RLC A

A = 0011 0010B = 32H PSW = 0101 1111B = 5FH

b) RRC A

A = 0000 1100B = 0CH PSW = 1101 1110B = DEH

2) (3 đ) Viết đoạn chương trình 8051 thực hiện công việc sau:

 Nếu A < B thì R2  R1 + R0

 Nếu A = B thì R2  R1 – R0

 Nếu A > B thì R2  A + B

BG

CJNE A, B, ANEB AEQB: ; Case: A = B

MOV A, R1 SUBB A, R0 ; A  R1 – R0 – C = R1 – R0

ANEB: ; Case: A  B

ALTB: ; Case: A < B

MOV A, R1 ADD A, R0 ; A  R1 + R0

AGTB: ; Case: A > B

ADD A, B ; A  A + B Continue: MOV R2, A

3) (2 đ) Viết chương trình cài đặt mạch tổ hợp sau: (không biến đổi biểu thức Boole)

BG

Trang 10

X EQU P1.7

ORL C, Y ; C = X or Y CPL C ; C = X nor y ANL C,/Z ; C = (X nor Y) and not(Z) CPL C ; C = (X nor Y) nand not(Z)

4) (4 đ) Viết chương trình con AND8b thực hiện AND 8 bit của thanh ghi A và kết quả đặt trong cờ C bằng các

cách sau:

a) dùng các lệnh ANL C, bit và

b) dùng lệnh CJNE

BG

AND8b:

MOV C, ACC.0

ANL C, ACC.1

ANL C, ACC.2

ANL C, ACC.3

ANL C, ACC.4

ANL C, ACC.5

ANL C, ACC.6

ANL C, ACC.7

RET

AND8b:

MOV R0,#8 SETB C L1:

ANL C, ACC.0

RR A

DJNZ R0, L1 RET

AND8b:

CJNE A,#0FFH,KQZ SETB C

RET KQZ:

CLR C RET

Trang 11

ĐHBK Tp HCM – Khoa ĐĐT–BMĐT

GVPT: Hồ Trung Mỹ

Vi xử lý – AY1213-S2

Đáp án của Kiểm tra tại lớp đợt 6

Thời gian làm bài: 30 phút (Cho mở TL)

1 (4 đ) Viết chương trình tạo sóng vuông 12 KHz với chu kỳ nhiệm vụ 50% ở chân P1.0

Giả sử 8051 dùng XTAL = 12 MHz

a Tạo trễ bằng phần mềm

b Tạo trễ bằng Timer0

BG

XTAL = 12 MHz  1 MC = 12/XTAL = 1 s

T = 1/(12KHz) = 83.33 s  TON = TOFF  41 s

a) Tạo trễ bằng phần mềm b) Tạo trễ bằng Timer0

Loop: CPL P1.0 ; 1 MC

NOP ; 1 MC MOV R0,#18 ; 1 MC

DJNZ R0, $ ; 2 x 18 MC SJMP Loop ; 2 MC

MOV TMOD,#2 MOV TH0,#–41 SETB TR0 Loop: JNB TF0, $

CLR TF0 CPL P1.0 SJMP Loop

2 (2 đ) Một thiết kế dùng Timer0 của 8051 để đếm số khách hàng vào tham quan hội chợ,

nếu số khách hàng vào đạt đến 10000 thì ngõ ra P1.0 sẽ là 1 Ngõ vào T0 nhận được 1 xung vuông từ mạch cảm biến khi có 1 khách hàng đi vào Viết mã cho đoạn CT này

BG

SETB P3.4 ; P3.4 (= T0) is input pin CLR P1.0

MOV TMOD,#00000101B ; Timer 0, Mode 1 of Counter 0

MOV TH0,#HIGH(–10000) SETB TR0

JNB TF0, $

SETB P1.0 SJMP $

3 (2 đ) Tìm thời gian trễ của chương trình con Delay Giả sử 8051 đang dùng XTAL = 8

MHz

DELAY: MOV R7, #5 ; 1 MC

L1: MOV R6, #00H ; 1 MC

L2: MOV R5, #00H ; 1 MC

DJNZ R5, L3 ; 2 MC

DJNZ R6, L2 ; 2 MC

DJNZ R7, L1 ; 2 MC

Trang 12

BG

XTAL = 8 MHz  1 MC = 12/(8 MHz) = 1.5 s

Dựa trên số MC của các lệnh, ta tính được thời gian trễ T_Delay của CT con Delay này là:

T_Delay = 1 +(1+( 1+(1+1+2)x 256 + 2)x 256 + 2) x 5 + 2 = 1314578 MC

= 1314578 x 1.5 s = 1971867 s  1.972 ms

4 (2 đ) Cho trước đoạn chương trình sau (giả sử XTAL =12 MHz)

MOV TMOD,#1

Tính thời gian TON và TOFF của dạng sóng tại P1.1 và tìm chu kỳ nhiệm vụ của nó

BG

 Giá trị nạp cho Timer 0 lúc P1.1 bằng 1 tương ứng với –T ON :

T ON = bù 2 của FD44H = 028CH = 700  T ON = 700 MC = 700 s

 Giá trị nạp cho Timer 0 lúc P1.1 bằng 0 tương ứng với –T OFF :

T OFF = bù 2 của FE0CH = 01F4H = 500  T OFF = 500 MC = 500 s

 Như vậy chu kỳ nhiệm vụ là

T ON /(T ON + T OFF ) = 700/(700+500)= 58.33%

Ngày đăng: 03/04/2014, 22:49

TỪ KHÓA LIÊN QUAN

w