a) Xây dựng (vẽ sơ đồ nguyên lý) một module 2 đầu vào tương tự, 1 đầu ra tương tự ghép nối với cổng LPT của máy tính (sử dụng vi mạch 8255).
b) Viết một đoạn chương trình cho module trên điều khiển hệ thống theo quy luật sau: nếu tổng 2 đầu vào lớn hơn 2 số cuối của mã số sinh viên thì điện áp đầu ra bằng 5V, nếu tổng 2 đầu vào nhỏ hơn hoặc bằng 2 số cuối của mã số sinh viên thì điện áp đầu ra bằng 2,5V.
Trả lời:
Đáp án đúng:
Câu hỏi tự luận này bao gồm hai phần, yêu cầu kiến thức về cả phần cứng và phần mềm liên quan đến giao tiếp máy tính và vi điều khiển.
**Phần a) Xây dựng sơ đồ nguyên lý module 2 đầu vào tương tự, 1 đầu ra tương tự ghép nối với cổng LPT của máy tính (sử dụng vi mạch 8255):**
Đây là phần yêu cầu sinh viên thiết kế mạch phần cứng để giao tiếp giữa máy tính và thế giới thực. Cổng LPT (Parallel Port) của máy tính thường có các chân điều khiển, dữ liệu và trạng thái có thể được lập trình. Vi mạch 8255 là một bộ điều khiển I/O lập trình được phổ biến, có thể cấu hình các cổng của nó thành chế độ vào, ra hoặc vào/ra hai chiều.
Để thực hiện phần này, sinh viên cần:
1. **Tìm hiểu về cấu trúc cổng LPT:** Xác định các chân tín hiệu nào có thể sử dụng làm đầu vào và đầu ra số cho vi điều khiển.
2. **Tìm hiểu về vi mạch 8255:** Nắm vững các chế độ hoạt động (Mode 0, Mode 1, Mode 2), cách cấu hình các cổng A, B, C và thanh ghi điều khiển (Control Word Register).
3. **Thiết kế mạch ghép nối:**
* **Đầu vào tương tự:** Cần sử dụng các bộ chuyển đổi tương tự-số (ADC) để chuyển đổi tín hiệu điện áp tương tự từ thế giới thực thành dạng số mà 8255 có thể đọc được. Các chân của 8255 (ví dụ: cổng A hoặc một phần cổng C) sẽ được nối với đầu ra số của ADC. Sinh viên cần chọn ADC phù hợp (ví dụ: ADC0804, PCF8591) và sơ đồ nối dây với 8255 (tín hiệu clock, điều khiển đọc/ghi, dữ liệu).
* **Đầu ra tương tự:** Cần sử dụng bộ chuyển đổi số-tương tự (DAC) để chuyển đổi tín hiệu số từ 8255 thành điện áp tương tự. Các chân của 8255 (ví dụ: cổng B hoặc một phần cổng C) sẽ được nối với đầu vào số của DAC. Sinh viên cần chọn DAC phù hợp (ví dụ: DAC0808, PCF8591) và sơ đồ nối dây với 8255.
* **Giao tiếp với LPT:** Tín hiệu điều khiển đọc/ghi từ cổng LPT sẽ được sử dụng để điều khiển vi mạch 8255. Sinh viên cần xác định cách máy tính ghi/đọc dữ liệu từ các cổng của 8255 thông qua cổng LPT.
4. **Vẽ sơ đồ nguyên lý:** Minh họa rõ ràng các linh kiện (8255, ADC, DAC, các linh kiện thụ động hỗ trợ) và cách chúng được kết nối với nhau cũng như với cổng LPT. Bao gồm các tín hiệu điều khiển (RD, WR, CS, A0, A1 cho 8255, tín hiệu clock, reset, tín hiệu điều khiển của ADC/DAC, các đường dữ liệu).
**Phần b) Viết đoạn chương trình điều khiển hệ thống theo quy luật:**
Phần này yêu cầu sinh viên viết mã lệnh để đọc dữ liệu từ module phần cứng đã xây dựng ở phần a) và thực hiện logic điều khiển để đưa ra tín hiệu đầu ra tương tự.
Để thực hiện phần này, sinh viên cần:
1. **Xác định mã số sinh viên:** Đây là thông tin quan trọng để đưa ra quyết định điều khiển. "2 số cuối của mã số sinh viên" là tham số quyết định ngưỡng.
2. **Quy luật điều khiển:**
* Đọc giá trị tương tự từ 2 đầu vào. Các giá trị này cần được chuyển đổi thành số nguyên thông qua các ADC đã kết nối.
* Tính tổng 2 giá trị đọc được.
* So sánh tổng này với "2 số cuối của mã số sinh viên".
* Nếu tổng > 2 số cuối mã sinh viên: Xuất điện áp 5V ra đầu ra tương tự. Điều này có nghĩa là cần điều khiển DAC xuất ra một giá trị số tương ứng với 5V.
* Nếu tổng <= 2 số cuối mã sinh viên: Xuất điện áp 2.5V ra đầu ra tương tự. Điều này có nghĩa là cần điều khiển DAC xuất ra một giá trị số tương ứng với 2.5V.
3. **Lựa chọn ngôn ngữ lập trình:** Có thể là C, Pascal, Assembly (trực tiếp thao tác với cổng LPT và 8255), hoặc ngôn ngữ lập trình của môi trường phát triển (nếu có). Việc lập trình sẽ liên quan đến việc truy cập trực tiếp vào các địa chỉ cổng I/O của máy tính (thường là các địa chỉ cổng LPT như 0x378, 0x379, 0x37A) để đọc/ghi dữ liệu và cấu hình cho 8255.
4. **Viết đoạn chương trình:** Bao gồm các bước:
* Khởi tạo (cấu hình chế độ hoạt động cho 8255).
* Vòng lặp đọc giá trị từ 2 đầu vào (ADC).
* Thực hiện phép tính tổng.
* So sánh với ngưỡng.
* Tính toán giá trị số tương ứng với 5V và 2.5V cho DAC.
* Ghi giá trị số đó ra cổng điều khiển DAC thông qua 8255.
* Có thể cần thêm các lệnh delay hoặc xử lý ngắt tùy thuộc vào yêu cầu cụ thể.
**Đánh giá:** Câu hỏi yêu cầu kiến thức tích hợp cả phần cứng (thiết kế mạch giao tiếp) và phần mềm (lập trình điều khiển), đồng thời áp dụng kiến thức về vi mạch 8255, ADC/DAC và giao tiếp cổng LPT. Đây là một câu hỏi đánh giá khả năng ứng dụng thực tế trong lĩnh vực kỹ thuật điều khiển và tự động hóa.





