1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

đồ án đo nhiệt độ dùng vi điều khiển 8051

27 1,5K 16

Đ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 27
Dung lượng 456,76 KB

Nội dung

bộ đo nhiệt độ dùng vi điều khiển 8051, hiển thị LED 7 thanh Ngày nay cùng với sự tiến bộ của khoa hoc kỹ thuật, đời sống xã hội ngày càng phát triển cao dựa trên những ứng dụng của khoa học vào đơi sống. Vì vậy mà những ứng dụng mang tính tự đông ngày càng được ứng dụng rộng rãi. Trong đó có sự đóng góp không nhỏ của kỹ thuật vi điều khiển. Các bộ vi điều khiển đang được ứng dụng rộng rãi và xuất hiên ngày càng nhiều trong lĩnh vực kỹ thuật và đời sống xã hội. Hầu hết là các thiết bị được điều khiên tự động từ các thiệt bị văn phòng cho đến các thiết bị trong gia đình đều dùng các bộ vi điều khiển nhằm đem lại sự tiên nghi cho con người trong thời đại công nghiệp hóa, hiện đại hóa. Đo nhiệt độ môi trường bây giờ trở nên khá đơn giản và dễ làm. Không cần phải nhiệt kế thủy ngân nữa mà chúng ta hãy ứng dụng những kiến thức đã học vào để làm 1 mạch đo nhiệt độ đơn giản. Một phần cải thiện kiến thức lập trình và cách xử lý tín hiệu tương tự sang số mà chúng ta gọi tắt là ADC. Đề tài này có sự tham gia của tất cả các thành viên trong nhóm.Tất cả đã cùng hợp tác với nhau để cho ra sản phẩm cuối cùng. Mặc dù đã cố gắng rất nhiều, nhưng chắc chắn bản báo cáo này sẽ còn nhiều thiếu sót vì đây là lần đầu em tham gia làm mạch nên có rất ít kinh nghiệm. Rất mong được sự góp ý của thầy.

Trang 1

NHẬN XÉT CỦA GIÁO VIÊN



………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Hà Nội, Ngày Tháng Năm 2013

Giáo viên hướng dẫn

Trang 2

MỤC LỤC Trang

PHẦN I: MỞ ĐẦU………1

PHẦN II: LÝ THUYẾT ĐỒ ÁN……….2

2.1 HỆ VI XỬ LÝ AT89S52………2

2.1.1 Tổng quan về 89S52……… 2

2.1.2 Mô tả chân của AT89S52……… 3

2.1.3 Chức năng các chân của AT89S52………4

2.2 NGUYÊN LÝ ĐO LƯỜNG CỦA 1 SỐ LINH KIỆN (ADC 0804 và LM35)……… 6

2.2.1 Chip ADC0804……….6

2.2.2 Cảm biến LM335……….9

2.2.3 LCD 16x2……….14

PHẦN III: THIẾT KẾ MẠCH………17

3.1 CÁC LINH KIỆN SỬ DỤNG ………17

3.2 SƠ ĐỒ MẠCH IN ……….……… 17

3.3 SƠ ĐỒ NGUYÊN LÝ……….18

3.4 LẬP TRÌNH CHO VI ĐIỀU KHIỂN……….19

PHẦN IV: KẾT LUẬN……… 19

PHẦN V : PHỤ LỤC……….20

PHẦN VI :TÀI LIỆU THAM KHẢO……… …2

Trang 3

PHẦN I MỞ ĐẦU

I LỜI MỞ ĐẦU

Ngày nay cùng với sự tiến bộ của khoa hoc kỹ thuật, đời sống xã hội ngày càng phát triển cao dựa trên những ứng dụng của khoa học vào đơi sống Vì vậy

mà những ứng dụng mang tính tự đông ngày càng được ứng dụng rộng rãi Trong

đó có sự đóng góp không nhỏ của kỹ thuật vi điều khiển Các bộ vi điều khiển đang được ứng dụng rộng rãi và xuất hiên ngày càng nhiều trong lĩnh vực kỹ thuật

và đời sống xã hội Hầu hết là các thiết bị được điều khiên tự động từ các thiệt bị văn phòng cho đến các thiết bị trong gia đình đều dùng các bộ vi điều khiển nhằm đem lại sự tiên nghi cho con người trong thời đại công nghiệp hóa, hiện đại hóa

Đo nhiệt độ môi trường bây giờ trở nên khá đơn giản và dễ làm Không cần phải nhiệt kế thủy ngân nữa mà chúng ta hãy ứng dụng những kiến thức đã học vào để làm 1 mạch đo nhiệt độ đơn giản Một phần cải thiện kiến thức lập trình và cách xử

lý tín hiệu tương tự sang số mà chúng ta gọi tắt là ADC

Đề tài này có sự tham gia của tất cả các thành viên trong nhóm.Tất cả đã cùng hợp tác với nhau để cho ra sản phẩm cuối cùng

Mặc dù đã cố gắng rất nhiều, nhưng chắc chắn bản báo cáo này sẽ còn nhiều thiếu sót vì đây là lần đầu em tham gia làm mạch nên có rất ít kinh nghiệm Rất mong được sự góp ý của thầy

Trang 4

PHẦN II LÝ THUYẾT LIÊN QUAN

2.1 HỆ VI XỬ LÝ AT89S52

2.1.1 Tổng quan về 89S52

AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất Các sản phẩm

AT89S52 thích hợp cho những ứng dụng điều khiển Việc xử lý trên byte và cáctoán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữliệu nhanh trên RAM nội Tập lệnh cung cấp một bảng tiện dụng của những lệnh

số học 8 bit gồm cả lệnh nhân và lệnh chia Nó cung cấp những hổ trợ mở rộngtrên chip dùng cho những biến một bit như là kiểu dữ liệu riê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, 3

TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếpbá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 và chia

2.1.2 Mô tả chân của AT89S52

Trang 6

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ới cácthiế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:

Bit 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

Trang 7

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 trong89S52 để giải mã lệnh Khi 89S52 thi hành chương trình trong ROM nội, PSEN ởmức cao

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ếtnố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

Trang 8

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 được lấy làmchâ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

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ụ Tần số thạch anh tùy vào mục đích của người sử dụng, giá trị tụ thường được sủ dụng là 33pF

2.2 NGUYÊN LÝ ĐO LƯỜNG CỦA 1 SỐ LINH KIỆN

2.2.1 Chip ADC0804

Chíp ADC 0804 là bộ chuyển đổi tương tự sang số trong họ các loạt ADC

0800 từ hãng National Semiconductor Nó cũng được nhiều hãng khác sản xuất, làm việc với +5V và có độ phân giải là 8 bít Ngoài độ phân giải thì thời gian chuyển đổi cũng là một yếu tố Quan trọng khác khi đánh giá một bộ ADC Thời gian chuyển đổi được định nghĩa như 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 Trong ADC 0804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK R và CLK IN

nhưng không thể nhanh hơn 110µ s Các chân của ADC 0804 được mô tả 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 ADC0804 Để 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 ADC0804 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)

Trang 9

- WR (Write): Chân số 3, đây là chân vào tích cực mức thấp được dùng báo cho ADC biết để bắt đầu quá trình chuyển đổi Nếu CS = 0 khi WR tạo ra xung cao xuống thấp thì bộ ADC0804 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.

- 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:

để đư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ạng số

- 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

Trang 10

Sơ đồ chân của ADC 0804

Trang 11

Bảng: Điện áp Vref/2 liên hệ với dải Vin

Vref/2 Vin Kích thước bước (mv)

- 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

Nguyên lý đo và chuyển đổi tương tự/số của ADC

Khi điện áp đầu vào que đo qua mạch phân áp sẽ đưa điện áp tới đầu vào Vin của ADC

0804 sao cho điện áp vào lớn nhất la 5V, khi đó ứng với mỗi giá trị đầu vào Vin thì

ADC0804 sẽ chuyển đổi giá trị tương tự là điện áp xang số, ứng với mỗi giá trị số sẽ là một giá trị điện áp tương ứng

Vì chân Vref 2 để hở do vậy kích thước bước la 19,53mV khi đo điện áp đầu vào là 5V tương ứng với giá trị thập phân là 256

Trang 12

có 3 chân chính : 2 chân cấp nguồn và 1 chân out tín hiệu Analog

Khi ta cấp điện áp 5V cho LM335 thì nhiệt độ đo được từ cảm biến sẽ chuyển thành điện áp

tương ứng tại chân số 2 (Vout) Điện áp này được tỉ lệ với giải nhiệt độ mà nó đo được Với độ

giải của nhiệt độ đầu ra là 10mV/K Hoạt động trong giải điện áp từ 0 cho đến 5V

và giải nhiệt

độ đo được từ 0 oC đến 100oC Và cần chú ý đến những thông số chính sau :+ Hoạt động chính xác ở dòng điện đầu vào từ 0.4mA đến 5mA Dòng điện đầu vào ngoài

khoảng này kết quả đo sẽ sai

+ Điện áp cấp vào ổn định là 5V

+ Trở kháng đầu ra thấp 1 ôm

+ Giải nhiệt độ môi trường là từ 0 đến 100 C

Như vậy LM335 nó cho chúng ta tín hiệu tương tự (Analog) và chúng phải xử lý tín hiệu này thành nhiệt độ

3) Tính toán các giá trị của mạch đo

- Do tín hiệu trả về từ cảm biến LM335 là tín hiệu tương tự Như vậy để xử lý tín hiệu này và cho ra kết quả nhiệt độ tương ứng thì ta cần dùng bộ biến đổi tương tự sang số gọi tắt là ADC Đầu bài là đo nhiệt độ từ 0 đến 100 C

- Như ta đã biết độ phân giải nhiệt độ của LM335 là 10mV/ K nên ta có

+ Tại 0 C thì điện áp đầu ra tại LM335 là 2.73V

+ Tại 100 C thì điện áp đầu ra LM335 là 3.73V

- Như vậy giải điện áp mà ADC biến đổi là từ (2.73V đến 3.73V) tức là 1VGọi S là giải điện áp đo của tín hiệu : S = (2.73 – 3.73V) tức là 1V

Trang 13

A là giải điện áp của ADC : A = 5V

Ta có trong con Dspic đã tích hợp sẵn bộ khối ADC 10 bit tốc độ cao và trong con Psoc nó cũng

tích hợp sẵn bộ ADC 11 bit nên sử dụng bộ ADC này cho mục đích biến đổi Ta có bước thay

đổi của ADC 10 bit :

4 ) Tính giá trị nhiệt độ đầu ra

LM335 là cảm biến nhiệt độ , với nhiệt độ đầu ra là 10mV/K

Sử dụng bộ biến đổi ADC_10bit :

+ có giá trị lớn nhất là 1024

+ với V = V = 5V

+ Bước thay đổi là : (Của Dspic và Psoc)n = 5/1024 = 4.9 (mV) (Dspic) n1 = 5/2047 = 2.44(mV) (Psoc)

Nên tại ở 0 C hay 273K thì điện áp đầu ra LM335 có giá trị là 2.73V

Nên tại ở 100 C hay 373K thì điện áp đầu ra của LM335 có giá trị là : 373.10mV/K

Trang 14

Như vậy giải điện áp đầu vào sẽ là (2.73 đến 3.73V)

Tính toán được giá trị ADC đọc được từ Lm335

+ V_in = 2.73V =>ADC_value = (1024/5)*2.73 = 559 (Dspic)

+ V_in = 3.73V => ADC_value = (1024/5)*3.73 = 764 (Dspic)

+ V_in = 2.73V => ADC_value = (2047/5)*2.73 = 1118 (Psoc)

+ V_in = 3.73V => ADC_value = (2047/5)*3.73 = 1527 (Psoc)

Mặt khác do ADC_value = 1 cho ra điện áp tương ứng là 4.9mV (dspic) và 2.44mV (Psoc)

Trong khi đó LM335 cho ra điện áp là 10mV/K Nên do đó để ADC _value thay đổi trong 1 đơn vị thì nhiệt độ phải thay đổi là : (4.9mV/10mV/K) = 0.5K (dspic)

và (2.44mV/10mV/K) = 0.244K (Psoc)

Như vậy ta có công thức tính đầy đủ ra độ C tương ứng cho cả Psoc và Dspic:

t = (ADC_value – 559)* (4.9mV/10mV) = (ADC_value – 559) * 0.49 (Đối với Dspic)

t = (ADC_value - 1118) * (2.44mV/10mV) = (ADC_value - 1118) * 0.244 (Đối với Psoc)

5) Tính giá trị điện trở đệm cho LM355

Muốn áp ra ứng với 10mV/oK thì phải cấp dòng cho nó từ 400uA đến 5mA, vậy phải có điện trở đệm

Nếu dùng nguồn áp 5V, dải đo từ 0-100 C => áp trên LM335 sẽ từ 2.73V đến

Trang 15

IC ổn áp 7805

IC ổn áp 7805 đầu vào >7V đầu ra 5V Mạch ổn áp cần cho VĐK vì nếu nguồn cho VĐK không ổn định thì sẽ treo VĐK, chạy không đúng, hoặc reset liên tục, thậm chí là chết chíp

Trang 16

Biến trở chẳng qua là điện trở mà trị số có thể thay đổi được, bằng cách vặn, xoay,

gạt qua gạt lại, … Nó có thể được gọi là biến trở, hay “chiết áp” (hay cái chia áp)

Tên tiếng Anh của nó có thể là Variable resitor, potentiometer, trimmer, trimpot…

Kí hiệu: VR, VAR, POT, …

Kí hiệu trên mạch:

Biến trở

Thạch anh là một linh kiện dùng để tạo ra một xung nhịp chuẩn mà ta có thể dựa vào xung nhịp này để phân chia thành các khoảng thời gian chính xác cho từng ứng dụng của mình

Có nhiều loại thạch anh tạo xung nhịp khác nhau như : 8, 11.0592, 12 các xung nhịp này sẽ ứng dụng trong từng trường hợp cụ thể mà ta có thể lựa chọn một cách linh hoạt

2.2.3 LCD 16x2

Khái quát về LCD 16x2

Trang 17

Đây là loại gồm 16 ký tự x2 dòng ,mỗi ký tự được tạo ra từ một ma trận điểm sáng kích

cỡ 5×7 hoặc 5×10

Ta có sơ đồ chân của LCD:

Chân Ký hiệu I/O Mô tả

Chân 15 và chân 16: ghi là A và K Nó là anot và katot của một con led dùng để sáng LCD trong bóng tối Chúng ta không sử dụng Nếu các bạn muốn dùng thì nối chân A qua

1 điện trở 220 lên dương 5V, chân K xuống đất đèn sẽ sáng

Nguyên lý hoạt động của LCD

-Các chân 1,2,3 là các chân VSS , VDD, VEE: trong đó VEE chân nối đất , VDD

chân chọn độ tương phản chân này dc chọn qua 1 biến trở 5K một đầu nối VCC ,

một đầu nối mát Chân VSS nối dương nguồn

- Chân chọn thanh ghi RS (Register Select): Có hai thanh ghi trong LCD, chân

RS(Register Select) được dùng để chọn thanh ghi, như sau:

Nếu RS = 0 ở chế độ ghi lệnh như xóa màn hình , đưa con trỏ về đầu dòng…

Nếu RS =1 ở chế độ ghi dữ liệu như hiển thị ký tự , chữ số lên màn hình

-Chân đọc/ ghi (R/W): Đầu vào đọc/ ghi cho phép người dùng ghi thông tin lên

LCD khi R/W = 0 hoặc đọc thông tin LCD khi

Trang 18

-Chân cho phép E (Enable): Chân cho phép E được sử dụng bởi LCD để chốt dữ liệu của nó Khi dữ liệu được đến chân dữ liệu thì cần có 1 xung từ mức cao xuống mức thấp ở chân này để LCD chốt dữ liệu , xung này phải có độ rộng tối thiểu 450ns.

Chân D0 – D7: Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong

LCD Để hiển thị các chữ cái và các con số chúng ta gửi các mã ASCII của các chữ cái và các con số tương ứng đến các chân này khi bật RS =1

Bảng mã lệnh của LCD 16x2

Trang 19

PHẦN III THIẾT KẾ

3.1 CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH

- Vi điều khiển AT89S52:

Hiện Thị LCD

Ngày đăng: 07/12/2015, 01:18

TỪ KHÓA LIÊN QUAN

w