1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đo và điều khiển nhiệt độ phòng dùng 8051 và LM35

44 677 14

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 3,8 MB

Nội dung

Nhiệt độ là một đại lượng cơ bản trong đời sống, do đó khi vừa được tìmhiểu về vi điều khiển 8051, chúng em muốn sử dụng nó để thực hiện đề tài : “ Đo và điều khiển nhiệt độ phòng dùng v

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA ĐIỆN

*********

ĐỒ ÁN MÔN: VI XỬ LÝ TRONG ĐO LƯỜNG VÀ ĐIỀU KHIỂN

ĐỀ TÀI: Đo và điều khiển nhiệt độ phòng dùng 8051 và LM35

GV HƯỚNG DẪN: Tống Thị Lý

Nhóm SV thực hiện: Sinh viên thực hiện

1.Đặng Văn Minh 1041040134 2.Nguyễn Văn Hưng 1041040140 3.Lê Đức Nhân 1041040200 4.Dương Tuấn Linh 1041040169

Hà Nội – 2018

Trang 2

LỜI NÓI ĐẦU Trong thời đại công nghiệp hóa,hiện đại hóa phát triển như vũ bão và không khí

hội nhập kinh tế quốc tế của Việt Nam hiện nay,chúng ta đã tiến được những bước dài và đã đạt được những thành công và kết quả tương đối khích lệ trong nhiều lĩnh vực khác nhau Một trong những thành công đó là lĩnh vực trong đo lường và điều khiển để tô đẹp thêm cho thành công và phát triển kinh tế của ViệtNam

Với những kiến thức được học trên lớp và tìm hiểu thực tế Trong thời gian yêucầu, nhóm em đã hoàn thành đồ án môn học:vi xử lý trong đo lường và điềukhiển

Nhiệt độ là một đại lượng cơ bản trong đời sống, do đó khi vừa được tìmhiểu về vi điều khiển 8051, chúng em muốn sử dụng nó để thực hiện đề tài : “

Đo và điều khiển nhiệt độ phòng dùng vđk 8051 và cảm biến LM35”

Mục đích chính của đề tài là thiết kế một bộ đo nhiệt độ sử dụng vi điềukhiển họ 8051, có thể cho ra được kết quả hiển thị trực quan và qua đó điềukhiển nhiệt độ 1 không gian ổn định trong mức cho phép

Do kiến thức chuyên ngành còn thiếu nhiều cũng như là trong thực tế nên đồ ánkhông tránh khỏi những sai sót, mong các thầy cô góp ý kiến để đồ án của chúng

em được hoàn thiện hơn

Em đặc biệt xin chân thành cảm cô đã hướng dẫn và giúp đỡ tận tình nhóm emtrong thời gian làm đồ án để hoàn thành đồ án này!

Trang 3

MỤC LỤC

CHƯƠNG 1: CƠ SỞ LÍ THUYẾT VỀ ĐO VÀ ĐIỀU KHIỂN NHIỆT ĐỘ 5

1.1 ĐẶT VẤN ĐỀ 5

1.1.1.Chế độ điều khiển ON/OFF 5

1.1.2 Chế độ điều khiển PID 6

CHƯƠNG 2:TỔNG QUAN VỀ VI XỬ LÝ TRONG ĐO LƯỜNG ĐIỀU KHIỂN 8

2.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng vi xử lý 8

2.1.1 giới thiệu chung về vi xử lý và vi điều khiển 8

2.1.2 Cấu trúc chung của hệ vi xử lý và vi điều khiển 9

2.2 Cấu trúc chung của họ 8051 9

2.2.1.Cấu trúc của 8051 10

2.2.2.sơ đồ chân của 8051 11

2.3.Tổng quan về ngôn ngữ C và các hàm,kiểu dữ liệu hay dùng cho việc lập trình cho Vi điều khiển 13

2.3.1 Cấu trúc chương trình lập trình C cho 8051 13

2.3.2.Khai báo biến,các phép toán và các cấu trúc của C 13

CHƯƠNG 3:Các linh kiện sử dụng trong đề tài 16

3.1 ADC 0804 16

3.2 LCD1602 19

3.2.1 Các tập lệnh cơ bản của LCD 1602 22

3.3 ULN2803 27

3.4 Quạt 29

3.5 Quạt sưởi 30

3.6 PHÍM BẤM 34

3.7 Relay trung gian 35

CHƯƠNG 4: XÂY DỰNG HỆ THỐNG 36

4.1 Lưu đồ thuật toán 36

4.2 Chương trình điều khiển 37

Trang 4

4.4 Kết quả mạch thực 49 KẾT LUẬN: 51

Trang 5

CHƯƠNG 1: CƠ SỞ LÍ THUYẾT VỀ ĐO VÀ ĐIỀU KHIỂN NHIỆT ĐỘ 1.1 ĐẶT VẤN ĐỀ

Trong các bộ điều khiển nhiệt ta thường thấy 2 chế độ điều khiển là điều khiển ON/OFF và điều khiển PID Ngoài ra còn có thêm 1 số chế độ khác (Thực chất cũng là PID nhưng có 1 thành phần bị lược bỏ, ví dụ như chế độ điều khiển Tỉ lệ

P hay PI, PD)

1.1.1.Chế độ điều khiển ON/OFF

Có thể dễ dàng nhận thấy đây là chế độ điều khiển đơn giản nhất, được sử dụng

từ khá lâu và hiện nay vẫn còn được ứng dụng khá nhiều trong các ngành khác nhau

Ưu điểm của chế độ này là điều khiển đơn giản, dễ hiểu Tuy nhiên nó lại có nhược điểm là độ chính xác ko cao, độ quá nhiệt lớn gây tổn thất năng lượng

Về nguyên lí hoạt động của chế độ ON/OFF thì khá đơn giản: bộ điều khiển sẽ tác động đầu ra nếu nhiệt độ môi trường đo vượt qua giá trị đặt (Có thể tác động khi nằm trong phạm vi dải trễ mà chưa cần tới giá trị đặt-nếu như người dùng cócài đặt dải trễ) Và thông thường thì chế độ ON/OFF sẽ tương ứng với loại đầu

ra điều khiển là dạng Role

Với những đặc điểm như trên thì chế độ điều khiển ON/OFF thường được ứng dụng trong những hệ thống điều khiển nhiệt quy mô lớn, cho phép độ quá nhiệt cao và ít có sự thay đổi nhiệt độ; ví dụ như: hệ điều khiển lò nhiệt, tủ lạnh,

Trang 6

1.1.2 Chế độ điều khiển PID

- Hệ thống điều khiển vòng kín là hệ thống sẽ xác định sai khác giữa trạng thái mong muốn và trạng thái thực (sai số) và tạo ra lệnh điều khiển để loại bỏ sai số.Điều khiển PID thực hiện ba cách phát hiện và hiệu chỉnh sai số này

- Hệ thống điều khiển có thể sử dụng P, PI, PD, hoặc PID để hiệu chỉnh sai số Nhìn chung, vấn đề ở đây là “hiệu chỉnh” hệ thống bằng cách lựa chọn những giá trị thích hợp trong ba cách nêu trên

- Ưu điểm: điều khiển với độ chính xác cao, tiết kiệm năng lượng tối đa, đảm bảo sự ổn định của hệ thống

- Nhược điểm: thuật toán điều khiển phức tạp, đòi hỏi người sử dụng có trình độ

và kinh nghiệm

Khi sử dụng chế độ điều khiển PID thì loại đầu ra điều khiển tối ưu là Role bán dẫn SSR Không nên sử dụng role thường vì nó dễ xảy ra các sự cố ngoài ý muốn như: đánh tia lửa điện, kẹt tiếp điểm, tuổi thọ các thiết bị giảm…

- Phạm vi ứng dụng: có thể nói ngày nay PID đã xâm nhập vào hầu hết các ứng dụng điều khiển (ko chỉ nhiệt độ mà còn nhiều lĩnh vực khác) Tuy nhiên nõ vẫn được ưu tiên hơn cả khi hệ thống yêu cầu độ chính xác cao, khoảng thay đổi nhiệt cho phép nhỏ

Thông thường khi sử dụng bộ điều khiển nhiệt có chế độ điều khiển PID thì luôn

có kèm theo chức năng Tự động điều chỉnh (Auto Tuning) Chức năng này sẽ tự động điều chỉnh các tham số P, I và D sao cho hệ thống đạt hiệu năng cao nhất Tuy nhiên, trong 1 số trường hợp thì người sử dụng vẫn phải điều khiển bằng tay(Manual) các tham số này

+ Tham số P (hệ số tỉ lệ): nếu đặt giá trị này càng cao thì tốc độ đáp ứng (đạt tới giá trị nhiệt mong muốn) càng nhanh Tuy nhiên nó cũng làm cho độ quá nhiệt nhiều hơn (đồng nghĩa với việc độ chính xác giảm đi và tổn hao năng lượng tănglên) Nếu giá trị này quá lớn thì hệ quả là hệ thống sẽ mất ổn định

+ Tham số I (Tích phân): Nếu đặt giá trị này càng cao thì quá trình loại trừ sai số

do tham số P gây ra (tức là đưa về giá trị nhiệt yêu cầu) càng nhanh Tuy vậy nó cũng gây ra hiện tượng quá độ càng lớn Ví dụ:

- Nhiệt độ đặt là 100oC Nhiệt độ bất dầu tăng từ nhiệt độ phòng 28oC

- Sai số do tham số P gây ra trong chu kì đầu tiên là 10oC Tức là nhiệt độ đỉnh đạt 110oC

Nếu đặt giá trị tích phân là I1 thì sau thời gian t1 ta sẽ có nhiệt độ là 100

Trang 7

CHƯƠNG 2:TỔNG QUAN VỀ VI XỬ LÝ TRONG ĐO LƯỜNG ĐIỀU KHIỂN

2.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng vi xử lý.

2.1.1 giới thiệu chung về vi xử lý và vi điều khiển

+Nhiệm vụ chính của CPU là xử lý chương trình vi tính và dữ kiện

+CPU có nhiều kiểu dáng khác nhau Ở hình thức đơn giản nhất,CPU là 1con chip với vài chục chân.Phức tạp hơn,CPU được ráp sẵn trong các bộ mạch với hàng trăm con chip khác.CPU là 1 mạch xử lý dữ liệu theo chương trình được thiết lập trước.Nó là 1 mạch tích hợp phức tạp gồm hàng triệu transistor

b.Vi điều khiển:

 Là 1 máy tính được tích hợp trên 1 chip,nó thường được sử dụng đê điều khiển các thiết bị điện tử

 Vi điều khiển,thực chất là 1 hệ hống bao gồm 1 vi xử lý có hiệu suất đủ dùng và giá thành thấp(khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ,các mô đun vào/ra,các mô đun biến đổi số sang tương tự và tương tự sang số,

 Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng.Nó xây dựng khá nhiều trong các dụng cụ điện tử,thiết bị điện,máy

2.1.2 Cấu trúc chung của hệ vi xử lý và vi điều khiển

- Sơ đồ khối 1 hệ vi xử lý vi điều khiển cơ bản:

Trang 8

Hình 1 1:nguyên lý cấu tạo của vi xử lý 2.2 Cấu trúc chung của họ 8051.

2.2.1.Cấu trúc của 8051

Trang 9

8kROM

8kEPROM

Trang 10

Hình 1 2:sơ đồ chân của 8051

+Vcc(40): chân cung cấp điện(5v)

+GND(20):chân nối đất (0v)

+port0 (32-39): là port xuất nhập 8 bit 2 chiều

+port1 (1-8): là port xuất nhập 8 bit 2 chiều

+port2 (21-28): là port xuất nhập 8 bit 2 chiều

+trong bất kỳ hệ thống nào sử dụng 9751,89C51 hoặc DS5000 ta thường nối cổng P0 tới các điện trở kéo

+port3:là port xuất nhập 8 bit 2 chiều,cũng còn làm các chức năng khác của

Trang 11

+ngõ vào reset(chân 9):mức cao trên chân này trong 2 chu kì máy tỏng khi bộ dao động đang hoạt động sẽ reset 8051.

+mạch reset tác động bằng tay hoặc tự động reset khi khởi động máy

+XTAL1 và XTAL2(18,19):là 2 ngõ vào được cấu hình để dùng như 1 bộ dao động trên chip

+EA( chân 31):Extemal Access

 /EA nối mass chỉ định rằng code lưu trên bộ nhớ ngoài

 /PSEN và ALE dùng cho ROM ngoài

 Với 8051,8031,8032 thì /EA nối Vcc

 “/”: chỉ định tác động mức thấp

+PSEN (chân 29):Program store enable

 Output,cho phép ruy cập bộ nhớ chương trình ngoài

 Nối tới chân /OE của ROM/EPROM

 Khi thực thi chương trình ở ROM nội, /PSEN được giữ ở mức 1

Trang 12

2.3.Tổng quan về ngôn ngữ C và các hàm,kiểu dữ liệu hay dùng cho việc lập

trình cho Vi điều khiển.

2.3.1 Cấu trúc chương trình lập trình C cho 8051

2.3.2.Khai báo biến,các phép toán và các cấu trúc của C

Kiểu biến thực Bits Giải giá trị

Trang 13

-Các lệnh xuất/nhập,định địa chỉ trên keil.

+định nghĩa chân của MCU

-Cấu trúc 1 chương trình trong keil-c:

//khai báo thư viện sử dụng

Trang 14

CHƯƠNG 3:Các linh kiện sử dụng trong đề tài

3.1 ADC 0804

Các bộ chuyển đổi ADC thuộc những thiết bị được sử dụng rộng rãi nhất để thu

dữ liệu Các máy tính số sử dụng các giá trị nhị phân, nhưng trong thế giới vật lýthì mọi đại lượng ở dạng tương tự (liên tục) Nhiệt độ, áp suất (khí hoặc chất lỏng), độ ẩm và vận tốc và một số ít những đại lượng vật lý của thế giới thực mà

ta gặp hằng ngày Một đại lượng vật lý được chuyển về dòng điện hoặc điện áp qua một thiết bị được gọi là các bộ biến đổi Các bộ biến đổi cũng có thể coi nhưcác bộ cảm biến Mặc dù chỉ có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh sáng

và nhiều đại lượng tự nhiên khác nhưng chúng đều cho ra các tín hiệu dạng dòngđiện hoặc điên áp ở dạng liên tục Do vậy, ta cần một bộ chuyển đổi tương tự số sao cho bộ vi điều khiển có thể đọc được chúng Một chip ADC được sử dụng rộng rãi là ADC-0804

Hình dạng thực tế ADC-0804

Trang 15

Sơ đồ chân ADC-0804

o Cấu trúc ADC-0804 :

Chip ADC-0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng

National Semiconductor Chip này cũng được nhiều hãng khác sản xuất Chip cóđiện áp nuôi +5V và độ phân giải 8 bit Ngoài độ phân giải thì thời gian chuyển đổi cũng là một tham số quan trọng khi đánh giá bộ ADC Thời gian chuyển đổi được định nghĩa là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một số nhị phân Đối với ADC0804 thì thời gian chuyển đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK và CLK IN và không bé hơn 110µs Các chân khác của ADC-0804 có chức năng như sau :

 CS (Chip select): Chân số 1, là chân chọn chip, đầu vào tích cực mức thấpđược sử dụng để kích hoạt Chip ADC-0804 Để truy cập tới ADC0804 thì chân này phải được đặt ở mức thấp

 RD (Read): Chân số 2, là chân nhận tín hiệu vào tích cực ở mức thấp Các

bộ chuyển đổi của 0804 sẽ chuyển đổi đầu vào tương tự thành số nhị phân

và giữ nó ở một thanh ghi trong Chân RD được sử dụng để cho phép đưa

dữ liệu đã được chyển đổi tới đầu ra của ADC-0804 Khi CS = 0 nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit được đưa tới các chân dữ liệu (DB0 – DB7)

 WR (Write): Chân số 3, đây là chân vào tích cực mức thấp được dùng báocho ADC biết để bắt đầu quá trình chuyển đổi Nếu CS = 0 khi WR tạo ra xung sườn thấp nên cao thì bộ ADC-0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự Vin thành số nhị phân 8 bit Khi việc chuyển đổi hoàn tất thì chân INTR được ADC hạ xuống thấp

Trang 16

 CLK IN và CLK R: CLK IN (chân số 4), là chân vào nối tới đồng hồ ngoài được sử dụng để tạo thời gian Tuy nhiên ADC0804 c ũng có một

bộ tạo xung đồng hồ riêng Để dùng đồng hồ riêng thì các chân CLK IN

và CLK R (chân số 19) được nối với một tụ điện và một điện trở Khi đó tần số được xác định bằng biểu thức:

F = 1/(1.1xRC)

 Giá trị tiêu biểu của các đại lượng trên là R = 10kW và C= 150pF và tần

số nhận được là f = 606kHz và thời gian chuyển đổi sẽ mất là 110ms.Ngắt INTR (Interrupt - ngắt hay gọi chính xác hơn là “kết thúc chuyển

đổi") :Chân số 5, là chân ra tích cực mức thấp Bình thường chân này ở

trạng thái cao và khi việc chuyển đổi tương tự số hoàn tất thì nó chuyển xuống mức thấp để báo cho CPU biết là dữ liệu chuyển đổi sẵn sàng để lấy đi Sau khi INTR xuống thấp, cần đặt CS = 0 và gửi một xung cao xuống thấp tới chân RD để đưa dữ liệu ra

 Vin (+) và Vin (-): Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai, trong đó Vin = Vin(+) – Vin(-) Thông thường Vin(-) được nối tới đất

và Vin(+) được dùng làm đầu vào tương tự và sẽ được chuyển đổi về dạngsố

 Vcc: Chân số 20, là chân nguồn nuôi +5V Chân này còn được dùng làm điện áp tham chiếu khi đầu vào Vref/2 để hở

 Vref/2: Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham chiếu Nếu chân này hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong dải 0 đến +5V Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự

áp đến Vin khác với dải 0 đến +5V Chân Vref/2 được dùng để thực hiện các điện áp đầu ra khác 0 đến +5V

 D0 – D7, chân số 18 – 11, là các chân ra dữ liệu số (D7 là bit cao nhất MSB và D0 là bit thấp nhất LSB) Các chân này được đệm ba trạng thái

và dữ liệu đã được chuyển đổi chỉ được truy cập khi chân CS = 0 và chân

RD đưa xuống mức thấp Để tính điện áp đầu ra ta tính theo công thức sau :

Dout = Vin / Kích thước bước

 Cách tính giá trị điện áp đầu vào :

+ Vin= Độ mịn x Giá trị số đầu ra

+ Độ mịn = Điện áp tham chiếu / Độ phân giải

Ví dụ điện áp tham chiếu là 5V, độ phân giải 8 bit = 2^8 = 256

Giá trị đầu ra là 128 => Vin = 128x 5/256=2,5V

Trang 17

3.2 LCD1602

Ngày nay, thiết bị hiển thị LCD 1602 (Liquid Crystal Display) được sửdụng trong rất nhiều các ứng dụng của VĐK LCD 1602 có rất nhiều ưu điểm sovới các dạng hiển thị khác như: khả năng hiển thị kí tự đa dạng (chữ, số, 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,tiêu tốn rất ít tài nguyên hệ thống, giá thành rẻ,…

Thông số kĩ thuật của sản phẩm LCD 1602:

Chức năng của từng chân LCD 1602:

- Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển

- Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạchđiều khiển

Trang 18

- Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1": + 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

- Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic

“0” để ghi hoặc nối với logic “1” đọc

- Chân số 6 - E : chân cho phép (Enable) Sau khi các tín hiệu được đặt lên busDB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân nàynhư sau:

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trongkhi 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ạnhlên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân Exuống mức thấp

LCD 1602 Xanh dương 5v

- Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ liệu dùng để trao đổi thôngtin với MPU Có 2 chế độ sử dụng 8 đường bus này là: Chế độ 8 bit (dữ liệu

Trang 19

được truyền trên cả 8 đường, với bit MSB là bit DB7) và Chế độ 4 bit (dữ liệuđược truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7)

- Chân số 15 - A : nguồn dương cho đèn nền

- Chân số 16 - K : nguồn âm cho đèn nền

3.2.1 Các tập lệnh cơ bản của LCD 1602

#include<regx52.h>

// Khai bao ket noi voi LCD 2 chân này sẽ thông báo cho LCD, lúc nào là truyền //câu lệnh, lúc nào truyền dữ liệu hiển thị và khi nào được truyền, khi

Trang 20

sbit LCD_RS = P2^0;

sbit LCD_EN = P2^1;

#define LCD_DATA P3 // Đặt hằng số thay thế Port3- xuất dữ liệu từ VĐK

//Hàm Delay_ms được tính toán với tần số thạch anh 12Mhz.

void Delay_ms(unsigned int t)

//Hàm Lcd_cmd sẽ gửi lệnh vào trong LCD Chú ý các bước trong phần gửi lệnh

void Lcd_Cmd(unsigned char cmd)

{

Trang 21

LCD_DATA = cmd; //Dua command vao Port P3

LCD_EN = 0; //Cho phep truyen command vao LCD

LCD_EN = 1; //Khong cho phep truyen tiep

Ngày đăng: 19/12/2018, 19:55

TỪ KHÓA LIÊN QUAN

w