Mạch đo nhiệt độ và cảnh báo

20 1.6K 8
Mạch đo nhiệt độ và cảnh báo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mạch đo nhiệt độ và cảnh báo

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA ĐIỆN TỬ VIỄN THÔNG 00O00 BÁO CÁO BÀI TẬP LỚN MÔN VI XỬ LÝ ĐỀ TÀI MẠCH ĐO NHIỆT ĐỘ CẢNH BÁO Thầy giáo hướng dẫn: ThS. Hàn Huy Dũng Sinh Viên thực hiện:  Nguyễn Thọ Lợi  Đặng Đình Tài  Nguyễn Huy Hoàng  Ngô Thanh Xuân  Đặng Đức Cường Lớp : ĐT2-K48 Hà Nội 05-2006 Chc nng ca ti o v hin th nhit ca mụi trng mt im bt k trong khong -40 0 C n 100 0 C Bỏo ng khi nhit ca mụi trng trong mt khong no ú m ta chn PHN M U GII THIU VK 8 BT PIC16F877 V SO SNH VI VK 8051 Ngày nay, các bộ vi điều khiển đa ng có ứng dụng ngày càng rộng ri trong các lĩnh vực kỹ t huậ t đời sống x hội, đặc biệt l à trong kỹ thuật tự động hoá điều khiển từ xa. Giờ đây với nhu cầu chuyên dụng hoá, tối u (thời gian, không gian, giá thành), bảo mật, tính chủ động trong công vi ệc . ngày càng đòi hỏi khắt khe. Việc đ a ra công nghệ mới trong lĩnh vự c chế tạo mạch điện tử để đáp ứng những yêu cầu trên là hoàn toàn cấp thiết mang tính thực tế cao. Khái niệm về bộ vi đ i ều khiển Để hiểu khái niệm về bộ vi điều khiển , ta có thể làm phép so sánh nó với bộ vi xử lý công dụng chung nh sau: Ta biết rằng, các bộ vi xử lý công dụng chung nh họ Intel x86 (8086, 80286, 80386, 80486 Penti um) hoặc họ Motorola 680x0(6800, 68010, 68020, 68030, 68040 vv .) không có RAM, ROM không có các cổng ra v à o trên chip . Với lý do đó mà chúng đ ợc gọi l à các bộ vi xử lý công dụng chung. Một nhà thiết kế hệ thống sử dụng một bộ vi xử lý công dụng chung chẳng hạn nh P entium hay 68040 sẽ phải bổ xung th êm RAM, ROM, các cổng vào ra các bộ định thời ngoài để làm cho chúng hoạt động đ ợc. Mặc dù việc bổ xung các RAM, ROM, các cổng vào ra sẽ làm cho hệ thống cồng kềnh lên nh ng nó lại có u đi ểm khi sử dụng các bộ vi xử lý này là rất linh hoạt . Chẳng hạn nh ng ời th iết kế có thể quyết định về số l ợng RAM, ROM, các cổng vào ra cần thiết sao cho p hù hợp với khả năng, mục đích sử dụng của hệ thống. Điều này không thể có đối với các bộ vi điều khiển. Bởi vì, một bộ vi đi ều khiển đ có một CPU (một bộ vi xử lý) cùng với một số l ợng RAM, ROM, các cổng vào ra một bộ định thời trên c ùng một chíp. Hay nói cách khác là bộ vi xử lý, RAM, ROM, các cổng vào ra một bộ định thời cùng đ ợc nhúng trê n một chip. Do vậy ng ời thiết kế không th ể bổ xung thêm bộ nhớ ngoài, số các cổng vào ra hoặc bộ định thời cho nó. Với số l ợng RAM, ROM số các cổng vào ra cố định nh vậy là một mặt hạn chế (kém linh hoạt) x ong nó lại thật sự lý t ởng đối với những ứng dụng mang tính chuyên bi ệt, tối u về giá thành, tối u về không gian . Hiện nay trên thị truờng có các bộ vi đi ều khiển 8 bít chính là. 6811 của Motorola, 8051 của Intel, Z8 của Xilog Pic16x của Microchip Technology. Mỗi loại trên đây đều có một t ập lệnh thanh ghi riêng duy nhất, nên chúng đều không t ơng thíc h lẫn nhau. Cũng có những bộ vi điều khi ển 16 bít 32 bít đ ợc sản xuất ra bởi các hng sản xuất chíp khác nhau. Những yêu cầu để lựa chọn một bộ vi điều khiển là: + Đáp ứng nhu cầu tí nh toán của bài toán một cách hiệu quả về mặt giá thành đầy đủ chức năng có thể nhìn thấy đ ợc, (khả dĩ). + Có sẵn các công cụ phát triển phần mềm chẳng hạn nh các trình biên dịch trình hợp ngữ gỡ rối. + Nguồn các bộ vi điều khiển có sẵn nhiều tin cậy. Các tiêu chuẩn l ựa chọn một bộ vi điều khiển: Tiêu chuẩn đầu tiên tr ớc hết trong lựa chọn một bộ vi đi ều khiển là nó phải đáp ứng nhu cầu bài toán về mặt công suất tí nh to án, giá thành hiệu quả. Trong khi phân tích các nhu cầu của một dự án dựa trên bộ vi điều khiển, chúng ta tr ớc hết phải biết là bộ vi đi ều khiển nà o là 8 bít, 16 bít hay 32 bít có th ể đáp ứng tốt nhất nhu cầu tính toán của bài toán một cách hiệu quả nhất. + Những tiêu chuẩn đ ợc đ a ra để cân nhắc là: + Tốc độ: Tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu. + Kiểu đóng vỏ: Đó là kiểu 40 chân DIP hay QFP hay là kiểu đóng vỏ khá c. Đây là điều quan trọng đối với yêu cầu về không gian, kiểu lắp ráp tạo mẫu thử cho sản phẩm cuối cùng. + Công suất tiêu thụ: Điều này đặc bi ệt khắt khe đối với những sản phẩm dùng pi n, ắc quy. + Dung l ợng bộ nhớ RAM ROM trên chíp. + Số chân vào ra, bộ định thời, số ngắt trên chíp. + Khả năng dễ dàng nâng cấp cho hiệu su ất cao hoặc giảm công suất tiêu thụ. + Giá thành cho một đơn vị: Điều này quan trọng quyết định gi á thành cuối cùng của sản phẩm mà một bộ vi điều khiển đ ợc sử dụng. Bộ Vi điều khiển 8 bit PIC16F877 Đặc tính nổi bật của bộ vi xử lí. + Sử dụng công nghệ tích hợp cao RISC CPU. + Ng ời sử dụng có thể lập trình với 35 câu lệnh đơn giản. + Tất cả các câu lệnh thực hiện trong một chu kì lệnh ngoại trừ một số câu lệnh rẽ nhánh thực hiện trong 2 chu kì lệnh. + Tốc độ hoạt động l à : - Xung đồng hồ vào là DC- 20MHz - Chu kỳ lệnh thực hiện trong 200ns + Bộ nhớ ch ơng trình Flash 8Kx14 words + Bộ nhớ Ram 368x8 bytes + Bộ nhớ EFPROM 256x 8 bytes Khả năng của bộ vi xử lí này + Khả năng ngắt ( lên tới 14 ng uồn ngắt trong ngắt ngoài ) + Ngăn nhớ Stack đ ợc phân chia làm 8 mức + Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp. + Nguồn khởi động l ạ i (POR) + Bộ tạo xung thời gian (P WRT) bộ tạo dao động (OST) + Bộ đếm xung thời gian (W DT) với nguồn dao động trên chíp (nguồn dao động RC ) hoạt động đáng tin cậy. + Có m ch ơng trình bảo vệ. + Ph ơng thức cất giữ SLEEP + Có bảng lựa chọn dao động. + Công nghệ CMOS FLASH /EEPRO M nguồn mức thấp ,tốc độ cao. + Thiết kế hoàn toàn tĩnh . + M ạ ch ch ơng trình nối tiếp có 2 chân. + Xử lý đọc /ghi tới bộ nhớ ch ơng trình . + Dải điện thế hoạt động rộng : 2.0V đến 5.5V + Nguồn sử dụng hiện tại 25 mA + Dy nhiệt độ công nghiệp thuận lợi . + Công suất tiêu thụ thấp: < 0.6mA với 5V, 4MHz 20 u A với nguồn 3V, 32 kHz < 1 u A nguồn dự phòng. Các đặc tí nh nổi bật của thiết b ị ngoại vi trên chip + Timer0: 8 bít của bộ định thời, bộ đếm với hệ số tỷ lệ tr ớc + Timer1: 16 bít của bộ định thời, bộ đếm với hệ số tỷ lệ tr ớc, có khả năng tăng trong khi ở chế độ Sleep qua xung đồng hồ đ ợc cung cấp bên ngoài. + Timer 2: 8 bít của bộ định thời, bộ đếm với 8 bít của hệ số tỷ lệ tr ớc, hệ số tỷ lệ sau + Có 2 chế độ bắt giữ, so sánh, điều chế độ rộng xung(PWM). + Chế độ bắt giữ với 16 bít, với tốc độ 12.5 ns, chế độ so sánh với 16 bít , tốc độ giải quyết cực đại là 200 ns, chế độ điều chế độ rộng xung với 10 bí t. + Bộ chuyển đổi tín hiệu số sang t ơng tự với 10 bí t . + Cổng truyền thông nối tiếp SSP với SPI ph ơng thức chủ I 2 C(chủ/phụ) + Bộ truyền nhận t hông tin đồng bộ, dị bộ(USAR T/SCL) có khả năng phát hiện 9 bít địa chỉ. + Cổng phụ song song (PSP) với 8 bít mở rộng, với RD, WR CS điều khiển. Sơ đồ các chân PIC16F87X. Sơ đồ khối bộ vi điều khiển PIC16F87X So sánh với bộ vi điều khiển 8051 * Bộ vi điề u khiển 8051 là bộ VĐK đầu tiên thuộc họ VĐK x51 đ ợc sản xuất bởi công ty Intel, Siemens, Advanced Micro Devices, Fujitsu, Philips. Các đặc điểm chung của bộ VĐK này: + 4KB ROM + 128 B RAM + 4 cổng I/O 8 bit + 2 Timer 16 bit + Có khả năng quản lý đ ợc 64 KB bộ nhớ m ch ơng trì nh ngoài (ROM ngoài). + Có khả năng quản lý đ ợc 64 KB bộ nhớ dữ liệu ngoài (RAM ngoài) + Có bộ xử lý logic riêng (thao tác trên các bit) + Có thể thao tác trực tiếp đ ợc 210 bit (các bit này đ đ ợc địa chỉ hoá) + Có 5 ngắt + Dùng nguồn dao động ngoài + Dùng điện áp 5V để cho chip hoạt động *Cổng P0: Có dạng cực máng hở có 8 chân (8 bit) là cổng vào/ra hoặc là cổng chuyển dữ li ệu địa chỉ. *Cổng P1: Là cổng vào/ra có 8 chân (8 bit). *Cổng P2: Có 8 chân (8 bit) là c ổng vào/ra hoặc là cổng chuyển dữ liệu địa chỉ. *Cổng P3: Có 8 chân, cổng này có thể là cổng vào/ra 8 bit hay còn có các chức năng quan trọng khác nh phục vụ cho ngắt, các bộ định thời, việ c truyền nhận dữ li ệu truyền thông nối ti ếp , đọc ghi các bộ nhớ ngoài Sơ đồ khối của VĐK 8051 Nh vậy có thể thấy đặc điểm đầu tiê n mà PIC16F877 đem lại nổi bật so với VĐK 8051 là dòng PIC16F877 những đ ặc tính kĩ thuậ t hơn hẳn so với bộ VĐK 8051 thể hiện ở những đi ểm sau: VĐK8051 VĐK PIC16F877 Đặc tí nh Số l ợng Đặc tính Số l ợng ROM tr ên chíp RAM Bộ định thời Các chân v à o ra Cổng nối ti ếp Nguồn ngắt 4K byte 128 byte 2 32 1 6 ROM tr ên chíp RAM Bộ định thời Các chân v à o ra Cổng nối ti ếp Nguồn ngắt 8K 368 byte 3 40 2 14 Ngoài những đặc tính trên thì bộ vi đi ều khiển PIC 16F877 còn có một đặc điểm hơn hẳn so với 8051 là có 10 bít chuyển đổi A/ D trên chíp điều này sẽ giúp chúng ta không phải mất một bộ chuyển đổi (s ẽ dẫn đến kết nối dây trở nên phức tạp). Một đặc điểm nữa là bộ vi điều khiển PIC16F877 có bộ tạo dao động chủ trên chíp điều này sẽ tránh đ ợc những sai số không cần thi ế t trong việc tạo xung ng, VK PIC16F877 cú kh nng t RESET bng b WT, v cú thờm 256 byte EEPROM PHẦN I THIẾT KẾ PHẦN CỨNG Sơ đồ khối của mạch ♣ Khối xử lý nhiệt độ khối ADC : Là một sensor nhiệt LM335 một bộ ADC 10 bit Sơ đồ của sensor nhiệt LM335 LM335 cố đầu vào là nhiệt độ môi trường đầu ra là diện áp  Chân 1 là chân mang dấu “-”, thường được nối đất khi phân cực  Chân 2 là chân mang dấu “+”, được nối với V+ thông qua một điện trở chân 2 cũng là đầu ra của LM335  Chân 3 là chân mang chữ “ADJ”, thường được nối với một biến trở để điều chỉnh nhiệt độ ban đầu cho phù hợp Người ta thường phân cực cho nó như sau: Nhiệt độ môi trường Khối xử lý nhiệt độ Khối hiển thị cảnh báo Khối ADC Khối xử lý vào ra Khối xử lý chung Còn bộ biến đổi ADC , ta dùng ADC của PIC là ADC 10 bít Nguyên lý làm việc các công thức tính toán: Đo nhiệt độ môi trường tại một điểm thông qua sensor nhiệt LM335 (Chi tiết về LM335 xem thêm trong datasheet). LM335 là sensor đo nhiệt, đo được nhiệt độ trong khoảng từ -40 0 C đến 100 0 C, đầu ra là 10mV/K. Đầu ra này được đưa vao chân Analog của bộ ADC (Cụ thể ở đây là đưa vào Chân AN0 ).Vì ở đây là tính theo độ K nên để đo độ C ta cần có công thức chuyển đổi giá trị từ độ K sang độ C. Ở đây ta dùng ADC của PIC là 10 bit => max=1023, V ref =V cc , giả thiết là V cc = 5V nên tại 0 độ C hay 273K thì đầu ra của LM335 có giá trị là 2.73V. Như vậy khi muốn tính toán ra độ C ta cần phải trừ đi mức điện áp là 2.73V. Lấy ví dụ: nhiệt độ là 30 độ C = 303K -> out = 303 x 10mV/K =3.03V. Ta tính toán giá trị đọc được từ ADC 10 bit (ADC_V in là điện áp đưa vào chân ADC của PIC, ADC_value là giá trị đầu ra của ADC dưới dạng thập phân): ADC_V in = 5V => ADC_value = 1023 ADC_V in = 2.73V => ADC_value = (1023/5)x2.73=558.558 (tương ứng 0 độ C) ADC_V in = 3.03V => ADC_value = (1023/5)x3.03=619.938 (tương ứng 30 độ C) Mặt khác do V_ref = V cc =5V nên ADC_value=1 tương ứng 5/1023 = 4.887mV (~ 5mV). Trong khi đó LM335 cho ra điện áp là 10mV/1K nên để giá trị ADC thay đổi 1 đơn vị thì nhiệt độ phải thay đổi là 0.5K (hay gần 5mV) Từ đó ta có công thức đầy đủ sau để tính giá trị độ C: C=(ADC_value - 558.558)x(4.887mV/10mV) => C=(ADC_value - 558.6)/ 2.046 ♣Khối hiển thị cảnh báo Ta dùng LED 7 thanh để hiển thị nhiệt độ của môi trường dùng loa để phát ra cảnh báo khi nhiệt độ môi trường ở trong khoảng nguy hiểm. Cụ thể trong mạch này ta dùng Hai LED 7 thanh Anot chung (chúng ta cũng có thể dùng LCD thay thế) Sau đây là sơ đồ mạch nguyên lý: Sơ đồ nguyên lý LM335Z 1 2 3 10K 4 5 7 9 10 2 1 38 6 a b c d e f g VCCVcc DOT 11 12 21 22 23 24 25 26 27 28 14 13 16 17 40 39 38 37 36 35 34 33 4 5 6 7 8 9 10 29 18 19 20 1 2 3 15 30 32 31 VDD VSS RD2/PSP2 RD3/PSP3 RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD4/PSP4 RD5/PSP5 OSC2/CLKO OSC1/CLKI RC1/CCP2 RC2/CCP1 RB7/PGD RB6/PGC RB5 RB4 RB3/PGM RB2 RB1 RB0/INT RA2/AN2 RA3/AN3 RA4 RA5/AN4 RE0/AN5 RE1/AN6 RE2/AN7 RD6/PSP6 RC3/SCK/SCL RD0/PSP0 RD1/PSP1 VPP RA0/AN0 RA1/AN1 RC0/T1CKI RD7/PSP7 VDD1 VSS1 HI A1015 4K7 SPEAKER 4K7 HI 4K7 22pF A1015 22pF SW2 SW_PB_SPST HI HI 10MHz VR10K 1K Q3 PIC16F877A HI HI 4 5 7 9 10 2 1 38 6 a b c d e f g VCCVcc DOT Giải thích sơ đồ nguyên lý: Các Transistor A1015 (chúng ta gọi là các đèn T1, T2, T3) được cấp nguồn 5V ở chân E , chân C của T1 T2 được nối với 2 chân Vcc của LED 7 thanh, các chân B của T1, T2 được nối lần lượt với các chân 20 19 của VĐK PIC16F877A (cụ thể là nối với các chân RD0 RD1 là các chân output của PORTB). Khi RD1 ở mức thấp thì đầu C của đèn T1 sẽ ở mức cao lúc đó LED 1 được phân cực đúng có thể sáng, ngược lại thì LED 1 bị phân cực sai lúc đó nó sẽ không sáng. Tương tự cho chân RD0 LED còn lại. Đèn T3 cũng như vậy nhưng thay LED bằng một cái Loa (và chân output là chân RE0 của PORTE) dùng để cảnh báo . Đầu ra của sensor nhiệt LM335 sẽ được đưa vào chân 2 của VĐK (là chân Analog AN0 của ADC 10 bít tích hợp sẵn trong VĐK PIC, chân AN0 này sẽ được thiết lập là chân vào Analog của ADC) . Cuối cùng là VĐK PIC16F877A, ở đây ta chỉ nói đến những tính năng mà ta dùng cho đề tài này, nó là một con VĐK tích hợp rất nhiều chức năng mà chúng ta có thể tham khảo thêm trong Datasheet của nó. Nhìn vào sơ đồ nguyên lý ta có thể thấy ngay rằng các chân 19, 20 là các chân output (đã được nói ở trên) ,ngoài ra T1 T2 T3 [...]... //Khai báo s nh ngiã các thanh ghi các bít quan tr ng #device *=16 adc=10 // Khai báo dùng poiter 16 bít ADC 10 bít #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT //Khai báo các config #use delay(clock=20000000) //Khai báo s d ng hàm Delay t n s dao ng s d ng int8 high,low; //Khai báo các bi n s nguyên 1byte (8bít) //Khai báo m ng h ng s là s nguyen 1 byte int8... #ASM #ENDASM Tài li u tham kh o: “Tài li u hư ng d n CCS Ti ng vi t” c a tác gi Tr n Xuân Trư ng, SV K2001, HBK HCM ho c y hơn là ph n Hepl trong trình cài t PIC C Compiler Code y cho chương trình #include //Khai báo con PIC ta s d ng file khai báo các bít,các // thanh ghi quan tr ng trong con PIC này #include //Khai báo. .. {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; // Chương trình con tách s hàng ch c hàng ơn v thành hai s ch a trong hai bi n // ã khai báo trên là high low void convert_bcd(int8 x) { low=x%10; //chia l y ph n dư, low=hàng ơn v high=x/10; high=high%10; //high=s hàng ch c } // Chương trình con gi i mã hi n th nhi t void display() { PORTB=a[low]; // G i d li u n LED 1 RD0=0; // B t LED1,... th dùng ADC ngoài) - Thêm bàn phím giao ti p có th thay i tr c ti p kho ng nhi t theo dõi, cùng v i ó ta thêm vào LED 7 hi n th hai giá tr nhi t này - S d ng EEPROM lưu giá tr nhi t mà ngư i dùng thi t l p, các l n thay i khác - Ghép n i máy tính truy n giá tr nhi t n máy tính - Ghép n i LCD m t m ch m th i gian th c (DS1307) ng v i m i th i i m chương trình s t ng ch n kho ng thi t l p nhi t thích... li u n LED 1 RD0=0; // B t LED1, LED1 s hi n th úng giá tr c a low delay_ms(2); RD0=1; // Cho tr 2ms // t t LED 1 PORTB=a[high]; RD1=0; delay_ms(2); RD1=1; // LED 2 } //Chương trình con th c hi n vi c báo ng void bao_dong(){ int8 i; for(i=0;i

Ngày đăng: 26/04/2013, 12:17

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan