32 câu hỏi
Cho đoạn mã Assembler sau:MOV A, #15HJB P, SKIPMOV A, #0FFHSJMP EXITSKIP: CLR AEXIT: ENDKết quả của thanh ghi A là:
15H
0FFH
00H
C3
Cho đoạn mã Assembler sau:MOV A, #18HJB ACC.7, SKIPMOV A, #0FFHSJMP EXITSKIP: CLR AEXIT: ENDKết quả của thanh ghi A là:
18H
0FFH
00H
C3
Cho đoạn mã Assembler sau:MOV A, #18HMOV 30H, #10HJB ACC.7, SKIPADD A, 30HMOV 30H, ASJMP EXITSKIP: SUBB A, 30HMOV 30H, AEXIT: ENDKết quả của ô nhớ 30H chứa:
30H
18H
28H
08H
Cho đoạn mã Assembler sau:MOV A, #0FFHADD A, #1JNZ SKIPADDC A, #02HSJMP EXITSKIP: ADDC A, #01HEXIT: ENDKết quả của thanh ghi A là:
0FFH
03H
02H
01H
Cho đoạn mã Assembler sau:MOV A, #0FFHADD A, #2JZ SKIPADDC A, #02HSJMP EXITSKIP: ADDC A, #01HEXIT: ENDKết quả của thanh ghi A là:
0FFH
03H
04H
02H
Số Timer và số mode hoạt động của 8051/8031 là:
1, 3
2, 4
2, 3
1, 4
Nguồn xung nhấp cho các Timer là xung vuông có tần số bằng… tần số dao động:
1 / 2
1 / 12
1 / 4
1 / 6
Người ta sử dụng Timer để:
Định thì không thời gian
Đếm số kiện
Tạo ra baud cho cổng nối tiếp
Cả 3 đều đúng
Chế độ Timer 0 đồng hồ là chế độ:
0
1
2
3
Chế độ Timer 16 bit là chế độ:
0
1
2
3
Khi lập trình định thì với khoảng thời gian từ 256 đến 65536 ms (giả sử dùng tần số dao động là 12MHz) ta dùng kỹ thuật:
Điều chỉnh băng phần mềm
Timer 8 bit tạo đồng hồ
Timer 16 bit
Timer 16 bit kết hợp với các vòng lặp
Khi lập trình định thì với khoảng thời gian từ 10 đến 256 ms (giả sử dùng tần số dao động là 12MHz) ta dùng kỹ thuật:
Điều chỉnh băng phần mềm
Timer 8 bit tạo đồng hồ
Timer 16 bit
Timer 16 bit kết hợp với các vòng lặp
Khi lập trình định thì với khoảng thời gian nhỏ hơn 10 ms (giả sử dùng tần số dao động là 12MHz) ta dùng kỹ thuật:
Điều chỉnh băng phần mềm
Timer 8 bit tạo đồng hồ
Timer 16 bit
Timer 16 bit kết hợp với các vòng lặp
Khi lập trình định thì với khoảng thời gian lớn hơn 65536 ms (giả sử dùng tần số dao động là 12MHz) ta dùng kỹ thuật:
Điều chỉnh băng phần mềm
Timer 8 bit tạo đồng hồ
Timer 16 bit
Timer 16 bit kết hợp với các vòng lặp
Cờ báo tràn của Timer (TF) sẽ được set lên 1 nếu xảy ra:
0000H → 0001H
0001H → 0002H
FFFEH → FFFFH
FFFFH → 0000H
Bit điều khiển chạy/dừng của Timer 1 là bit:
TR1
TF1
TL1
TH1
Khi ta chọn mode hoạt động là mode 1, ta cần thiết lập hai bit M1M0 có giá trị:
00
01
10
11
Khi ta chọn mode hoạt động là mode 0, ta cần thiết lập hai bit M1M0 có giá trị:
00
01
10
11
Khi ta chọn mode hoạt động là mode 3, ta cần thiết lập hai bit M1M0 có giá trị:
00
01
10
11
Khi ta chọn mode hoạt động là mode 2, ta cần thiết lập hai bit M1M0 có giá trị:
00
01
10
11
Khi ta muốn sử dụng Timer 0 ở mode 2, ta cần khởi động thanh ghi TMOD:
MOV TMOD, #02H
MOV TMOD, #12H
MOV TMOD, #20H
MOV TMOD, #10H
Khi ta muốn sử dụng Timer 1 ở mode 1, ta cần khởi động thanh ghi TMOD:
MOV TMOD, #01H
MOV TMOD, #02H
MOV TMOD, #20H
MOV TMOD, #10H
Khi sử dụng Timer để đếm số kiện, ta cần thiết lập bit:
C/T = 0
C/T = 1
TR = 0
TR = 1
Khi sử dụng Timer để định thì, ta cần thiết lập bit:
C/T = 0
C/T = 1
TR = 0
TR = 1
Khi sử dụng Timer và đã thiết lập bit điều khiển Timer chạy, ta cần thiết lập bit:
C/T = 0
C/T = 1
TR = 0
TR = 1
Khi sử dụng Timer và đã thiết lập bit điều khiển Timer dừng, ta cần thiết lập bit:
C/T = 0
C/T = 1
TR = 0
TR = 1
Cho đoạn mã Assembler sau:MOV 30H, #02HMOV A, 30HMOV DPTR, #TABLEMOVC A, @A+DPTRMOV P1, ATABLE: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90HKết quả của thanh ghi P1 là:
02H
30H
0A4H
0F9H
Cho chương trình sau:
DELAY:
MOV TMOD, #02H
MOV TH0, # -50
SETB TR0
LOOP: JNB TF0, LOOP
CLR TF0
CPL P1.0
SJMP LOOP
END
Chương trình này dùng để:
Tạo dòng sóng vuông có chu kỳ 100µS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 50µS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 100mS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 50mS trên chân P1.0
Cho chương trình sau:
DELAY:
MOV TMOD, #02H
MOV TH0, #0CEH
SETB TR0
LOOP:
JNB TF0, LOOP
CLR TF0
CPL P1.0
SJMP LOOP
END
Chương trình này dùng để:
Tạo dòng sóng vuông có chu kỳ 100µS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 50µS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 206µS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 103µS trên chân P1.0
Cho chương trình sau:
DELAY:
MOV TMOD, #02H
MOV TH0, # -100 45
SETB TR0
LOOP:
JNB TF0, LOOP
CLR TF0
CPL P1.1
SJMP LOOP
END
Chương trình này dùng để:
Tạo dòng sóng vuông có chu kỳ 100mS trên chân P1.1
Tạo dòng sóng vuông có chu kỳ 200mS trên chân P1.1
Tạo dòng sóng vuông có chu kỳ 200µS trên chân P1.1
Tạo dòng sóng vuông có chu kỳ 100µS trên chân P1.1
Cho chương trình sau:
DELAY:
MOV TMOD, #02H
MOV TH0, # 9CH
SETB TR0
LOOP:
JNB TF0, LOOP
CLR TF0
CPL P1.1
SJMP LOOP
END
Chương trình này dùng để:
Tạo dòng sóng vuông có chu kỳ 156µS trên chân P1.1
Tạo dòng sóng vuông có chu kỳ 78µS trên chân P1.1
Tạo dòng sóng vuông có chu kỳ 200µS trên chân P1.1
Tạo dòng sóng vuông có chu kỳ 100µS trên chân P1.1
Cho chương trình sau:
DELAY:
MOV TMOD, #01H
LOOP:
MOV TH0, # HIGH(-500)
MOV TL0, #LOW(-500)
SETB TR0
JNB TF0, $
CLR TR0
CLR TF0
CPL P1.0
SJMP LOOP
END
Chương trình này dùng để:
Tạo dòng sóng vuông có chu kỳ 1000mS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 500µS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 1000µS trên chân P1.0
Tạo dòng sóng vuông có chu kỳ 500mS trên chân P1.0
