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

Giải chi tiết đề ôn thi vi xử lý lưu phú cuối kì

21 164 1

Đ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 21
Dung lượng 99,3 KB

Nội dung

1. Mô tả chi tiết một chu kỳ lệnh gồm những bước nào?2. Giả sử có các nội dung của các thanh ghi: (PC)=1000H,(A)=05H,(R0)=09H với A và R0 là tên các thanh ghitrong CPU.Trong bộ nhớ chứa chương trình tại địa chỉ 1000H chứa giá trị 28H là mã lệnh ADD A,R0(cộng nộidung thanh ghi A và R0 trả kết quả về thanh ghi A).Hãy mô tả chi tiết chu kỳ thực hiện lệnh trên.3. Giả sử có các nội dung của các thanh ghi: (PC)=1000H,(A)=12H,(B)=4EH với A và B là tên các thanh ghi trong CPU.Trong bộ nhớ chứa chương trình tại địa chỉ 1000H chứa giá trị 35H và địa chỉ 1001H chứa giá trị F0H là 2 byte mã lệnh ADD A,B(cộng nội dung thanh ghi A và B trả kết quả về thanh ghi A).Hãy mô tả chi tiết chu kỳ thực hiện lệnh trên. 4. Giả sử có các nội dung của các thanh ghi: (PC)=1000H,(2000H)=05H,(DPTR)=2000H,với A và DPTR là tên các thanh ghi trong CPU.Trong bộ nhớ chứa chương trình tại địa chỉ 1000H chứa giá trị E0H là mã lệnh MOVX A,DPTR(chuyển nội dung thanh ghi từ bộ nhớ ngoài địa chỉ trỏ bởi thanh ghi DPTR vào thanh ghi A).Hãy mô tả chi tiết chu kỳ thực hiện lệnh trên.

GIẢI ĐỀ ÔN THI VI XỬ LÝ 201 Câu 1: Mô tả chi tiết chu kỳ lệnh gồm bước nào? Một chu kỳ lệnh gồm bước chính: Bước 1: Fetching - Nội dung ghi PC đặt lên address bus - Tín hiệu điều khiển READ bật - Opcode đọc từ RAM đặt lên data bus - Opcode latched từ data bus vào ghi IR - PC tăng chuẩn bị cho chu kỳ fetch sau Bước 2: Executing - CPU giải mã Opcode, tạo tín hiệu điều khiển Gate Thanh ghi thích hợp đến ALU lệnh ALU thực tác vụ cụ thể Câu 2: Giả sử có nội dung ghi: (PC)=1000H,(A)=05H, (R0)=09H với A R0 tên ghi CPU.Trong nhớ chứa chương trình địa 1000H chứa giá trị 28H mã lệnh ADD A,R0(cộng nội dung ghi A R0 trả kết ghi A) Hãy mô tả chi tiết chu lệnh (PC) = 1000H (A) = 05H (R0) = 09H (1000H) = 28H ;là mã lệnh ADD A,R0 Mô tả chi tiết chu lệnh trên: Nội dung ghi PC, 1000H, đặt lên address bus Tín hiệu READ xuất Data đọc từ nhớ có địa 1000H đặt lên data bus Opcode latched vào IR PC tăng CPU giải mã Opcode, xuất tín hiệu điều khiển gate R0 A vào ALU CPU xuất tín hiệu điều khiển cho ALU thực cộng A R0 kết cất vào A Câu 3: Giả sử có nội dung ghi: (PC)=1000H,(A)=12H, (B)=4EH với A B tên ghi CPU.Trong nhớ chứa chương trình địa 1000H chứa giá trị 35H địa 1001H chứa giá trị F0H byte mã lệnh ADD A,B(cộng nội dung ghi A B trả kết ghi A) Hãy mô tả chi tiết chu lệnh (PC) = 1000H (A) = 12H (B) = 4EH (1000H) = 35H (1001H) = F0H ;là byte mã lệnh ADD A,B (cộng nội dung ghi A B trả kết ghi A) Mô tả chi tiết chu lệnh trên: Nội dung ghi PC, 1000H, đặt lên address bus Tín hiệu READ xuất Data đọc từ nhớ có địa 1000H đặt lên data bus Opcode latched vào IR PC tăng CPU giải mã Opcode, xuất tín hiệu điều khiển fetching byte Nội dung ghi PC, 1001H, đặt lên address bus Tín hiệu READ xuất Data đọc từ nhớ có địa 1001H đặt lên data bus Opcode latched vào IR PC tăng CPU giải mã Opcode, xuất tín hiệu điều khiển gate ghi A B vào ALU CPU xuất tín hiệu điều khiển, lệnh ALU cộng A B, trả kết lưu A Câu 4: Giả sử có nội dung ghi: (PC)=1000H,(2000H)=05H, (DPTR)=2000H,với A DPTR tên ghi CPU.Trong nhớ chứa chương trình địa 1000H chứa giá trị E0H mã lệnh MOVX A,@DPTR(chuyển nội dung ghi từ nhớ địa trỏ ghi DPTR vào ghi A) Hãy mô tả chi tiết chu lệnh (PC) = 1000H (A) = 05H (DPTR) = 2000H (1000H) = E0H ;là mã lệnh MOVX A,@DPTR Mô tả chi tiết chu lệnh trên: Tương tự câu 1, 2, Câu 5: Chức chân \EA MCU 8051 Chức chân \EA: \EA = MCU thực chương trình từ ROM nội \EA = MCU thực chương trình từ nhớ Câu 6: Chức chân \PSEN MCU 8051 Khi \EA=1 trạng thái \PSEN nào? Chức chân \PSEN (Program Store Enable) MCU 8051: Là tín hiệu điều khiển cho phép nhớ chương trình ngồi Khi thực chương trình từ ROM trong, \PSEN = Pulse Low during fetch stage of an instruction Câu 7: Sử dụng IC 27C64(EPROM) làm nhớ chương trình ngồi.Kết nối \PSEN với chân IC 27C64? Sử dụng IC 27C64 (EPROM) làm nhớ chương trình Kết nối \PSEN với chân \OE IC 27C64 Câu 8: Chức chân ALE.Tần số xung chân ALE Chức chân ALE.Tần số xung chân ALE? ALE (Address Latch Enable) Khi Port dùng chế độ thay (data bus low-byte address bus), ALE tín hiệu latch địa vào ghi ngoại suốt nửa đầu chu kỳ memory, nửa data ALE xung 1/6 on-chip oscillator frequency (12MHz / = MHz) Câu 9: Vẽ sơ đồ kết nối mạch dao động nội tần số 12Mhz mạch reset nguồn cho MCU 8051.Cho biết nội dung PC,các bank ghi,các SFR PSW,A ,SP port trạng thái reset Vẽ sơ đồ kết nối mạch dao động nội tần số 12MHz mạch reset nguồn cho MCU 8051 1 U2 30pF 19 CRYSTAL 18 XTAL1 XTAL2 30pF 19 R2 100 18 C3 10uF 29 30 31 U2 RST XTAL1 XTAL2 PSEN ALE EA RST R1 P1.0 P1.1 29 PSEN P1.2 30 ALE P1.3 31 EA P1.4 P1.5 P1.6 P1.7 … P1.0 Cho biết nội dung PC,các bank ghi,các SFR PSW,A ,SP port AT89C51 P1.1 trạng thái reset P1.2 P1.3 P1.4 P1.5 8.2k PC = A=0 B=0 PSW = Các Port = Câu 10: Tại phải lắp thêm R 10K kéo lên nguồn+5V cho Port0? Tại phải lắp thêm R = 10K kéo lên nguồn +5V cho Port 0? Vì Port khơng có điện trở kéo lên bên trong, nên không lắp, Port bị lơ lửng Câu 11: Tại phải chốt địa byte thấp Sử dụng IC 74HC373 làm mạch chốt địa byte thấp, vẽ sơ đồ kết nối MCU 8051 với IC 74HC373 Chốt địa byte thấp giúp để giành Port pins cho việc khác Khi sử dụng Port as multiplexed address and data bus Suốt nửa đầu chu kỳ U2 U1 nhớ, low-byte địa đưaP0.0/AD0 lên Port 0, 39 ALE pulses high 19 chốt address 19 XTAL1 D0 Q0 38 36 35 34 33 32 18 D1 output 74HC373 Nửa sau chuP0.1/AD1 kỳ data37trên Port 0, ALE low khôngQ1chốt 17 nên P0.2/AD2 18 XTAL2 P0.3/AD3 output 74HC373 giữ address Câu 12: P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 RST P2.0/A8 Sử dụng IC HM6264(RAM) làm bộP2.1/A9 nhớ P2.2/A10 \WR 29 đến chân IC HM6264? PSEN P2.3/A11 30 ALE P2.4/A12 31 EA P2.5/A13 \RD vào chân \OE, \WR vào chân \WE P2.6/A14 P2.7/A15 21 22 liệu(data) 23 24 25 26 27 28 11 D2 D3 D4 D5 D6 D7 ngoài.Kết LE OE chân nối Q2 Q3 Q4 Q5 Q6 Q7 16 15 14 13 12 \RD 74HC573 Câu 13: Tại đầu chương trình người ta thường viết lệnh dời vùng stack lên vùng P1.0 cao nhớ RAM nội? P1.1 P1.2 chồng lấn với Để khơng P1.3 P1.4 Ví dụ:6MOV SP,#5FH P1.5 P1.6 P1.7 AT89C51 vùng P3.0/RXD P3.1/TXD P3.2/INT0 địa P3.3/INT1 liệu P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 10 11 12 13 chương 14 15 16 17 trình Với lệnh trên,cho biết chiều dài vùng stack MCU 8051 MCU 8052? 32 bytes 8051 (60H to 7FH), 160 bytes 8052 (60H to FFH) Câu 14: Giả sử (SP) = 60H, mô tả hoạt động PC stack thực lệnh LCALL CTC: PC Mnemonics … MOV A,#3DH ; 1000H LCALL CTC => (PC) = 1003H, (61H) = 03H, (62H) = 10H, (SP) = 62H, (PC) = 8000H … 8000H CTC: PUSH ACC => (63H) = 3DH, (SP) = 63H, (PC) = 8002H … POP ACC RET Câu 15: Xem đoạn chương trình sau: PC Mnemonics ORG 0000H LJMP MAIN 0003H LJMP EX0_ISR ORG 0030H 0030H MAIN: MOV SP,#5FH … MOV IE,#81H SETB IT0 … … 1000H MOV A,R7 1001H CJNE A,#0AH,$+3 … … 4000H EX0_ISR: PUSH ACC 4002H PUSH PSW 4004H LCALL DELAY 4007H POP PSW 4009H POP ACC 400BH RETI … … 4A02H DELAY: … … … … RET Mô tả hoạt động ghi PC SP ngõ P3.2 có chuyển biến từ mức cao xuống thấp thời điểm chương trình thực lệnh MOV A,R7 1000H MOV A,R7 => (PC) = 1001H falling edge occurs at P3.2: (60H) = 01H, (61H) = 10H, (SP) = 61H, PC = 0003H Mô tả hoạt động ghi PC SP ngõ P3.2 có chuyển biến từ mức cao xuống thấp thời điểm chương trình thực lệnh MOV A,R7 Câu 16: Giả sử ban đầu (R7) = 6CH cờ C, AC, OV, P Điền nội dung ghi A cờ theo dòng lệnh sau: (A) (C) (AC) (OV) (P) MOV A,#77H 77H 0 0 ADD A,R7 0E3H 1 ADDC A,#4DH 30H 1 0 INC A 31H 1 SUBB A,#5EH 0D2H 1 0 Câu 17: Viết đoạn chương trình chuyển 50 byte data chứa nhớ RAM địa đầu 1000H sang nhớ RAM nội địa đầu 30H MOV50: MOV DPTR,#1000H MOV R0,#30H MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 CJNE R0,#62H,LOOP ;Or MOV R1,#50 on the first line ; DJNZ R1,LOOP RET Câu 18: Viết đoạn chương trình chuyển mảng data chứa nhớ RAM nội địa đầu 30H sang nhớ RAM địa đầu 1000H, kết thúc chuyển data gặp ký tự NULL = 00H MOVTILNULL: MOV DPTR,#1000H MOV R0,#30H LOOP: MOV A,@R0 JZ ENDGAME MOVX @DPTR,A INC DPTR INC R0 SJMP LOOP ENDGAME: RET Câu 19: Viết đoạn chương trình chuyển mảng data chứa nhớ RAM địa đầu 1000H sang vùng nhớ khác địa đầu 8000H, kết thúc chuyển data gặp ký tự NULL = 00H MOVEXTILNULL: ;Khoi tao gia tri ban dau MOV R4,#00H MOV R5,#10H MOV R2,#00H MOV R3,#80H ;Chuong trinh chinh LOOP: MOV DPL,R4 MOV DPH,R5 MOVX A,@DPTR JZ ENDGAME ;A=00H thi dung lai MOV DPL,R2 MOV DPH,R3 MOVX @DPTR,A INC R2 CJNE R2,#0,NEXT1 ;Kiem tra R2 tran INC R3 NEXT1: INC R4 CJNE R4,#0,NEXT2 ;Kiem tra R4 tran INC R5 NEXT2: SJMP LOOP ENDGAME: RET Câu 20: Viết chương trình tên DELAY_100US tạo thời gian trễ 100us DELAY_100US: MOV R6,#49 DJNZ R6,$ RET Câu 21: Viết chương trình tên DELAY_10MS tạo thời gian trễ 10ms,sử dụng chương trình DELAY_100US câu 15 Chả có DELAY_100US câu 15 Câu 22: Viết chương trình tên HEX_BCD chuyển byte data nhập từ P1 vào thành số BCD không nén digits,hàng trăm cất (32H),hàng chục cất trong(31H),hàng đơn vị cất (30H) HEX_BCD: PUSH ACC MOV A,P1 MOV B,#10 DIV AB MOV 30H,B JZ EXIT ;A=0 suy so nho hon 10, khong can tinh tiep MOV B,#10 DIV AB MOV 31H,B ;Hang chuc B MOV 32,A ;Hang tram A EXIT: POP ACC RET Câu 23: Thiết kế mạch hiển thị LED đoạn Anode chung,mỗi LED lái chốt D 74HC573 MCU8051 xuất mã đoạn mạch chốt tín hiệu chọn chốt tương ứng a) Vẽ sơ đồ thiết kế phần cứng giải thích tóm tắt b) Viết chương trình nhập data từ port hiển thị giá trị thập phân tương ứng mạch hiển thị LED ORG 0000H MOV A,P3 MOV B,#10 DIV AB MOV 30H,B JZ EXIT ;A=0 suy so nho hon 10, khong can tinh tiep MOV B,#10 DIV AB MOV 31H,B ;Hang chuc B ;MOV 32H,A ;Hang tram A MOV A,31H SWAP A ORL A,30H MOV P1.0,A END Câu 24/30: Viết chương trình tạo chuỗi xung vng chu kỳ nhiệm vụ(thời đoạn mức 1)30%, tần số 5KHz xuất P1.0 chuỗi xung vuông chu kỳ nhiệm vụ 25%,tần số 500Hz xuất P1.1.Đánh giá sai số theo chương trình viết.Cho Fosc=12MHz Lập lại 24 sử dụng ngắt timer ORG 0000H LJMP MAIN ORG 000BH ;LJMP T0_ISR T0_ISR: CLR P1.0 CLR TR0 RETI ORG 001BH LJMP T1_ISR ORG 0030H MAIN: MOV TMOD,#22H MOV TH0,#-60 MOV TL0,#-60 MOV TH1,#-100 MOV TL1,#-100 SETB TR0 SETB TR1 MOV IE,#8AH MOV R0,#2 MOV R2,#20 SJMP $ T1_ISR: DJNZ R0,XONG0 MOV R0,#2 SETB P1.0 SETB TR0 XONG0: DJNZ R2,CHUKY1 MOV R2,#20 MOV R1,#6 SETB P1.1 CHUKY1: DJNZ R1,PW1 CLR P1.1 PW1: RETI END Câu 32: Viết chương trình sử dụng ngắt cổng nối tiếp thực công việc sau: - Nếu MCU thu mã ASCII khác chữ R, quay chương trình - Nếu MCU thu mã ASCII chữ R,sẽ phát cổng nối tiếp chuỗi ký tự kết thúc mã NULL (00H), phát mã NULL, cất RAM địa đầu C000H - Trong q trình phát MCU cấm thu - Chương trình liên tục thực việc cộng dồn(không qua carry)chuỗi ký tự gặp mã NULL,sau cất kết phép cộng vào R0 ORG 0000H LJMP MAIN ORG 0023H LJMP SP_ISR ORG 0030H MAIN: MOV SCON,#50H MOV IE,#90H LOOP: MOV R0,#0 MOV DPTR,#0C000H LOOPCONG: MOV A,@DPTR JZ THOICONG ADD A,R0 MOV R0,A INC DPTR SJMP LOOPCONG THOICONG: SJMP LOOP SP_ISR: JNB TI,NHAN CLR TI SJMP EXIT NHAN: CLR RI MOV A,SBUF CJNE A,#'R',EXIT CLR REN MOV DPTR,#0C000H LOOP1: MOV A,@DPTR MOV SBUF,A JNB TI,$ CLR TI JZ EXIT INC DPTR SJMP LOOP1 EXIT: SETB REN RETI END Câu 33: Từ sơ đồ 22,thiết kế mạch đếm số người vào /ra phòng hoạt động sau: - Cửa vào có cảm biến tạo xung tích cực mức thấp mở/đóng - Chỉ có người vào/ra cửa mở/đóng Một tín hiệu điều khiển khóa cửa vào số người phòng tới 90 người cho mở cửa số người phòng không 80 người a) Vẽ lại sơ đồ thiết kế thêm khối cảm biến cửa vào/ra,khóa cửa vào tín hiệu kết nối tương ứng b) Viết chương trình đếm hiển thị số người phịng điều khiển đóng/mở cửa vào theo điều kiện nêu ORG 0000H LJMP MAIN ORG 0003H INC R1 RETI ORG 0013H DEC R1 RETI ORG 0030H MAIN: SETB IT0 SETB IT1 SETB EX0 SETB EX1 SETB EA LOOP: CJNE R1,#20,EXIT0 CLR EX0 EXIT0: CJNE R1,#10,EXIT1 SETB EX0 EXIT1: ACALL HEXTOBCD MOV A,31H SWAP A ORL A,30H MOV P2,A SJMP LOOP HEXTOBCD: MOV A,R1 MOV B,#10 DIV AB MOV 30H,B ;B la don vi MOV 31H,A EXIT: RET END ORG LJMP MAIN ORG 000BH SJMP T0_ISR ORG 001BH SJMP T1_ISR ORG 0030H MAIN: MOV IE,#8AH MOV TMOD,#11H MOV TH0, #HIGH(-60) MOV TL0, #LOW(-60) MOV TH1, #HIGH(-500) MOV TL1, #LOW(-500) SETB TR0 SETB TR1 SETB P1.0 SETB P1.1 SJMP $ T0_ISR: JB P1.0, LOOP SETB P1.0 CLR TR0 MOV TH0, #HIGH(-60) MOV TL0, #LOW(-60) SETB TR0 QUAN: RETI LOOP: CLR P1.0 CLR TR0 MOV TH0, #HIGH(-140) MOV TL0, #LOW(-140) SETB TR0 SJMP QUAN T1_ISR: JB P1.1, LOOP1 SETB P1.1 CLR TR1 MOV TH1, #HIGH(-500) MOV TL1, #LOW(-500) SETB TR1 QUAN1: RETI LOOP1: CLR P1.1 CLR TR1 MOV TH1, #HIGH(-1500) MOV TL1, #LOW(-1500) SETB TR1 SJMP QUAN1 END ORG 0000H MOV TMOD,#01H MOV A,#20 MOV R7,#2 LOOP: MOV R0,7 PUSH ACC SUBB A,R0 MOV R1,A POP ACC SETB P1.0 LOOPH: LCALL DL500us DJNZ R0,LOOPH CPL P1.0 LOOPL: LCALL DL500us DJNZ R1,LOOPL JNB P1.1,CHECKMAX JNB P1.2,CHECKMIN RETURN: SJMP LOOP CHECKMAX: CJNE R7,#18,UP SJMP RETURN UP: JNB P1.1,$ INC R7 SJMP RETURN CHECKMIN: CJNE R7,#2,DOWN SJMP RETURN DOWN: JNB P1.2,$ DEC R7 SJMP RETURN DL500us: ... kết ghi A) Hãy mô tả chi tiết chu lệnh (PC) = 1000H (A) = 12H (B) = 4EH (1000H) = 35H (1001H) = F0H ;là byte mã lệnh ADD A,B (cộng nội dung ghi A B trả kết ghi A) Mô tả chi tiết chu lệnh trên:... từ nhớ địa trỏ ghi DPTR vào ghi A) Hãy mô tả chi tiết chu lệnh (PC) = 1000H (A) = 05H (DPTR) = 2000H (1000H) = E0H ;là mã lệnh MOVX A,@DPTR Mô tả chi tiết chu lệnh trên: Tương tự câu 1, 2, Câu... 23: Thi? ??t kế mạch hiển thị LED đoạn Anode chung,mỗi LED lái chốt D 74HC573 MCU8051 xuất mã đoạn mạch chốt tín hiệu chọn chốt tương ứng a) Vẽ sơ đồ thi? ??t kế phần cứng giải thích tóm tắt b) Vi? ??t

Ngày đăng: 25/12/2020, 20:13

TỪ KHÓA LIÊN QUAN

w