Tiểu luận
Thiết kế hệ thống hiển thị nhiệt
độ, đồng thời kết hợp đều khiển
một số thiết bị dân dụng
MC LC
Nhn xột ca giỏo viờn hng dn
Li m u
Phn I: Dn Nhp
t vn .
Mc ớch v yờu cu.
Giụựi haùn ủe taứi.
Phn II. C s lý thuyt
Gii thiu vi x lý PIC 16f877A , cm bin nhit LM35, cỏc IC s
dng trong mch.
Phn III: Thit k v thi cụng.
Chng I: Thit k mch
S khi.
Nguyờn lý hot ng ca cỏc khi.
S nguyờn lý.
Chng II: Thi cụng mch.
Dng c s dng.
Quỏ trỡnh thi cụng.
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
……………………………………………………
Chữ ký của giáo viên hướng dẫn:
Lời Mở Đầu
Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện
tử đã ứng dụng rất nhiều trong công nghiệp. Trong lĩnh vực điều khiển, từ
khi công nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ
thuật điều khiển hiện đại có nhiều ưu điểm hơn so với việc sử dụng các
mạch điều khiển lắp ráp bằng các linh kiện rời như kích thước nhỏ, giá thành
rẻ, độ làm việc tin cậy, công suất tiêu thụ nhỏ.
Ngày nay, trong lĩnh vực điều khiển đã được ứng dụng rộng rãi trong
các thiết bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hàng ngày của con
người như các loại máy tự động, đồng hồ báo giờ, các loại đèn quang báo,
… đã giúp cho đời sống cuả chúng ta ngày càng hiện đại và tiện nghi
hơn.Với những kiến thức học được trên giảng đường, và tìm đọc trong sách
và trên mạng Internet, chúng em chọn đề tài là thiết kế hệ thống hiển thị
nhiệt độ, đồng thời kết hợp đều khiển một số thiết bị dân dụng.
PHẦN I
Dẫn Nhập
I. Đặt vấn đề.
Cùng với sự phát triển của khoa học và cơng nghệ, các thiết bị điện tử đã,
đang và sẽ tiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quả
trong hầu hết các lĩnh vực khoa học kỹ thuật cũng như trong đời sống xã hội.
Việc gia cơng, xử lý các tín hiệu điện tử hiện đại đều dựa trên cơ sở
ngun lý số. Vì các thiết bị làm việc dựa trên cơ sở ngun lý số có ưu
điểm hơn hẳn so với các thiết bị làm việc dưạ trên cơ sở ngun lý tương tự,
đặc biệt là trong kỹ thuật tính tốn.
Sự phát triển mạnh mẽ của cơng nghệ điện tử đã cho ra đời nhiều vi
mạch số cỡ lớn với giá thành rẻ và khả năng lập trình cao đã mang lại những
thay đổi lớn trong ngành điện tử. Mạch sử dụng vi đều khiển ở những mức
độ khác nhau đã đang thâm nhập trong các lĩnh vực điện tử thơng dụng và
chun nghiệp một cách nhanh chóng. Các trường kỹ thuật là nơi vi đều
khiển thâm nhập mạnh mẽ và được học sinh, sinh viên ưa chuộng do lợi ích
và tính khả thi của nó. Vì thế sự hiểu biết sâu sắc về lập trình vi đều
khiển là khơng thể thiếu đối với sinh viên ngành điện tử hiện nay. Nhu cầu
hiểu biết về lập trình và ứng dụng vi đều khiển và đặc biệt là vi đều khiển
PIC vào cuộc sống khơng chỉ riêng đối với những người theo chun ngành
điện tử mà còn đối với những cán bộ kỹ thuật khác có sử dụng thiết bị điện
tử.
II.Mục đích u cầu.
Sự cần thiết,quan trọng cũng như tính khả thi và lợi ích của mạch số
cũng chính là lý do để chọn và thực hiện đề án “thiết kế mạch hiển thị
nhiệt độ” nhằm ứng dụng kiến thức đã học về kó thuật mạch và kỹ thuật số
vào thực tế.
III.Giới hạn đề tài.
Do đều kiện còn thiếu tài liệu cũng như linh kiện để thi cơng mạch điện
nên nhóm thực hiện chỉ thiết kế mạch hiển thị nhiệt độ đơn giản ,gọn nhẹ .
PHAÀN II
Cơ SởLý Thuyết
I.VI ĐỀU KHIỂN PIC
I.1.Khái quát
PIC(Programmable Intelligent Computer ) là dòng vi điều khiển của
MICROCHIP đang được sử dụng phổ biến trong các ứng dụng dân dụng và công
nghiệp bởi những đặc tính ưu việt của nó. Hơn nữa việc lập trình cho PIC lại khá
đơn giản bởi số mã lệnh ít, có nhiều công cụ hỗ trợ lập trình bằng ngôn ngữ cấp
cao như C. Hiện tại PIC có các dòng 8bit và 16bit. Trong báo cáo này ta quan tâm
đến PIC 8 bit cụ thể là PIC16F877A - một vi điều khiển với tất cả đặc trưng cơ
bản của PIC.
Tại sao dùng PIC
Ta từng sử dụng họ 8051 và thấy được tính hữu dụng của nó qua các ứng
dụng cơ bản, đơn giản. Tuy nhiên đối với các ứng dụng phức tạp, đòi hỏi tốc độ,
mức độ tích hợp cao thì bản thân 8051 khó đáp ứng được ( hoặc ta phải đầu tư
thêm chi phí cho việc xử lí ngoại vi,…). PIC thì khác, hãy xem bảng so sánh sau :
STT Chức năng PIC16F877A AT89C51
1 I/O 5 Ports 4 Ports
2 Flash Memory 8k 4k
3 EEPROM 256bytes -
4 Timer 3 2
5 Interrupts 15 4
6 ADC 8 channel 10 bit -
7 PWM 2 -
8 Comparator 2 -
9 Instruction set 35 >100
10 Truyền thông SUART,I2C,MSSP,PSP UART
Bảng II.1: Bảng so sánh chức năng của PIC16F877A và AT89C51
Khả năng tích hợp cao của PIC mang lại sự đơn giản nhưng hiệu quả trong
thiết kế và lập trình. Tuy vậy PIC không phải là tất cả, khi làm một sản phẩm, tính
kinh tế là quan trọng, sử dụng loại vi điều khiển nào mang lại hiệu quả cao nhất là
tùy thuộc vào người thiết kế.
I.2. Cấu trúc PIC :
I.2.1 Sơ đồ khối
*Hình dưới đây minh họa một số PIC và sơ đồ chân PIC16F877A.
Hình II.1 : Một số IC PIC thông dụng
Hình II.2 : Sơ đồ chân của pic 16F877A
I/O Ports :
PIC16F877A( gọi tắt là PIC) có 5Port A,B,C,D,E với các đặc điểm cơ bản như sau
PORT A:
- 6bit
- I/O
- Ngõ vào, điện áp tham chiếu cho ADC
- Clock input
PORT B:
- 8bit
- I/O
- Ngắt ngoài
PORT C:
- 8bit
- I/O
- CCP/PWM output
- Timer Clock output
- Truyền thông
PORT D:
- 8bit
- I/O
- Truyền thông song song (network)
PORT E:
- 3bit
- Ngõ vào AD
- Truy xuất bộ nhớ ngoài(WR/RD)
Timers :
PIC có 3 timer, timer0, timer1, timer2. Tần số Clock ngõ vào lớn nhất có
thể bằng ¼ tần số thạch anh, tần số xung ngõ vào timer có thể được chia nhỏ hơn
bằng cấu hình phần mềm.
TIMER0/COUNTER
- 8 bit
- Có thể cấu hình tần số Clock ngõ vào (prescale)
- Sử dụng Clock từ Xtal hoặc Clock bên ngoài
- Ngắt sảy ra khi tràn timer ( FFh -00h)
TIMER1/COUNTER1
- 16bit
- Ngắt sảy ra khi timer tràn (FFFFh-0000h)
TIMER2/COUNTER2
- 8bit
- Thường sử dụng cho hoạt động PWM
- Có thể cấu hình tần số clock ngõ vào ( prescale)
ADC :
- ADC với độ phân giải 10 bit
- Có thể cấu hình tần số chuyển đổi, kênh chuyển đổi, điện áp tham chiếu
bằng phần mềm.
- Cấu hình ngắt khi chuyển đổi xong
Hình II.3 : Sơ đồ cấu tạo cổng ADC của Pic
I.2.2 Cấu trúc địa chỉ ô nhớ và các thanh ghi
I.3. Tập lệnh PIC:
Để lập trình cho PIC, có thể chọn những ngôn ngữ lập trình khác nhau như
ASM, CCS C, HT-PIC, pascal, basic, Khi viết bằng CCS C thì dịch ra
file.hex có dài hơn so với khi viết bằng ASM. Hai ngôn ngữ CCS C và HT-
PIC được ưa chuộng hơn cả, CCS C dễ học, gần gũi với ASM còn HT-PIC
là dạng ANSI C.
II.CẢM BIẾN NHIỆT LM35
Cảm biến nhiệt được tích hợp trong IC, là một tích hợp nhận tín hiệu nhiệt độ
chuyển thành tín hiệu điện dưới dạng dòng điện hay điện áp. Dựa vào đặc tính rất
nhạy cảm của các bán dẫn với nhiệt độ,tạo ra điện áp hoặc dòng điện tỷ lệ thuận
với nhiệt độ.đo tín hiệu điện ta biết được giá trị nhiệt độ cần đo.Sự tác động của
nhiệt độ tạo ra điện tích tự do và các lỗ trống trong chất bán dẫn.Bằng sự phá vỡ
các phân tử, bức các electron thành dạng tư do di chuyển qua vùng cấu trúc mạng
tinh thể tạo sự xuất hiện các lỗ trống.Làm cho tỷ lệ điện tử tự do và lỗ trống tăng
lên theo quy luật hàm mũ với nhiệt độ .
LM35 Là cảm biến nhiệt độ có thể hoạt động đến 150
0
c. Cứ tăng 1
0
c, điện áp ra
tăng 10mv
Các tính chất của LM35:
+chia độ trực tiếp theo
0
c
+Độ chính xác ban đầu là 1
0
c
+Trở kháng động <1Ω
+Tầm nhiệt độ rộng, đo từ 0
0
c→150
0
c
+Tần biến thiên điện áp ứng với nhiệt độ tư 0→100
0
c là 1v
LM35 có 3 chân. Chân 1(V
s
) là chân cấp nguồn dương V
cc
. Chân 2(GND) là chân
nối mass. Chân 3(V
out
) là chân xuất điện áp sau khi chuyển đổi từ nhiệt độ sang.
III.Giới thiệu về các IC sử dụng trong mạch.
III.1. IC chốt dữ liệu 74HC573:
a) Đại cương:
Là vi mạch chốt dữ liệu được dùng trong trường hợp muốn giữ lại dữ liệu
cần thiết ở ngõ ra, dùng tiết kiệm cổng xuất dữ liệu cho vi xử lý. IC có 8 ngõ
vào dữ liệu và 8 ngõ ra để xuất dữ liệu. Ngõ vào 3 trạng thái có 1 D_flip
flop để chốt, lưu giữ tín hiệu. Chân 11 ở mức cao dữ liệu được truyền qua,
khi chân 11 ở mức thấp thì dữ liệu được chốt ở lối ra cua IC. Chân OE được
nối mass.
b)Hình dáng và sơ đồ chân IC74HC573:
Hinh 4:Hình dáng và sơ đồ chân của IC 74573
c) Sơ đồ logic và bảng trạng thái.
Hình 5: Sơ đồ logic của IC 74573
Sơ đồ cấu trúc của IC74573, sự hoạt động của IC được thể hiện ở bảng sự
thật
Hình 6: Bảng trạng thái của IC74HC573
III.2. IC Hiển thị led 7segment 7447.
a. Đại cương
IC 7447 giải mã BCD sang mã Led 7 đoạn. Để IC hoạt động ta kết nối chân 16 (Vcc) với
nguồn 5 V, chân số 8 với đất. Ngõ vào có 4 chân là 7,1,2,6 tương ứng với A,B,C,D trong
đó mức ý nghĩa giảm dần từ A đến D. Kết nối các ngõ ra A,B,C,D của IC với chân out
của vi xử lý. Các chân LT, BI/RBO, RBI không cần kết nối. Nếu ta dùng Led 7 đoạn kiểu
cathod chung thì mỗi ngõ ra của IC 7447 cần kết nối với các cổng đảo trước khi đến các
chân của Led. Giải quyết điều này bằng cách sử dụng thêm IC 7404.Dễ thấy IC này được
tích hợp 6 cổng đảo.
b)Hình dáng và sơ đồ chân IC
c) Sơ đồ logic và bảng trạng thái
Đây là IC khá đơn giản dùng để chuyển tín hiệu dạng số nhị phân ở ngõ vào sang
mã 7 đoạn, dễ thấy IC này hoạt động ở tích cực mức thấp. Do đó ta có bảng chân
thực sau:
BCD inputs Segment outputs
Display
A B C D a b c d e f g
0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 1 1 0 0 1 1 1 1 1
0 0 1 0 0 0 1 0 0 1 0 2
0 0 1 1 0 0 0 0 1 1 0 3
0 1 0 0 1 0 0 1 1 1 1 4
0 1 0 1 0 0 1 0 0 1 0 5
0 1 1 0 1 1 0 0 0 0 0 6
0 1 1 1 0 0 0 1 1 1 1 7
1 0 0 0 0 0 0 0 0 0 0 8
1 0 0 1 0 0 0 1 1 0 0 9
IV. Led 7 đoạn.
Dùng để hiển thị các số thập phân, nhị phân. Có hai loại cơ bản
là: led 7 đoạn có anot chung (hình a), và led 7 đoạn có katot (hình
b) chung. Tùy theo yêu cầu mà ta sử dụng.
Ha.Led 7 đoạn Anot chung Hb. Led 7 doạn Katot chung
Phần III
Thiết Kế Và Thi Công
I.SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG
I.1. Sơ đồ khối của mạch:
I.2. Nguyên lý hoạt động :
Cảm biến LM35 quy đổi trực tiếp sự thay đổi nhiệt độ môi trường thành sự
thay đổi của điện áp.
VD: với nhiệt độ phòng là 25
0
C thì ở ngõ out của LM35 sẽ có điện áp là 250mV
Với vi đều khiển PIC 16f877A có tích hợp sẵn bộ chuyển đổi ADC, nên tín hiệu
lấy từ cảm biến được đưa trực tiếp vào vi đều khiển. PIC sẽ chuyển đ ổi giá
trị đọc được thành giá trị nhị phân. Trong mạch này ta chọn bộ ADC 10 bit. Quá
trình chuyển đổi như sau:
ADC 10 bit tương ứng giá trị là 1023
Khối Cảm
Biến LM35
PIC 16F877A
Chuyển
Đổi
ADC
Chuyển Gía Trị
Đọc Được Sang
Gía Trị Nhiệt Độ
Hiển Thị
Ra LED 7
Đoạn
Ta chọn V
EF
=5V =5000mV
Vậy 5000mV ứng với 1023 khoảng
LM35 chuyển đổi 1
0
C tương ứng với 10mV
Suy ra 5000mv tương ứng với 500
0
C
500
0
C ứng với 1023
?
0
giá trị bộ ADC đã chuyển đổi
(VALUE)
Vậy ta có công thức chuyển đổi như sau:
Độ C = (VALUE*500)/1023
Giá trị độ C được chuyển sang mã BCD và được xuất ra ngoài thông qua IC chốt
74HC573 và IC giải mã 7447 để hiển thị ra led 7 đoạn.
II. Giải thuật chương trình
II.1. Sơ đồ khối chương trình:
II.2. Chương trình giải thuật:
#include <16F877A.h>
#include <def_877a.h>
#device adc=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,
NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)
float DO_C;
BEGIN
LẤY MẪU
NHIỆT ĐỘ
CHUYỂN ĐỔI
ADC VÀ
CHUYỂN SANG
GIÁ TRỊ NHIỆT
ĐỘ
HIỂN THỊ
int16 bien,hang_don_vi,hang_chuc;
int16 led_h,led_l,value;
int8 const a[10]={0,1,2,3,4,5,6,7,8,9};
void TAO_MA_BD();
void XUAT_LED();
void BAO_DONG();
//
void main()
{
trisa = 0xFF;
trisb = 0x01;
trisd = 0x00;
// Khoi tao che do cho bo ADC trong PIC
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
delay_us(10);
// Lay mau nhiet do lan dau tien
value=read_adc();
delay_ms(10);
DO_C = (float)(VALUE * 500)/1023;
TAO_MA_BD();
// XUAT_LED();
delay_ms(100);
// Cap nhat nhiet do
while(1)
{
output_b(0x00);
value = read_adc();
delay_us(10);
DO_C = (float)(VALUE * 500)/1023;
output_d(0x00);
TAO_MA_BD();
if( led_h >=4) BAO_DONG();
if( led_h <=1) BAO_DONG();
XUAT_LED();
}
}
//======================================================
//Chuyen dang ma de xuat ra led 7 doan
void TAO_MA_BD()
{
if(DO_C >= 10) hang_chuc = 1;
if(DO_C >= 20) hang_chuc = 2;
if(DO_C >= 30) hang_chuc = 3;
if(DO_C >= 40) hang_chuc = 4;
if(DO_C >= 50) hang_chuc = 5;
if(DO_C >= 60) hang_chuc = 6;
if(DO_C >= 70) hang_chuc = 7;
if(DO_C >= 80) hang_chuc = 8;
if(DO_C >= 90) hang_chuc = 9;
if(DO_C < 10) hang_chuc = 0;
bien = hang_chuc*10 ;
hang_don_vi = (DO_C - bien);
led_h = a[hang_chuc];
led_l = a[hang_don_vi];
}
//=========================================================
=============
// Dung 74hc573 chot du lieu de tiet kiem cong
void XUAT_LED()
{
output_high(pin_d0);
output_c(led_h);
output_low(pin_d0);
output_high(pin_d1);
output_c(led_l);
output_low(pin_d1);
delay_ms(100);
}
// NEU NHIET DO CAO HON HOAC THAP HON NHIET DO QUY DINH SE
GOI BAO DONG
VOID BAO_DONG()
{
output_high(pin_b0);
output_high(pin_b0);
}
III. SƠ ĐỒ NGUYÊN LÝ