Sửa đổi lại sơ đồ cổng I/O hình A.3 để thêm một cổng nhập và một cổng xuất ở địa chỉ E001H.. Viết chương trình đọc 1 byte giả sử có dạng BCD 2 ký số từ cổng nhập và Hiện ra chữ E nhấp
Trang 1ĐHBK Tp HCM–Khoa Đ-ĐT–BMĐT
Môn học: Vi xử lý
GVPT: Hồ Trung Mỹ
Bài tập Vi Xử Lý – Chương 5 (Thiết kế hệ vi xử lý với MCU 8051)
1 Với mạch tham khảo ở phụ lục A, hãy giải các câu hỏi sau:
a Sửa đổi lại sơ đồ phần bộ nhớ (hình A.2) để thêm RAM 32KB trong tầm địa chỉ 4000H–BFFFH
b Sửa đổi lại sơ đồ cổng I/O (hình A.3) để thêm một cổng nhập và một cổng xuất ở địa chỉ E001H
c Viết chương trình đọc 1 byte (giả sử có dạng BCD 2 ký số) từ cổng nhập và
Hiện ra chữ E nhấp nháy với chu kỳ 200ms để báo nhập sai số BCD và đọc lại
dữ liệu BCD vào
Nếu đúng thì hiện lại 2 ký số BCD lên đèn LED 7 đoạn, hiển thị cách nhau 1
giây, phân biệt ký số hàng chục bằng đoạn dp sẽ sáng Giả sử kết nối cho
LED 7 đoạn ở cổng xuất là D7 nối với dp, D6 với g, D0 với a
Thực hiện phép nhân 2 ký số BCD và hiện kết quả BCD ra cổng xuất
2 Viết chương trình điều khiển đèn giao thông với các dạng sáng/tắt giả lập như sau:
Giả sử thời gian đèn xanh sáng là 6 giây, vàng là 2 giây và đỏ là 8 giây Sử dụng mạch ở phụ lục A để thiết kế
Cách điều khiển như sau:
D0 = 0 ở cổng nhập thì chạy tự động
D0 = 1 ở cổng nhập thì chạy điều khiển bằng tay, khi đó:
o D1= 0 thì xanh ở A và đỏ ở B
o D1= 1 thì đỏ ở A và xanh ở B
3 Thiết kế một keyboard chơi nhạc đơn giản dùng 8051 như hình sau, số phím cần thiết kế là
12 phím thể hiện 7 nốt chính (C, D, E, F, G, A, B) với 5 nốt thăng (C#, D#, F#, G# và A#) Chú ý về tần số của các nốt nhạc như sau:
Middle C (nốt đô ở giữa bàn phím) có tần số là 262Hz và nốt kế tiếp D cao hơn 1 octave hay gấp đôi, do đó nốt D có tần số là 542Hz
Trang 2 Công thức tính tần số các nốt trên phím như sau:
Tần số của piano (phím i) = (tần số của phím (i-1)) x 21/12 Thí dụ:
Nếu Middle C = 262Hz thì C# = 262 *1.059 = 277.458 Hz 277 Hz
D = 277.458 * 1.059 = 293.828 294 Hz
C’ = 524 Hz
4 Thiết kế mạch đo nhiệt độ đơn giản từ 0oC đến 110oC dùng 89C2051 với giao tiếp ADC như hình 1 Cải tiến mạch như sau:
a Cách 1: Cảm biến nhiệt độ dùng BJT 2N2222 mắc như diode
Khi đó phải thiết kế thêm mạch nguồn dòng cung cấp cho BJT 2N2222
b Cách 2: Dùng cảm biến nhiệt LM35
Sau khi chuyển đổi AD thì phải truyền số liệu đo được về thiết bị nối tiếp đang kết nối với mạch Cải tiến thứ hai là thiết kế thêm mạch hiển thị số đo nhiệt độ với LED 7 đoạn!
5 Thiết kế mạch đo nhiệt độ dùng 89C51 với cảm biến nhiệt là LM35 Mạch có chức năng cảnh báo khi quá nhiệt độ đặt trước và hiển thị kết quả trên màn hình LCD 16x2 Chú ý tầm nhiệt độ đo được phụ thuộc vào đặc tính của LM35
6 Thiết kế trò chơi điện tử: bắn tàu cho 2 người chơi Giả sử mỗi bên có thể chọn trước 5 tàu
và ma trận LED để đánh dấu tàu có kích thước là 7x7 hay 8x8
7 Thiết kế trò chơi điện tử: đánh ca-rô cho 2 người chơi, dùng ma trận LED kích thước là 8x8 hay 10x10 và dùng LED 2 màu để chỉ X hay O
8 Thiết kế lịch điện tử có thể hiển thị giờ-phút-giây và ngày-tháng-năm (+thứ mấy của ngày, TD: 8:10:05 - Thứ hai 01/06/2009) trên LCD 16x2 hay 20x2
9 Thiết kế bộ điều khiển từ xa bằng IR đa kênh (8 kênh) với thiết bị ON/OFF
Trang 3Phụ lục A
Mạch phát triển 8051
A.1 Mạch chính (MCU, mạch dồn kênh bus dữ liệu/địa chỉ, Reset, Clock và RS232)
Hình A.1
A.2 Mạch bộ nhớ ngoài và giải mã địa chỉ
Hình A.2
Trang 4A.3 Các cổng I/O và nguồn
Hình A.3
A.4 Bảng bộ nhớ của kit phát triển 8051
Hình A.4 Với thiết kế này có thể nạp chương trình từ máy tính vào RAM và chạy thử trên RAM Người
sử dụng phải viết chương trình MONITOR ghi trong ROM
Trang 5Phụ lục B
Các hình vẽ được sử dụng trong phần bài tập chương 5
1 Hình 1– Mạch giao tiếp ADC với MCU 89C2051
80C2051 tương tự như
8051 nhưng
số chân I/O ít hơn!
2 Hình 2 – Mạch giao tiếp ADC0809 với MCU 8031/51
Trang 63 Hình 3 – Một số mạch nguyên lý phát hiện ánh sáng