TÀI LIỆU THAM KHẢO
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 78 else{
else{ bit_set(_data, (7 - i)); while(Data_Pin){ k++; if (k > 100) {Time_out = 1; break;} delay_us(1);} } } return _data; } //========================================================= VOID READ_DATA_DHT22() { delay_ms(1000); Time_out = 0; Start_signal();
if(check_response()){ // chờ phản hồi của cảm biến RH_byte1 = Read_Dată); // đọc RH byte1
RH_byte2 = Read_Dată); // đọc RH byte2 T_byte1 = Read_Dată); // đọc T byte1 T_byte2 = Read_Dată); // đọc T byte2 Checksum = Read_Dată); // đọc checksum
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 79
LCD_COMMAND(0XD4); LCD_DATĂ" Time out! "); //báo lỗi }
else{
if(CheckSum == ((RH_Byte1 + RH_Byte2 + T_Byte1 + T_Byte2) & 0xFF)) // kiểm tra dữ liệu nhận được so với dữ liệu tổng.
{
RH = RH_byte1;
RH = (RH << 8) | RH_byte2; Temp = T_byte1;
Temp = (Temp << 8) | T_byte2; if (Temp > 0X8000)
{
DHT_DATA[2] = '-'; Temp = Temp & 0X7FFF; } else DHT_DATA[6] = ' '; DHT_DATA[2] = (Temp / 100) % 10 + 48; DHT_DATA[3] = (Temp / 10) % 10 + 48; DHT_DATA[5] = Temp % 10 + 48; DHT_DATA[6] = 223; // ký hiệu độ C DHT_DATA[14] = (RH / 100) % 10 + 48;
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 80
DHT_DATA[15] = (RH / 10) % 10 + 48; DHT_DATA[17] = RH % 10 + 48; // LCD clear
LCD_COMMAND(0XD4); // Go to column 1 row 1
printf(LCD_DATA, DHT_DATA); // Xuất giá trị nhiệt - ẩm }
else {
// LCD clear
LCD_COMMAND(0XD4); LCD_DATĂ" LOI DU LIEU "); } } } else { // LCD clear LCD_COMMAND(0XD4);
LCD_DATĂ"MAT TIN HIEU SENSOR "); DELAY_MS(1000);
LCD_COMMAND(0XD4); LCD_DATĂ" "); }
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 81
Tập tin MAIN_MAYAPTRUNG.C
#INCLUDE <16F887.H>
#FUSES HS,PUT,NOWDT,NOPROTECT,NOLVP #USE DELAY(CLOCK=20M)
#USE I2C(MASTER,SLOW,SDA=PIN_C4,SCL=PIN_C3) //THIET LAP I2C REALTIME DS1307
#DEFINE OUTPUT_LCD OUTPUT_D #DEFINE LCD_RS PIN_E0
#DEFINE LCD_RW PIN_E1 #DEFINE LCD_E PIN_E2
#INCLUDE <TV_LCD.C> //THU VIEN LCD SU DUNG 8 BIT DU LIEU #INCLUDE <TV_PICKIT2_SHIFT_DS13B07_I2C_KK.C> //THU VIEN DS1307
#DEFINE BT0 PIN_A0 //PROGRAM #DEFINE BT1 PIN_A1 //MODE #DEFINE BT2 PIN_A2 //SELECT #DEFINE BT3 PIN_A3 //INCREASE + #DEFINE BT4 PIN_A4 //DECREASE -
#DEFINE OUT_MOTOR PIN_B0 //DK MOTOR DAO TRUNG #DEFINE FAN_TEMP PIN_B1
#DEFINE FAN_HUMI PIN_B2
#DEFINE IN_MOTOR PIN_B7 //CONG TAC HANH TRINH CUA KHUNG DAO TRUNG
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 82
#INCLUDE <READ_DHT22.C>
//========================================================= UNSIGNED INT16 LM_TEMP,LM_HUMI;//GIOI HAN DAT CUA
TEMP,HUMI
UNSIGNED INT8 TEMP_H,TEMP_L,HUMI_L,HUMI_H; #DEFINE ROM_TEMP_L 0 #DEFINE ROM_TEMP_H 1 #DEFINE ROM_HUMI_L 2 #DEFINE ROM_HUMI_H 3 #DEFINE ROM_DAY 4 #DEFINE ROM_MONTH 5 #DEFINE ROM_YEAR 6
INT8 PR;//CHON CHUONG TRINH INT8 MOD,MOD2,MOD3;//MODE UNSIGNED INT1 SLT;//SECLECT
UNSIGNED INT32 TIMER_MOTOR=0; //THOI GIAN DAO MOTOR UNSIGNED CHAR NGAY_DAT,THANG_DAT,NAM_DAT;
//========================================================= UNSIGNED INT8 HIEU_CHINH_SO_BCD_TANG(UNSIGNED INT8 X); UNSIGNED INT8 HIEU_CHINH_SO_BCD_GIAM(UNSIGNED INT8 X); VOID LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
//========================================================= //PID