Mục tiêu của đề tài này là thiết kế thiết mạch đo và điều khiển nhiệt độ.. Thiết bị đo và điều khiển nhiệt độ dùng để nhận biết nhiệt độ thời tiết hiện tại, nó có thể cảnh báo cho chún
Trang 1Nhận xét của giáo viên hướng dẫn
Trang 2
Nhận xét của cán bộ phản biện
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 3LỜI CAM ĐOAN
Đề tài nghiên cứu này giúp cho sinh viên có thể nắm vững hơn những kiến thức
đã học về dòng vi xử lý MSP430, từ đó có thể góp phần tạo nên hiệu quả hơn trong sinh hoạt và đời sống con người với nhu cầu ngày càng cao
Trong quá trình thực hiện đề tài, có thể còn nhiều thiếu sót do kiến thức và thời gian hạn chế nhưng những nội dung trình bày trong quyển báo cáo này là những hiểu biết và thành quả của em đạt được trong quá trình học tập cùng với sự hướng dẫn của thầy Trương Quốc Bảo
Em xin cam đoan rằng: những nội dung trình bày trong quyển báo cáo tiểu luận tốt nghiệp này không phải là bản sao chép từ bất kỳ công trình đã có trước nào Nếu không đúng sự thật, em xin chịu mọi trách nhiệm trước nhà trường
Cần Thơ, ngày … tháng … năm 2013
Sinh viên
Lê Nhật Trường
Trang 4Mặc dù đã hết sức cố gắng nhưng cũng không thể tránh khỏi sai sót Em rất mong nhận được sự thông cảm và nhiều góp ý từ thầy, cô và các bạn để đề tài tiểu luận tốt nghiệp được hoàn chỉnh và phát triển hơn
Trang 5MỤC LỤC
Danh mục bảng
Danh mục hình
Trang 6Today the electric and electronic devices are used in almost of our daily activities The main purpose of this assignment is design a measure and temperature control circuit using MSP430 This circuit can be applied to measure current weather temperature and warm us the dangerous temperature that is related to preassure and temperature of
a factory The device is performed by temperature sensing circuit and LCD display The control program run on MSP430 to alert when the temperature is not suitable for requirement of users The temperature device is good performant, stable The arccuracy of circuit is about ± 2 o C.
Keywords: MSP430, LCD, Temperature warning, Temperature control
Title: Design a measurement and temperature control circuit
TÓM TẮT
Ngày nay các thiết bị điện, điện tử được sử dụng hầu hết trong các sinh hoạt hằng ngày của chúng ta Mục tiêu của đề tài này là thiết kế thiết mạch đo và điều khiển nhiệt
độ Thiết bị đo và điều khiển nhiệt độ dùng để nhận biết nhiệt độ thời tiết hiện tại, nó
có thể cảnh báo cho chúng ta biết nhiệt độ nguy hiểm của một nhà máy đang hoạt động có liên quan đến áp suất và nhiệt độ Việc thiết kế được thực hiện bằng 1 mạch cảm biến và cho hiển thị nhiệt độ ra LCD Chương trình trên MSP430 để cảnh báo khi nhiệt độ không thích hợp tùy chỉnh của bạn, và hiển thị cảnh báo ra 1 đèn LED Mạch thiết kế hoạt động tốt, ổn định với độ chính xác khoảng ± 2 o C
Từ khóa: MSP430, LCD, Cảnh báo nhiệt độ, Điều khiển nhiệt độ
Tiêu đề: Thiết kế mạch đo và điều khiển nhiệt độ
CHƯƠNG 1: TỔNG QUAN
Trang 7Nội dung chính:
• Đặt vấn đề
• Lịch sử thực hiện
• Phạm vi
• Phương pháp nghiên cứu
• Ý nghĩa khoa học và thực tiễn
Điện tử đang trở thành một ngành khoa học đa nhiệm Điện tử đã đáp ứng được những yêu cầu, đòi hỏi không ngừng của các ngành, lĩnh vực khác nhau cho đến những nhu cầu thiết yếu của con người trong cuộc sống hang ngày Một trong những ứng dụng quan trọng của ngành công nghệ điện tử là kỹ thuật đo và điều khiển nhiệt độ
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ.
Kỹ thuật đo và điều khiển nhiệt độ là một ứng dụng quan trọng của ngành công nghiệp điện tử
Trang 8Xuất phát từ đó, em đã thiết kế mạch đo và điều khiển nhiệt độ, một trong những ứng dụng nhỏ của lĩnh vực điện tử.
1.3 PHẠM VI CỦA ĐỀ TÀI.
Đề tài gồm 2 phần: Đo và điều khiển nhiệt độ Để thực hiện đề tài cần giải quyết các vấn đề sau:
+ Giao tiếp giữa MSP430 với cảm biến nhiệt độ DS18B20
+ Hiển thị nhiệt độ lên màn hình LCD 16x2
Ngoài kiến thức học ở trường, sinh viên cần tìm thêm về những ứng dụng thực
tế của đề tài đang nghiên cứu, từ đó có thể phát triển đề tài để phù hợp với nhu cầu trong đời sống của con người
Trang 91.5 Ý nghĩa khoa học và thực tiễn
Với mô hình đã xây dựng, chỉ cần một số linh kiện điện tử thông dụng sinh viên
đã hoàn thành bài thực tập điện tử Có thể phát triển thêm các mạch điện tử khác nhau với mức độ phức tạp hơn nhằm giúp sinh viên tự nghiên cứu thưc tập
và nâng cao chất lượng học tập
Trang 10CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
“ MSP430 là một sự kết hợp chặt chẽ của một CPU RISC 16 bit, những khối
ngoại vi và hệ thống xung linh hoạt MSP430 đã đưa ra những giải pháp tốt cho những nhu cầu ứng dụng với nhiều phiên bản khác nhau MSP430 có một số phiên bản khác nhau như: MSP430x1xx, MSP430x2xx, MSP430x3xx, MSP430x4xx, MSP430x5xx Những đặc điểm tổng quát của họ vi điều khiển MSP430:
• Kiến trúc nguồn điện cực thấp để mở rộng tuổi thọ của pin
- 1μA duy trì RAM
- 0.8 μA chế độ xung thời gian thực
- 250 μA / MIPS tích cực
• Xử lý tín hiệu tương tự với hiệu suất cao
- 12 bit hoặc 10 bit ADC – 200ksps
- Thiết kế nhỏ gọn làm giảm lượng tiêu thụ điện và giảm giá thành
- Tối ưu hóa cho những chương trình ngôn ngữ bậc cao như C, C++
- Có 7 chế độ định địa chỉ
- Khả năng ngắt theo vector lớn
• Trong lập trình cho bộ nhớ Flash cho phép thay đổi code một cách linh hoạt, phạm vi rộng, bộ nhớ Flash còn có thể lưu lại nhật kí dữ liệu.”[3]
2.1.2 Sơ đồ và chức năng của các chân MSP430G2452
Trang 11[6]
Hình 2.1 Sơ đồ chân của MSP430G2452
Chức năng các chân của MSP430G2452
Trang 12Bảng 2.1 Chức năng các chân của MSP430G2452
Trang 13Bảng 2.2 Chức năng các chân của MSP430G2452( tiếp theo )
2.1.3 Sơ đồ các khối chức năng trong MSP430G2452
Trang 15Chân số 2 của DS18B20 là chân dữ liệu kết nối với khối xử lý tín hiệu.
Chân số 3 của DS18B20 mắc với nguồn từ 3V đến 5.5V
Một số đặc tính cơ bản của cảm biến nhiệt DS18B20:
• Sử dụng giao diện một dây nên chỉ cần một dây ra để truyền thông
• Dải đo nhiệt độ từ -55oC đến 125oC
• Thích hợp cho các ứng dụng đo lường đa điểm vì nhiều đầu đo có thể đi chung trên cùng một bus
• Đóng gói theo dạng 3 chân, vỏ TO-92
• Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng, từ 0.3V đến 5.5V một chiều
• Độ phân giải 9-12 bit do người dùng lựa chọn
• Độ chính xác 0.5oC trong khoảng nhiệt từ -10oC đến 85oC
• Dòng tiêu thụ tại chế độ nghỉ nhỏ
• Thời gian lấy mẫu và chuyển sang số nhanh, nhỏ hơn 200 ms [7]
2.2.2 Sơ đồ khối và nguyên lý hoạt động của DS18B20
Trang 16hình ở chế độ 9 bits, 10 bits, 11 bits, 12 bits Ở chế độ mặc định thì DS18B20 hoạt động ở chế độ phân giải 12 bits.
• Để bắt đầu đọ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 Conver T [44h], sau khi chuyển đổi xong thì giá trị nhiệt độ
sẽ được lưu trong hai thanh ghi nhiệt độ ở bộ nhớ scratchpad và IC trở về trạng thái nghỉ
• Giá trị nhiệt độ lưu trong bộ nhớ gồm 2 bytes – 16bits, số âm sẽ được lưu dưới dạng số bù 2
•
2.3 GIỚI THIỆU MÀN HÌNH LCD
[7]
Hình 2.5 Hình ảnh thực tế của LCD 16x2
Chức năng các chân của LCD:
1 VSS Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với
Trang 17GND của mạch điều khiển.
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này
với VCC=5V của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD.
4 RS Chân chọn thanh ghi (Register select) Nối chân RS với logic
“0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với
logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic
“1” để LCD ở chế độ đọc
6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp
Trang 18Bảng 2.3 Chức năng các chân của LCD
2.4 GIỚI THIỆU PHẦN MỀM IAR
“ IAR Embedded Workbench là chương trình biên dịch được cung cấp IAR
SYSTEMS Có 3 phiên bản: Kickstart Version – Free, Baseline Version ~ $795 và Full Version ~ $2695
• Kickstart Version – Free: Giới hạn 4Kb trong code C Không giới hạn code asm Hỗ trợ từ wed của TI
• Baseline Version ~ $795: Giới hạn 12Kb trong code C Không giới hạn code asm Hỗ trợ bởi IAR
• Full Version ~ $2695: Không giới hạn tất cả code Hỗ trợ từ IAR.”[3]
CHƯƠNG 3: THIẾT KẾ MẠCH
Nội dung chính:
• Sơ đồ khối
• Nguyên lý hoạt động của các khối
• Mạch nguyên lý và nguyên tắc hoạt động
• Lưu đồ giải thuật và chương trình điều khiển
3.1 SƠ ĐỒ KHỐI
Trang 19Khối cảm biến Khối điều khiển Khối hiển thị
Hình 2.6 Sơ đồ khối
Chi tiêt từng khối:
- Khối cảm biến: gồm 1 cảm biến nhiệt độ DS18B20 và 1 điện trở 10k.
- Khối điều khiển: gồm 1 MSP430G2452 và 1 điện trở 330 Ohm.
- Khối hiển thị: gồm 1 LCD, 1 led đơn, 1 biến trở 10k,1điện trở 330 Ohm.
3.2 NGUYÊN LÝ HOẠT ĐỘNG CỦA CÁC KHỐI
3.2.1 Khối cảm biến
Khối cảm biến: Có nhiệm vụ tiếp nhận và đưa dữ liệu vào khối xử lý tín hiệu
( P2.1) Khối này gồm 1 IC chức năng DS18B20 DS18B20 là nhiệt kế số có độ
Trang 20Chân số 1 của DS18B20 được mắc với mass.
Chân số 2 của DS18B20 là chân dữ liệu kết nối với khối xử lý tín hiệu
Chân số 3 của DS18B20 mắc với nguồn từ 3V đến 5.5V
Hình 2.7 Khối cảm biến nhiệt độ
3.2.2 Khối điều khiển
Khối điều khiển: Đảm nhận chức năng nhận tín hiệu từ khối cảm biến, xử lý biến đổi
AD sau đó hiển thị thông qua khối hiển thị Khối điều khiển gồm vi điều khiển
MSP430G2452 Vi điều khiển thuộc họ
MSP430 của Texas Instuments Có
mức điện áp nguồn từ 1.8V đến 3.3V
Vi điều khiển có 16 ngõ I/0, 2 chân
nguồn 1 chân test và 1 chân reset
P1.1/TA0 14
P1.0/TACLK 13
P1.3/TA2
17
P1.7/TA2/TDO/TDI 20
P1.6/TA1/TDI/TCLK 19
P1.5/TA0/TMS 18
XIN/P2.6/CA6
5U1
Trang 21Hình 2.8 Khối điều khiển
3.2.3 Khối hiển thị
Khối hiển thị: Có chức năng hiển thị nhiệt độ đo được bởi khối cảm biến Khối
có 1 LCD nhận dữ liệu từ khối điều khiển.
Trang 22Hình 2.9 Khối hiển thị LCD 3.3 MẠCH NGUYÊN LÝ VÀ NGUYÊN TẮC HOẠT ĐỘNG
P2.5/CA5 3
RST/NMI 7TEST 1
P2.4/TA2/CA1 12P2.3/TA1/CA0 11P2.2/CAOUT/TA0/CA4 10P2.1/INCLK/CA3 9P2.0/ACLK/CA2 8P1.2/TA1
15 P1.1/TA0 14
P1.0/TACLK 13
P1.3/TA2
16 P1.4/SMCLK/TCK17
P1.7/TA2/TDO/TDI 20
P1.6/TA1/TDI/TCLK 19
P1.5/TA0/TMS 18
XIN/P2.6/CA6
6 XOUT/P2.7/CA75
Trang 23Nguyên tắc hoạt động:
• Khối cảm biến nhiệt nhận nhiệt độ từ môi trường bên ngoài, 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
• Khối điều khiển khi hoạt động, xác đị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
• Sau khi đọc nhiệt độ từ DS18B20, vi điều khiển sẽ gửi các lệnh đến để điều khiển LCD hiển thị nhiệt độ đọc được từ DS18B20, đồng thời vi điều khiển cũng so sánh nhiệt độ mà DS18B20 đo được với nhiệt độ ngưỡng ( do chúng ta đặt ) để điều khiển đèn Led hoạt động như mong muốn
Trang 243.4 LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN
3.4.1 Lưu đồ giải thuật
Bắt đầu
40 o C ≤ Nhiệt độ ≤ 70 o C
Đọc nhiệt độ từ DS18B20
Hiển thị nhiệt độ ra
LCD
Led tắtLed sáng
Kết thúc
Trang 253.4.2 Chương trình điều khiển
Trang 26union reg* _P1_OUT = (union reg*)0x21 ;
union reg* _P2_SEL = (union reg*)0x2E ;
#define DQIN (_P2_IN->_BIT.b1)
#define DQOUT (_P2_OUT->_BIT.b1)
#define LED (_P2_OUT->_BIT.b2)
#define RS _P1_OUT->_BIT.b5
#define EN _P1_OUT->_BIT.b4
#define DATA_4 _P1_OUT->_BIT.b3
#define DATA_5 _P1_OUT->_BIT.b2
#define DATA_6 _P1_OUT->_BIT.b1
#define DATA_7 _P1_OUT->_BIT.b0
int a,b,c,d;
//************************************void delay_18B20(unsigned int i)
Trang 28unsigned char i=0;
unsigned char dat = 0;
//=CHUONG TRINH GHI 1BYTE
void Write_byte(unsigned char dat)
{
_P2_DIRECT->_BIT.b1=1;
unsigned char i=0;
for (i=8; i>0; i )
{
DQOUT = 0;
Trang 30return( t >> 2 );
}
//********************************************************************void delay(unsigned int time)
{
while(time );
}
//******************************************************************void LCD_out(unsigned char data) //ham gui byte data cao
Trang 31if(convert==0x80)DATA_7=1;
else DATA_7=0;
}
//****************************************************void lcd_delay(int time)
void lcd_write_4bits(unsigned char dat)
Trang 32void lcd_write_cmd(unsigned char cmd)//gui lenh{
Trang 33{
unsigned char len;
if(row==1) lcd_write_cmd(0x80);// Ep con tro ve dau dong 1
else lcd_write_cmd(0xC0);// Ep con tro ve dau dong 2
len=strlen(s);// Lay do dai bien duoc tro boi con tro
while(len!=0)// Khi do dai van con
{
lcd_write_data(*s);// Ghi ra LCD gia tri duoc tro boi con tro
s++;// Tang con tro
len ;// Tru do dai
Trang 35LCDputs(" TIEU LUAN ",1);
Trang 36CHƯƠNG 4: KẾT QUẢ ĐẠT ĐƯỢC
4.2 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
Ta cần thực hiện lấy giá trị trung bình của khoảng 5 đến 10 lần đo thì giá trị dùng
để so sánh và hiển thị sẽ chính xác hơn
Kết hợp đề tài với những mạch ứng dụng khác nhằm tạo ra nhưng hệ thống hoàn chỉnh, tiện ích cho mục đích sử dụng trong cuộc sống hàng ngày
Dùng để đo đạc và hiển thị nhiệt độ
Dùng để điều khiển động cơ ( hay tải bất kì ) theo nhiệt độ, ví dụ: máy nước nóng, máy điều hòa nhiệt độ hoặc tắt/mở động cơ khi nhiệt độ quá nóng hoặc quá lạnh Ngoài ra, còn có thể sử dụng trong những trường hợp cần phải theo dõi nhiệt độ như: lò sấy, lò ấp trứng…
Trang 37TÀI LIỆU THAM KHẢO
[1] Trần Anh Tuấn Thiết kế và thi công mạch đo và điều khiển nhiệt độ.
[2] Trần Hữu Danh Giáo trình hướng dẫn thực tập vi điều khiển MSP430 Đại học