Tải bản đầy đủ (.doc) (51 trang)

lập trình c cho vi điều khiển 8051 điều khiển sensor ds18b20

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (513.75 KB, 51 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA VẬT LÝ

PHẠM THỊ NHẪN

LẬP TRÌNH C CHO VI ĐIỀU KHIỂN 8051
ĐIỀU KHIỂN SENSOR DS18B20
KHÓA LUẬN TÔT NGHIỆP ĐẠI HỌC

HÀ NỘI, 2014


TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA VẬT LÝ

PHẠM THỊ NHẪN

LẬP TRÌNH C CHO VI ĐIỀU KHIỂN 8051
ĐIỀU KHIỂN SENSOR DS18B20

Chuyên ngành: Vật lý kỹ thuật
KHÓA LUẬN TÔT NGHIỆP ĐẠI HỌC

Người hướng dẫn khoa học:

Th.S Phùng Công Phi Thanh

HÀ NỘI, 2014


Lời cảm ơn


Trước tiên tôi xin chân thành cảm ơn Th.s Phùng Công Phi Khanh,
người đã hướng dẫn tận tình, hiệu quả giúp tôi hoàn thành Khóa luận.
Tôi xin cảm ơn các thầy giáo, cô giáo trong khoa Vật lý trường Đại
học Sư phạm Hà Nội 2 đã giúp đỡ tôi trong suốt quá trình học tập và làm
Khóa luận.
Tôi xin cảm ơn bạn bè, người thân luôn cổ vũ, động viên, giúp đỡ tôi
hoàn thành Khóa luận.

Hà Nội, tháng 5 năm 2014
Sinh viên

Phạm Thị Nhẫn


Lời cam đoan
Quá trình nghiên cứu khóa luận về đề tài “ Lập trình C cho vi điều khiển
8051điều khiển sensor DS18B20” tôi đã tiếp cận được một số công nghệ hiện
đại mang tính thời sự. Qua đây tôi cũng giúp tôi bước đầu làm quen với công
tác nghiên cứu khoa học.
Tôi xin cam đoan khóa luận này được hoàn thành do sự cố gắng tìm
hiểu nghiên cứu của bản thân cùng với sự hướng dẫn chỉ đạo tận tình và hiểu
quả của Th.s Phùng Công Phi Khanh cũng như các thầy cô trong khoa Vật lý
– Trường Đại học Sư phạm Hà Nội 2. Đây cũng là đề tài không trùng với các
đề tài khác.

Hà Nội, tháng 5 năm 2014
Sinh viên

Phạm Thị Nhẫn



MỤC LỤC
Trang
Phần I: Mở đầu........................................................................................ 5
Phần II: Nội dung.................................................................................... 8
Chương 1: Giới thiệu về họ vi điều khiển 8051 và AT89C52.............. 8
1.1 Tổng quan về vi điều khiển 8051........................................................ 8
1.1.1 Sơ đồ của chip 8051......................................................................... 8
1.1.2 Tổng quan về vi điều khiển 8051..................................................... 8
1.1.3 Các chân........................................................................................... 9
1.2 Tìm hiểu vi điều khiển AT89C52...................................................... 12
1.2.1 Cấu tạo............................................................................................. 13
1.2.2 Cấu trúc của port xuất/nhập............................................................. 14
1.2.3 Bộ nhớ ngoài................................................................................... 15
1.2.4 Hoạt động Reset.............................................................................. 16
1.2.5 Hoạt động định thời......................................................................... 17
1.2.6 Một số hoạt động khác.................................................................... 19
Chương 2: Cảm biến nhiệt DS18B20 và màn hình hiển thị Led......... 20
2.1 Tổng quan............................................................................................ 20
2.1.1 Cấu tạo ............................................................................................. 20
2.1.2 Lấy nhiệt với DS18B20.................................................................... 21
2.2 Giao tiếp với led 7 đoạn...................................................................... 24
2.2.1 Các khái niệm cơ bản....................................................................... 24
2.2.2 Kết nối với vi điều khiển.................................................................. 25
Chương 3: Ngôn ngữ lập trình C trong vi điều khiển 8051................. 27
3.1 Ngôn ngữ C cho vi điều khiển............................................................. 27
3.1.1 Giới thiệu ngôn ngữ C...................................................................... 27
3.1.2 Ngôn ngữ C...................................................................................... 28



3.2 Cấu trúc chương trình C...................................................................... 31
3.2.1 Cấu trúc chương trình....................................................................... 31
3.2.2 Chỉ thị tiền xử lý............................................................................... 32
3.2.3 Chú thích trong chương trình........................................................... 34
3.3 Các lệnh cơ bản trong C...................................................................... 34
Chương 4: Phần thực nghiệm................................................................ 36
4.1 Mục đích, yêu cầu thiết kế................................................................... 36
4.2 Thiết kế ............................................................................................... 36
4.3 Sơ đồ mạch điện.................................................................................. 38
4.4 Thiết kế phần mềm.............................................................................. 39
4.5 Một số hình ảnh nhiệt độ thu được từ mạch mô phỏng....................... 42
Phần III: Kết luận................................................................................... 43
Tài liệu tham khảo
Phụ lục


PHẦN I: MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay những ứng dụng của vi điều khiển đã đi sâu vào đời sống sinh
hoạt và sản xuất của con người. Thực tế hiện nay là hầu hết các thiết bị điện
dân dụng hiện nay luôn có sự góp mặt của vi điều khiển và vi xử lý. Ứng dụng
vi điều khiển trong thiết kế hệ thống làm giảm về kích thước, khối lượng, giảm
chi phí thiết kế và hạ giá thành sản phẩm đồng thời nâng cao tính ổn định của
thiết bị và hệ thống. Trên thị trường có rất nhiều vi điều khiển, trong đó có thể
kể đến đó là họ 8051 của Intel, 68 HC11 của Motorola, Z80 của hãng Zilog, Pic
của hãng Microchip, H8 của Hatachi,...
Việc phát triển ứng dụng các hệ vi điều khiển đòi hỏi những hiểu biết cả về
phần cứng lẫn phần mềm, nhưng cũng chính vì vậy mà các hệ vi xử lý được sử
dụng để giải quyết những bài toán rất khác nhau. Tính đa dạng của các ứng dụng
phụ thuộc vào lựa chọn các hệ vi xử lý cụ thể cũng như vào kỹ thuật lập trình.

Hiện nay các bộ vi điều khiển có mặt trong rất nhiều thiết bị điện tử hiện đại
như là đầu đĩa CD, máy thu hình, máy ghi hình, dàn âm thanh HIFI, bộ điều
khiển nhiệt độ dùng trong hệ thống công nghiệp. Lĩnh vực ứng dụng các hệ vi xử
lý cũng rất rộng lớn: từ nghiên cứu khoa học, truyền dữ liệu đến công nghiệp,
năng lượng, giao thông và y tế,...
Tùy theo kinh nghiệm và mức độ thông thạo mà chúng ta có thể sử dụng
các ngôn ngữ khác ngoài hợp ngữ như: C, C++, Visual basic để có những
chương trình chất lượng cao hơn.

5


Vì vậy mà sau một thời gian học tập và nghiên cứu, chúng tôi đã lựa chọn
và nghiên cứu đề tài:
“Lập trình C cho vi điều khiển 8051điều khiển sensor DS18B20”
2. Mục đích nghiên cứu
Tìm hiểu về vi điều khiển.
3. Đối tượng nghiên cứu
Họ vi điều khiển 8051.
4. Phạm vi nghiên cứu
Nghiên cứu họ vi điều khiển 8051.
Tìm hiểu về AT89C52.
Sensor DS18B20, màn hình hiển thị led.
Ngôn ngữ lập trình C.
5. Nhiệm vụ nghiên cứu
Tìm hiểu tổng quan về vi điều khiển 8051.
Lập trình C trong vi điều khiển 8051.
Tìm hiểu về DS18B20 và led 7 đoạn.
6. Phương pháp nghiên cứu
Sử dụng phương pháp nghiên cứu lý thuyết kết hợp với thực nghiệm.


6


7. Cấu trúc khóa luận
Chương 1: Giới thiệu về vi điều khiển 8051và AT89C52. Trong đó giới
thiệu tổng quan về sơ đồ khối của chíp 8051, các chân của nó và
tìm hiểu về cấu tạo, hoạt động định thời, hoạt động reset của
AT89C52.
Chương 2: Cảm biến nhiệt DS18B20. Cấu tạo, một số đặc điểm của
DS18B20, cách lấy nhiệt độ và đọc nhiệt độ của DS18B20.
Chương 3: Ngôn ngữ lập trình C trong vi điều khiển 8051. Trình bày về
ngôn ngữ C, kiểu dữ liệu, cấu trúc chương trình C và một số câu
lệnh C.
Chương 4: Phần thực nghiệm. Thiết kế và mô phỏng mạch đo nhiệt độ dùng vi
điều khiển AT89C52 và sensor DS18B20 hiển thị trên led 7 đoạn.

7


PHẦN II: NỘI DUNG
Chương 1: GIỚI THIỆU VỀ HỌ VI ĐIỀU KHIỂN 8051
VÀ AT89C52
1.1 Tổng quan về vi điều khiển 8051
1.1.1 Sơ đồ khối của chíp 8051

Hình 1.1. Tổng quan về họ vi điều khiển 8051
1.1.2 Tổng quan về vi điều khiển 8051
- 4KB ROM
- 128 byte RAM

- 4 port xuất nhập (I/O port) 8 – bit.
- 2 bộ định thời 16 – bit.
8


- Mạch giao tiếp nối tiếp.
- Không gian nhớ chương trình (mã) ngoài 64K.
- Không gian nhớ dữ liệu ngoài 64K.
- Bộ xử lý bit (thao tác trên các bit riêng rẽ).
- 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit.
- Nhân/chia trong 4µs.
1.1.3 Các chân (pinout)
Chip 8051 có 40 chân, 32 trong 40 chân này làm nhiệm vụ xuất/nhập, tuy
nhiên 24 trong 32 đường này có 2 mục đích. Mỗi một đường có thể hoạt động
xuất/nhập hoặc hoạt động như một đường điều khiển hoặc hoạt động như một
đường địa chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp. 32 chân đó được chia làm 4
port – 8 bit. 8 đường cho mỗi port có thể được xử lý như một đơn vị giao tiếp với
các thiết bị song song như máy in, bộ biến đổi D – A,vv..., hoặc mỗi đường có
thể hoạt động độc lập giao tiếp với một thiết bị đơn bit như chuyển mạch, LED,
cuộn dây, động cơ...
1.1.3.1 Port 0
Port 0 (từ chân 32 đến chân 39 trên 8051) có hai công dụng. Các chân của
port 0 được kí hiệu P0.0, P0.1,..., P0.7. Trong các thiết kế có tối thiểu thành
phần, port 0 được sử dụng làm nhiệm vụ xuất/nhập. Trong các thiết kế lớn hơn
có bộ nhớ ngoài, port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp.

9


1.1.3.2 Port 1

Port 1 có một công dụng là xuất/nhập (các chân từ 1 đến 8 của chip 8051).
Các chân của port 1 được kí hiệu là P1.0, P1.1,..., P1.7 và được dùng để giao tiếp
với các thiết bị bên ngoài khi có yêu cầu chúng chỉ để sử dụng để giao tiếp với
các thiết bị ngoại vi.
1.1.3.3 Port 2
Port 2 (các chân từ 21 đến 28) có hai công dụng, hoặc làm nhiệm vụ
xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16 bit cho các thiết kế có bộ nhớ
chương trình ngoài hoặc các thiết bị nhiều hơn 256 byte bộ nhớ ngoài dữ liệu.
1.1.3.4 Port 3
Port 3 (các chân từ 10 đến 17 của chip 8051) có hai công dụng. Khi không
hoạt động xuất/nhập, các chân của port 3 có nhiều chức năng riêng (mỗi chân có
chức năng riêng liên quan đến các đặc trưng cụ thể của 8051).
Bảng 1.1- Chức năng các chân của port 3 và chân P1.0 và P1.1 của port 1
Bit

Tên

Địa chỉ bit

Chức năng

P3.0

RxD

B0H

Chân nhận dữ liệu của port nối tiếp

P3.1


TxD

B1H

Chân phát dữ liệu của port nối tiếp

P3.2

INT0

B2H

Ngõ vào ngắt ngoài 0

P3.3

INT1

B3H

Ngõ vào ngắt ngoài 1

P3.4

T0

B4H

Ngõ vào của bộ định thời/đếm 0


P3.5

T1

B5H

Ngõ vào của bộ định thời/đếm 1

P3.6

WR

B6H

Điều khiển ghi bộ nhớ dữ liệu ngoài
10


P3.7

RD

B7H

Điều khiển đọc bộ nhớ dữ liệu ngoài

P1.0

T2


90H

Ngõ vào của bộ nhớ định thời/đếm 2

P1.1

T2EX

91H

Nạp lại/thu nhận của bộ định thời 2

1.1.3.5 Các chân cho phép của bộ nhớ chương trình
8051 cung cấp cho ta 4 tín hiệu điều khiển bus. Tín hiệu cho phép bộ nhớ
chương trình

(program storeenable) là tín hiệu xuất trên chân 29. Đây là

tín hiệu điều khiển cho phép ta truy xuất bộ nhớ chương trình ngoài. Chân này
thường nối với chân cho phép

(output enable) của EPROM (hoặc ROM) để

cho phép đọc các byte lệnh.
1.1.3.6 Chân cho phép chốt địa chỉ ALE
8051 sử dụng chân 30, chân xuất tín hiệu cho phép chốt địa chỉ ALE
(address latch enable) để giải đa hợp (demultiplexing) bus dữ liệu và bus địa chỉ.
Khi port 0 được sử dụng làm bus địa chỉ (byte thấp của địa chỉ 16 bit) vào một
thanh ghi ngoài trong suốt


đầu của chu kỳ bộ nhớ (memory cycle). Sau khi

điều này đã thực hiện, các chân của port 0 sẽ xuất/nhập dữ liệu hợp lệ trong suốt
thứ hai của chu kỳ bộ nhớ.
Tín hiệu ALE có tần số bằng

tần số của mạch dao động bên trong chip

điều khiển và có thể được dùng làm xung clock cho phần còn lại của hệ thống.
11


Nếu mạch dao động có tần số 12 MHz, tín hiệu ALE có tần số 2 MHz. Ngoài hệ
duy nhất là thời gian thực thi lệnh MOVX, một xung ALE sẽ bị bỏ qua. Chân
ALE còn được dùng để nhận xung ngõ vào lập trình cho EPROM trên chip đối
với các phiên bản của 8052 có EPROM này.

1.1.3.7 Chân truy xuất ngoài
Ngõ vào này (chân 31) có thể được nối với 5V (logic 1) hoặc với GND
(logic 0).
Nếu chân này nối lên 5V, 8051/8052 thực thi chương trình trong

nội

(chương trình nhỏ hơn 4K/8K).
Nếu chân nối với GND (và chân

cũng ở logic 0), chương trình cần


thực thi chứa ở bộ nhớ ngoài.
Các phiên bản của EPROM của 8051 còn sử dụng chân

làm chân nhân

điện áp cấp điện 21V (Vpp) cho việc lập trình EPROM nội (nạp EPROM).
1.1.3.8 Chân RESET (RST)
Ngõ vào RST (chân 9) là ngõ vào xóa chính (master reset) của 8051 dùng
để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống.
Khi ngõ vào này được treo ở mức logic 1 tối thiểu hai chu kỳ máy, các
thanh ghi bên trong 8051 được nạp các giá trị thích hợp cho việc khởi động lại
hệ thống.

12


1.2.1.9 Các chân XTAL1 và XTAL2
Mạch dao động bên trong chip 8051 được ghép với thạch anh bên ngoài ở
hai chân XTAL1 và XTAL2 (chân 18 và chân 19). Tần số danh định của thạch
anh là 12MHz cho hầu hết các chip của họ MCS – 51 (80C31BH – 1 sử dụng
thạch anh 16 MHz bên trong, mạch dao động bên trong chip không cần thạch
anh bên ngoài).
1.2 Tìm hiểu vi điều khiển AT89C52
1.2.1 Cấu tạo
AT89C52 là một hệ vi tính 8 – bit đơn chip CMOS có hiệu suất cao, công
suất nguồn tiêu thụ thấp, và có 48Kbyte bộ nhớ RAM Flash xóa được, lập trình
được. Chip này được sản xuất dựa vào công nghệ bộ nhớ không mất nội dung, có
độ tích hợp cao của Atmel. Flash trên chip này cho phép bộ nhớ chương trình
được lập trình lại trên hệ thống hoặc bằng lập trình bộ nhớ không mất nội dung
quy ước. Bằng cách kết hợp một CPU linh hoạt 8 – bit với Flash trên một chip

đơn tinh thể. Atmel 89C52 là một bộ vi tính đơn chip mạnh cho ta một giải pháp
có hiệu quả về chi phí và rất linh hoạt với các ứng dụng điều khiển. AT89C52 có
những đặc trưng chuẩn sau:
- 8 Kbyte ROM
- 256 byte RAM
- 32 đường xuất nhập
- 3 bộ định thời (đếm) 16 – bit

13


Hình 1.2. Sơ đồ chân của chip AT89C52
Hình trên cho chúng ta sơ đồ các chân của chip AT89C52.
Các port của 89C52 (cùng các chân tương ứng) có cấu tạo và chức năng
tương tự của 8051.

14


1.2.2 Cấu trúc của port xuất/nhập
Việc ghi đến một chân của port sẽ nạp dữ liệu vào bộ chốt của port, ngõ ra
Q của bộ chốt điều khiển 1 transistor trường và transistor nối với chân của port.
Lưu ý là điện trở kéo lên (pull up) sẽ không có ở port 0 (trừ khi port này
làm nhiệm vụ của bus địa chỉ/dữ liệu đa hợp), do vậy một điện trở bên ngoài
được cần đến. Giá trị của điện trở này phụ thuộc vào đặc tính ngõ vào của thành
phần ghép nối với chân của port.

Hình 1.3. Mạch bên trong của port xuất/nhập
-


Latch: Đọc bộ chốt

-

89C52 internal bus: Bus nội của AT89C52

-

Read pull up: Kéo lên bên trong

-

Read pin: Đọc chân port

-

Port pin: Chân port

-

Port latch: Bộ chốt của port

-

Write to latch: Ghi vào bộ chốt
15


1.2.3 Bộ nhớ ngoài
Các bộ vi điều khiển cần có khả năng mở rộng các tài nguyên trên chip để

tránh hiện tượng cổ chai trong thiết kế. Cấu trúc MCS – 51 cho ta khả năng mở
rộng không gian bộ nhớ chương trình đến 64K và không gian bộ nhớ dữ liệu đến
64K. ROM và RAM ngoài được thêm vào khi cần. Các IC giao tiếp ngoại vi cũng
có thể được thêm vào để mở rộng khả năng xuất/nhập. Khi bộ nhớ ngoài được sử
dụng, port 0 không làm nhiệm vụ của port xuất/nhập, port này trở thành bus địa
chỉ (A0 – A7) và bus dữ liệu (D0 – D7) đa hợp. Ngõ ra ALE chốt byte thấp của
địa chỉ ở thời điểm bắt đầu mỗi một chu kỳ bộ nhớ ngoài. Port 2 thường được
dùng làm byte cao của bus địa chỉ.
1.2.4 Hoạt động Reset
AT89C52 được reset bằng cách giữ chân RST ở mức cao tối thiểu 2 chu kỳ
máy và sau đó chuyển về mức thấp. RST có thể tác động bằng tay hoặc tác động
khi cấp nguồn bằng cách dùng một mạch RC được trình bày như hình dưới:

(a) Reset bằng tay

(b) Reset khi cấp nguồn
Hình 1.4. Hai mạch dùng reset hệ thống
16


Reset: nút ấn reset
Manual reset: reset bằng tay
Power – on reset: reset khi cấp nguồn
1.2.5 Hoạt động định thời
Nội dung của phần này, khảo sát các bộ định thời của chip AT89C52. Ta hãy
bắt đầu từ quan điểm đơn giản về các bộ định thời thường được sử dụng cho các bộ
vi xử lý hoặc các bộ vi điều khiển. Một bộ định thời là một chuỗi flipflop với mỗi
flipflop là một mạch chia 2, chuỗi này nhận tín hiệu ngõ vào làm nguồn cung clock.
Xung clock đặt vào flipflop thứ nhất, flipflop này chia đôi tần số xung clock. Ngõ ra
của flipflop thứ hai, nguồn xung clock này cũng được chia cho 2 nên một bộ định

thời có n tầng sẽ chia tần số xung clock ở ngõ vào của bộ này cho 2 mũ n.
Ngõ ra của tầng cuối cùng làm xung clock cho một flipflop báo tràn bộ định
thời hay còn gọi là cờ tràn (overflow flag), cờ tràn này được kiểm tra bởi phần
mềm hoặc tạo ra một ngắt. Giá trị nhị phân trong các flipflop của bộ định thời là
số đếm các xung clock từ khi bộ định thời bắt đầu đếm. Thí dụ một bộ định thời
16 – bit sẽ đếm từ 0000H đến FFFFH. Cờ tràn được set bằng 1 khi xảy ra tràn số
đếm từ FFFFH xuống 0000H.

a)

Sơ đồ logic
17


b)

Giản đồ thời gian

Hình 1.5. Hoạt động của bộ định thời
Timer flipflop: các flipflop định thời
“Flag” flipflop: flipflop cờ
Count: số đếm
Flag is set on 7 – to – 0 timer overflow: cờ được set khi có tràn bộ định thời (số
đếm tràn từ 7 xuống 0).
Hoạt động của một bộ định thời đơn giản được minh họa trong hình 1.5, bộ
định thời 3 – bit. Mỗi một tầng là một D – FF kích khởi cạnh âm hoạt động như
một mạch chốt D được set bằng 1 bởi tầng cuối của bộ định thời. Giản đồ thời
gian ở hình 1.5b cho thấy tầng thứ nhất (Q 0) chia 2 tần số xung clock, tầng thứ
hai chia 4 tần số xung clock.... Số đếm (count) được ghi ở dạng thập phân và
được kiểm tra dễ dàng bằng cách khảo sát trạng thái của 3 flipflop. Các flipflop ở

hình 1. 5 là các flipflop tác động cạnh âm (nghĩa là ngõ ra của Q của các flipflop
18


đổi trạng thái theo cạnh âm của xung clock). Khi số đếm tràn từ 1112 xuống
0002, ngõ ra (Q2) có cạnh âm (1

0) làm cho trạng thái của flipflop cờ đổi từ 0

lên đến 1 (ngõ vào D của flipflop này luôn ở logic 1).
Bộ định thời được sử dụng trong hầu hết các ứng dụng hướng điều khiển và
AT89C52 có 3 bộ định thời 16 – bit, bộ định thời thứ nhất và thứ hai có bốn chế
độ hoạt động, bộ định thời thứ 3 có ba chế độ hoạt động, các bộ định thời được
dùng để:
a) Định thời trong khoảng thời gian
b) Đếm sự kiện
c) Tạo tốc độ baud cho port nối tiếp của chip AT89C52
1.2.6 Các chế độ và hoạt động khác của AT89C52
Ngoài các tổ chức, hoạt động nêu ở trên thì AT89C52 còn có một số chế độ,
hoạt động khác như: các chế độ định thời, cờ tràn, khởi động, dừng và điều khiển
các bộ định thời, hoạt động ngắt, xử lý ngắt.

19


Chương 2
CẢM BIẾN NHIỆT DS18B20 VÀ MÀN HÌNH HIỂN THỊ LED
2.1 Tổng quan
2.1.1 Cấu tạo
DS18B20 là IC cảm biến nhiệt độ, chỉ bao gồm 3 chân nhỏ gọn, đóng

gói dạng TO-92.

Hình 2.1. Cấu tạo của DS18B20
20


Đặ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
độ là

C đến

C thì độ chính xác

C

C. Với khoảng nhiệt
C,

C,

C,

C, theo số bit config lần lượt là 9, 10, 11, 12 bit.
+ 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ó 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.
+ Cảm biến nhiệt độ DS18B20 có mã 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.1.2 Lấy nhiệt độ với DS18B20
2.1.2.1 Tìm hiểu về các lệnh Rom liên quan đến DS18B20
21


READ ROM (33h)
Cho phép đọc ra 8 byte mã đã khắc bằng laze trên ROM, bao gồm: 8 bit mã
định tên linh kiện (10h), 48 bit xuất xưởng, 8 bit kiểm tra CRC.
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 DS18B20 cụ thể khi trên bus có nhiều cảm biến
DS18B20 cùng nối vào. Chỉ có DS18B20 nào có 64 bit trên ROM trùng 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.
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 DS18B20 mà không cần gửi chuỗi mã 64 bit ROM.
SEARCH ROM (F0h)
Lệnh này cho phép bộ điều khiển điều khiển dò tìm được số lượng thành
viên tới đang được đánh dấ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
DS18B20 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 DS18B20. Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và
22


ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS18B20, 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 DS18B20. 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). 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ấ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ất của byte 0 và tiếp tục cho đến byte thứ 9
(byte 8 – CRC).
- Copy scratchpad (48h)
Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3) vào
nhớ EEPROM. Nếu cảm biến được sử dụng trong chế độ cấp nguồn 1 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 không quá 200ms, 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)

23


×