Kết quả 1 đến 1 của 1
-
07-22-2016, 06:56 PM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Đo nhiệt độ-độ ẩm hiển thị lcd >> ai giúp đỡ phần xuất tín hiệu báo động với !!
các bác giúp đỡ em phần xuất tín hiệu cảnh báo với
(
Mã:#include "main.h" #include "lcd_new.h" #use FAST_IO(B) #use FAST_IO(C) #use FAST_IO(D) #use FAST_IO(E) #byte PORTA=0x05 #byte PORTB=0x06 #byte PORTC=0x07 #byte PORTD=0x08 #byte PORTE=0x09 #bit led = portD.0 #bit DHT_DATA = PORTA.1 #define SET_PIN SET_TRIS_A #define DHT_ER 0 #define DHT_OK 1 #define DHT_ND 0 #define DHT_DA 1 float nhietdo = 0, doam=0; /*********************************************************************************************** Chuc nang : Gui tin hieu do va doc gia tri tra ve cua DHT11 Tham so : select: Chon lua lay gia tri do am hay nhiet do Tra ve : buffer: tra ve gia tri nhiet do, do am DHT_ER: giao tiep voi DHT11 bi loi DHT_OK: giao tiep tot voi DHT11 ***********************************************************************************************/ unsigned char DHT_GetTemHumi (unsigned char select) { unsigned char buffer[5]={0,0,0,0,0}; unsigned char ii,i,checksum; SET_PIN(0x00);// set la cong ra DHT_DATA=1; delay_us(60); DHT_DATA = 0; delay_ms(25); // it nhat 18ms DHT_DATA = 1; SET_PIN(0xff); delay_us(40); if(DHT_DATA==1)return DHT_ER ; else while(DHT_DATA==0); //Doi DaTa len 1 delay_us(60); //60 if(DHT_DATA==0)return DHT_ER; else while((DHT_DATA==1)); //Doi Data ve 0 //Bat dau doc du lieu for(i=0;i<5;i++) { for(ii=0;ii<8;ii++) { while(DHT_DATA==0);//Doi Data len 1 !DHT_DATA delay_us(50); //50 if(DHT_DATA==1) { buffer|=(1<<(7-ii)); while(DHT_DATA==1);//Doi Data xuong 0 } } } //Tinh toan check sum checksum=buffer[0]+buffer[1]+buffer[2]+buffer[3]; //Kiem tra check sum if((checksum)!=buffer[4])return DHT_ER; //Lay du lieu if (select==DHT_ND) { //Return the value has been choosen return(buffer[2]); } else if(select==DHT_DA) { return(buffer[0]); } return DHT_OK; } //------------------------------------------------------// void main() { set_tris_d(0xff); set_tris_a(0xff); lcd_init(); delay_ms(200); lcd_gotoxy(7,1); lcd_putc('H'); delay_ms(100); lcd_putc('I'); delay_ms(200); lcd_putc('!'); delay_ms(1000); printf(lcd_putc,"\f " ); printf(lcd_putc,"Pham Van Linh"); delay_ms(1000); lcd_gotoxy(1,2); printf(lcd_putc,"demo" ); delay_ms(2000); printf(lcd_putc,"\f " ); while(TRUE) { set_tris_d(0xff); nhietdo= DHT_GetTemHumi (DHT_ND); delay_ms(400); lcd_gotoxy(1,1); printf(lcd_putc,"Nhiet do: " ); lcd_gotoxy(10,1); printf(lcd_putc,"%3.1f ^C",nhietdo); delay_ms(800); if (nhietdo>=40) { led=0; } // doam= DHT_GetTemHumi (DHT_DA); // lcd_gotoxy(1,2); // printf(lcd_putc,"Do am: " ); // lcd_gotoxy(10,2); // printf(lcd_putc,"%3.1f ",doam); // lcd_gotoxy(14,2); // lcd_putc('%'); // delay_ms(1000); } }
View more random threads:
- Mạch điều khiển động cơ dùng hồng ngoại
- Nhập môn VĐK PIC với 16F877A
- Nhờ pro kiểm tra giúp code hiển thị LCD4bit
- driver to RS 232
- Lấy mẫu tín hiệu và kết nối 2 VĐK
- giúp e với ,dùng PIC 16f887
- Đo nhiệt độ dung dịch dùng pic 16f877a và cảm biến pt100
- Băm xung điều khiển động cơ
- Cần bán MODULE GPS NEO-6M và module sim900A.
- Giúp em gỡ lỗi PIC18F4550 giap tiếp chuẩn USB
Bán bột cá biển, bột xương thịt,...
Hôm nay, 06:22 PM in Rao vặt tổng hợp