Nếumột nhà kính giống như một xây dựng khu dân cư và thương mại , kiểm soátnhiệt độ sẽ được dễ dàng hơn kể từ khi các tòa nhà được cách nhiệt để các tácđộng của điều kiện bên ngoài là gi
Trang 1HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
KHOA CƠ ĐIỆN
Giáo viên hướng dẫn: Lại Văn Song
Nhóm sinh viên thực hiện: Lê Minh Hà 566487
Trang 2Giới thiệu
Một trong những lợi ích của việc trồng cây trong nhà kính là khả năng kiểm soáttất cả các khía cạnh của môi trường sản xuất Một trong những yếu tố chính ảnhhưởng đến cây trồng tăng trưởng là nhiệt độ Cây trồng khác nhau có nhiệt
độ sinh trưởng tối ưu khác nhau và các tối ưu nhiệt độ có thể khác nhau cho gốc
và môi trường , và cho giai đoạn phát triển khác nhau trong cuộc sống của chúng.Vì chúng ta thường quan tâm đến tăng trưởng và phát triển cây trồng nhanhchóng , cần phải cung cấp những tối ưu nhiệt độ trong suốt toàn bộ chu kỳ Nếumột nhà kính giống như một xây dựng khu dân cư và thương mại , kiểm soátnhiệt độ sẽ được dễ dàng hơn kể từ khi các tòa nhà được cách nhiệt để các tácđộng của điều kiện bên ngoài là giảm đáng kể Tuy nhiên , nhà kính được thiết
kế để cho phép nhiều ánh sáng càng tốt để nhập vào trồng khu vực Kết quả là,các tính chất cách điện của cấu trúc được giảm đi đáng kể và kinh nghiệm môitrường phát triển ảnh hưởng đáng kể từ liên tục biến động điều kiện thời tiết năng lượng mặt trời bức xạ ( ánh sáng và nhiệt ) đến tác động lớn nhất đối vớimôi trường ngày càng tăng, kết quả là thách thức duy trì nhiệt độ ngày càng tăngtối ưu khó kiểm soát
Vậy nên chúng em là đề tài “Nghiên cứu thiết kế và chế tạo mạch đo các thông
số và điều khiển nhiệt độ trong nhà kính’’ để góp phần ứng dụng công nghệ kỹ
thuật vào nhà kính nhằm giảm đáng kể rủi ro do hiệu ứng nhà kính
1.2 Mục tiêu của đề tài
Nghiên cứu và xây dựng mô hình điều khiển dựa trên vi điều khiển AT89S52
Từ đó phát triển cao hơn, đưa bộ điều khiển áp dụng vào trong thực tế
Làm quen với việc tính toán thiết kế , chế tạo, nguyên lý hoạt động của mô hình
và củng cố phần lý thuyết về mạch điện tử, cảm biến và mạch điều khiển bằng vi điều khiển
Trang 3Việc thực hiện nghiên cứu đề tài ‘‘Nghiên cứu thiết kếvàchếtạo mạch đo các thông số và điều khiển nhiệt độ trong nhà kính’’ trong điều kiện :
- Thời gian thực hiện đề tài chỉ trong một học kỳ
- Kinh nghiệm thực tế chưa nhiều
- Vật tư và linh kiện không đồng bộ
Vì vậy chúng em đã thực hiện nghiên cứu đề tài với những đặc điểm chính sau đây:
- Lập trình bằng vi xử lý AT89S52-8051
- Thiết kết chế tạo mạch điều khiển nhiệt độ
- Thiết kết mô hình thí nghiệm nhà kính
- Tìm hiểu 1 số linh kiện có trong đồ án
- Các loại relay có trong đồ án
1.4 Phương pháp nghiên cứu
Phương pháp kế thừa: Kế thừa từ các tài liệu, công trình nghiên cứu trước đó về hai mảng chính của đề tài: Cấu trúc vi điều khiển 8051 và điều khiển nhiệt độ
Phương pháp thực nghiệm kiểm chứng: Sau khi đã xây dựng xong cơ sở lý thuyết của đề tài sẽ tiến hành thử nghiệm sự hoạt động trên các thiết bị hiện có.Các bước tiến hành nghiên cứu là tìm hiểu cơ sở lý thuyết về vấn đề nghiên cứu, tiến hành thiết kế chương trình điều khiển và mạch điều khiển, sau đó thử nghiệm trên mô hình để đưa ra kết luận
Trang 4CHƯƠNG II: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN VÀ
hổ trợ mở rộng trên chip dùng cho những biến một bit như là kiểu dữ liệuriêng biệt cho phép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển
AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc
có thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nốitiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP
Các đặc điểm của chip AT89S52 được tóm tắt như sau:
8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳghi/xoá
Tần số hoạt động từ: 0Hz đến 24 MHz
3 mức khóa bộ nhớ lập trình
3 bộ Timer/counter 16 Bit
Trang 5 128 Byte RAM nội.
4 Port xuất /nhập I/O 8 bit
Giao tiếp nối tiếp
64 KB vùng nhớ mã ngoài
64 KB vùng nhớ dữ liệu ngoại
4 s cho hoạt động nhân hoặc chia
Hình 2.1 Sơ đồ khối của 8051
Trang 6Hình 2.2 Sơ đồ khối AT89S52
nhau, chẳng hạn như hai hàng chân
DIP (Dual In-Line Pakage), dạng vỏ
dẹt vuông QPF (Quad Flat Pakage) và
dạng chip không có chân đỡ LLC
(Leadless Chip Carrier) thì chúng đều
có 40 chân cho các chức năng khác
nhau như vào ra I/O, đọc RD, ghi WR
, địa chỉ, dữ liệu và ngắt Cần phải lưu
Trang 7ý một số hãng cung cấp một phiên bản 8051 có 20 chân với số cổng vào ra íthơn cho các ứng dụng yêu cầu thấp hơn Tuy nhiên vì hầu hết các nhà pháttriển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ tập trung
mô tả phiên bản này
b) Chức năng của các chân 89S52
Port 0:từ chân 32 đến chân 39 (P0.0 _P0.7) Port 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 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
Port 1:từ chân 1 đến chân 9 (P1.0 _ P1.7) Port 1 là port IO dùng cho giao
tiếp với thiết bị bên ngoài nếu cần
Port 2:từ chân 21 đến chân 28 (P2.0 _P2.7) Port 2 là một port 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ớicác thiết bị dùng bộ nhớ mở rộng
Port 3:từ chân 10 đến chân 17 (P3.0 _ P3.7) Port 3 là port có tác dụng kép.
Các chân của port 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:
Trang 8Bit Tên Chức năng chuyển đổi
Ngõ vào dữ liệu nối tiếp
Ngõ xuất dữ liệu nối tiếp
Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào TIMER/ COUNTER thứ 0
Ngõ vào của TIMER/ COUNTER thứ 1
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
Tín hiệu đọc bộ nhớ dữ liệu ngoài
Bảng 2.1 Bảng chức năng P3
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ủachương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghilệnh bên trong 89S52 để giải mã lệnh Khi 89S52 thi hành chương trình trongROM 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 địachỉ 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
Trang 9Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vaitrò 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, 89S52 thi hành chương trình từ bộ nhớ mở rộng Chân EA đượclấ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à:
R1=10, R2=220, C=10 F Hình 2.3 Sơ đồ kết nối chân RST
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
Trang 102.1.3 Tổ chức bên trong AT89S52
Bộ nhớ trong 89S52 bao gồm ROM và RAM RAM trong 89S52 baogồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữđịa chỉ hóa từng bit,các bank thanh ghi và các thanh ghi chức năng đặc biệt
AT89S52 có bộ nhớ được tổ chức theo cấu trúc Harvard: có nhữngvùng bộ nhớ riêng biệt cho chương trình và dữ liệu Chương trình và dữ liệu
có thể chứa bên trong 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộnhớ chương trình và 64K byte dữ liệu bên ngoài
Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau:
RAM bên trong AT89S52 được phân chia như sau:
Địa chỉ
byte
Địa chỉ bit Địa chỉ Địa chỉ bit
byte
Trang 11 Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH
b) RAM có thể định địa chỉ bit
Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM
đa dụng (truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằngcác lệnh xử lý bit
c) Các bank thanh ghi
Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ00h – 07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh.Các bank thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7 Saukhi khởi động thì hệ thống bank 0 được chọn sử dụng
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanhghi được truy xuất bởi các thanh ghi R0 đến R7 Viêc thay đổi bank thanh ghiđược thực hiện thông qua thanh ghi từ trạng thái chương trình (PSW)
Trang 12d) Các thanh ghi có chức năng đặc biệt
Các thanh ghi trong 89S52 được định dạng như một phần của RAMtrên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếmchương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trựctiếp) Cũng như R0 đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt(SFR: Special Function Register) ở vùng trên của RAM nội từ địa chỉ 80Hđến 0FFH
Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:
Thanh ghi tr ng thái ch ạng thái chương trình (PSW: Program Status Word) ương trình (PSW: Program Status Word) ng trình (PSW: Program Status Word)
PSW.3 RS0 D3H Register Bank Select 0
00=Bank 0; address 00H07H01=Bank 1; address 08H0FH10=Bank 2; address 10H17H11=Bank 3; address 18H1FH
Chức năng từng bit trạng thái chương trình
- Cờ Carry CY (Carry Flag):Cờ nhớ thường nó được dùng cho các lệnh
toán học: C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn
và ngược lại C = 0 nếu phép toán cộng không tràn và phép trừ không cómượn
Trang 13- Cờ Carry phụ AC (Auxiliary Carry Flag): Khi cộng những giá trị
BCD (Binary Code Decimal), cờ nhớ phụ AC được set nếu kết quả 4bit thấp nằm trong phạm vi điều khiển 0AH - 0FH Ngược lại AC = 0
- Cờ 0 (Flag 0):
Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng
- Những bit chọn bank thanh ghi truy xuất:
RS1 và RS0 quyết định dãy thanh ghi tích cực Chúng được xóa sau khireset hệ thống và được thay đổi bởi phần mềm khi cần thiết
Trang 14chẵn Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1 trong A
và P tạo thành số chẵn
Bit Parity thường được dùng trong sự kết hợp với những thủ tục củaPort nối tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm trabit Parity saukhi thu
Thanh ghi TIMER
Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc Người ta sử dụng các timer để:
o Định khoảng thời gian
o Đếm sự kiện.
o Tạo tốc độ baud cho port nối tiếp trong 89S52.
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ởnhững khoảng đều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóachương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõvào hoặc gửi sự kiện ra các ngõ ra Các ứng dụng khác có thể sử dụng việctạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví
dụ đo độ rộng xung)
Thanh ghi ngắt (INTERRUPT)
Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.
Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứngdụng vi điều khiển Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sựkiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi
- Tổ chức ngắt của 89S52:
Trang 15Có 5 nguồn ngắt ở 89S52: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port
nối tiếp Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phép từng cái một bằng phần mềm Mức độ ưu tiên của các ngắt được lưu trong thanh ghi IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phép chọn mức ưu tiên cho các ngắt (giá trị thanh ghi
IP khi reset là 00h)
IP.5 ET2 BDH Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 2IP.4 ES BCH Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại cổng nối tiếp
IP.3 ET1 BBH Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 1IP.2 EX1 BAH Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại ngắt ngoài 1IP.1 ET0 B9H Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 0IP.0 EX0 B8H Chọn mức ưu tiên cao (=1) hay thấp (=0)
Nếu chương trình của một ngắt có mức ưu tiên thấp đang chạy mà cómột ngắt xảy ra với mức ưu tiên cao hơn thì chương trình này tạm dừng đểchạy một chương trình khác có mức ưu tiên cao hơn
- Cho phép và cấm ngắt:
Trang 16Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chứcnăng đặt biệt có định địa chỉ bit IE (Interrupt Enable: cho phép ngắt) ở địachỉ A8H
IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052)
IE.4 ES ACH Cho phép ngắt port nối tiếp
IE.3 ET1 ABH Cho phép ngắt từ Timer 1
IE.1 ET0 A9H Cho phép ngắt từ Timer 0
Tóm tắt thanh ghi IE
Khi chấp nhận ngắt, giá trị được nạp vào PC gọi là vector ngắt Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau :
Trang 17Timer 2 002BH
Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này, nó giống ngắt: nó ngắt chương trình chính và nạp cho PC giá trị mới
Trang 18- Nguyên lý hoạt động:
Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2
bước:
o Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại
o Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và
nhiệt độ đo được
- Bước 1: gửi tín hiệu Start
Trang 19o MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trongkhoảng thời gian >18ms Trong Code mình để 25ms Khi đó DHT11 sẽ hiểu
MCU muốn đo giá trị nhiệt độ và độ ẩm
o MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào
o Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us màchân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11
o Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong80us Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếpđược với DHT11 ko Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện
quá trình giao tiếp của MCU với DHT
- Bước 2: đọc giá trị trên DHT11
o DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó:
Byte 1: giá trị phần nguyên của độ ẩm (RH%)
Byte 2: giá trị phần thập phân của độ ẩm (RH%)
Byte 3: giá trị phần nguyên của nhiệt độ (TC)
Byte 4 : giá trị phần thập phân của nhiệt độ (TC)
Byte 5 : kiểm tra tổng
Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và
nhiệt độ là chính xác, nếu sai thì kết quả đo không có nghĩa
o Đọc dữ liệu:
Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 vềMCU, tương ứng chia thành 5 byte kết quả của Nhiệt độ và độ ẩm
Bit 0:
Trang 20Bit 1:
Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11kéo lên 1 Nếu chân DATA là 1 trong khoảng 26-28 us thì là 0, còn nếu tồntại 70us là 1 Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đódelay 50us Nếu giá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được
là 1 thì giá trị đo được là 1 Cứ như thế ta đọc các bit tiếp theo
Trang 212.3 Màn hiển thị LCD
2.3.1 Giới thiệu
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng dụng của VĐK LCD có rất nhiều ưu điểm so với các dạng hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số
và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao
tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ…
Trang 22Chức năng các chân
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch
điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V
của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD.
4 RS Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND)
hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD
hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các
lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.
7 - 14 DB0
-DB7
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2 chế độ
sử dụng 8 đường bus này : + Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7 + Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB
là DB7
15 - Nguồn dương cho đèn nền
16 - GND cho đèn nền
Bảng 2.3 Chức năng các chân của LCD
* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua các chân DBx Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD thông qua các chân DBx