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

Ổn định nhiệt độ lò sấy

52 395 0

Đ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 52
Dung lượng 1,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

Lời nói đầu

Thế kỷ 21 mở ra một thời đại mới, thời đại khoa học công nghệ đòi hỏi con người luôn luôn không ngừng tìm tòi học tập để tiến bộ Thiết bị và công nghệ luôn được đổi mới tiên tiến hiện đại để góp phần nâng cao chất lượng cũng như cácmáy móc, thiết bị hoạt động có hiệu quả, an toàn ổn định Ngày nay các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi trong các lĩnh vực kỹ thuật và đời sống

xã hội, đặc biệt là trong kỹ thuật tự động hóa và điều khiển từ xa

Trong hoạt động sản xuất nông nghiệp hiện nay, việc tự động hóa khâu sản xuất là rất quan trọng Nhiều năm trở lại đây, có rất nhiều ứng dụng của vi điều khiển vào hoạt động chăn nuôi, …Một trong những yếu tố của ngành nông nghiệp

là chăn nuôi gia cầm với một khâu quan trọng là ổn định trong khâu sản xuất con giống, mà cụ thể là việc ấp nở con giống từ trứng gia cầm Từ thực tế thấy được tầm quan trọng của việc ấp nở con giống từ trứng gia cầm và đặc biệt là việc ổn

định nhiệt độ lò ấp trứng Vì thế em đã lựa chọn đề tài nghiên khoa học “Ổn định nhiệt độ lò sấy”.

Trang 2

CHƯƠNG I :TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN

1.1 Giới thiệu

Ngày nay do sự phát triển của khoa học kỹ thuật đang tác động đến các lĩnh vực, đặc biệt là lĩnh vực điện tử đã tạo ra bước nhảy vọt vượt bậc trongnhiều lĩnh vực của đời sống xã hội Ngay cả trong trồng trọt, chăn nuôi cũng đã áp dụng khoa học công nghệ để đạt năng suất cao nhất Là sinh viên năm cuối với những kiến thức đã được học em mong muốn tạo ra một

hệ thống tự động áp dụng trong chăn nuôi Đó là đề tài Ổn định nhiệt độ trong lò ấp trứng Người ta thường cho trứng ấp ở nhiệt độ cố định

cho phép Tuy nhiên nhiệt độ trong lò luôn thay đổi và phụ thuộc vào nhiệt

độ môi trường Vì vậy em mong muốn được nghiên cứu thiết kế ra hệ thống

ổn định nhiệt độ lò ấp trứng nhằm tự động đo và hiển thị nhiệt độ của môi trường một thời điểm bất kỳ trong khoảng từ 0 đến 100 độ C Và ổn định khi nhiệt độ của môi trường không nằm trong một khoảng nhiệt độ nào đó

mà ta đã chọn

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

1.3 Nội dung đề tài

Trang 3

Việc thực hiện nghiên cứu đề tài ‘‘ -’’ 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

- Thiết kết mô hình thí nghiệm

- 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

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 4

CHƯƠNG II: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN VÀ CÁC

THIẾT BỊ KHÁC

2.1 Vi điều khiển AT89S52

2.1.1 Tổng quan về AT89S52

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, 3TIMER/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á

Trang 5

• 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 6

Hình 2.2 Sơ đồ khối AT89S52

2.1.2 Mô tả chân 89S52

a) Sơ đồ chân 89S52

Mặc dù các thành viên của họ 8051(ví dụ 8751, 89S52, 89C51, DS5000) đều

có các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP (Dual In-LinePakage), 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 ý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 ít hơn chocác ứng dụng yêu cầu thấp hơn Tuy nhiên vì hầu hết các nhà phát triển sử dụngchí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ảnnày

Trang 7

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

Bit Tên Chức năng chuyển đổi

Trang 8

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ủa chươngtrì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

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ứ

Trang 9

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

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àm chân cấpnguồ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 thạch anh và các tụ Tần số thạch

anh tùy thuộc vào mục đích của người sử

dụng, giá trị tụ thường được chọn là 33p

Trang 10

Địa chỉ

byte Địa chỉ bit Địa chỉ byte Địa chỉ bit

2.1.3 Tổ chức bên trong AT89S52

Bộ nhớ trong 89S52 bao gồm ROM và RAM RAM trong 89S52 bao gồmnhiề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 bankthanh 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ững vù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ứabên trong 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộ nhớ chươngtrì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:

Trang 11

RAM bên trong AT89S52 được phân chia như sau:

 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 đadụ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ằng cá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 bankthanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7 Sau khi khởi độngthì 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 thanh ghiđược truy xuất bởi các thanh ghi R0 đến R7 Viêc thay đổi bank thanh ghi đượcthực hiện thông qua thanh ghi từ trạng thái chương trình (PSW)

Trang 12

d) 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 RAM trên chip

vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình vàthanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp) Cũng như R0đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special FunctionRegister) ở 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 trình (PSW: Program Status Word)

PSW4 RS1 D4H Register Bank Select 1

PSW.3 RS0 D3H Register Bank Select 0

00=Bank 0; address 00H÷07H01=Bank 1; address 08H÷0FH10=Bank 2; address 10H÷17H11=Bank 3; address 18H÷1FH

Chức năng từng bit trạng thái chương trình

Trang 13

- 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ượclại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn

- 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ả 4 bit thấp nằmtrong 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 khi reset

hệ thống và được thay đổi bởi phần mềm khi cần thiết

Trang 14

Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập Parity chẵn vớithanh ghi A Sự đếm các bit 1 trong thanh ghi A cộng với bit Parity luôn luôn chẵ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ạothà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ủa Port nối

tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm tra bit Parity sau khi 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óa chươ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ệc tạ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.

Trang 15

Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụ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:

Có 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à đượccho 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ưutrong thanh ghi IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phépchọ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)

tại ngắt ngoài 0

Tóm tắt thanh ghi IP

Trang 16

 Nếu 2 ngắt xảy ra đồng thời thì ngắt nào có nào có mức ưu tiên cao hơn

sẽ được phục vụ trước

 Nếu 2 ngắt xảy ra đồng thời có cùng mức ưu tiên thì thứ tự ưu tiên đượcthực hiện từ cao đến thấp như sau: ngắt ngoài 0 – timer 0 – ngắt ngoài 1 – timer 1 –cổng nối tiếp – timer 2

 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ạymột chương trình khác có mức ưu tiên cao hơn

- Cho phép và cấm ngắt:

Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE (Interrupt Enable: cho phép ngắt) ở địa chỉ 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.2 EX1 AAH Cho phép ngắt ngoài 1

IE.1 ET0 A9H Cho phép ngắt từ Timer 0

Trang 17

IE.0 EX0 A8H Cho phép ngắt ngoài 0

Trang 18

Đặc điểm chính của DS18B20 như sau:

+ Lấy nhiệt độ theo giao thức 1 dây (1wire)

+ Cung cấp nhiệt độ với độ phân giải config 9,10,11,12 bit, tùy theo sử dụng Trong trường hợp không config thì nó tự động ở chế độ 12 bit

Thời gian chuyển đổi nhiệt độ tối đa là 750ms cho mã hóa 12 bit

+Có thể đo nhiệt độ trong khoảng -55 -> +125°C Với khoảng nhiệt độ là -10°C to +85°C thì độ chính xác ±0.5°C,±0.25°C ,±0.125°C,±0.0625°C theo số bít config.+ Có chức năng cảnh báo nhiệt khi nhiệt độ vượt ngưỡng cho phép Người dùng có

Trang 19

thể lập trình chức năng này cho DS18B20 Bộ nhớ nhiệt độ cảnh báo không bị mất khi mất nguồn vì nó có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (on chip), giá trị nhị phân được khắc bằng tia laze.

+ Cam bien nhiet do DS18B20 có mã nhận diện lên đến 64-bit, vì vậy bạn có thể kiểm tra nhiệt độ với nhiều IC DS18B20 mà chỉ dùng 1 dây dẫn duy nhất để giao tiếp với các IC này

Với DS18B20 bạn hoàn toàn có thể tạo cho mình mạch cảm biến nhiệt độ theo ý muốn

+ Điện áp sử dụng : 3 – 5.5 V

+ Dòng tiêu thụ tại chế độ nghỉ rất nhỏ

2.2.2 Lấy nhiệt độ với ds18b20

a Tìm hiểu về các lệnh ROM liên quan đến DS18b20

- READ ROM (33h)

Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định tên linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất

cả các thiết bị tớ cùng đáp ứng

- MATCH ROM (55h)

Lệnh này được gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820 cùng nối vào Chỉ có DS1820 nào có 64 bit trên ROM trung khớp với chuỗi 64 bit vừa được gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo Còn các cảm biến DS1820 có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset Lệnh nàyđược sử dụng cả trong trường hợp có một cảm biến một dây, cả trong trường hợp

có nhiều cảm biến một dây

- SKIP ROM (CCh)

Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của

Trang 20

DS1820 mà không cần gửi chuỗi mã 64 bit ROM Như vậy sẽ tiết kiệm được thời gian chờ đợi nhưng chỉ mang hiệu quả khi chỉ có một cảm biến.

- SEARCH ROM (F0h)

Lệnh này cho phép bộ điều khiển bus có thể dò tìm được số lượng thành viên tớ đang được đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một chu trình dò tìm

- ALARM SEARCH (ECh)

Tiến trình của lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơngiá trị TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được đặt trên thanh ghi trong bộ nhớ của cảm biến

Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địa chỉ cho các cảm biến một dây đang được đấu vào bus, thiết bị chủ sẽ đưa ra cáclệnh chức năng DS1820 Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820 khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn Các lệnh chức năng có thể được mô tả ngắn gọn như sau:

- WRITE SCRATCHPAD (4Eh)

Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820 Byte đầu tiên được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vàothanh ghi TL (byte 3 của bộ nhớ nháp) Dữ liệu truyền theo trình tự đầu tiên là bit

có ý nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần Cả hai byte này phải được ghi trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuấthiện

- READ SCRATCHPAD (BEh)

Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp Quá trình đọc bắt đầu từ

Trang 21

bit có ý nghĩa nhấy của byte 0 và tiếp tục cho đến byte rhứ 9 (byte 8 - CRC) Thiết

bị chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu như chỉ có một phần của dữ liệu trên bộ nhớ nháp cần được đọc

- READ POWER SUPPLY (B4h)

Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp nguồnnhư thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu

và bằng 1 nếu cấp nguồn qua một đường dẫn riêng

b Cách config độ phân giải cho ds18b20

Sơ đồ bộ nhớ của ds18b20

Trang 23

Các byte thứ 5 của bộ nhớ đệm có chức năng đăng ký cấu hình (config) cho

ds18b20, và các bít được tổ chức như sau:

Các bit từ 0 đến 4 luôn được đọc giá trị là 1, bít số 7 luôn được đọc giá trị là 0 Cấuhình độ phân giải cho ds18b20 được quyết định bởi R1 và R0 ta có bảng thiết lập như sau

c Sơ đồ kết nối cảm biến nhiệt ds18b20

- Sơ đồ khi sử dụng một cảm biến

Trang 25

- Sơ đồ khi mắc nhiều cảm biến (Chúng ta

cũng chỉ cần 1 dây để lấy mẫu nhiệt độ)

d Đọc nhiệt độ

Khi bắt đầu chuyển đổi nhiệt độ thì chân DQ sẽ được kéo xuống mức thấp và khi chuyển đổi xong thì ở mức cao.Như vậy ta sẽ căn cứ vào hiện tượng này để xác định khi nào chuyển đổi xong nhiệt độ Lưu ý luôn phải dùng một điện trở tầm 4.7k trở lên vào chân DQ treo lên nguồn như sơ đồ mắc

Dưới đây là một ví dụ mẫu đo nhiệt độ bằng ds18b20 hiển thị LCD các bạn tham khảo sẽ hiểu rõ hơn về sử dụng cảm biến này như thế nào Đồng thời tham khảo thêm datasheet của ds18b20

Hàm đọc nhiệt đô:

Trang 26

float ds18b20_read() {

int8 busy=0, temp1, temp2;

signed int16 temp3;

float result;

onewire_reset();

onewire_write(0xCC); //Skip ROM, address all devices onewire_write(0x44); //Start temperature conversion while(busy == 0) //Wait while busy (bus is low) busy = onewire_read();

temp3 = make16(temp2, temp1);

result = (float) temp3 / 16.0;

delay_ms(200); //

return(result);

}

Kết quả:

Ngày đăng: 05/02/2017, 17:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w