1. Trang chủ
  2. » Cao đẳng - Đại học

Đo và hiển thị nhiệt độ dùng DS18B20 8051

22 865 3

Đ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 22
Dung lượng 528 KB

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

Nội dung

RESET: (Tín hiệu vào): Dùng để khởi động lại toàn bộ hệ thống khi chương trinh đang chạy mà gặp lỗi RxD,TxD: Là hai chân nhận và truyền số liệu của cổng truyền thông nối tiếp INT0,INT1: Là hai chân nhận tín hiệu ngắt từ bên ngoài WR ( Tín hiệu ra) Cho phép viết dữ liệu tới các ngoại vi, bộ nhớ bên ngoài vi điều khiển RD: ( Tín hiệu ra) Cho phép đọc dữ liệu từ các ngoại vi,bộ nhớ dữ liệu ngoài vi điều khiển X1,X2: Dùng để tạo xung nhịp cho vi điều khiển

Trang 1

PHẦN I1.1 VI ĐIỀU KHIỂN 89C51

1.1.1 Sơ đồ khối và ý nghĩa các chân của 89c51

của bus dữ liệu hoặc là 8 bit thấp

(A0 đến A7) của bus địa chỉ ,P2 lá 8

bit cao (A8 đến A15) của bus địa chỉ

khi cần thiết mở rộng thêm các

ngoại vi, bộ nhớ ngoài cho 8051

* RESET: (Tín hiệu vào): Dùng để khởi động lại toàn bộ hệ thống khi chương

trinh đang chạy mà gặp lỗi

* RxD,TxD: Là hai chân nhận và truyền số liệu của cổng truyền thông nối tiếp

* INT0,INT1: Là hai chân nhận tín hiệu ngắt từ bên ngoài

Trang 2

* WR ( Tín hiệu ra) Cho phép viết dữ liệu tới các ngoại vi, bộ nhớ bên ngoài vi

điều khiển

* RD: ( Tín hiệu ra) Cho phép đọc dữ liệu từ các ngoại vi,bộ nhớ dữ liệu ngoài

vi điều khiển

* X1,X2: Dùng để tạo xung nhịp cho vi điều khiển

* Vcc,GND: Cấp nguồn cho vi điều khiển (Vcc=5 VDC)

* EA/VP : Là tín hiệu vào

=1: Vi điều khiển sử dụng cả bộ nhớ chương trình bên trong và bộ nhớ

chương trình bên ngoài

+ Nếu vi điều khiển có 4 Kb bộ nhớ chương trinh bên trong với địa chỉ

0000H đến 0FFFH thì bộ nhớ chương trình bên ngoai phải có địa chỉ 1000h đến 1FFFH

+ Nếu vi điều khiển co 8 Kb bộ nhớ chương trinh bên trong với địa chỉ

0000H đến 1FFFH thì bộ nhớ chương trình bên ngoai phải có địa chỉ 2000h đến FFFFH

=0: vi điều khiển chỉ sử dụng bộ nhớ bên ngoài co địa chỉ là:0000H đến FFFFH

* ALE/P: (tín hiệu ra) Là tín hiệu chốt địa chỉ dùng để phân biệt khi nào P0

là bus dữ liệu,khi nào là bus dữ liệu khi vi điều khiển cần gép nối với các ngoại vi

* ALE=1:P0 là bus địa chỉ

* ALE=1:P0 là bus dữ liệu

* PSEN : Có chức năng giống như chân Rdnhunwg chỉ dùng để đọc bộ nhớ

chương trình bên ngoài

1.1.2 Các thanh ghi đặc biệt

* IP Thanh ghi điều khiển các mức ưu tiên ngắt 0B8H

* IE Thanh ghi cho phép/ che chắn các ngắt 0A8H

Trang 3

TMOD Thanh ghi chọn chế độ Time/Counter 0,1 89H

* TCON Thanh ghi điều khiển Time/Counter 0,1 88H

*+T2CON Thanh ghi điều khiển Time/Counter 2 0C8H

TH0 Byte cao của bộ đếm trong Timer/Counter 0 8CH

TL0 Byte thấp của bộ đếm trong Timer/Counter 0 8AH

TH1 Byte cao của bộ đếm trong Timer/Counter 1 8DH

TL1 Byte thấp của bộ đếm trong Timer/Counter 1 8BH

+ TH2 Byte cao của bộ đếm trong Timer/Counter 2 0CDH

+ TL2 Byte thấp của bộ đếm trong Timer/Counter 2 0CCH

+ RCAP2H Byte cao của thanh ghi Capture/ Reload trong Timer/Counter 2 0CBH

+ RCAP2L Byte thấp của thanh ghi Capture/ Reload trong Timer/Counter 2 0CAH

* SCON Thanh ghi điều khiển cổng truyền thông nối tiếp 98H

SBUF Bộ đếm cổng truyền thông nối tiếp 99H

PCON Thanh ghi điều khiển công suất tiêu thụ của 8051 87H

Chú ý: *: Chỉ các thanh ghi truy cập theo bit

+: Các thanh ghi chỉ có trong 89c52

Vcc

Xung ngoài

Trang 4

Khi ứng dụng các Timer/ Counter ta phải cài đặt chúng ở một chế độ làm việc xác định Các thanh ghi đặc biệt được thiết kế để đặt các chế độ làm việc cho các

Timer/ Counter là TMOD (Time Mode) và TCON ( Time Control)

Thanh ghi TMOD có 2 phần tử giống nhau dùng để cài đặt chế độ cho các T/C 0 và T/C 1 tương ứng như hình vẽ

T/C = 1 Làm Counter (Đếm xung từ bên ngoài)

0

/C =

T Làm Timer ( Đếm xung hệ thống)

GATE: Khi TRx=1 (x=0,1) nếu:

+ GATE=0 thì cho phép T/C làm việc

+ GATE=1 thì T/C được phép làm việc nếu INTx=1

TF1 (TCON.7): Cờ báo bộ đếm Timer/Counter 1 bị tràn

TR1 (TCON.6): Bit cho phép T/C1 làm việc

TF0 (TCON.5): Cờ báo bộ đếm Timer/Counter 0 bị tràn

TR01 (TCON.4): Bit cho phép T/C0 làm việc

IE1 (TCON.3): Cờ báo có ngắt ngoài ở chân INT1

IT1 (TCON.2), IT0 (TCON.0):

=1: Cho phép ngắt ngoài tương ứng ngắt theo sườn xuống

=0: Cho phép ngắt ngoài tương ứng ngắt theo mức “0”

IE0 (TCON.1): Cờ báo có ngắt ngoài ở chân INT0

b Timer/Counter 2 ( chỉ có trong 89c52)

* Thanh ghi T2CON:

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCON

Trang 5

TF2 (T2CON.7): Cờ tràn được dựng khi T/C2 tràn, Cờ phải được xóa bởi phần mền

TF2 (T2CON.6): Cờ tràn được dựng khi chân T2EX có sườn xuống với điều kiện bit EXEN2 =1 để báo ngăt

TF2 (T2CON.3): Bit cho phép Reload hoặc Capture khi có sườn xuống ở chân T2EX

TF2 (T2CON.2): Bit điều khiển cho phép T/C2 chạy hoặc dừng

TF2 (T2CON.1): Lựa chọn T/C2 làm việc ở chế độ Timer hoặc Counter

• Ngắt cổng truyền thông nối tiếp: RI, TI

• Ngắt bên ngoài vi điều khiển: INT0, INT1

• Ngắt của Timer 2: TF2

* Thanh ghi cho phép ngắt IE

EA : Cho phép/cấm tất cả ngắt ngoàiET2:Cho phép/cấm ngăt Timer 2 ES: Cho phép/cấm ngắt cổng truyền thông nối tiếpET1: Cho phép/cấm ngăt Timer 1

EX1: Cho phép/cấm ngăt ngoài INT1

ET0: Cho phép/cấm ngăt Timer 0EX0: Cho phép/cấm ngăt ngoài INT0

Trang 6

1.3.2 Phân loại

LED bảy thanh có hai loại là:

Loại Anode chung

Loại Cathode chung

a Loại Anode chung

Vcc

dpcAd

e

1 2 3 4 5

9 8 7 610

gf

a

b

dp

cd

e

Trang 7

Để các thanh sáng ta cấp dòng điện ( 5 – 20mA) chảy qua các Diode tương ứng.Để hiện thị các số 0 – 9 trong hệ thập phân ta lựa chọn cách thanh cần sáng để hiện thị được các số tương ứng Như vậy ta nối chân A vào dương nguồn (5VDC) còn các chân a, b, c, d, e, f, g, và dp điều khiển chúng sao cho:

Nếu = “1” các thanh tối

Nếu = “0” các thanh sáng

b Loại Cathode chung

Đối với loại Cathode chung thì chân C nối xuống đất (0VDC) còn các chân a, b, c,

d, e, f, g, và dp điều khiển chúng sao cho:

Nếu = “1” các thanh sáng

Nếu = “0” các thanh tối

1.3.3 Bảng mã bảy thanh

Mã bảy thanh các số 0 – 9 loại Anode chung

01110

01011

01001

00100

00000

01001

C0HF9HA4HB0H99H

Vcc

g f C a b

dpcCde

1 2 3 4 5

9 8 7 610

Trang 8

10101

00100

00000

11000

00000

92H82HF8H80H90H

Trang 9

1.4 CẢM BIẾN NHIỆT ĐỘ (DS18B20)

Các đặc điểm kỹ thuật của cảm biến DS18B20 có thể kể ra một cách tóm tắt như sau:

• Sử dụng giao diện một dây nên chỉ cần có một chân ra để truyền thông.

• Có thể đo nhiệt độ trong khoảng -55 -> +125 oC.Với khoảng nhiệt độ là -10°C to +85°C thì độ chính xác ±0.5°C.Có chức năng cảnh báo nhiệt độ vược qua giá trị cho trước.

• Điện áp sử dụng : 3 – 5.5 V,có thể cấu hình mã hóa nhiệu độ từ 9 – 12 bit

số bit càng lớn thì độ chính xác cao hơn.Thời gian chuyển đổi nhiệt độ tối đa là 750ms cho mã hóa 12 bit

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 độ.

Trang 11

II.Các tập lệnh của 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 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 trên bus 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ơn giá 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ác lệ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ào thanh 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

Trang 12

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ất hiệ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ừ 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.

- COPYSCRATCHPAD (48h)

Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3) vào bộ nhớ EEPROM Nếu cảm biến được sử dụng trong chế dộ cấp nguồn l bắt đầu việc đo.

- CONVERT T (44h)

Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị phân) Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt độ 2 byte trong bộ nhớ nháp Thời gian chuyển đổi không quá 200 ms, trong thời gian đang chuyển đổi nếu thực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0.

- 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ồn như 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.

1.5 Chuẩn giao tiếp RS232

Được xây dựng phục vụ chủ yếu trong việc ghép nối điểm – điểm giữa hai thiết bị đầu cuối (DTE, Data Terminal Equipment).mặc dù tính năng hạn chế nhưng chuẩn RS232 có từ lâu đời nhất vì thế nên nó được sử dụng rộng rãi Ngày nay mỗi máy tính cá nhân có vài cổng RS232( cổng com) có thể sử dụng nối các thiết bị ngoại vi hoặc với các máy tính khác.

Ưu điểm của giao diện nối tiếp RS232

+ Khả năng chống nhiễu của các cổng nối tiếp cao

+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện

+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp

Những đặc điểm cần lưu ý trong chuẩn RS232

+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-15V Hiện nay đang được cố định trở kháng tải trong phạm vi từ-7000Ω- 3000Ω

+ Mức logic 1 có điện áp nằm trong khoảng -3V đến -15V, mức logic 0

từ -3V đến 15V

+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps ( ngày nay có thể lớn hơn)

+ Các lối vào phải có điện dung nhỏ hơn 2500pF

+ Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ hơn 7000 ôm

Trang 13

+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232 không vượt qua 15m nếu chúng ta không sử model

+ Các giá trị tốc độ truyền dữ liệu chuẩn :

50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400 56600,115200 bps

1 Quá trình dữ liệu

a) Quátrình truyền dữ liệu

Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ Do vậy nên tại một thời điểm chỉ có một bit được truyền (1 kí tự) Bộ truyền gửi một bit bắt đầu (bit start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần truyền bit tiếp the Bit này luôn bắt đầu bằng mức 0 Tiếp theo đó là các bit dữ liệu (bits data) được gửi dưới dạng mã ASCII( có thể là 5,6,7 hay 8 bit dữ liệu) Sau đó là một Parity bit ( Kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng - bit stop có thể là 1, 1,5 hay

2 bit dừng.

b) Tốc độ Baud

Đây là một tham số đặc trưng của RS232 Tham số này chính là đặc trưng cho quá trình truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay còn gọi là tốc độ bit Tốc độ bit được định nghĩa là số bit truyền được trong thời gian 1 giây hay số bit truyền được trong thời gian 1 giây Tốc độ bit này phải được thiết lập ở bên phát và bên nhận đều phải có tốc độ như nhau

( Tốc độ giữa vi điều khiển và máy tính phải chung nhau 1 tốc độ truyền bit)

Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud Tốc độ Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền.Vì một phần tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và tốc độ baud là phải đồng nhất Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,

9600, 19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thường dùng tốc độ là

19200, Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là thời gian chuyển mức logic không vượt quá 4% thời gian truyền 1 bit Do vậy, nếu tốc độ bit càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải nhỏ Điều này làm giới hạn tốc Baud và khoảng cách truyền.

c) Bit chẵn lẻ hay Parity bit

Đây là bit kiểm tra lỗi trên đường truyền Thực chất của quá trình kiểm tra lỗi khi truyền dữ liệu là bổ xungthêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi trong

Trang 14

quá trình truyền Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn lẻ.

Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ch thấy số lượng các bit "1" được gửi trongmột khung truyền là chẵn hay lẻ.

Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,,5,7,9 Nếu như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp không mắc lỗi vì thế không phát hiện ra lỗi Do đó trong kỹ thuật mã hóa lỗi này không được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi.

Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi Max232

là IC của hãng Maxim Đây là IC chay ổn định và được sử dụng phổ biến trong các mạch giao tiếp chuẩn RS232 Giá thành của Max232 phù hợp (12K hay 10K) và tích hợp trong

đó hai kênh truyền cho chuẩn RS232 Dòng tín hiệu được thiết kế cho chuẩn RS232 Mỗi đầu truyền ra và cổng nhận tín hiệu đều được bảo vệ chống lại sự phóng tĩnh điện ( hình như là 15KV) Ngoài ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ.

Trang 15

+ Đối với loại tụ có giá trị 2,2μF ta chọn tụ hóa

+ Đối với loại tụ có giá trị 3,3pF ta chọn tụ gốm

- Transzito : Chọn loại NPN có cấu tạo như sau

Chức năng Khuếch đại dòng để quét LED hiện thị

- Điện trở: Chọn loại điện trở có giá trị 10KὨ và 330Ὠ

E 5VDC

Trang 16

2.3 SƠ ĐỒ THUẬT TOÁN TOÀN BỘ CHƯƠNG TRÌNH

Thuật toán chương trình chính

SKIP ROM (CCh)

Gửi lệnh yêu cầu chuyển đổi nhiệt độ CONVERT T (44h)

RESET (44h)

Gửi lệnh yêu cầu truy cập thẳng bộ nhớ của ds18b20

SKIP ROM (CCh)

Đọc nội dung bộ nhớ nháp của ds18b20

READ SCRATCHPAD

(BEh)

Trang 17

DIGITEQU 31H ;phan thap phan

Trang 20

MOV W_L,#28h ; NGUONG THAP

MOV W_H,#3ch ; NGUONG CAO

Trang 21

CHECK_RUN: ; KIEM TRA NUT RUN

JB RUN,CHECK_STOP ;NEU PHIM RUN = '1' THI kie tra phim stop

LCALL DELAY

JNB RUN,CHECK_RUN ; chong giu phim

SETB ENA ;set bien ena

Ngày đăng: 05/04/2016, 10:25

HÌNH ẢNH LIÊN QUAN

1.1.1. Sơ đồ khối và ý nghĩa các chân của 89c51 - Đo và hiển thị nhiệt độ dùng DS18B20 8051
1.1.1. Sơ đồ khối và ý nghĩa các chân của 89c51 (Trang 1)
2.3. SƠ ĐỒ THUẬT TOÁN TOÀN BỘ CHƯƠNG TRÌNH - Đo và hiển thị nhiệt độ dùng DS18B20 8051
2.3. SƠ ĐỒ THUẬT TOÁN TOÀN BỘ CHƯƠNG TRÌNH (Trang 16)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w