1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

20 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 3,46 MB

Nội dung

Trang 1

TRUONG DAI HOC BACH KHOA HA NOI KHOA DIEN TU VIEN THONG 00000 BAI HOC 7 BACH KHOA BAO CAO BAI TAP LON MON VI XU LY DE TAI

MACH DO NHIET DO VA CANH BAO

Thây giáo hướng dẫn: Th§ Hàn Huy Dũng

Sinh Viên thực hiện:

Trang 2

Chức năng của đề tài

Y Do và hiển thị nhiệt độ của môi trường ở một điểm bất kỳ trong khoảng -40°C dén 100°C v Báo động khi nhiệt độ của môi trường ở trong một khoảng nào đó mà ta chọn PHAN MO DAU GIỚI THIỆU VĐK 8 BÍT PIC16F877 VÀ SO SÁNH VỚI VĐK 8051

Ngày nay, các bộ vì điều khiển dang có ứng dụng ngày càng rộng rãi trong các lĩnh vực kỹ thuật và đời sống xã hội, đặc biệt là trong kỹ thuật tự động hoá

và điêu khiển từ xa Giờ đây với nhụ câu chuyên dụng hoá, tối tụ (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ô vỉ đ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 xu ly 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 va Pentium) hodc ho Motorola 680x0(6800, 68010, 68020,

68030, 68040 vy ) không có RAM, ROM va không có các cổng ra vio trén chip Với lý do đó mà chúng được gọi là các bộ vì xứ lý công dụng chung

Một nhà thiết kế hệ thống sử dụng một bộ vì xử lý công dụng chung chẳng hạn nhu Pentium hay 68040 sẽ phải bổ xung thêm RAM, ROM, các cổng vào ra

và 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ộ vì xử lý này là rất linh hoạt Chẳng hạn như người

thiết kế có thể quyết định về số lượng RAM, ROM, và các cổng vào ra cần thiết sao

cho phù 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ộ vì điêu khiển Bởi vì, một bộ vi điều khiển

đã có một CPŨ (một bộ vì xử lý) cùng với một số lượng RAM, ROM, các cổng vào ra và một bộ định thời trên cùng một chip Hay noi cách khác là bộ vi

xử lý, RAM, ROM, các cổng vào ra và 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 và 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) xong nó lại thật sự lý tưởng đốt với

những ứng dụng mang tính chuyên biệt, tốt tu về giá thành, tối ưu về không gian Hiện nay trên thị trường có các bộ vì điêu khiển 8 bít chính là 6811 của

Trang 3

được sản xuất ra bởi các hãng sản xuất chíp khác nhau

Nhiing yéu cau dé lua chon mot bo vi dié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 và đây đủ chức năng có thể nhìn thấy dược, (khả di)

+ 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ữ và gố rối

+ Nguồn các bộ vi điêu khiển có sẵn nhiều và tin cậy

Các tiêu chuẩn lưa chon mót bô vỉ điệu khiển:

Tiêu chuẩn đâu tiên và trước hết trong lựa chọn một bộ vì điều khiển là nó

phải dap ứng nhu cầu bài tốn về mặt cơng suất tính toán, giá thành và 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ộ vì điêu khiển, chúng

ta trước hết phải biết là bộ vì điều khiển nào là 8 bít, l6 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ộ vì điều khiển hỗ trợ là bao nhiêu

+ Kiểu đóng vỏ: Đó là kiểu 40 chân DỊP 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 và 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 pin, dc quy

+ Dung lượng bộ nhớ RAM va ROM trén chip

+ Số chân vào - ra, bộ định thời, số ngắt trên chip

+ 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ộ vì điều khiển dược sử dụng

Bô Vị điềt khiển 8 bit PICI6F 877

Đặc tính nổi bật của bộ vị xử lí

+ Sứ dụng công nghé tich hop 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ớ chuong trinh Flash 8Kx14 words

+ Bé nhé Ram 368x8 bytes + Bộ nhớ EFPROM 256x 8 bytes

Khả năng của bộ vì xử lí này

+ Khả năng ngắt ( lên tới 14 nguồn ngắt trong và ngắt ngoài )

+ Ngăn nhớ Stack được phân chua làm Š 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)

Trang 4

+ Bộ đếm xung thời gian (WDT) 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 !EEPROM nguồn mức thấp ,tốc độ cao

+ Thiết kế hoàn toàn tinh

+ Mạch chương trình nối tiếp có 2 chân

+ Xứ lý đọc lghi 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 tai 25 mA

+ Day nhiệt độ công nghiệp và thuận lợi

+ Công suất tiêu thụ thấp -

< 0.6mA voi 5V, 4MHz 20uA với nguồn 3V, 32 kHz

< 1 uA nguồn dự phòng

Các đặc tính nổi bật của thiết bị ngoai vi trén chip

+ Từmer0: 8 bít của bộ định thời, bộ đếm với hệ số tỷ lệ trước

+ Timerl: l6 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ố

ty 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 bit

+ Cổng truyền thông nối tiếp SSP với SP phương thức chủ và P C(chu/phu)

+ Bộ truyền nhận thông tin đồng bộ, dị bộ(USARTISCL) có khả năng phát hiện 9 bit dia chi

+ Cổng phụ song song (PSP) với 8 bít mở rộng, với RD, WR và CS

Trang 6

a So dé khéi bo vi diéu khién PICIGF87X 1, Det Bux & PORTA Program Courter RAQANO EA1/AMI RAB bE Viner RAS AMS VREF* RAATOCK! Rasta /ss FLASH Program Mernory E4 Fie Registers 8 Lewel Stack (15-bit) Program id ms Rébt Addi!) 4p 9 EE/YIMT REA RB2 RBSIPGM REA RBS RBRIPGC RB7!PGäD ction rex Indreet Addr FSR r STATUS reg RGOTIGSO/TIGKI Tp EG1/T108I'EGP2 Timer EE2/CCFI = RC3.SCK/SCL waeaee Sa úp Tìmer BE4/5I/STA Cantrel a RC5/SD0 Reet EG8/TXIGK RCT.RXDI Tian Watchdog Generalicn umes ESE-1'EIKIN tHA2/GLROLIT Reset 10-bit A Synchronous Ceta EEPROM Senal Port DCF12 $Šo

sánh với bô vỉ điệu khiển 8051

* Bộ vì điêu khiển 8051 là bộ VĐK đâu tiên thuộc họ VĐK x51 được sẳn xuất

boi 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 + 128B RAM + 4 cổng HO 8 bít +2 Tưmer ló bư + 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ý dượ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 dược 210 bit (cdc bit nay dé duoc dia chỉ hoá)

+ Có 5 ngắt

+_ Dùng nguồn dao động ngoài

+ Ding dién áp 5V để cho chip hoạt động

Trang 7

*Cổng PI : Là cổng vàolra có 8 chân (8 bữ!)

*Cổng P2: Có 8 chân (8 bit) là cổng vàolra hoặc là cổng chuyển đữ liệu và

địa chỉ

*Cổng P3: Có 8 chân, cổng này có thể là cổng vàolra 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 và ghỉ các bộ nhớ ngồi = §ở đơ khối cia VDK 8051 Timer 0 la Timer 1 pee Ports Timer 0 TO Tnfl > RAM128 ROM

=— “| Interupt bytes 4K Timer1 L| T4

IntO > control Registers 7s eS N YT LU LU | CPU ic 5 = J | a ` eral por |/O Port Oscilator Bus ) a Z>“"> ‹><^> ` PH | L P0 P2 P1 pa TxD RxD Cr GND

Như vậy có thể thấy đặc điểm đầu tién ma PICI6F877 đem lại và nổi bật so

voi VDK 8051 la déng PICI6F877 những đặc tính lĩ thuật hơn hẳn so với bộ

VĐK 8051 thể hiện ở những điểm sau: VĐK§051T VĐK PICI6FS77 Đặc tính Số lượng Đặc tính Số lượng

ROM trên chíp 4K byte RƠM trên chíp 8K RAM 128 byte RAM 368 byte

Bộ định thời 2 Bộ định thời 3 Các chân vào ra 32 Các chân vào ra 40

Cổng nối tiếp 1 Cổng nối tiếp 2

Nguồn ngắt 6 Nguồn ngắt 14

Ngoài những đặc tính trên thì bộ vì điêu khiển PICI6F877 còn có một đặc

điểm hơn hẳn so với 8051 là có 10 bít chuyển đổi AID 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ốt dây trở nên phức

tap)

Một đặc điểm nữa là bộ vi diéu khién PICI6F877 cé bé tao dao déng chu trén chip đ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, VĐK

Trang 8

PHAN I

THIET KE PHAN CUNG

Sơ đồ khối của mach

as Khối xử lý Khối Khối xử lý Khối hiển Nhiệt độ ——>| nhiệt độ ADC >| vaora thị và cảnh

mỖI trường báo Khối xử lý chung ® Khối xử lý nhiệt độ và khối ADC : Là một sensor nhiệt LM335 và một bộ ADC 10 bịt Sơ đồ của sensor nhiệt LM335 TO-92 Plastic Package DS005698-8 Bottom View Order Number LM335Z

LM335 cô đầu vào là nhiệt độ môi trường và đầu ra là diện áp

Y Chan 1 là chân mang dấu “-”, thường được nối đất khi phân

Cực

v Chân 2 là chân mang dấu “+”, được nối với V+ thông qua một

điện trở và chân 2 cũng là đầu ra của LM335

v 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

Trang 9

Calibrated Sensor yr OUTPUT 10 mv/*K * LM335 10k DS005688-9 *Calibrate for 2 982V at 25°C

Còn bộ bién d6i ADC , ta ding ADC ctia PIC 14 ADC 10 bít

Nguyên lý làm việc và các công thức tính tố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ề LM2335 xem thêm trong datasheet) LM335 là sensor đo nhiệt, đo được

nhiệt độ trong khoảng từ -40”C đến 100C, đầ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,„r=V,., giả thiết

là Vạ¿ = 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ạ là điện áp đưa vào chân ADC của PIC, ADC _value 1a giá trị đầu ra của ADC dưới dạng thập phân): ADC_Vi,=5V => ADC_value = 1023 ADC_ Vụ = 2.73V => ADC_ value = (1023/5)x2.73=558.558 (tương ứng 0 độ ©) ADC_Vin = 3.03V => ADC_value = (1023/5)x3.03=619.938 (twong ứng 30 độ C) Mặt khác do V_ref = V,, =3V nên ADC_value=l tương ứng 5/1023 = 4.687mV

(~ 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ị và cảnh báo

Ta dùng LED 7 thanh để hiển thị nhiệt độ của môi trường và 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ế)

Trang 10

Tỉ A1015 A1015 x— [| RD3PSPS RBB/PGC Là 39 | RD2/PSP2 RB7/PGD ras T 34] RC4/SDI/SDA X35] RCS/SDO RB5 [T7 RB4 FT x—fŸ | RC8TMCK RB3/PGM LỄ 34 x—ŸT | RC7/RXDT RB2 x—l-| RD4/PSP4 RBI $4] RDS/PSP5 —-RBO/INT $5] RD8/PSPB 22pF *— >] RD7/PSP7 RA2/AN2 L¿—*

Hrzm= tư RA3/AN3 LỆ —X RA4

LLÌ] T 18 POSC1/CLKI RE0/ANS RA5/AN4 Ì 18 †OSC2/CLKO RE1/ANB 22pr Ge] RC0TICKI RE2/AN7 x—j7-| RC1/CCP2 = 4 X—ïg-| RC2'CCP1 49-| RC3/SGK/SCL ——A€——Š)] Rb0PsPo $$ An “| RD1/PSP1 VDD1 VSSI SPEAKER 32 RA1/AN1 VDD RA0/AN0 11 VPP PTC16EF877A oo PB_SPST §& SW2 ‘| SW

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 và 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 và 19 của VĐK

PIC16F877A (cụ thê là nối với các chân RD0O và RDI 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 và có thé sáng, ngược lai thi LED 1 bi phân cực sai lúc đó nó

sẽ không sáng Tương tự cho chân RDO và 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 bit 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

Trang 11

còn có các chân 33 đến 39 cũng là các chân output (chinh là cdc bit RBO dén RB6 được thiết lập là các chân output của PORTB), các chân này được nối với LED 7 thanh để hiền thị nhiệt độ, khi LED được phân cực đúng thì nếu các chân

này ở mưc cao thì LED sẽ sáng Chân 2 là chân Input, là chân vào Analog của

ADC

Các chân 11,12,31,32 là các chân cấp nguồn cho VĐK, riêng chân Vpp (chân 1) chính là chân RESET Chân 13, 14 là các chân dùng cho việc thiệt lập xung Clock

Trang 12

PHAN II

THIET KE PHAN MEM

Trong bài này chúng ta sẽ dùng chương trình CCS (ngôn ngữ C cho PIC cua

Microchip) dé viét phan lập trình cho VĐK, ưu điểm của nó là khá nhỏ gọn so với khi ta viết bằng MASM nhờ được hỗ trợ khá nhiều hàm, ngoài ra ta còn có thê chèn một đoạn chương trình viết bằng ASM giữa hai chi thị tiền xử lý là #ASM và

#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ả

Tran Xuân Trường, SV K2001, ĐHBK HCM hoặc đầy đủ hơn là phần Hepl trong

trinh cai dat PIC C Compiler

Code đầy đủ cho chương trình

#include <16F877A.h> //Khai báo con PIC ta sur dụng và file khai báo các

bít,các

/ƒ thanh ghi quan trong trong con PIC nay

#include <def_877a.h> //Khai báo sự định ngiã các thanh ghi và các bít quan trọng

#device *=16 adc=10 /ƒ Khai báo dung poiter 16 bit va ADC 10 bit

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,

NOLVP, NOCPD, NOWRT /jKhai báo các config

#use delay(clock=20000000) //Khai bdo str dung hàm Delay và tần số dao động sử dụng

int8 high,low; /IKhai 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 const a[10] = {OxC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

/¡ Chương trình con tách số hàng chục va hang don vị thành hai số chứa trong hai biến //4& khai bdo 6 trén 14 high va low void convert_bcd(int8 x) { low=x%10; //chia lay phan du, low=hang don vi high=x/10; high=high%10; //high=sô hàng chục } /ƒ Chương trình con giải mã và hiện thị nhiệt độ void displayQ {

PORTB=al[low]; / Giti đữ liệu dén LED 1

RDO=0; // Bat LED1, LED 1 sé hién thi ding gia tri cua low

delay_ms(2); // Cho trễ 2ms

Trang 13

PORTB=a[high]; // LED 2 RD1=0; delay_ms(2); RD1=1; } //Chương trình con thục hiện việc báo động void bao_dong(){ int8 i; for=0;i1<200;I++) { REO=0;delay_us(100); REO=1;delay_us(100); } //Kéu 200 tiéng } /ƒ Chương trình chính void main() { float value; int16 1;

trisb = 0x00; /Ithiết lập các chân của PORTB là các chân Output trisc = 0x00; // thiét lập các chân của PORTC 1A cdc chan Output trisd = 0x00; /I thiết lập các chân của PORTD là các chân Output trise = 0x00; / thiết lập các chan cha PORTE 1a cdc chan Output trisa = Oxff; // thiét lap c4c chan cha PORTa 1a cdc chan Intput

portC = Oxff; // thiết lập các chân của PORTC xuấtra điện áp ở mức cao

portD = Oxff; // thiệt lập các chân của PORTd xuât ra điện áp ở mức cao

//Thiết lập cho ADC

setup_adc(ADC_CLOCK_INTERNAL); //Chỉ ra cách thức hoạt động của

ADC là thời

// gian lay mau bang xung clock

Trang 14

value = (value - 558.5)/2.048; //for 5V supply if G@==150) { convert_bcd((int8)value);i=0; } if(((int8)value > 40) Il (Gint8)value < 15)) bao_dong(); display(); ® Tại sao khi gắn a[low] =PORTB thì LED I lại hiển thị giá trị của low? Bởi vì mảng hẳng số: a[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; sẽ tương đương với mảng giá trị các số nhị phân như sau: a[10]= {11000000,11111001,10100100,10110000,10011001,10010010,10000010, 11111000,10000000,10010000);

Kê từ phải qua trái (bỏ qua số nhị phân cuối cùng bởi vì ta không sử dụng chan RB7 của PORTB) các số nhị phân này chỉ ra mức điện áp ở các thanh

a,b,c,d,e,f,¢,h cua LED

Tức là mảng này tương ứng với các giá trị hiển thị trên LED là các số: 0,1,2,3,4,5,6,7,8,9 eMột số các hàm trong CCS đã được sử dụng là: Hàm delay_us(time) delay_ms(time) vi du: delay_us(2) ; /ạo trễ 2us delay_ms(2); /ạo trễ 2ms Hàm: setup_adc(ADC_CLOCK_INTERNAL);

hàm này dùng để xác định cách thức hoạt động của bộ biến đổi ADC, cụ thể là xác định thời gian lấy mẫu bằng một xung clock

Hàm:

setup_adc_ports(ANO); setup_ADC_channel(0)

các hàm này dùng để xác định chân lấy tín hiệu Analog là chân ANO

Trang 18

#bit int0ie = Ox0b.4 #bit rbie = 0x0b.3 #bit tmr0if = 0x0b.2 f#bitimOf = Ox0b.1 #bit rbif =0x0b.0 // PIR1 for C #bit pspif = Ox0c.7 #bit adif = Ox0c.6 #bit rcif = Ox0c.5 #bit txif == Ox0c.4 #bit sspif =Ox0c.3 #bit ccplif =0x0Óc.2 #bit tmr2if =O0x0c.1 #bit tmrlif =0Ox0c.0 //PIR2 for C #bit cmif = 0x0d.6 #bit eeif = 0x0d.4 #bit bclif = Ox0d.3 #bit ccp2if = 0x0d.0 // PIE1 for C

#bit adie = O0x8c.6 #bit rcie = Ox8c.5 #bit txie = O0x8c.4

#bit sspie = Ox8c.3 #bit ccplie =Ox8c.2

Trang 20

PHAN TONG KET 1, Nhân xét kết quả nhận được

Nhiệt độ đo dược khá chuẩn xác, tuy nhiên sai số vẫn còn khá lớn

(tới một độ C), điều này ta có thể khắc phục được bằng cách dùng ba LED để hiển thị, lúc đó sai số sẽ giảm xuống còn 0,1°C (bởi vì ADC

trong con PIC này là 10 bít => giá trị nó xuất ra tới 1023) Nếu muốn

chuẩn xác hơn nữa ta có thể dùng ADC ngoài có số bít cao hơn, hoặc

dùng LCD để hiển thị

Ung dung cua đề tài rất rộng rãi trong cuộc sống, nhất là trong

các nhà máy bia, các hệ thống làm lạnh trong việc kiểm soát nhiệt độ 2.Hướng phát triển mở rộng đề tài:

- Nâng cao độ chính xác hiển thị bằng cách dùng ADC có độ phân giải

cao hơn (có 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 và 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 hợp theo từng mùa, từng thời điểm định trước

- Sử dụng PID trong điều khiển tự động kết hợp với các mạch điều

khiển tăng giảm nhiêt độ để đảm bảo nhiệt độ luôn bám theo một giá

Ngày đăng: 04/08/2022, 16:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w