Thiết kế bộ đo và khống chế nhiệt độ hiển thị lên màn hình máy vi tính
          
        
            
               
            
 
            
                
                    Nguyên lý hoạt động
+Chân 9 được nối với mạch reset. Khi nhấn SW1 thì bộ vi điều khiển sẽ được khởi động 
lại từ đầu.
+điện trở băng: có tác dụng làm điện trở kéo lên nguồn.
+ chân 18-19 được nối // với thạch anh 12Mhz. mạch có nhiệm vụ tạo dao động cho vi
điều khiển.
+chân P2.4=>P2.7 điều khiển led. Khi nhiệt độ đo được vượt qua khoảng nhiệt độ khống 
chế thì 1 trong 4 đèn led này sẽ sáng.
+ chân P1.0=>P1.7. giao tiếp với ADC0804. Cổng P0 này có nhiệm vụ đọc nhiệt độ thu
được từ bộ chuyển đổi.
+P3.0=>P3.1. giao tiếp với max232 để truyền dữ liệu hiển thị lên máy tính.
+P3.5, P3.7 lần lượt nối với INTR /RD và /WR của ADC0804. Nhiệm vụ điều khiển 
hoạt động của bộ chuyển đổi số - tương tự.
+P3.2=> P3.3 dùng để nối với các phím nhấn. Có tác dụng để thực hiện các thao tác
                
              
                                            
                                
            
 
            
                 17 trang
17 trang | 
Chia sẻ: lylyngoc | Lượt xem: 3727 | Lượt tải: 4 
              
            Bạn đang xem nội dung tài liệu Thiết kế bộ đo và khống chế nhiệt độ hiển thị lên màn hình máy vi tính, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Dt2-k9 
Minh – Thế 
1 
BỘ CÔNG THƢƠNG 
TRƢỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI 
KHOA : ĐIỆN TỬ 
ĐỒ ÁN MÔN HỌC 
 ĐỀ TÀI: THIẾT KẾ BỘ ĐO VÀ KHỐNG CHẾ 
NHIỆT ĐỘ HIỂN THỊ LÊN MÀN HÌNH MÁY VI TÍNH 
. 
“Nhiệt độ khống chế được đặt bằng phím nhấn, thao tác khống chế được mô phỏng bằng 
3led với 3 màu khác nhau, sai số cho phép là ± 10C”. 
Giáo viên hướng dẫn: 
Nguyễn Anh Dũng 
Sinh viên thực hiện: 
1.Mai Xuân Minh 
 2.Tạ Xuân Thế 
Dt2-k9 
Minh – Thế 
2 
LỜI NÓI ĐẦU 
Kỹ thuật vi điều khiển hiện nay rất phát triển, nó đƣợc ứng dụng vào rất 
nhiều lĩnh vực sản xuất công nghiệp, tự động hóa, trong đời sống và còn nhiều 
lĩnh vực khác nữa. So với kỹ thuật số thì kỹ thuật vi điểu khiển nhỏ gọn hơn rất 
nhiều do nó đƣợc tích hợp lại và có khả năng lập trình đƣợc để điều khiển. Nên rất 
tiện dụng và cơ động. Với tính ƣu việt của vi điều khiển thì trong phạm vi đồ án 
nhỏ này, em chỉ dùng vdk để đo và khống chế nhiệt độ, đồng thời cho hiển thị lên 
màn hình máy vi tính. 
Mục đích của đề tài hƣớng đến: tạo ra bƣớc đầu cho sinh viên thử nghiệm 
những ứng dụng của vdk trong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng 
dụng khác trong đời sống hằng ngày cần đến. 
Việc thực hiện xong đồ án môn học bằng các kiến thức đã học, một số sách 
tham khảo và một số nguồn tài liệu khác nên không tránh khỏi những thiếu sót. Vì 
vậy nhóm rất mong đƣợc sự góp ý của thầy cô và các bạn. 
Dt2-k9 
Minh – Thế 
3 
Mục lục 
trang 
Lời nói đầu. ................................................................................................................2 
Mục lục. ......................................................................................................................3 
Chƣơng I>Tổng quan thiết kế phần cứng cho đồ án. ......................................4 
I. sơ đồ khối tổng quát . ..........................................................................4 
II. Các vi mạch chính sử dụng trong từng khối và nguyên lý hoạt 
động từng khối. ......................................... ............................................5 
Chƣơng II >Lập trình cho vi điều khiển. ..........................................................14 
1. sơ đồ giải thuật................................................................................... ..14 
2. code lập trình. ....................................................................................... 
Dt2-k9 
Minh – Thế 
4 
CHƢƠNG 1:TỔNG QUAN THIẾT KẾ PHẦN CỨNG CHO ĐỒ ÁN 
I. SƠ ĐỒ KHỐI TỔNG QUÁT 
1.sơ đồ 
KHỐI 
CHUYỂN 
ĐỒI 
TƢƠNG TỰ 
=> SỐ 
KHỐI XỬ LÝ TRUNG 
TÂM: 8051 
KHỐI HIỂN 
THỊ:MVT 
KHỐI ĐIỀU 
KHIỂN 
(khống chế) 
KHỐI CẢM 
BIẾN 
ĐẦU RA ỨNG 
DỤNG 
(điều khiển lò 
nhiệt, cảnh 
báo,…) 
Dt2-k9 
Minh – Thế 
5 
2> sơ đồ nguyên lý. 
II. CÁC VI MẠCH CHÍNH SỬ DỤNG TRONG ĐỒ ÁN 
1.trong khối cảm biến: có LM35; 
2.Trong khối chuyển đổi: ADC 0804; 
3.Trong khối xử lý trung tâm: AT89C52; 
4.khối hiển thị : màn hình máy tính. 
5.Khối điều khiển (khống chế): hệ thống các phím nhấn. 
6.đầu ra ứng dụng: (đơn giản) là các led hiển thị. 
III. CẤU TẠO VÀ NGUYÊN LÝ HOẠT ĐỘNG CƠ BẢN CỦA TỪNG VI MẠCH. 
1> Cảm biến nhiệt LM35. 
1.1 Nguyên lý hoạt động chung của IC đo nhiệt độ. 
Dt2-k9 
Minh – Thế 
6 
IC đo nhiệt độ là một mạch 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ủ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 độ tuyệt đối. Đo tín 
hiệu điện ta biết đƣợc giá trị của 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 
Dt2-k9 
Minh – Thế 
7 
tử, bứt 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 độ. 
+LM135, LM35 
Ngõ ra là điện áp. 
Độ nhạy 10mv/10C 
Sai số cực đại 1,50C khi nhiệt độ lớn hơn 1000C. 
Phạm vi sử dụng :00 C=>1000 C 
3> bộ chuyển đổi tƣơng tự-số: ADC 0804; 
a, cấu tạo 
ADC 0804 là một bộ chuyển đổi tƣơng tự số. Gồm có 20 chân. 
DB0-DB7: là 8 chân ra dữ liệu. 
RD: lối vào đọc 
WR :lối vào ghi. 
INTR: lối ra ngắt. 
CLKR/CLKIN: các lối vào điều khiển xung nhịp. 
VIN: lối vào analog dƣơng 
b, sơ đồ 
c, tính toán và cân chỉnh. 
Chọn điện trở R6 và tụ C1 cho bộ dao động của ADC0804. 
R6=10k Ω và C1=15pf. 
Có đầu ra số: N= 
256 
xVin.; 
5 
d, nguyên lý hoạt động 
¾ DB0- DB7: các lối ra số, dữ liệu chuyển đổi xuất hiện trên 8bit này. Bộ biến đổi 
có độ phân giải là 5/256 
¾ RD :là chân điều khiển đọc dữ liệu. RD=0: có dữ liệu lối ra. 
RD=1: không có dữ liệu lối ra. 
¾ WR: bình thƣờng ở mức logic cao, và lối vào này sẽ đƣợc kéo xuống mức thấp, 
sau đó lại trở về mức cao để bắt đầu quá trình chuyển đổi. 
Dt2-k9 
Minh – Thế 
8 
¾ INTR: là lối ra ngắt của bộ biến đổi A/D. 1 sƣờn xung âm đƣợc tạo lên chân này 
khi quá trình chuyển đổi kết thúc. Lối ra này thƣờng đƣợc sử dụng để tạo ra một 
ngắt trong vi điều khiển sao cho dữ liệu đã chuyển đổi có thể đƣợc đọc. 
¾ ADC 0804 chứa một bộ dao động bên trong và cần có 1 tụ điện và 1điện trở bên 
ngoài nối chân CLKR và CLKIN để khởi động bộ dao động. 
¾ VIN là chân lối vào của điện áp tƣơng tự. 
¾ Bít 0 và 1 của ADC phải có điện trở kéo lên, do lối ra bộ điều khiển tại những 
chân này không có sẵn điện trở kéo lên. 
Khối giao tiếp với máy tính qua max232. 
Chức năng truyền dữ liệu biến đổi đƣợc lên máy tính thông qua max232 
CÁC BƢỚC CỦA QUÁ TRÌNH CHUYỂN ĐỔI. 
 Đặt WR =RD=0; 
 Bắt đầu biến đổi. Đặt WR=1, trễ( )ms. 
 Phát hiện điểm kết thúc của quá trình biến đổi khi INTR xuống mức thấp. 
 Đọc dữ liệu từ DB0=>DB7. 
4> vi điều khiển AT89C52; 
a, cấu tạo và chức năng các khối của AT89S52. 
• CPU( CPU centralprocessing unit) bao gồm: 
9 Thanh ghi tích lũy A; 
9 Thanh ghi tích lũy phụ B; 
9 Đơn vị logic học (ALU); 
9 Thanh ghi từ trạng thái chƣơng trình; 
Dt2-k9 
Minh – Thế 
9 
9 Bốn băng thanh ghi; 
9 Con trỏ ngăn xếp 
• Bộ nhớ chƣơng trình( ROM) gồm 8Kbyte Flash. 
• Bộ nhớ dữ liệu( RAM) gồm 256 byte. 
• Bộ UART, có chức năng truyền nhận nối tiếp. 
• 3 bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm sự kiện. 
• Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong. 
• Bộ lập trình( ghi chƣơng trình lên Flash ROM) cho phép ngƣời sử dụng có thể 
nạp các chƣơng trình cho chíp mà không cần các bộ nạp chuyên dụng. 
• Bộ chia tần số với hệ số chia là 12. 
• 4 cổng xuất nhập với 32 chân. 
b, chức năng các chân của AT89C52 
 Port 0( P0.0=>P0.7) 
Port 0 gồm 8 chân, ngoài chức năng xuất nhập, port 0 còn là bus đa hợp dữ liệu và địa 
chỉ( AD0-AD7), chức năng này sẽ đƣợc sử dụng khi 89c52 giao tiếp với các thiết bị 
ngoài có kiến trúc Bus nhƣ các vi mạch nhớ, mạch PIO… 
 Port 1( P1.0=>P1.7) 
Chức năng duy nhất của Port 1 là chức năng xuất nhập cũng nhƣ các Port khác. Port1 
có thể xuất nhập theo bit và theo byte. 
 Port 2( P2.0=>P2.7) 
Port 2 ngoài chức năng là cổng vào/ra nhƣ Port 0 và 1 còn là byte cao của bus địa chỉ 
khi sử dụng bộ nhớ ngoài. 
Dt2-k9 
Minh – Thế 
10 
 Port 3 
Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể 
nhƣ sau: 
Bit Tên Chức năng 
P3.0 RXD Dữ liệu nhận cho Port nối tiếp 
P3.1 TXD Dữ liệu truyền cho Port nối tiếp 
P3.2 INT0 Ngắt bên ngoài 0 
P3.3 INT1 Ngắt ngoài 1 
P3.4 TO Ngõ vào của Timer/counter0 
P3.5 T1 Ngõ vào của Timer/counter1 
P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài. 
P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài. 
 Chân /PSEN : là chân điều khiển đọc chƣơng trình ở bộ nhớ ngoài. 
 Chân ALE. 
ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của vi điều 
khiển. Tín hiệu ALE đƣợc dùng để cho phép vi mạch chốt bên ngoài nhƣ 7473. 
 Chân /EA. 
Tín hiệu /EA cho phép chọn bộ nhớ chƣơng trình là bộ nhớ trong hay ngoài. EA=1 thì 
thực hiện chƣơng trình trong RAM nội. EA=0 thực hiện ở RAM ngoài. 
 RST( reset) 
Ngõ vào reset trên chân số 9. khi RST=1 thì bộ vi điều khiển sẽ đƣợc khởi động lại 
thiết lập ban đầu. 
 XTAL1, XTAL2 
2 chân này đƣợc nối song song với thạch anh tần số max=33 Mhz. Để tạo dao động 
cho bộ vi điều khiển. 
 Vcc, GND : cung cấp nguồn nuôi cho bộ vi điều khiển. cấp qua chân 20 và 40. 
c, sơ đồ AT89C52 trong mạch 
Dt2-k9 
Minh – Thế 
11 
d, nguyên lý hoạt động 
+Chân 9 đƣợc nối với mạch reset. Khi nhấn SW1 thì bộ vi điều khiển sẽ đƣợc khởi động 
lại từ đầu. 
+điện trở băng: có tác dụng làm điện trở kéo lên nguồn. 
+ chân 18-19 đƣợc nối // với thạch anh 12Mhz. mạch có nhiệm vụ tạo dao động cho vi 
điều khiển. 
+chân P2.4=>P2.7 điều khiển led. Khi nhiệt độ đo đƣợc vƣợt qua khoảng nhiệt độ khống 
chế thì 1 trong 4 đèn led này sẽ sáng. 
+ chân P1.0=>P1.7. giao tiếp với ADC0804. Cổng P0 này có nhiệm vụ đọc nhiệt độ thu 
đƣợc từ bộ chuyển đổi. 
+P3.0=>P3.1. giao tiếp với max232 để truyền dữ liệu hiển thị lên máy tính. 
+P3.5, P3.7 lần lƣợt nối với INTR /RD và /WR của ADC0804. Nhiệm vụ điều khiển 
hoạt động của bộ chuyển đổi số - tƣơng tự. 
+P3.2=> P3.3 dùng để nối với các phím nhấn. Có tác dụng để thực hiện các thao tác 
khống chế nhiệt độ cần đo. 
Dt2-k9 
Minh – Thế 
12 
6> bộ phím nhấn điều khiển (khống chế) 
a, sơ đồ mạch 
b, chức năng: dùng để thiết lập nhiệt độ khống chế. 
SW2 (đƣợc nối với INT0 ) là phím dùng để đặt nhiệt độ khống chế. 
SW3 (đƣợc nối với INT1) là phím dùng để tăng giảm nhiệt độ khống 
chế. SW1 (đƣợc nối với 9) là phím dùng để làm phím reset 
7> ứng dụng điều khiển 
a, sơ đồ mạch 
b, chức năng: hiển thị khi nhiệt độ đo đƣợc so sánh với nhiệt độ khống chế. 
Nếu t0 đo > t0khống chế max thì led 1 sáng. 
Nếu t0 đo<t0 khống chế min thì led 2 sáng. 
Nếu t0 kcmin< t0 đo< t0 kc max. thì led 3sáng. 
Đây chỉ là mạch điều khiển đơn giản sử dụng led. Còn trong thực tế có thể ứng dụng 
nhiều: nhƣ việc khống chế nhiệt độ của lò lung, máy lạnh,… 
Dt2-k9 
Minh – Thế 
13 
I>sơ đồ giải thuật 
CHƢƠNG II>LẬP TRÌNH CHO VI ĐIỀU KHIỂN 
Chƣơng trình chính. 
START 
NẠP GIÁ TRỊ ĐẦU 
 Tăng t0 đặt T
0 đo > t0 max 
Đọc ADC 
Giảm t0 đặt 
T
0 đo <t0 min 
Hiển thị 
cảnh báo 
Khối xử lý 
Hiển thị t0 đo đƣợc Hiển thị t0 đặt 
Dt2-k9 
Minh – Thế 
14 
II> code chƣơng trình. 
#include 
#include 
sbit led0=P2^0; 
sbit led1=P2^1; 
sbit led2=P2^2; 
sbit led3=P2^3; 
sbit led_do=P2^4; // nhiet do moi truong < nhiet do 
khong che 
sbit led_vang=P2^5; // nhiet do moi truong = nhiet do 
khong che 
sbit led_xanh=P2^6; // nhiet do moi truong > nhiet do 
khong che 
sbit led_trang=P2^7; 
sbit adc_intr=P3^5; 
sbit adc_wr=P3^6; 
sbit adc_rd=P3^7; 
int ngat0,ngat1,tong; 
unsigned char chuc,donvi,nhiet_do,dien_ap,khong_che,i,k; 
unsigned char M[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; 
void delay(unsigned int n) // ham tre 
{ 
 unsigned int j; 
 for(j=0;j<n;j++); 
} 
void bien_doi_adc(void) // bien doi adc 
{ 
 adc_rd=0; 
 adc_wr=0; 
 delay(2); 
 adc_wr=1; 
 while(!adc_intr); 
 dien_ap=P0; 
 nhiet_do=dien_ap/2; 
} 
void hien_thi(unsigned char nhiet_do) // hien thi nhiet do moi truong 
{ 
 if(nhiet_do>=0 && nhiet_do<10) 
Dt2-k9 
Minh – Thế 
15 
 { 
 chuc = 0; 
 donvi = nhiet_do; 
 } 
 if(nhiet_do>=10 && nhiet_do<100) 
 { 
 chuc = nhiet_do/10; 
 donvi = nhiet_do%10; 
 } 
 while(!TI); 
 SBUF=M[chuc]; 
 TI=0; 
 while(!TI); 
 SBUF=M[donvi]; 
 TI=0; 
 while(!TI); 
 SBUF=0x0D; 
 TI=0; 
 if(nhiet_do=100) 
 { 
 printf("ngoai dai do"); 
 } 
} 
void main(void) // ham 
chính 
{ 
 IE=0x85; 
 IT0=IT1=1; 
 khong_che=20; 
 SCON=0x52; // REN =1 DE CHO PHEP TRUYEN DU LIEU 
 TMOD=0x20; // TIMER 1 LÀM VIEC O CHE DO 2 
 TH1=TL1=-3; // tao toc do baud la 9600 
 TR1=1; 
Dt2-k9 
Minh – Thế 
16 
 while(1) 
 { 
 tong=0; 
 for (i=0;i<20;i++) 
 { 
 bien_doi_adc(); 
 tong=tong+nhiet_do; 
 } 
 nhiet_do=tong/20; 
 if(ngat0==0) 
 { 
 led_xanh=led_do=led_vang=1; 
 printf("nhiet do moi truong la : "); 
 hien_thi(nhiet_do); 
 } 
 if(ngat0==1||ngat0==2) 
 { 
 bien_doi_adc(); 
 printf("nhiet do khong che la : "); 
 hien_thi(khong_che); 
 if(khong_che < nhiet_do) 
 { 
 led_do=led_vang=1; 
 led_xanh=0; 
 } 
 if(khong_che > nhiet_do) 
 { 
 led_vang=led_xanh=1; 
 led_do=0; 
 } 
 if(khong_che == nhiet_do) 
 { 
 led_do=led_xanh=1; 
 led_vang=0; 
 } 
 } 
 } 
Dt2-k9 
Minh – Thế 
17 
} 
void khongche(void) interrupt 0 // khong che nhiet do o 20 
do C 
{ 
 led_trang=1; 
 if(ngat0<2) 
 { 
 ngat0++; 
 if(ngat0==1) 
 led_trang=0; 
 else 
 led_trang=1; 
 } 
 else 
 ngat0=0; 
} 
void tang_giam(void) interrupt 2 // tang, giam nhiet do khong che 
{ 
 if(ngat0==1) 
 { 
 ngat1=khong_che++; 
 } 
 if(ngat0==2) 
 { 
 ngat1=khong_che--; 
 } 
} 
            Các file đính kèm theo tài liệu này:
 do_va_khong_che_nhiet_do_0125.pdf do_va_khong_che_nhiet_do_0125.pdf