Tải bản đầy đủ (.docx) (31 trang)

THIẾT KẾ MẠCH GIÁM SÁT TRẠNG THÁI NHIỆT ĐỘ SỬ DỤNG CẢM BIẾN DS18B20 HIỂN THỊ MÀN HÌNH LCD VÀ TRUYỀN THÔNG DỮ LIỆU GIAO TIẾP VỚI MÁY TÍNH

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 (1.23 MB, 31 trang )

MỤC LỤC
MỤC LỤC.................................................................................................................... 1
LỜI MỞ ĐẦU..............................................................................................................3
CHƯƠNG I – CƠ SỞ LÝ THUYẾT CỦA ỨNG DỤNG..........................................4
1.1. Tổng quan về cấu trúc phần cứng KIT easyAVR V7.......................................4
1.1.1. Nguồn điện kép............................................................................................4
1.1.2. Vi điều khiển được hỗ trợ............................................................................4
1.1.3. Xung clock...................................................................................................5
1.1.4. Lập trình on-board......................................................................................5
1.1.5. Phần mềm lập trình.....................................................................................5
1.1.6. UART qua RS-232.......................................................................................5
1.1.7. USB UART..................................................................................................5
1.1.8. Đầu nối máy chủ mikroBUS........................................................................6
1.1.9. Nhóm đầu vào / đầu ra................................................................................6
1.1.10. LCD 16x2..................................................................................................6
1.1.11. GLCD 128X64...........................................................................................7
1.1.12. Bảng điều khiển cảm ứng..........................................................................7
1.1.13. Hệ thống 4 LED 7 thanh............................................................................7
1.1.14. DS1820 - Cảm biến nhiệt độ số.................................................................8
1.1.15. LM35 - Cảm biến nhiệt độ tương tự..........................................................8
1.1.16. Đầu vào ADC............................................................................................8
1.1.17. I2C EEPROM............................................................................................9
1.1.18. Piezo Buzzer..............................................................................................9
1.2. Tổng quan về khối truyền thông UART...........................................................9
1.2.1. Các thông số cơ bản trong truyền nhận UART..........................................10
1.2.2. Thanh ghi..................................................................................................10
1.2.3. Sử dụng UART...........................................................................................12
1.3. Các khối ngoại vi..............................................................................................12
1.3.1. IC DS18B20..............................................................................................12
1.3.1.1. Chuẩn one – wire................................................................................13
1.3.1.2. Thanh ghi dữ liệu................................................................................13


1.3.1.3. Bộ nhớ và thanh ghi............................................................................14

1


1.3.1.4. Trao đổi dữ liệu giữa vi điều khiển và DS18B20.................................15
1.3.1.5. Cách đọc giá trị nhiệt độ.....................................................................16
1.3.2. LCD (Liquid Crystal Display)...................................................................17
1.3.2.1. Sơ đồ chân..........................................................................................18
1.3.2.2. Thanh ghi và tổ chức bộ nhớ...............................................................19
1.3.2.3. DDRAM..............................................................................................19
1.3.2.4. CGROM..............................................................................................20
1.3.2.5. CGRAM..............................................................................................20
1.3.2.6. Các chân điều khiển LCD...................................................................20
1.3.2.7. Tập lệnh của LCD...............................................................................21
1.3.2.8. Giao tiếp 8 bit và 4 bit........................................................................22
1.3.3. Phím bấm (Button)....................................................................................22
CHƯƠNG II – THIẾT KẾ ỨNG DỤNG VÀ GIẢI THUẬT PHẦN MỀM...........23
2.1. Nguyên lý thiết kế ứng dụng và thiết kế phần cứng.......................................23
2.1.1. Khối xử lí trung tâm..................................................................................23
2.1.2. Khối phím bấm..........................................................................................24
2.1.3. Khối hiển thị..............................................................................................24
2.1.4. Khối cảm biến nhiệt độ..............................................................................25
2.2. Thuật toán thực hiện........................................................................................25
CHƯƠNG III – KẾT QUẢ ỨNG DỤNG.................................................................27
3.1. Kết quả mô phỏng............................................................................................27
3.2. Ứng dụng trong thực tế....................................................................................29
3.3. Ưu nhược điểm của mạch thiết kế..................................................................30
3.3.1. Ưu điểm.....................................................................................................30
3.3.2. Nhược điểm...............................................................................................30

KẾT LUẬN................................................................................................................31
TÀI LIỆU THAM KHẢO.........................................................................................32

2


CHƯƠNG I – CƠ SỞ LÝ THUYẾT CỦA ỨNG DỤNG
1.1. Tổng quan về cấu trúc phần cứng KIT easyAVR V7
ATmega32-là-vi-điều-khiển-mặc-định-của-EasyAVR-V7.-Có-16 thao tác MIPS,
32K byte bộ nhớ chương trình Flash, 2K byte bộ nhớ SRAM và 1K byte của bộ nhớ
EEPROM.-Nó-có-40-chân-với-32-chân-I/O,-bộ-chuyển đổi Analog-to-Digital 10-bit
với tối đa 8 kênh (ADC), hai bộ xử lý 8-bit và một bộ đếm 16-bit, bốn kênh PWM, lập
trình-nối-tiếp-USART,-Master/Slave-SPI-và-giao diện I2C-hai-dây,-bộ-định vị 8 MHz
RC nội bộ-và-bộ-dao-động-RTC-32-KHz.-Nó-cũng-có-giao-diện-JTAG-cho lập trình
và gỡ lỗi.
1.1.1. Nguồn điện kép
KIT có sẵn nguồn điện chuyển đổi tạo ra điện áp ổn định và mức dòng điện cần
để-cấp-nguồn-cho-từng-phần-của-bảng-mạch.-Bộ-phận-cung-cấp-điện gồm hai bộ
điều chỉnh công suất: ST1S10 tạo ra VCC-5V và MC33269DT3.3 tạo ra VCC-3.3V.
Cách-cung-cấp-nguồn-cho-bảng-mạch:
- Sử dụng cáp USB.
- Sử dụng adapter.
- Sử-dụng-nguồn-điện-của-phòng-thí-nghiệm.

Hình 1.1. Đơn vị cung cấp nguồn điện kép

3


1.1.2. Vi điều khiển được hỗ trợ

Ổ-cắm-vi-điều-khiển:-Bảng-có-7-ổ-DIP.-Bo-mạch-có-thể-lập-trình-khoảng-65bộ-vi-điều-khiển-khác nhau từ AVR.
1.1.3. Xung clock
Bộ vi điều khiển AVR có thể sử dụng xung clock bên trong hoặc dùng dao động
thạch-anh-bên-ngoài.-KIT-EasyAVR-V7-chứa-một-tinh-thể-thạch-anh cho tất cả ổ
cắm vi điều khiển.-Giá-trị-của-thạch-anh-phụ-thuộc-vào-tần-số-xung clock tối đa cho
phép và ứng dụng của người dùng.
1.1.4. Lập trình on-board
MikroProg là một lập trình USB 2.0 nhanh cho phép mikroProg hỗ trợ khoảng
65-bộ-điều-khiển-AVR-trong-một-lập-trình-đơn-lẻ.-Để-bắt-đầu-sử-dụng mikroProg và
lập trình vi điều khiển chỉ cần làm theo 2 bước:
Bước 1: Cài đặt phần mềm
- Cài-đặt-trình-điều-khiển USB.
- Cài-đặt-phần-mềm-AVRFlash.Bước 2: Bật máy lên.
- Cắm-cáp-lập-trình-USB.
- Đèn-LED-LINK-sẽ-sáng-lên.
1.1.5. Phần mềm lập trình
Phần mềm AVRFlash:-Chương-trình-on-board-mikroProg-đòi hỏi phần mềm
lập

trình-đặc-biệt-AVRFlash.-Phần-mềm-này-được-sử-dụng-để-lập-trình-bộ-vi-điều

khiển AVR. Phần-mềm-có-giao-diện-và-công-nghệ-lập trình SingleClick.
1.1.6. UART qua RS-232
- UART (thu/phát không đồng bộ) là một trong những cách phổ biến nhất để
trao đổi dữ-liệu-giữa-MCU-và-các-thành-phần-ngoại vi.
- Giao-tiếp-nối-tiếp-RS-232-được-thực-hiện-thông-qua-đầu-nối SUB-D 9-pin
và môđun UART của vi điều khiển.

4



1.1.7. USB UART
Giao-tiếp-USB-UART-được-thực-hiện-thông-qua-bộ-điều-khiển-FT232RL, đầu
nối USB (CN4) và mô-đun UART-vi-điều-khiển.-Kết-nối-này được thực hiện bằng
cách sử dụng DIP switch SW10.

Hình 1.2. Hệ thống sơ đồ nối chân USB UART
1.1.8. Đầu nối máy chủ mikroBUS
Mỗi kết-nối-máy-chủ-mikroBUS-bao-gồm-hai-đầu-1x8-có-chứa-các-chân có
nhiều-khả-năng-được-sử-dụng-trong-bảng-phụ-kiện.-Có ba nhóm chân giao tiếp : SPI,
UART-và-giao-tiếp-I2C.-Ngoài-ra-còn-có-một chân cho PWM, Interrup, đầu vào
Analog, Reset và Chip Select.
1.1.9. Nhóm đầu vào / đầu ra
Các-đầu-PORT,-các-nút-PORT-và-PORT-LED-đều-nằm kế bên nhau và được
nhóm-lại-với-nhau.-Có-thêm-các-đầu-PORT-ở phía bên trái của bảng, vì vậy người
dùng-có-thể-truy-cập-vào-bất-kỳ-chân-nào từ cả hai mặt của bảng mạch.
Bộ chuyển-mạch-DIP-của-Tri-State-được-sử-dụng để kích hoạt điện trở kéo
lên hoặc-kéo-xuống-4K7-lên-bất-kỳ-cổng-nào.-Mỗi thiết bị chuyển mạch có ba trạng
thái:
- Vị-trí-giữa-vô-hiệu-hóa-chức-năng kéo lên và kéo xuống từ chân PORT.
- Vị-trí-trên-kết-nối-điện-trở trong trạng thái kéo lên đến chân chọn.

5


- Vị-trí-dưới-kết-nối-điện-trở-trong-kéo-xuống đến pin PORT đã chọn.
1.1.10. LCD 16x2
EasyAVR-V7-cung-cấp-hệ-thống-chân-nối-để-lắp-màn hình LCD 2x16 ở chế
độ 4-bit.-Khi-lắp-LCD-vào-bảng-mạch,-phải-tắt-nguồn-rồi-mới thay.


Hình 1.3. Cấu tạo chân nối màn hình LCD
1.1.11. GLCD 128X64
EasyAVR V7 cung cấp đầu nối và giao diện cần thiết để hỗ trợ GLCD với độ
phân-giải-128x64-pixel,-được-điều-khiển-bởi-bộ-điều-khiển-hiển thị KS108 hoặc bộ
điều-khiển-hiển-thị-tương-thích.-Giao-tiếp-với-mô-đun-hiển thị được thực hiện thông
qua-kết-nối-màn-hình-CN16.-Không-thể-sử-dụng cả hai màn hình đồng thời.
1.1.12. Bảng điều khiển cảm ứng
KIT-EasyAVR-V7-được-trang-bị-điều-khiển-cảm-ứng-và-đầu nối cho bảng
cảm ứng điện trở 4 dây. Bảng điều khiển cảm ứng được bật bằng SW8.5, SW8.6,
SW8.7



SW8.8.-Chúng-kết-nối-các-dòng-READ-X-và-READ-Y-của-bảng-điều

khiển cảm ứng với đầu vào analog PA0 và PA1, DRIVEA và DRIVEB với đầu ra số
PA2 và PA3 trên ổ cắm-vi-điều-khiển.-Đảm-bảo-ngắt-kết-nối-các-thiết-bị-ngoại-vi
khác, đèn LED và các điện-trở-kéo-lên-hoặc-kéo-xuống-để-không-can-thiệp-vào-tín
hiệu/dữ liệu.

6


1.1.13. Hệ thống 4 LED 7 thanh

Hình 1.4. Sơ đồ chân nối hệ thống LED 7 thanh
EasyAVR-V7-có-4-con-Led-7-thanh-và-được-kết-nối-song-song. Mỗi chữ số có
một dòng chọn số, được sử dụng để cho phép số mà dữ liệu hiện đang được gửi đi.
LED được-kết-nối-với-PORTC,-và-các-dòng-lựa-chọn-chữ-số-được-kết-nối với dòng
PA0-PA3 trên chân cắm vi điều khiển.

1.1.14. DS1820 - Cảm biến nhiệt độ số
DS1820-là-một-cảm-biến-nhiệt-độ-số-sử-dụng-giao-diện 1 dây để hoạt động.
Nó có-khả-năng-đo-nhiệt-độ-trong-khoảng-từ--55-đến 128 ° C và độ chính xác ±
0.5°C cho nhiệt-độ-trong-khoảng-từ--10-đến-85°C. Nó đòi-hỏi-nguồn điện 3V đến
5.5V để hoạt động ổn định.

Hình 1.5. Sơ đồ chân nối IC DS1820

7


EasyAVR V7 cung cấp một ổ cắm riêng (TS1) cho DS1820. Dây kết nối với vi
điều-khiển-được-kết-nối-thông-qua-chân-J18.-EasyAVR-V7-cho phép bạn thiết lập
truyền-thông-1-wire-giữa-DS1820-và-vi-điều-khiển-thông-qua-chân vi xử lí PB4 hoặc
PA7.
1.1.15. LM35 - Cảm biến nhiệt độ tương tự
EasyAVR-V7-cho-phép-bạn-lấy-các-phép-đo-tương-tự-từ cảm biến LM35 trong
khoảng-nhiệt-độ-giới-hạn-từ-+-2ºC-đến-+ 150ºC. Bảng mạch cung cấp một ổ cắm
riêng (TS2)-cho-cảm-biến-LM35-trong-bao-bì-nhựa-TO-92. EasyAVR V7 cho phép
bạn có được-các-tín-hiệu-tương-tự-từ-bộ-cảm-biến-LM35 sử dụng chân PA7 hoặc
PB4. Việc chọn một-trong-hai-đường-này được thực hiện bằng cách sử dụng chân J19.
1.1.16. Đầu vào ADC
EasyAVR V7-cung-cấp-một-giao-diện-dưới-dạng hai chiết áp để mô phỏng các
điện áp-đầu-vào-tương-tự-có-thể-được-chuyển-tới-bất-kỳ-một trong 12 chân đầu vào
tương tự-được-hỗ-trợ.-Để-kết-nối-đầu-ra của chiết áp P1 với đầu vào vi điều khiển
tương-tự-PB0,-PB2,-PD6,-PB4,-PB5-hoặc-PC3,-bạn phải đặt chân J3 ở vị trí mong
muốn.-Nếu-bạn-muốn-kết-nối-chiết-áp-P3-với-bất-kỳ-đầu-vào-vi điều khiển tương tự
PB1, PB3, PD7, PC4, PA5 hoặc PA6, đặt chân J4 ở vị trí mong muốn. Bằng cách di
chuyển-núm-chiết-áp,-bạn-có-thể-tạo-ra-các-điện-áp-từ-khoảng GND đến VCC-BRD.
1.1.17. I2C EEPROM

EasyAVR V7 hỗ trợ EEPROM nối tiếp sử dụng giao tiếp truyền thông I2C và
có bộ-nhớ-1024-byte.-I2C-là-một-kênh-đơn-nối-tiếp-đa-chủ-được sử dụng để gắn các
thiết bị-ngoại-vi-tốc-độ-thấp-vào-máy-tính-hoặc-các-hệ-thống nhúng.
1.1.18. Piezo Buzzer
EasyAVR-V7-đi-kèm-với-piezo-buzzer-có-thể-được-kết-nối

với

chân

điều

khiển vi-điều-khiển-PB1-hoặc-PD4-được-xác định bởi vị trí của chân J21. Buzzer
được điều khiển bởi-bán-dẫn-Q8.-Vi-điều-khiển-có-thể-tạo-ra-âm-thanh-bằng cách tạo
ra tín hiệu PWM-(Pulse-Width-Modulated)---một-tín-hiệu-sóng-vuông,-một chuỗi các
số không logic và các số nguyên.

8


Hình 1.6. Hệ thống âm báo
1.2. Tổng quan về khối truyền thông UART
UART-là-viết-tắt-của-Universal-Asynchronous-Receiver – Transmitter. Thường
được-sử-dụng-trong-việc-truyền-dẫn-dữ-liệu-nối tiếp giữa máy tính và các thiết bị
ngoại vi. Rất-nhiều-vi-điều-khiển-hiện-nay-đã được tích hợp UART. Như các bạn đã
biết giao tiếp-SPI-và-I2C-có-1-dây-truyền-dữ-liệu-và-1-dây được sử dụng để truyền
xung clock (SCL) để-đồng-bộ-trong-giao-tiếp.-Với-UART thì không có dây SCL, vấn
đề được giải quyết-khi-mà-việc-truyền-UART-được-dùng-giữa-2 vi xử lý với nhau,
đồng nghĩa với việc-mỗi-vi-xử-lý-có-thể-tự-tạo-ra-xung-clock-cho-chính-nó-sử-dụng.


Hình 1.7. Sơ đồ nguyên lý UART
Ở trạng thái chờ mức điện thế ở mức 1 (high). Khi bắt đầu truyền START bit sẽ
chuyển-từ-1-xuống-0-để-báo-hiệu-là-quá-trình-truyền-dữ liệu sắp xảy ra. Sau START
bit-là-đến-các-bit-dữ-liệu-D0-D7-(Có-thể-ở-mức-High-or-Low tùy theo dữ liệu). Sau
khi truyền-hết-dữ-liệu-thì-đến-Bit-Parity-để-bộ-nhận-kiểm tra tính đúng đắn của dữ
liệu truyền.-Cuối-cùng-là-STOP-bit-là-1-báo-cho-thiết-bị-là các bit đã được gửi xong.

9


Thiết bị-nhận-sẽ-tiến-hành-kiểm-tra-khung-truyền-để-đảm-báo-tính-đúng-đắn của dữ
liệu.
1.2.1. Các thông số cơ bản trong truyền nhận UART
- Baund-rate-(tốc-độ-baund):-Khoảng-thời-gian-dành-cho-1 bit được truyền.
Phải được cài đặt giống nhau ở gửi và nhận.
- Frame-(khung-truyền ): Khung truyền quy định về số bit trong mỗi lần truyền.
- Start bit: là bit đầu tiên được truyền trong 1 Frame. Báo hiệu cho thiết bị nhận
có-một-gói-dữ-liệu-sắp-đc-truyền-đến.-Bit-bắt-buộc.
- Data:-dữ-liệu-cần-truyền.-Bit-có-trọng-số-nhỏ-nhất-LSB được truyền trước
sau đó đến bit MSB.
- Parity bit : kiểm tra dữ liệu truyền có đúng không.
- Stop-bit:-là-1-hoặc-các-bit-báo-cho-thiết-bị rằng các bit đã được gửi xong.
Thiết bị nhận-sẽ-tiến-hành-kiểm-tra-khung-truyền-nhằm-đảm-bảo-tính đúng đắn của
dữ liệu.
1.2.2. Thanh ghi
Cũng như các thiết bị khác trên AVR, tất cả hoạt động và trạng thái của module
USART-được-điều-khiển-và-quan-sát-thông-qua-các-thanh-ghi-trong-vùng nhớ I/O.
Có 5 thanh ghi được thiết kế riêng cho hoạt động và điều khiển USART.
UDR:-hay-thanh-ghi-dữ-liệu,-là-1-thanh-ghi-8-bit chứa giá trị nhận được và
phát đi của USART.


UCSRA(-USART-control-and-Status-register-A)-là 1 trong 3 thanh ghi điều
khiển hoạt-động-của-module-USART.

10


UCSRB-(-USART-control-and-Status-register B) đây là thanh ghi quan trọng
điều khiển USART.

UCSRC (USART control and Status register C): thanh ghi quy định khung
truyền và-chế-độ-truyền.-Thanh-ghi-này-cùng-địa-chỉ-với-thanh ghi UBRRH (thanh
ghi dùng để xác lập tốc độ baud ). Vì thế bit 7 ( bit URSEl) là bit chọn thanh ghi. Khi
URSEl =1 thanh-ghi-này-được-chip-AVR-hiểu-là-thanh ghi điều khiển UCSRC, nếu
bit URSEl =0 thì-thanh-ghi-UBRRH-sẽ-được-sử-dụng.

1.2.3. Sử dụng UART
Để sử-dụng-module-USART-trên-AVR-phải-thực hiện 3 việc quan trọng đó là:
+ Cài đặt tốc độ baud ( thanh ghi UBRR).
+ Định-dạng-khung-truyền-(UCSRB,-UCSRC).
+-Cuối-cùng-kích-hoạt-bộ-truyền-bộ-nhận-bộ-ngắt,…
1.3.-Các-khối-ngoại vi
1.3.1. IC DS18B20
Cảm-biến-nhiệt-độ-hay-nhiệt-kế-số-DS18B20-có-những-tính-năng-như-sau:
- Theo chuẩn giao tiếp one – wire.
- Dãi-nhiệt-độ-đo-lường:-từ--55°C-đến-+125°C (-67°F to +257°F).
- Độ chính xác: ±0.5°C trong khoảng đo từ -10°C đến +85°C.
- Độ-phân-giải-9-đến-12-bit.-

11



--Mỗi-thiết-bị-có-mã-định-danh-duy-nhất-64-bit-cho-phép kết nối nhiều IC trên
cùng một đường BUS.
- Có-thể-dùng-nguồn-ký-sinh-(không-cần-cung-cấp-nguồn cho chip, chip lấy
nguồn từ tín hiệu).

Hình 1.8. Sơ đồ chân IC DS18B20
1.3.1.1. Chuẩn one – wire
One - Wire là một hệ thống bus giao tiếp với thiết bị, có tốc độ tối đa 16Kbps.
Truyền-tín-hiệu-và-nguồn-nuôi-qua-cùng-một-chân-tín-hiệu đơn. one -wire cũng
tương tự như I2C, nhưng với tốc độ truyền dữ liệu thấp và khoảng cách xa hơn ( Xa
nhất là 300m).-Nó-thường-được-sử-dụng-để-giao-tiếp-với-các-thiết-bị-nhỏ-giá rẻ như
nhiệt kế kĩ thuật số và công cụ đo thời tiết. Một mạng lưới của các thiết bị One -Wire
với một thiết-bị-điều-khiển-chính-được-gọi-là-một-MicroLAN.
Một-tính-năng-đặc-biệt-là-khả-năng-chỉ-sử-dụng-hai-dây tín hiệu: data và
GND. Để thực hiện điều này, các thiết bị one - wire bao gồm một tụ điện 800pF để trữ
điện và cung-cấp-nguồn-trong-quá-trình-đường-data-đang-hoạt-động.

12


Hình 1.9. Sơ đồ khối IC DS18B20
1.3.1.2. Thanh ghi dữ liệu
Mỗi-DS18B20-đều-có-mã-định-danh-với-độ-lớn-64-bit-duy-nhất được lưu
trong ROM.

- 8 bit-thấp-nhất-của-ROM-chứa đựng mã quy ước của họ dòng đo nhiệt độ 1
dây DS18B20 với mã là 28h.
- 48-bit-tiếp-theo-là-số-serial-duy-nhất-của-thiết-bị.

- 8-bit-cuối-cùng-mà-mã-kiểm-tra-CRC-tính-toán-từ 56 bit trước.
1.3.1.3. Bộ nhớ và thanh ghi
Bộ nhớ của DS18B20 bao gồm bộ nhớ nháp (SRAM scratchpad), thanh ghi lưu
trữ-kích-hoạt-cảnh-báo-cao-và-thấp-(TH-và-TL)-và thanh ghi cấu hình, cả hai thanh
ghi này đều trang bị bộ nhớ EEPROM. Lưu ý rằng nếu chức năng cảnh báo không
được

sử

dụng-thì-thanh-ghi-TH-và-TL-có-thể-được-sử-dụng-như-bộ-nhớ-đa-mục

đích. Byte 0 và Byte 1 của bộ nhớ nháp chứa đựng LSB và MSB của thanh ghi nhiệt
độ. Những Byte này-chỉ-có-thể đọc.
- Byte-2-và-3-truy-cập-thanh-ghi-TH-và-TL.
- Byte-4-chứng-đựng-dữ-liệu-của-thanh-ghi-cấu-hình .
- Byte-5,-6-và-7-để-dành-riêng-cho-sử-dụng-bởi thiết bị, ta không thể ghi đến

13


các byte này.
- Byte-8-chứa-đựng-mã-CRC-của-byte-0-đến-byte-7 của bộ nhớ nháp.
Dữ liệu trong các thanh ghi EEPROM không mất đi khi ngắt nguồn cấp; khi có
nguồn-cấp-lại-dữ-liệu-trong-các-thanh-ghi-này-sẻ-được-nạp-vào bộ nhớ nháp theo vị
trí byte-tương-ứng.-Dữ-liệu-này có thể nạp lại bằng lệnh từ EEPROM bằng lệnh E2
[B8h].
Thanh ghi cấu hình:

Hình 1.10. Cấu tạo thanh ghi cấu hình
Bảng 1.1. Cấu hình độ phân giải và thời gian chuyển dổi

Độ phân giải

Thời gian chuyển đổi tối đa

R1

R0

(Bit)

0

0

9

93.75ms

(tCONV/8)

0

1

10

187.5ms

(tCONV/4)


1

0

11

375ms

(tCONV/2)

1

1

12

750ms

(tCONV)

14


1.3.1.4. Trao đổi dữ liệu giữa vi điều khiển và DS18B20
a) Khởi tạo
Quá-trình-khởi-tạo-bao-gồm-1-xung-reset-do vi điều khiển master gửi đến
slave DS18B20,-sao-đó-là-xung-presence-từ-DS18B20 gửi đến vi điều khiển, để chỉ ra
sự hiện-diện-của-vi-điều-khiển-và-DS18B20. Quá trình hoạt động trao đổi dữ liệu có
thể bắt đầu.
b) Lệnh điều khiển ROM

Các lệnh này làm việc với 64 bits serial code ROM, lệnh này được phát ra sau
quá-trình-khởi-tạo.-lệnh-cho-phép-vi-điều-khiển-biết có bao nhiêu thiết bị và thiết bị
loại gì trên bus.
c) Lệnh điều khiển DS18B20
Sau khi vi điều khiển định địa chỉ thiết bị cần giao tiếp thông qua các lệnh
ROM, vi-điều-khiển-sẽ-gửi-các-lệnh-điều khiển hoạt động của DS18B20. Những lệnh
này cho phép-vi-điều-khiển-ghi-và-đọc-dữ-liệu-từ-bộ nhớ Scratchpad của DS18B20,
bắt đầu quá-trình-chuyển-đổi-nhiệt-độ-và-xác-định-chế-độ-cấp-nguồn.
Các-lệnh-cơ-bản:--SEARCH-ROM-(F0h):-Khi-hệ-thống-đươc cấp nguồn, thiết bị đóng vai trò
master-phải-xác-định-mã-ROM-của-tất-cả-các-thiết bị slave được đấu trên cùng bus,
việc làm-này-cho-phép thiết bị master xác định số lượng thiết bị salve và kiểu thiết bị.
- READ ROM (33h): 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ới cùng đáp ứng. Nó cho
phép đọc-64-bit-mã-ROM-và-không-sử-dụng-quy-trình-Search Rom.
- 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.
- SKIP ROM (CCh): Thiết bị master có thể sử dụng lệnh này để gửi đến tất cả
các-thiết-bị-slave-trên-bus-một-cách-đồng-thời mà không cần gửi mã ROM định danh
của-thiết-bị.-Lệnh-READ-SCRATCHPAD-có thể theo sau lệnh SKIP ROM khi trên
bus chỉ có một thiết bị slave. Trường hợp trên bus có-nhiều-thiết-bị-tới-nếu-ta-sử dụng

15


2 lệnh-này-sẽ-xảy-ra-xung-đột-dữ-liệu.
- 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.
1.3.1.5. Cách đọc giá trị nhiệt độ

Bảng 1.2. Bảng chuyển đổi giá trị nhiệt độ sang hệ nhị phân

- Bên trong DS18B20 sẽ có bộ chuyển-đổi-giá-trị-nhiệt-độ-sang-giá-trị-số và
được lưu trong các thanh ghi ở bộ nhớ scratchpad. Độ phân giải nhiệt độ đo có thể
được cấu hình-ở-chế-độ-9-bits,-10-bits,-11-bits, 12 bits. Ở chế độ mặc định thì
DS18B20 hoạt động ở-độ-phân-giải-12 bits.
- Để bắt đầu quá trình đọc nhiệt độ và chuyển đổi từ giá trị tương tự sang giá trị
số thì vi điều khiển gửi lệnh Convert-T-(44h),-sau-khi-chuyển-đổi-xong-thì-giá-trị
nhiệt độ sẽ được lưu trong 2 thanh ghi nhiệt độ ở bộ nhớ scratchpad và IC trở về trạng
thái nghỉ.
- Nhiệt-độ-được-lưu-bên-trong-DS18B20-đưuọc-tính-ở nhiệt độ Celcius nếu
tính ở nhiệt độ Fahrenheit cần phải xây-dựng-thêm-bảng-chuyển-đổi-nhiệt độ. Giá trị
nhiệt độ lưu trong bộ nhớ gồm-2-bytes-16-bits.-Số-âm-sẽ-được-lưu-dưới-dạng-bù-2.
- Bit cao nhất là bit dấu (S)-nếu-S=0-thì-giá-trị-nhiệt-độ-dương,-S=1-thì giá trị
nhiệt độ âm.
- Nếu cấu hình độ phân giải là 12 bits thì tất cả các bit đều được sử dụng. Nếu
độ phân-giải-11-bits-thì-bit-0-không-được-sử dụng. Tương tự nếu cấu hình là 10 bits
thì bit 1, 0 không được sử dụng. Nếu-cấu-hình-là-9-bits-thì-bit-2,-1,-0 không được sử

16


dụng.
- Nhiệt độ sau khi được lưu vào 2 thanh ghi bộ nhớ sẽ được so sánh với 2 thanh
ghi-ngưỡng-nhiệt-độ-do-người-dùng-quy-định,-nó-sẽ-không-đổi-khi-mất điện.
- Giá trị nhiệt sẽ được so sánh với thanh ghi ngưỡng. Nếu giá trị nhiệt độ đọc về
nhỏ hơn mức TL hoặc lớn hơn mức-TH-thì-cờ-báo-quá-nhiệt-được-bật-và-nó-sẽ thay
đổi quá trình đọc nhiệt độ. Vi-điều-khiển-có-thể-kiểm-ra-trạng-thái quá nhiệt bằng
Alarm Search.
1.3.2. LCD (Liquid Crystal Display)

LCD là các loại màn hình tinh thể lỏng nhỏ-dùng-để-hiển-thị-các-dòng-chữhoặc-số-trong-bảng-mã-ASCII.-LCD-được-chia-sẵn-thành-từng-ô và ứng với mỗi ô
chỉ có thể hiện được một ký tự ASCII nên loại LCD này được gọi là Text LCD. Mỗi ô
của Text LCD-bao-gồm-các-“chấm”-tinh-thể lỏng, việc kết hợp “ẩn” và “hiện” các
chấm này sẽ tạo thành-một-ký-tự-cần-hiển thị. Trong các Text LCD, các mẫu ký tự
được định nghĩa sẵn. Kích thước của Text LCD-được-định-nghĩa-bằng-số-ký-tự có thể
hiện thị trên 1 dòng và tổng-số-dòng-mà-LCD-có.-Ví-dụ-trong-đề-tài-này-là-LCD16x2.

Hình 1.11. LCD 16x2

HD44780U là bộ điều khiển cho-các-Text-LCD-dạng-ma-trận-điểm,-chip này
có thể được-dùng-cho-các-LCD-có-1-hoặc-2-dòng-hiển thị. HD44780U có 2 mode
giao tiếp là 4 bit và 8 bit. Nó chứa sẵn-208-ký-tự-mẫu-kích-thước-font-5x8-và-32-kýtự mẫu font-5x10-(tổng-cộng-là-240-ký-tự-mãu-khác-nhau).

17


1.3.2.1. Sơ đồ chân.
Các Text LCD theo chẩn HD44780U thường có 16 chân trong đó 14 chân kết
nối với bộ-điều-kiển-và-2-chân-nguồn-cho-“đèn-LED-nền”.-Thứ-tự-các-chân thường
được sắp xếp như sau:
Trong một số LCD 2 chân LED nên được đánh số 15 và 16 nhưng trong một số
trường-hợp-2-chân-này-được-ghi-là-A(Anode)-và-K(cathode).-Hình 2 mô tả cách kết
nối LCD với nguồn-mạch-điều-khiển.

Hình 1.12. Sơ đồ kết nối text LCD

Bảng 1.3. Chức năng chân nối text LCD 16x2

18



1.3.2.2. Thanh ghi và tổ chức bộ nhớ.
HD44780U có hai thanh ghi 8 bit là IR và DR. Thanh ghi IR chứa mã lệnh điều
khiển-LCD-và-là-thanh-ghi-“chỉ-ghi”-(chỉ-có-thể-ghi vào thanh ghi này mà không đọc
được nó). Thanh ghi DR chứa các-loại-dự-liệu-D0:7-của-Text-LCD-và được chọn tùy
theo các chân-điều-khiển-RS, RW. HD44780U có 3 loại bộ nhớ DDRAM, CGROM và
CGRAM. Để điều khiển hiển thị Text-LCD-chúng-ta-cần-hiểu-tổ chức và cách thức
hoạt động của các bộ nhớ này.
1.3.2.3. DDRAM
DDRAM-là-bộ-nhớ-tạm-chứa-các-ký-tự-cần-hiển thị lên LCD, gồm 80 ô được
chia thành hai-hàng,-mỗi-hàng-rộng-8-bit,-được-đánh số từ 0 đến 39 cho dòng 1; từ 64
đến 103 cho dòng-2.-Mỗi-ô-nhớ-tương-ứng-với một ô-trên-màn-hình-LCD.-Như
chúng ta biết LCD-loại-16x2-có-thể-hiển-thị-tối đa 32 ký tự, vì thế có một số ô nhớ
của DDRAM không-được-sử-dụng-làm-các-ô-hiện-thị.-Để hiểu rõ hơn-chúng ta tham
khảo hình bên dưới.

19


Hình 1.13. Tổ chức của DDRAM
Ô nhớ có địa chỉ từ 0 đến 15 và 16 ô địa chỉ từ 64 đến 79 là được hiển thị trên
LCD. Vì-thế-muốn-hiển-thị-một-ký-tự-nào-đó trên LCD chúng ta cần viết ký tự đó
vào DDRAM ở 1 trong 32 địa chỉ trên. Các-ký-tự-nằm-ngoài-32-ô-nhớ-trên-sẽ-không
đươc hiển thị, tuy nhiên vẫn không-bị-mất-đi,-chúng-có-thể-dùng-cho-các-mục-đíchkhác nếu cần thiết.
1.3.2.4. CGROM
CGROM-là-vùng-nhớ cố định chứa định nghĩa font cho các ký tự. Chip
HD44780U sẽ tự thực hiện truy xuất vùng-nhớ-này-khi-có-yêu-cầu-đọc-font để hiển
thị. Địa chỉ font-của-mỗi-ký-tự-vùng-nhớ-CGROM-chính-là mã ASCII của ký tự đó.
CGROM và DDRAM được tự-động-phối-hợp-trong-quá-trình-hiển-thị-của LCD.
1.3.2.5. CGRAM

CGRAM là vùng nhớ chứa các-symbol-do-người-dùng-tự định nghĩa, mỗi
symbol được-có-kích-thước-5x8-và-được-dành-cho ô nhớ 8 bit. Các symbol thường
được định nghĩa trước-và-được-gọi-hiển-thị-khi-cần-thiết.-Vùng này có tất cả 64 ô nhớ
nên-có-tối-đa-8-symbol-có-thể-được-định-nghĩa.
1.3.2.6. Các chân điều khiển LCD
- RS - Chân lựa chọn thanh ghi cho-phép-chọn-lựa-1-trong-2-thanh-ghi-IR-hoặc
DR để-làm-việc.-Nếu-RS=0,-thanh-ghi-IR-được-chọn-và-nếu-RS=1 thanh ghi DR
được chọn.
- R/W - Chân lựa chọn việc-đọc-và-ghi.-Nếu-R/W=0-thì-dữ-liệu-sẽ được ghi từ
bộ điều-khiển-ngoài-vào-LCD.-Nếu-R/W=1-thì-dữ-liệu sẽ được đọc từ LCD ra ngoài.
Cờ BF được dùng để báo LCD-đang-bận.-Phải-có-một-chương-trình-con tạm gọi là
wait_LCD-để-chờ-cho-đến-khi-LCD-rảnh.

20


Hình 1.14. Hoạt động của chân RS
- EN - Cho phép đo LCD hoạt động, chân này được kết nói với bộ điều khiển để
cho-phép-thao-tác-LCD.-Để-đọc-và-ghi-data-từ-LCD-chúng-ta cần tạo một “xung
cạnh xuống”-trên-chân-EN.
1.3.2.7. Tập lệnh của LCD
Danh-sách-lệnh,-các-lệnh-số-1-là-dùng thường xuyên trong lúc hiển thị LCD và
các lệnh số 2 thường chỉ-dùng-1-lần-trong-lúc-khởi-động-LCD,-riêng-lệnh Read BF
có thể dùng-hoặc-không-tùy-theo-cách-viết-chương-trình-wait_LCD.
a) Lệnh dùng thường xuyên.
- Clear-display-–-xóa-LCD:-xóa-toàn-bộ-hiển-thị-trên LCD.
- Cursor-home-–-đưa-con-trỏ-về-vị-trí-đầu-dòng-1-của-LCD.
- Set-DDRAM-address-– định vị trí con trỏ cho-DDRAM:-di-chuyển con trỏ
đến vị trí tùy ý trong DDRAM-nên-có-thể-dùng-để-chọn-vị-trí-cần-hiển-thị trên LCD.
- Write-to-CGRAM-or-DDRAM-–-ghi-dữ-liệu-vào-CGRAM-hoặc-DDRAM.

b) Lệnh thường chỉ dùng một lần.
- Entry mode set – xác lập các-hiển-thị-liên-tiếp-cho-LCD: Chỉ ra cách hiển thị
một ký tự tiếp theo 1 ký ký tự trước-đó.-Gồm-4-mode-ứng-với-4-mã lệnh nhứ sau:
+ D7:0 0x04(00000100):-hiển-thị-giảm-và-không shift.
+ D7:0 0x05(00000101): hiển thị giảm và shift.
+ D7:0 0x06(00000110):-hiển-thị-tăng-và-không-shift.+ D7:0 0x07(00000111): hiển thị tăng và shift.
- Display on/off control – xác-lập-cách-hiển-thị-cho-LCD: Lệnh này bao gồm

21


các thông số cho phép LCD-hiển-thị,-cho-phép-hiển-thị-cursor-và-mở/tắt blinking.
- Function set – xác lập chức năng cho LCD: Đây là lệnh thiết lập phuơng thức
giao-tiếp-với-LCD,-kích-thước-font-chữ-và-số-lượng-line-của LCD.
1.3.2.8. Giao tiếp 8 bit và 4 bit
- Mode 8 bit: Nếu bit DL trong lệnh-Functin-set-bằng-1-thì-mode 8 bit được
dùng. Để sử dụng mode 8 bit,-tất-cả-cac-lines-dữ-liệu-của-LCD-từ-D0-đến D7 phải
nối với một PORT của chip điều khiển bên-ngoài--như-trong-hình 3. Ưu điểm là dữ
liệu được ghi và đọc rất nhanh và đơn giản. Nhược-điểm-là-tổng-số-chân-dành cho
giao tiếp LCD quá nhiều, nếu tính luôn cả 3-chân-điều-khiển-thì-cần đến 11 đường
giao tiếp cho LCD.
- Mode 4 bit---LCD-cho-phép-giao-tiếp-với-bộ-điều-khiển ngoài theo chế độ 4
bit. Trong chế độ này chỉ có 4 chân từ D4 đến-D7-được-kết-nối-với-chip-bộ điều khiển
ngoài. Các Instruction và data 8 bit sẽ được ghi-và-đọc-bằng-cách-chia-thành-2-phần, gọi
là các Nibbles, mỗi nibble gồm 4 bit và được-giao-tiếp-thông-qua-4-chân-D7:4, nibble
cao được xử lý trước và nibble thấp sau. Ưu điểm là tối-thiểu-số-lines-dùng-cho-giao-tiếp
LCD. Nhược điểm là việc đọc và ghi từng nibble tương đối khó khăn hơn đọc và ghi dữ
liệu 8 bit.
1.3.3. Phím bấm (Button)
- Đây là loại button rất phổ biến,-cũng-như-đèn-LED, loạ i button này cũng có

các kính thước cạnh 6mm hoặc 12m. Và trong chuyên đề này sử dụng loại button
6mm. Loạ i-6mm-hay-được-dùng-trong-các-dự-án-nhỏ.-giá-thành-thì-khá-rẻ.
Loạ-i-này-tuy-là-4-chân,-nhưng-thực-chất-cũng chỉ là 2 chân.

Hình 1.15. Button 6mm và sơ đồ chân
Trạng thái logic của tất cả đầu vào số của vi điều khiển có thể được thay đổi

22


bằng cách-sử-dụng-các-nút-nhấn.

23


CHƯƠNG II – THIẾT KẾ ỨNG DỤNG VÀ GIẢI THUẬT PHẦN MỀM
2.1. Nguyên-lý-thiết-kế-ứng-dụng-và-thiết-kế phần cứng
Để ứng dụng có khả năng đo nhiệt độ môi trường, phần cứng cần có IC
DS18B20. IC DS18B20 sử dụng giao tiếp one – wire. Ưu điểm của giao tiếp này là chỉ
cần 1 dây để-truyền-tín-hiệu-và-làm-nguồn-nuôi-nên-rất-gọn-nhẹ-và-dễ-sử-dụng.
Chức-năng-hiển-thị-giá-trị-nhiệt-độ-lên-màn-hình-máy tính được thực hiện bởi
phím bấm và giao tiếp với máy tính qua chức năng UART. Phím bấm sẽ được lập trình
để-sau-mỗi-lần-nhấn-phím-thì-sẽ-xuất-giá-trị-ra-máy-tính-một-lần.

Hình-2.1.-Sơ đồ khối ứng dụng
Kết quả-cần-đạt-được:--Đã-đo-được-nhiệt-độ bằng IC DS18B20 và xuất được giá trị nhiệt độ lên
LCD.
- Đã giao-tiếp-được-giữa-KIT-và-PC-giao-tiếp-truyền-thông-UART.- Đã dùng được phím bấm để xuất giá trị đo được sang PC thông qua cổng USB
to-COM-và-hiển-thị-lên-màn-hình-máy-tính.


24


2.1.1. Khối xử lí trung tâm
Khối xử lý trung tâm sử dụng vi điều khiển-Atmega32,-có-nhiệm-vụ-đọc-giá
nhiệt độ đo được-từ-cảm-biến-DS18B20.-Sau-đó,-phân-tích, xử lý để có được kết quả
như ý muốn rồi gửi dữ liệu hiển thị lên màn hình LCD hay gửi lên máy tính khi có tín
hiệu-yêu-cầu-truyền-từ-phím-bấm.

Hình-2.2. Khối xử lý trung tâm
2.1.2. Khối phím bấm
- Có chức-năng giúp cho người sử dụng ấn phím
để cài-đặt-các-giá-trị-theo-các-chức-năng của phím bấm
là MODE, BACK, UP, DOWN.
- Khối phím bấm dùng để gửi lệnh đến cho vi điều
khiển,-vi-điều-khiển-sẽ xử lý lệnh này và cho phép xuất
giữ liệu-lên-màn-hình-máy-tính-thông qua khối truyền
thông UART.

Hình 2.3. Khối phím bấm

2.1.3. Khối hiển thị
Khối hiển thị sử dụng màn hình tinh thể lỏng LCD 16x2, có nhiệm vụ hiển thị
giá trị nhiệt-độ-đo-được-từ-IC DS18B20 sau khi qua khối xử lí trung tâm. Khối hiển
thị sử dụng một-biến-trở-có-giá-trị-4K7Ω để điều chỉnh-độ-tương-phản-trên-màn-hình
LCD.

25



×