Trả lời:
Đáp án đúng: D
Mode 3 thường được sử dụng để chia sẻ cổng nối tiếp (serial port) giữa hai thiết bị UART (Universal Asynchronous Receiver/Transmitter). Trong chế độ này, bit M1M0 được thiết lập là 11.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: C
Chương trình sử dụng Timer 0 ở chế độ 1 (16-bit timer) để tạo độ trễ. Giá trị -500 được nạp vào TH0 và TL0, nghĩa là bộ đếm sẽ đếm từ 65536 - 500 = 65036. Với xung clock của vi điều khiển là 12MHz, và bộ chia trước là 12 (do không khai báo bộ chia khác), tần số clock đầu vào timer là 1MHz. Như vậy, thời gian để timer đếm từ 65036 đến 65535 (tràn) là (65536 - 65036) / 1MHz = 500µs. Đoạn chương trình sau khi hết thời gian delay thì đảo trạng thái chân P1.0. Như vậy, chu kỳ của sóng vuông trên chân P1.0 sẽ là 2 * 500µs = 1000µs = 1ms. Vậy đáp án đúng là C.
Lời giải:
Đáp án đúng: D
Chương trình sử dụng Timer 0 ở chế độ 1 (TMOD = 01H) để tạo thời gian trễ. Giá trị -50000 được nạp vào TH0 và TL0. Vì Timer 0 là bộ đếm 16 bit, nên nó sẽ đếm từ -50000 đến 65535 (0xFFFF). Số lượng xung clock cần thiết để tràn Timer 0 là 65536 - 50000 = 15536. Giả sử tần số clock của vi điều khiển là 12MHz, thì chu kỳ của một xung clock là 1/12MHz. Thời gian trễ tạo ra bởi Timer 0 là 15536 * (1/12MHz) * 12 (do sử dụng hệ số chia 12 bên trong)= 0.012946667 s ≈ 12.95 ms. (Giá trị này có thể khác nhau tùy thuộc vào tần số clock của vi điều khiển). Tuy nhiên, do ta đảo trạng thái P1.1 mỗi khi Timer 0 tràn, nên thời gian cho một nửa chu kỳ của sóng vuông là khoảng 12.95ms. Do đó, chu kỳ đầy đủ của sóng vuông là 2 * 12.95ms ≈ 25.9 ms. Giá trị này gần nhất với đáp án 50ms. Tuy nhiên, do code dùng lệnh SJMP LOOP nên chương trình lặp lại vô hạn, tạo ra sóng vuông liên tục.
Tuy nhiên, cần lưu ý là các giá trị tính toán trên chỉ là ước tính và giá trị thực tế có thể khác nhau do các yếu tố khác như thời gian thực thi các lệnh khác. Việc tính toán chính xác cần dựa trên tần số clock thực tế và thời gian thực thi mỗi lệnh.
Vì vậy, đáp án chính xác nhất là B. Tạo dòng sóng vuông có chu kỳ 50mS trên chân P1.1
Tuy nhiên, cần lưu ý là các giá trị tính toán trên chỉ là ước tính và giá trị thực tế có thể khác nhau do các yếu tố khác như thời gian thực thi các lệnh khác. Việc tính toán chính xác cần dựa trên tần số clock thực tế và thời gian thực thi mỗi lệnh.
Vì vậy, đáp án chính xác nhất là B. Tạo dòng sóng vuông có chu kỳ 50mS trên chân P1.1
Lời giải:
Đáp án đúng: A
Câu lệnh "WAIT: JNB TF1, WAIT" có nghĩa là: nếu bit TF1 bằng 1 thì nhảy đến nhãn WAIT, nếu không thì thực hiện lệnh tiếp theo. Vòng lặp này sẽ tiếp tục lặp lại cho đến khi TF1 bằng 0.
Để thay thế câu lệnh này, ta cần một lệnh nhảy có điều kiện mà nếu điều kiện đúng thì sẽ nhảy đến chính lệnh đó. Trong hợp ngữ 8051, ký hiệu '$' biểu thị địa chỉ hiện tại của lệnh. Do đó, "JNB TF1, $" sẽ nhảy đến chính nó nếu TF1 bằng 1, tương đương với vòng lặp vô hạn cho đến khi TF1 bằng 0.
Các lựa chọn khác:
- "JNB TF1, $+1": Nhảy đến địa chỉ hiện tại cộng 1 byte. Điều này không tương đương với việc lặp lại lệnh hiện tại.
- "JNB TF1, $+2": Nhảy đến địa chỉ hiện tại cộng 2 byte. Điều này cũng không tương đương.
- "JNB TF1, $+3": Nhảy đến địa chỉ hiện tại cộng 3 byte. Điều này cũng không tương đương.
Vì vậy, đáp án đúng là A.
Để thay thế câu lệnh này, ta cần một lệnh nhảy có điều kiện mà nếu điều kiện đúng thì sẽ nhảy đến chính lệnh đó. Trong hợp ngữ 8051, ký hiệu '$' biểu thị địa chỉ hiện tại của lệnh. Do đó, "JNB TF1, $" sẽ nhảy đến chính nó nếu TF1 bằng 1, tương đương với vòng lặp vô hạn cho đến khi TF1 bằng 0.
Các lựa chọn khác:
- "JNB TF1, $+1": Nhảy đến địa chỉ hiện tại cộng 1 byte. Điều này không tương đương với việc lặp lại lệnh hiện tại.
- "JNB TF1, $+2": Nhảy đến địa chỉ hiện tại cộng 2 byte. Điều này cũng không tương đương.
- "JNB TF1, $+3": Nhảy đến địa chỉ hiện tại cộng 3 byte. Điều này cũng không tương đương.
Vì vậy, đáp án đúng là A.
Lời giải:
Đáp án đúng: B
Đoạn mã Assembler thực hiện các bước sau:
1. `MOV 30H, #04H`: Gán giá trị 04H vào ô nhớ có địa chỉ 30H.
2. `MOV A, 30H`: Chuyển nội dung của ô nhớ 30H (tức là 04H) vào thanh ghi A.
3. `MOV DPTR, #TABLE`: Gán địa chỉ của nhãn TABLE vào thanh ghi DPTR.
4. `MOVC A, @A+DPTR`: Đây là lệnh đọc từ bộ nhớ chương trình (ROM). Địa chỉ đọc được tính bằng A + DPTR. Vì A = 04H và DPTR trỏ đến TABLE, địa chỉ đọc sẽ là TABLE + 4. Dữ liệu tại địa chỉ này sẽ được chuyển vào thanh ghi A.
5. `MOV 50H, A`: Chuyển nội dung của thanh ghi A vào ô nhớ có địa chỉ 50H.
TABLE chứa các giá trị: 00H, 01H, 04H, 09H, 16H, 25H, 36H, 49H, 64H, 81H.
Như vậy, TABLE + 0 = 00H
TABLE + 1 = 01H
TABLE + 2 = 04H
TABLE + 3 = 09H
TABLE + 4 = 16H
Do đó, sau khi thực hiện lệnh `MOVC A, @A+DPTR`, A sẽ chứa giá trị 16H. Sau đó, lệnh `MOV 50H, A` sẽ gán giá trị 16H vào ô nhớ 50H.
1. `MOV 30H, #04H`: Gán giá trị 04H vào ô nhớ có địa chỉ 30H.
2. `MOV A, 30H`: Chuyển nội dung của ô nhớ 30H (tức là 04H) vào thanh ghi A.
3. `MOV DPTR, #TABLE`: Gán địa chỉ của nhãn TABLE vào thanh ghi DPTR.
4. `MOVC A, @A+DPTR`: Đây là lệnh đọc từ bộ nhớ chương trình (ROM). Địa chỉ đọc được tính bằng A + DPTR. Vì A = 04H và DPTR trỏ đến TABLE, địa chỉ đọc sẽ là TABLE + 4. Dữ liệu tại địa chỉ này sẽ được chuyển vào thanh ghi A.
5. `MOV 50H, A`: Chuyển nội dung của thanh ghi A vào ô nhớ có địa chỉ 50H.
TABLE chứa các giá trị: 00H, 01H, 04H, 09H, 16H, 25H, 36H, 49H, 64H, 81H.
Như vậy, TABLE + 0 = 00H
TABLE + 1 = 01H
TABLE + 2 = 04H
TABLE + 3 = 09H
TABLE + 4 = 16H
Do đó, sau khi thực hiện lệnh `MOVC A, @A+DPTR`, A sẽ chứa giá trị 16H. Sau đó, lệnh `MOV 50H, A` sẽ gán giá trị 16H vào ô nhớ 50H.
Lời giải:
Đáp án đúng: C
Đoạn mã Assembler thực hiện các thao tác sau:
1. `MOV 30H, #35H`: Gán giá trị 35H vào ô nhớ có địa chỉ 30H.
2. `MOV 35H, #4BH`: Gán giá trị 4BH vào ô nhớ có địa chỉ 35H.
3. `MOV A, #35H`: Gán giá trị 35H (là một hằng số) vào thanh ghi A. (Lệnh này không ảnh hưởng đến giá trị của ô nhớ 30H)
Vậy, sau khi thực hiện đoạn mã, ô nhớ có địa chỉ 30H sẽ chứa giá trị 35H.
1. `MOV 30H, #35H`: Gán giá trị 35H vào ô nhớ có địa chỉ 30H.
2. `MOV 35H, #4BH`: Gán giá trị 4BH vào ô nhớ có địa chỉ 35H.
3. `MOV A, #35H`: Gán giá trị 35H (là một hằng số) vào thanh ghi A. (Lệnh này không ảnh hưởng đến giá trị của ô nhớ 30H)
Vậy, sau khi thực hiện đoạn mã, ô nhớ có địa chỉ 30H sẽ chứa giá trị 35H.
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy
89 tài liệu310 lượt tải

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin
125 tài liệu441 lượt tải

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông
104 tài liệu687 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán
103 tài liệu589 lượt tải

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp
377 tài liệu1030 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
99 tài liệu1062 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng