ĐACN Mạch đo nhiệt độ và điều khiển động cơ, hiển thị LCD dùng PIC 16f877a

19 4.2K 33
ĐACN Mạch đo nhiệt độ và điều khiển động cơ, hiển thị LCD dùng PIC 16f877a

Đ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

Nhiệt độ là một đại lượng vật lý vô hướng. Để đo đạc và tính toán giá trị của nó ta phải dùng các bộ cảm biến. Mạch đo nhiệt độ dùng các loại bộ cảm biến LM35. Các bộ cảm biến LM35 là bộ cảm biến nhiệt, mạch tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius(). Bộ cảm biến LM35 cũng không yêu cầu cân chỉnh ngoài vì vốn chúng đã được cân chỉnh. Chúng đưa ra điện áp 10mV cho mỗi sự thay đổi 10C. Chương sau sẽ hướng dẫn chúng ta chọn các cảm biến họ LM35 sao cho phù hợp với mạch đo nhiệt độ cần thiết kế.Như vậy chỉ cần 1 bộ cảm biến LM35 ta có thể tính được giá trị nhiệt độ tại thời điểm xác định dựa vào giá trị điện áp đầu ra LM35. Như đã nói ở trên, ứng với mỗi thay đổi 10C, giá trị đầu ra sẽ tăng thêm 10mV. Do đo, qua một bộ chuyển đổi tín hiệu tương tự (điện áp) sang tín hiệu số (bit) để hiển thị kết quả đo đạc và tính toán, xử lý kết quả. Mạch chuyển đổi tương tự sang số ta có thể dùng IC ADC0804, Vi điểu khiển, Pic… Ở đây chúng ta dùng PIC16F877A, vừa chuyển đổi ADC, hiển thị LCD, vừa điều khiển động cơ.

Page 1 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 1 Nội dung: MẠCH ĐO NHIỆT ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ HIỂN THỊ LCD 2 I. KHÁI NIỆM CƠ BẢN VỀ MẠCH ĐO NHIỆT ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ. 2 1.1. Khái niệm mạch đo nhiệt độ. 2 1.2. Mô hình điều khiển động cơ. 2 1.3. Hiển thị LCD. 2 II. NGUYÊN LÝ HOẠT ĐỘNG PIC16F877A. 2 2.1. Chức năng ADC trong PIC16F877A. 2 2.2. Cài đặt chế độ ADC. 3 III. NGUYÊN LÝ HOẠT ĐỘNG CỦA IC LM35. 6 IV. KHỐI HIỂN THỊ LCD. 7 4.1. Cách nối dây trong LCD 7 4.2. Các hàm cơ bản trong LCD 7 V. CÁC CHẾ ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ. 8 5.1. Chế độ chọn mode hiển thị 10 5.2. Chế độ giảm mức điều chỉnh ngưỡng nhiệt độ bật/tắt động cơ. 10 5.3. Chế độ tăng mức điều chỉnh ngưỡng nhiệt độ bật/tắt động cơ 11 5.4. Chế độ bật - tắt động cơ. 11 VI. CÁC KHỐI CHỨC NĂNG KHÁC. 12 6.1. Tần số hoạt động 12 6.2. Nguồn cung cấp cho PIC 12 VII. CODE NẠP CHO PIC16F877A 13 VIII. SƠ ĐỒ MẠCH THIẾT KẾ. 18 IX. SƠ ĐỒ MẠCH IN. 19 X. SẢN PHẨM THỰC TẾ. 19 Page 2 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 2 MẠCH ĐO NHIỆT ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ HIỂN THỊ LCD I. KHÁI NIỆM CƠ BẢN VỀ MẠCH ĐO NHIỆT ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ. 1.1. Khái niệm mạch đo nhiệt độ. Nhiệt độ là một đại lượng vật lý vô hướng. Để đo đạc và tính toán giá trị của nó ta phải dùng các bộ cảm biến. Mạch đo nhiệt độ dùng các loại bộ cảm biến LM35. Các bộ cảm biến LM35 là bộ cảm biến nhiệt, mạch tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius (*) . Bộ cảm biến LM35 cũng không yêu cầu cân chỉnh ngoài vì vốn chúng đã được cân chỉnh. Chúng đưa ra điện áp 10mV cho mỗi sự thay đổi 1 0 C. Chương sau sẽ hướng dẫn chúng ta chọn các cảm biến họ LM35 sao cho phù hợp với mạch đo nhiệt độ cần thiết kế. Như vậy chỉ cần 1 bộ cảm biến LM35 ta có thể tính được giá trị nhiệt độ tại thời điểm xác định dựa vào giá trị điện áp đầu ra LM35. Như đã nói ở trên, ứng với mỗi thay đổi 1 0 C, giá trị đầu ra sẽ tăng thêm 10mV. Do đo, qua một bộ chuyển đổi tín hiệu tương tự (điện áp) sang tín hiệu số (bit) để hiển thị kết quả đo đạc và tính toán, xử lý kết quả. Mạch chuyển đổi tương tự sang số ta có thể dùng IC ADC0804, Vi điểu khiển, Pic… Ở đây chúng ta dùng PIC16F877A, vừa chuyển đổi ADC, hiển thị LCD, vừa điều khiển động cơ. 1.2. Mô hình điều khiển động cơ. Để điều khiện động cơ quay hay ngừng quay thì cũng giống như công tắc điện, bật thì quay và tắt thì ngừng. Quan trọng là bật khi nào và tắt khi nào và phải được thực hiện một cách tự động. Giống như khi nhiệt độ trong phòng ở mức 26 o C thì quạt tự bật và khi nhiệt độ trong phòng xuống thấp hơn 22 o C thì quạt tự động tắt. Để làm được điều này thì chúng ta phải có một thiết bị đo nhiệt độ, và khi nhiệt độ hiện tại lớn hơn hay nhỏ hơn mức điện áp ngưỡng đã cài đặt thì động cơ (quạt) sẽ được điều khiển theo chế độ đã định sẵn. Chương sau chúng ta sẽ tìm hiểu sâu hơn về nguyên lý điều khiển cung như các chế độ khác nhau dùng để điều khiện động cơ. 1.3. Hiển thị LCD. Khi nhiệt đo được qua bộ cảm biến và được chuyển đổi qua tín hiệu số. Chúng ta cần một thiết bị để hiện thị giá trị đo được. Thiết bị đó có thể là LED hoặc LCD,… Trong đề tài này, nhóm dùng LCD để hiển thị kết qua đo và hiển thị các chế độ điều khiện động cơ. LCD ở đây là thiết bị hiện thị trên màn hình với kích cỡ 2x16. Tức là với 2 hàng chữ, mỗi hàng 16 ký tự. Để hiển thị nhiều dòng ký tự ta phải hiển thị lần lượt. Tùy thuộc vào mức và quy mô mà ta lựa chọn thiết bị hiển thị phù hợp. II. NGUYÊN LÝ HOẠT ĐỘNG PIC16F877A. 2.1. Chức năng ADC trong PIC16F877A. - Trong PIC 16F877A có hỗ trợ bộ chuyển đổi ADC 10 bit 8 kênh. PIC16F877A có 8 ngõ vào Analog (RA4:RA0) và RE2:RE0). Page 3 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 3 Kết quả chuyển đổi từ tín hiệu tương tự sang tín hiệu số là 10 bít tương ứng và được lưu trong thanh ghi ADRESH:ADRESL. Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này có thể được sử dụng như các thanh ghi thông thường. Khi quá trình chuyển đôi hoàn tất, kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL. Cờ ngắt ADIF được set. Quá trình chuyển đổi tương tự sang số bao gốm các bước sau: 1. Thiết lập các thông số cho bộ chuyển đổi ADC Chọn ngõ vào alalog, chọn điện áp mẫu. Chọn kênh chuyển đổi AD (Thanh ghi ADCON0) Chọn xung Clock cho kênh chuyển đổi AD. Cho phép bộ chuyển đổi AD hoạt động. 2. Thiết lập các cờ ngắt cho bộ AD. Clear bit ADIF Set bit ADIE Set bit PEIE Set bit GIE 3. Đợi cho tới khi quá trình lấy mẫu hoàn tất. 4. Bắt đầu quá trình chuyển đổi. 5. Đợi cho tới khi quá trình chuyển đổi hoàn tất. 6. Đọc kết quả chuyển đổi và xóa cờ ngắt, set bit. 7. Tiếp tục thực hiện các bước 1 và 2 cho quá trình chuyển đổi tiếp theo. 2.2. Cài đặt chế độ ADC. Cài đặt chế độ ADC: Setup_adc(mode): Cú pháp: Setup_adc (mode); Setup_adc2(mode); Thông số: Mode - chế độ tín hiệu tương tự sang tín hiệu số. Sự lựa chọn hợp lý thay đổi phụ thuộc vào thiết bị. Xem những thiết bị có tập tin .h cho tất cả sự lựa chọn. Một vài sự lựa chọn tiêu biểu bao gồm: ADC_OFF ADC_CLOCK_INTERNAL ADC_CLOCK_DIV_32 - Trả về: Không được định nghĩa. - Chức năng: Định hình thể chuyển từ tín hiệu tương tự sang tín hiệu số. - Tiện lợi: Chỉ có trong những thiết bị có bộ chuyển đổi tín hiệu tương tự sang tín hiệu số. - Yêu cầu: Những hằng số đã được định nghĩa trong tập tin .h của thiết bị. Page 4 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 4 Ví dụ: setup_adc_ports( ALL_ANALOG ); setup_adc (ADC_CLOCK_INTERNAL ); set_adc_channel( 0 ); value = read_adc(); setup_adc( ADC_OFF ); Setup_adc_ports(value): Thiết lập những chân ADC có sẵn để chuyển từ tín hiệu tương tự sang tín hiệu số. Cú pháp: Setup_adc_ports (value) Thông số: Value - Một hằng số được định nghĩa trong tập tin .h của thiết bị. - Trả về: Không được định nghĩa. - Chức năng: Cài đặt những chân ADC là tín hiệu tương tự, tín hiệu số hoặc một sự kết hợp và điện áp tham chiếu để sử dụng khi tính tóan giá trị ADC. Sự kết hợp các chân tín hiệu tương tự đã được cho phép thay đổi phụ thuộc vào con chip và được định nghĩa bằng cách sử dụng từng bit OR để ghép những chân đã được chọn cùng với nhau. Kiểm tra thiết bị bao gồm tập tin các chân và điện áp tham chiếu đã được sắp đặt trong danh sách hòan chỉnh. Hằng số ALL_ANALOG và NO_ANALOG là hợp lý cho tất cả con chip. Một vài ví dụ khác định nghĩa chân là: ANALOG_RA3_REF - Kích hoạt tất cả các chân tín hiệu tương tự và chân RA3 là điện áp tham chiếu. RA0_RA1_RA3_ANALOG - Chỉ có chân RA0, RA1, RA3 là tín hiệu tương tự - Tiện lợi: Chức năng này có sẵn trong các thiết bị với phần cứng Analog/Digital - Yêu cầu: Những hằng số đã được định nghĩa trong tập tin .h của thiết bị Ví dụ: //Tất cả các chân analog Setup_adc_ports( ALL_ANALOG ); Chân A0,A1,A3 là analog, và tất cả các chân còn lại là digital. Điện áp +5V được sử dụng như điện áp tham chiếu. Setup_adc_ports( RA0_RA1_RA3_ANALOG ); //Chân A0,A1 là analog,chân A3 được sử dụng cho điện áp tham chiếu và tất cả các chân còn lại là digital Setup_adc_ports( A0_RA1_ANALOGRA3_REF ); Set_adc_channel(channel): Chỉ rõ những kênh dung để sử dụng cho việc gọi Analog/Digital. Cú pháp: set_adc_channel (chan) Thông số: Chân là số kênh được chọn.Số chân bắt đầu tại 0 và đã được đặt nhãn trong datasheet AN0,AN1. - Trả về: Không được định nghĩa. Page 5 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 5 - Chức năng: Chỉ rõ những kênh được sử dụng cho việc gọi lệnh READ_ADC(). Phải chờ 1 khoảng thời gian ngắn sau khi thay đổi kênh trước khi nhận được giá trị đọc hợp lý. Thời gian thay đổi phụ thuộc vào trở kháng của nguồn đầu vào. Khoảng 10us nói chung là tốt cho hầu hết các ứng dụng. Không cần thay đổi kênh trước mỗi lần đọc nếu kênh không thay đổi. Tiện lợi: Chức năng này có sẵn trong các thiết bị với phần cứng Analog/Digital - Yêu cầu:Không cần thứ gì. Ví dụ: Set_adc_channel(2); delay_us(10); value = read_adc(); read_adc(mode): Bắt đầu quá trình chuyển đổi và đọc giá trị.Chế độ này có thể cũng điều khiển chức năng. Cú pháp: value = read_adc ([mode]); Thông số: mode là một thông số không bắt buộc.Nếu được sử dụng giá trị có thể: ADC_START_AND_READ (Liên tục đọc,và đây là mặc định ) ADC_START_ONLY (Bắt đầu quá trình chuyển đổi và trả về giá trị) ADC_READ_ONLY (Đọc kết quả chuyển đổi cuối cùng ) - Trả về: 8 bit hoặc 16 bit số nguyên phụ thuộc vào #DEVICE ADC= directive (directive:lời chỉ dẫn, 8 hoặc 16). - Chức năng: Đây là chức năng đọc giá trị số từ bộ chuyển đổi tín hiệu tương tự sang tín hiệu số. Gọi lệnh setup_adc(), setup_adc_ports() and set_adc_channel() nên được làm vài lần trước khi chức năng này được gọi. Dãy giá trị trả về phụ thuộc vào số lượng bit tbộ chuyển đổi Analog/Digital trong con chip và sự sắp đặt trong DEVICE ADC= directive như sau: #DEVICE 8 bit 10 bit 11 bit 12 bit 16 bit ADC=8 00-FF 00-FF 00-FF 00-FF 00-FF ADC=10 x 0-3FF X 0-3FF x ADC=11 x x 0-7FF x x ADC=16 0-FF00 0-FFC0 0-FFEO 0-FFF0 0-FFFF Lưu ý: X không được định nghĩa - Tiện lợi: Chức năng này có sẵn trong các thiết bị với phần cứng Analog/Digital - Yêu cầu: Những chân cố định đã được định nghĩa trong tập tin .h của thiết bị Ví dụ: Setup_adc( ADC_CLOCK_INTERNAL ); Setup_adc_ports( ALL_ANALOG ); Set_adc_channel(1); While ( input(PIN_B0) { delay_ms( 5000 ); value = read_adc(); printf("A/D value = %2x\n\r", value); } Page 6 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 6 read_adc(ADC_START_ONLY); sleep(); value=read_adc(ADC_READ_ONLY); ADC_done():Trả về 1 nếu bộ chuyển đổi đã hòan thành việc chuyển đổi của nó - Tiền xử lý có liên quan: #DEVICE ADC=xx : Định hình thể read_adc rồi trả về kính thước. Ví dụ, sử dụng 1 con PIC với 10 bit A/D bạn có thể sử dụng 8 hoặc 10 cho xx- 8 sẽ trả về bye có trọng số cao nhất, 10 sẽ trả về tòan bộ giá trị đọc A/D 10 bit Các ngắt có liên quan: INT_AD: Ngắt xảy ra khi quá trình chuyển đổi đã hoàn tất INT_ADOF: Ngắt xảy ra khi quá trình chuyển đổi trong thời gian chờ Các tập tin có liên quan: Không có,tất cả chức năng được cài đặt sẵn Các thông số getenv() có liên quan: ADC_CHANNELS : Số kênh Analog/Digital ADC_RESOLUTION : Số lượng bit trả về bởi lệnh read_adc. III. NGUYÊN LÝ HOẠT ĐỘNG CỦA IC LM35. LM 35 là cảm biến nhiệt độ. LM35 có 3 chân (2 chân cấp nguồn và 1 chân xuất điện áp ra tùy theo nhiệt độ). Nhiệt độ tăng 1C thì điện áp xuất ra ở chân out của LM35 tăng 10mV. Hình 1: Hình 2 Để đo lường nhiệt độ thì có thể dùng nhiều loại cảm biến nhiệt khác, mỗi loại có một ưu điểm riêng phù hợp với từng nhu cầu riêng. Ở đây đề tài là đo nhiệt độ môi trường bình thường nên sử dụng LM35 là tối ưu nhất vì: đây là loại cảm biến có độ chính xác cao, tầm hoạt động tuyến tính từ 0-128 độ C, tiêu tán công suất thấp Page 7 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 7  Chân 1: Đấu với nguồn. Nguồn cung cấp có thể từ 4V đến 20V tùy từng loại IC LM35 sử dụng.  Chân 2: Chân V out cho giá trị ra thay đổi theo nhiệt độ môi trường. Ứng với mỗi giá trị nhiệt độ đầu vào ta có mức điện áp ra tương ứng. Với mỗi chênh lệch 1 o C thì điện áp đầu ra sẽ chênh lệch 10mV.  Chân 3: Chân nối đất. Sơ đồ mạch như hình bên: (Hình 3) (Hình 3) IV. KHỐI HIỂN THỊ LCD. Như đã đề cấp trước, LCD dùng ở đây là LCD 2 hàng, mỗi hàng 16 ký tự. Để sử dụng LCD , ta hãy đọc file “LCD.C” trong thư viện Driver của CCS. Ở đó CCS hướng dẫn cách ta đi dây cho các chân của LCD, đồng thời CCS viết sẵn cho ta các hàm thao tác cho LCD: 4.1. Cách nối dây trong LCD Cách nối dây: // Định nghĩa chức năng các chân. // D0 Enable // D1 RS (Reset) // D2 RW (Rewrite) // D4 D4 // D5 D5 // D6 D6 // D7 D7 // LCD chân D0-D3 không được sử dụng. 4.2. Các hàm cơ bản trong LCD - Wrtchar("char") : hàm để xuất ký tự ra LCD. - Setcursor(x,y) : hàm cho phép con trỏ nhảy tới vị trí (x,y) trên LCD. Mô phỏng ví dụ dùng LCD bằng Proteus: Code : #include <16F877A.h> #include <def_877a.h> #device *=16 ADC=10 #include <lcd.h> Page 8 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 8 #use delay(clock=20000000) void hiennhietdo() // Ham hien thi nhiet do do duoc tu LM35 { int8 t,chuc,donvi; setcursor(0,0); wrtchar("- DO NHIET DO -"); // Hien thi dong tren t = ct; chuc = t/10 + 48; // Tach so hang chuc va hang don vi donvi = t%10 + 48; setcursor(0,1); wrtchar("NHIET DO: "); // Hien thi so do nhiet do len LCD wrtchar(chuc); wrtchar(donvi); wrtchar("*C"); delay_ms(50); } V. CÁC CHẾ ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ. - Các chế độ điều khiển. Code chọn chế độ điều khiện ứng với 4 nút bấm.  Phím 1: Chọn chế độ - mode.  Phím 2: Chỉnh tăng ngưỡng nhiệt độ.  Phím 3: Chỉnh giảm ngưỡng nhiệt độ.  Phím 4: Chế độ bật tắt động cơ. Void readkb() // Ham phat hien phim bam. { anphim=0; if(INPUT(PIN_C0)==0) // Neu phim 1 duoc an (phim chon mode) { delay_ms(150); // Ham delay chong rung phim while(INPUT(PIN_C0)==0); // Cho den khi nut duoc tha ra mode++; // Tang mode len 1 de chuyen sang mode ke tiep if(mode==3) mode=0; // Lap lai mode 0 khi da chuyen qua het cac mode anphim=1; Page 9 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 9 } else { if(INPUT(PIN_C1)==0) // Neu phim 2 duoc an (phim giam) { delay_ms(150); // Chong rung phim (cho phim duoc an trong 1 luc) if(INPUT(PIN_C1)==0) { if(mode==1) { if(tmin>0) tmin ; anphim=1; } // Giam nguong tuy theo mode, "tmin" >0 thì giảm 1 if(mode==2) { if(tmax>tmin+1) tmax ; anphim=1; } // de "tmax" không nhỏ hơn "tmin" +1 } } else { if(INPUT(PIN_C2)==0) // Neu phim 3 duoc an (phim tang) { delay_ms(150); // Cho phim duoc an trong 1 luc if(INPUT(PIN_C2)==0) { if(mode==1) { if(tmin<tmax-1) tmin++; anphim=1; // Tang nguong tuy theo mode. Tmin khong the >tmax-1 } if(mode==2) { if(tmax<90) tmax++; anphim=1; // tmax khong lon hon 90do. } } } else if(INPUT(PIN_C3)==0) // Neu phim 4 duoc an (phim bat/tat) { delay_ms(150); Page 10 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 10 while(INPUT(PIN_C3)==0); // Cho den khi nut duoc tha ra if (ct>=tmin&&ct<=tmax) // Neu nhiet do nam trong khoang 2 nguong { // thi nut 4 co chuc nang bat/tat quat bat=~bat; if(bat==1) OUTPUT_BIT(PIN_D0,1); if(bat==0) OUTPUT_BIT(PIN_D0,0); anphim=1; } } } } } 5.1. Chế độ chọn mode hiển thị Trong chế độ này, khi bấm phím 1 chế độ này sẽ được kích hoạt. Có 3 mức hiển thị:  Đo nhiệt độ: Nhiệt độ là: 0 C  Hẹn bật quạt: Hiển thị mức nhiệt độ đã cài để bật quạt.  Hẹn tắt quạt: Hiển thị mức nhiệt độ đã cài để tắt quạt. if(INPUT(PIN_C0)==0) // Neu phim 1 duoc an (phim chon mode) { delay_ms(150); // Ham delay chong rung phim while(INPUT(PIN_C0)==0); // Cho den khi nut duoc tha ra mode++; // Tang mode len 1 de chuyen sang mode ke tiep if(mode==3) mode=0; // Lap lai mode 0 khi da chuyen qua het cac mode anphim=1; } 5.2. Chế độ giảm mức điều chỉnh ngưỡng nhiệt độ bật/tắt động cơ. Phím bấm thứ 2 sẽ kích hoạt chế độ điều khiển này. Khi chọn chế độ mode tắt hoặc bật động cơ thì chế độ điều khiển này sẽ làm giảm giá trị ngưỡng cài đặt nhiệt độ để tắt hoặc bật động cơ. Code: [...]... if(mode==2) { if(tmaxtmin+1) tmax ; anphim=1; } // de "tmax" khong nho hon "tmin" +1 } } 5.3 Chế độ tăng mức điều chỉnh ngưỡng nhiệt độ bật/tắt động cơ Phím bấm thứ 3 sẽ kích hoạt chế độ điều khiển này Khi chọn chế độ mode tắt hoặc bật động cơ thì chế độ điều khiển này sẽ làm tăng giá trị ngưỡng cài đặt nhiệt độ để tắt hoặc bật động cơ Code: If (INPUT(PIN_C2)==0) // Neu phim 3 duoc an (phim tang) { delay_ms(150); //... 13 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD Ổn áp hay ổn dòng người ta thường dùng Tranzito cung suất hoặc các IC 3 chân Đối với IC 3 chân thì ta có các họ 78XX, 79XX Trong đó họ 78XX là ổn áp điện áp dương và dòng 79XX là ổn áp điện áp âm VII CODE NẠP CHO PIC1 6F877A Code: #include #include #device *=16 ADC=10 #include #FUSES NOWDT //No Watch... duoc doc thi hien thi ra LCD neu dang { // o mode hien thi va tien hanh kiem tra nguong if(mode==0) { hiennhietdo(); } check(); // Kiem tra nguong } readkb(); } while(anphim==0); // Lien tuc lap lai viec kiem tra xem nhiet do } // co duoc doc hay ko va kiem tra phim bam } VIII SƠ ĐỒ MẠCH THIẾT KẾ Page 18 19 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD Mạch được mô phỏng trên... voi tmin=20*C va tmax=27*C tmin = 20; // va hien thi mode do nhiet do dau tien tmax = 27; lcd_ init(); // Khoi tao LCD wrtcmd(0x01); wrtcmd(0x28); wrtcmd(0x0c); SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_8); // Cai dat timer1 voi bo chia tan 1:8 Page 17 18 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD SET_TIMER1(3035); // Gia tri khoi tao cho timer1 ( dem den 65535 // voi clock 20Mhz... DO: "); // Hien thi so do nhiet do len LCD wrtchar(chuc); wrtchar(donvi); wrtchar("*C"); delay_ms(50); } void settmin() // Ham cai dat nguong nhiet do min { int8 t,chuc,donvi; Page 15 16 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD setcursor(0,0); wrtchar("- HEN TAT QUAT -"); t = tmin; // Tach hang chuc va don vi cua tmin va hien thi ra LCD chuc = t/10 + 48; donvi = t%10 + 48;... [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD If (INPUT(PIN_C1)==0) // Neu phim 2 duoc an (phim giam) { delay_ms(150); // Chong rung phim (cho phim duoc an trong 1 luc) if(INPUT(PIN_C1)==0) { if(mode==1) { if(tmin>0) tmin ; anphim=1; } // Giam nguong tuy theo mode, "tmin" >0 thi giam 1 if(mode==2) { if(tmax>tmin+1) tmax ; anphim=1; } // de "tmax" khong nho hon "tmin" +1 } } 5.3 Chế độ tăng... wrtchar("*C"); delay_ms(50); } void selectmode() // Ham lua chon mode hien thi { switch (mode) { case 0: hiennhietdo(); break; case 1: settmin(); break; Page 16 17 [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD case 2: settmax(); break; } } #INT_TIMER1 // Khai bao su dung ngat timer1 void ct_phuc_vu_ngat() { CLEAR_INTERRUPT(INT_TIMER1); // Xoa co ngat timer1 DISABLE_INTERRUPTS(GLOBAL);... >tmax-1 } if(mode==2) { if(tmax=tmin&&ct . [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 2 MẠCH ĐO NHIỆT ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ HIỂN THỊ LCD I. KHÁI NIỆM CƠ BẢN VỀ MẠCH ĐO NHIỆT ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ. 1.1. Khái niệm mạch đo. [at_nightfall_09] - Mạch đo nhiệt độ điều khiển động cơ, hiển thị LCD. 1 Nội dung: MẠCH ĐO NHIỆT ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ HIỂN THỊ LCD 2 I. KHÁI NIỆM CƠ BẢN VỀ MẠCH ĐO NHIỆT ĐỘ ĐIỀU KHIỂN ĐỘNG CƠ. 2. IC ADC0804, Vi điểu khiển, Pic Ở đây chúng ta dùng PIC1 6F877A, vừa chuyển đổi ADC, hiển thị LCD, vừa điều khiển động cơ. 1.2. Mô hình điều khiển động cơ. Để điều khiện động cơ quay hay ngừng

Ngày đăng: 05/07/2014, 18:56

Từ khóa liên quan

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

Tài liệu liên quan