Chương 1. TỔNG QUAN VỀ BỘ ĐO VÀ KHỐNG CHẾ NHIỆT ĐỘ, ĐỘ ẨM HIỂN THỊ BẰNG LCD16x02 1. Cầu trúc của hệ thống 1.1 Thành phần chính - Vi điều khiển AT89C52: Bộ não của hệ thống, có nhiệm vụ xử lý dữ liệu từ cảm biến nhiệt độ, điều khiển hiển thị và hệ thống khống chế nhiệt độ. - Cảm biến nhiệt độ: Cảm biến đo nhiệt độ và độ ẩm, cung cấp dữ liệu dạng số trực tiếp.
- Màn hình LCD: Được sử dụng để hiển thị thông tin nhiệt độ và độ ẩm, kết nối với vi điều khiển thông qua các cổng I/O.2 Sơ đồ kết nối - DHT11: Kết nối chân DATA của cảm biến với một chân I/O của vi điều khiển (ví dụ: P2. - LCD: Kết nối các chân D0-D7 với P0 của vi điều khiển, RS với P2. - Relay/Triac: Kết nối với các chân xuất của vi điều khiển thông qua mạch lái relay hoặc optoisolator để điều khiển 2. Nguyên lý hoạt động - Đo nhiệt độ và độ ẩm: Cảm biến DHT11 thu thập nhiệt độ và độ ẩm từ môi trường, sau đó gửi dữ liệu dạng số đến vi điều khiển.
- Xử lý dữ liệu: Vi điều khiển đọc và xử lý dữ liệu từ DHT11, tính toán giá trị nhiệt độ và độ ẩm thực tế. 3 - Hiển thị dữ liệu: Vi điều khiển điều khiển màn hình LCD để hiển thị các giá trị nhiệt độ và độ ẩm. - Khống chế nhiệt độ: Vi điều khiển so sánh nhiệt độ đo được với giá trị mục tiêu và điều khiển relay hoặc triac để điều chỉnh nhiệt độ của hệ thống. Lập trình vi điều khiển AT89C52 3.
Khởi Động và Cấu Hình - Thiết lập các cổng I/O: Cấu hình các cổng xuất và nhập cho cảm biến, LCD16x02 và relay/triac. - Khởi tạo giao tiếp với DHT11: Viết mã để điều khiển việc đọc dữ liệu từ DHT11.2 Đo nhiệt độ và độ ẩm - Đọc dữ liệu từ DHT11: Sử dụng giao thức 1-Wire để nhận dữ liệu số từ cảm biến. - Xử lý dữ liệu: Tách và xử lý các giá trị nhiệt độ và độ ẩm từ dữ liệu nhận được.3 Hiển thị nhiệt độ và độ ẩm - Xuất dữ liệu ra LCD: Gửi dữ liệu nhiệt độ và độ ẩm tới màn hình LCD để hiển thị.4 Khống chế nhiệt độ - So sánh nhiệt độ: So sánh nhiệt độ đo được với giá trị cài đặt sẵn. - Điều khiển relay/triac: Kích hoạt relay hoặc triac để duy trì nhiệt độ trong phạm vi mong muốn.5 Phần mềm lập trình - Sử dụng phần mềm Keil µVision : Môi trường phát triển tích hợp (IDE) phổ biến cho vi điều khiển 8051, hỗ trợ lập trình và mô phỏng.
- Tính năng chính: 4 + Trình soạn thảo mã: Hỗ trợ ngôn ngữ Assembly và C. + Trình biên dịch C51: Biên dịch mã C thành mã máy cho AT89C52. + Trình giả lập: Kiểm tra và gỡ lỗi mã trước khi nạp vào phần cứng. Cơ sở lý thuyết thiết kế mạch đo nhiệt độ và độ ẩm hiển thị kết quả lên màn hình LCD 16x02, sử dụng cảm biến DHT11 và vi điều khiển AT89S52 1.
Giới thiệu khái quát về họ MCS-51 và chip AT89S52 1. Khái quát về họ MCS-51 MCS-51 là họ vi điều khiển của hãng Intel. Vi mạch tổng quát của họ MCS-51 là chip 8051. Chip 8051 có một số đặc trưng cơ bản: Bộ nhớ chương trình bên trong: 4KB (ROM) Bộ nhớ dữ liệu bên trong: 128 byte (RAM) Bộ nhớ chương trình bên ngoài: 64KB (ROM) Bộ nhớ dữ liệu bên ngoài: 64KB (RAM) 4 port xuất nhập vào ra 8 bit 2 bộ định thời 16 bit Mạch giao tiếp nối tiếp Bộ xử lí bit 210 vị trí nhớ được định địa chỉ bit Ngoài ra, MCS-51 còn có một số chip vi điều khiển khác có cấu trúc gần tương tự như chip 8031, 8032, 8051, 8052, 8751, 8752, 8951, 8952, … Dung lượng RAM Dung lượng ROM Chế độ nạp 89C51 128 byte 4 Kbyte Song song 89C52 128 byte 8 Kbyte Song song 89C53 128 byte 12 Kbyte Song song 89C55 128 byte 20 Kbyte Song song Bảng 1.1 Dung lượng RAM Dung lượng ROM Chế độ nạp 89S51 128 byte 4 Kbyte Nối tiếp 6 89S52 128 byte 8 Kbyte Nối tiếp 89S53 128 byte 12 Kbyte Nối tiếp 89S55 128 byte 20 Kbyte Nối tiếp Bảng 1.
Cấu trúc vi xử lý AT89S52 Hình 1.1 Sơ đồ chân của AT89S52 Đây là một vi điều khiển 8bit với 8k byte trong hệ thống lập trình flash. Các thông số cơ bản: - Tương thích với sản phẩm MCS-51 ® - 8k bite trong bộ nhớ của hệ thống lập trình flash ( ISP) – độ bền : 1000 chu kỳ Ghi / Xóa. - Định mức hoạt động: 4V – 5,5V - Hoạt động khi hoàn toàn tĩnh điện: 0 Hz to 33 MHz - Khóa bộ nhớ chương trình có 3 mức. - Bộ nhớ RAM bên trong là 256x8bit - 32 đường dẫn I/O - 3 Bộ đếm / Bộ định thời 16 bit - 8 nguồn ngắt.
7 - Kênh nối tiếp UART song công - Chế độ giảm điện áp và nghỉ ngơi điện áp thấp. - Phục hồi ngắt ở chế độ giảm điện áp - Bộ đếm cảnh báo - Con trỏ dữ liệu kép - Cờ tắt điện áp. Các AT89S52 là một vi điều khiển CMOS 8-bit năng lượng thấp, hiệu suất cao với 8K byte trong bộ nhớ hệ thống lập trình Flash. Thiết bị này được sản xuất bằng công nghệ bộ nhớ không biến đổi mật độ cao của Atmel, tương thích với sơ đồ chân và thiết lập lệnh 80C51 theo tiêu chuẩn công nghiệp.
Flash trên chip cho phép bộ nhớ chương trình được tái lập trình trong hệ thống hoặc bởi một bộ lập trình bộ nhớ không biến đổi thông thường.Bằng cách kết hợp một CPU 8-bit đa năng với trong hệ thống lập trình Flash trên một chip nguyên khối, Atmel AT89S52 là một vi điều khiển mạnh mẽ mà cung cấp một giải pháp rất linh hoạt và hiệu quả chi phí cho nhiều ứng dụng điều khiển nhúng. Ngoài ra, AT89S52 được thiết kế với logic tĩnh cho hoạt động tần số xuống không và hỗ trợ hai phần mềm lựa chọn chế độ tiết kiệm năng lượng. Chế độ nhàn rỗi cho dừng CPU trong khi cho phép bộ nhớ RAM, bộ đếm/ bộ định thời, cổng nối tiếp và hệ thống ngắt để tiếp tục hoạt động. Chế độ giảm điện áp thì giữ lại nội dung bộ nhớ RAM nhưng đóng bang bộ tạo dao động, vô hiệu hóa tất cả các chức năng khác của chip cho đến lần ngắt tiếp theo hoặc là thiết lập lại hệ thống.
Chức năng cơ bản của các chân. VCC:Cung cấp điện áp. GND: Nối đất. Cổng 0: từ chân 32 đến chân 39 (P0.7) là cổng I/O 2 mở 2 chiều 8 bit.
Cổng 0 có 2 chức năng: trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng 8 như các đường IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu. Cổng 0 cũng được byte mã trong khi lập trình flash và kết quả đầu ra các byte mã trong khi xác minh chương trình. Trở pullups bên ngoài được yêu cầu trong quá trình xác minh chương trình Cổng 1 :từ chân 1 đến chân 9 (P1.7) là cổng I/O 8 bit 2 hướng với trở pullups ở bên trong, Cổng 1 dùng cho giao tiếp với thiết bị bên ngoài nếu cần. Cổng 1 cũng nhận các byte địa chỉ mức thấp trong khi xác minh chương trình.
Chân cổng Các chức năng thay thế P1.0 T2 ( đầu vào đếm ngoài cho Bộ đếm/ bộ định thời 2) , dừng đồng hồ.3: Chức năng các chân của 89S52 Cổng 2:từ chân 21 đến chân 28 (P2.7) và là cổng I/O 8 bit 2 hướng với trở pullups ở bên trong. Cổng 2 có tác dụng kép dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng. Cổng 2 cũng nhận các bit địa chỉ mức cao và 1 số tín hiệu điều khiển trong khi xác minh chương trình. Cổng 3:từ chân 10 đến chân 17 (P3.7) và là cổng I/O 8 bit 2 hướng với trở pullups ở bên trong.
Cổng 3 có tác dụng kép. Các chân của cổng này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các đặc tính đặc biệt của 89S52 như ở bảng sau: Bit Tên Chức năng chuyển đổi 9 P3.0 RXD Cổng vào dữ liệu nối tiếp P3.1 TXD Cổng xuất dữ liệu nối tiếp P3.2 INT0 Cổng vào ngắt cứng thứ 0 P3.3 INT1 Cổng vào ngắt cứng thứ 1 P3.4 T0 Cổng vào Timer/Counter thứ 0 P3.5 T1 Cổng vào Timer/Counter thứ 1 P3.6 WR Tín hiệu ghi dữ liệu lên bộ nhớ ngoài P3.7 RD Tín hiệu đọc bộ nhớ dữ liệu ngoài Bảng 1.4: Chức năng các bit cổng P3 Cổng 3 cũng nhận 1 vài tín hiệu điều khiển cho lập trình Flash và xác minh. PSEN (Program store enable): PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte mã lệnh. PSEN ở mức thấp trong thời gian 89S52 lấy lệnh.
Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 89S52 để giải mã lệnh. Khi 89S52 thi hành chương trình trong ROM nội, PSEN ở mức cao. ALE (Address Latch Enable): Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt.
Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động. EA (External Access): Tín hiệu vào EA (chân 31) thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1, 89S52 thi hành chương trình từ ROM nội. Nếu ở mức 0, 10 89S52 thi hành chương trình từ bộ nhớ mở rộng.
Chân EA được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52. RST (Reset):Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp điện mạch phải tự động reset. Các giá trị tụ và điện trở được chọn là: .2: Khối reset R1=10, R2=220, C=10 F Các ngõ vào bộ dao động X1, X2: Bộ tạo dao động được tích hợp bên trong 89S52.
Khi sử dụng 89S52, người ta chỉ cần nối thêm thạch anh và các tụ.