قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

mohamed_amine
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2012
المشاركات: 87
نشاط [ mohamed_amine ]
قوة السمعة:0
قديم 11-04-2014, 10:45 AM المشاركة 1   
x1 DHT11 _18F452_الرجاء المساعدة Twitter FaceBook Google+



الرجاء المساعدة على هذا المشروع DHT11 مع 18F452 مع الميكرسيي

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 11-04-2014, 11:00 AM المشاركة 2   
افتراضي


الرجاء المساعدة على هذا المشروع DHT11 مع 18F452 مع الميكرسيي
السلام عليكم
راجع الرابط
http://www.qariya.info/vb/showthread...080#post860080
رقم مشاركه 59
مكتبه الثانيه مكتبه STH1X

وسحاول ايضا أستخدام نفس مكتبه مع 18F452

تحياتي

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 11-04-2014, 11:11 AM المشاركة 3   
افتراضي


تفضل احي
http://arabsh.com/files/0c33474360f5...8f452-rar.html


mohamed_amine
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2012
المشاركات: 87
نشاط [ mohamed_amine ]
قوة السمعة:0
قديم 11-04-2014, 12:45 PM المشاركة 4   
افتراضي


بارك الله فيك أخي حسن ولكن أنا اتحدث عن DHT11 وليس SHT11


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 11-04-2014, 12:53 PM المشاركة 5   
افتراضي


بارك الله فيك أخي حسن ولكن أنا اتحدث عن DHT11 وليس SHT11
السلام عليكم
اسف اخي على هذا الخطأ
عموما شاهد هذا الرابط لعله ينفعك
http://embedded-lab.com/blog/?p=4333


mohamed_amine
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2012
المشاركات: 87
نشاط [ mohamed_amine ]
قوة السمعة:0
قديم 11-04-2014, 03:36 PM المشاركة 6   
افتراضي


السلام عليكم
اسف اخي على هذا الخطأ
عموما شاهد هذا الرابط لعله ينفعك
http://embedded-lab.com/blog/?p=4333
بارك الله فيك أخي أحمد لقد قمت بتجريب هذا الكود ولكن للاسف لم ينجح مع 18F452 هذا هو الكود

sbit Data at LATA0_bit;
sbit DataDir at TRISA0_bit;
unsigned short TOUT = 0, CheckSum, i;
unsigned short T_Byte1, T_Byte2, RH_Byte1, RH_Byte2, tmp, HM;

void StartSignal(){
DataDir = 0; // Data port is output
Data = 0;
Delay_ms(25);
Data = 1;
Delay_us(30);
DataDir = 1; // Data port is input

}

unsigned short CheckResponse(){
TOUT = 0;
TMR2 = 0;
T2CON.TMR2ON = 1; // start timer
while(!Data && !TOUT);
if (TOUT) return 0;
else {
TMR2 = 0;
while(Data && !TOUT);
if (TOUT) return 0;
else {
T2CON.TMR2ON = 0;
return 1;
}
}
}

unsigned short ReadByte(){
unsigned short num = 0, t;
DataDir = 1;
for (i=0; i<8; i++){
while(!Data);
TMR2 = 0;
T2CON.TMR2ON = 1;
while(Data);
T2CON.TMR2ON = 0;
/*
For 10.0MHz clock, 1 machine cycle is 0.2 uS. So for 40 us, the
TMR2 value should be 200
*/
if(TMR2 > 200) num |= 1<<(7-i); // If time > 40us, Data is 1
}
return num;
}

void interrupt(){
if(PIR1.TMR2IF){
TOUT = 1;
T2CON.TMR2ON = 0; // stop timer
PIR1.TMR2IF = 0; // Clear TMR0 interrupt flag
}
}
void main() {
unsigned short check;
TRISB =0x06
LATB=0;

TRISA0_bit= 1;
TRISC 0

// configure pins as input

INTCON.GIE = 1; //Enable global interrupt
INTCON.PEIE = 1; //Enable peripheral interrupt
// Configure Timer2 module
PIE1.TMR2IE = 1; // Enable Timer2 interrupt
T2CON = 0; // Prescaler 1:1, and Timer2 is off initially
PIR1.TMR2IF =0; // Clear TMR INT Flag bit
TMR2 = 0;
LATB0_bit=1;
Delay_ms(300);
LATB0_bit=0;

do {
Delay_ms(1000);
StartSignal();
check = CheckResponse();
if (!check) {
LATB1_bit=1;
Delay_ms(300);
LATB1_bit=0;
}
else{ RH_Byte1 = ReadByte();
RH_Byte2 = ReadByte();
T_Byte1 = ReadByte();
T_Byte2 = ReadByte();
CheckSum = ReadByte();
LATB1_bit=1;
// Check for error in Data reception
if (CheckSum == ((RH_Byte1 + RH_Byte2 + T_Byte1 + T_Byte2) & 0xFF))
{
LATB0_bit=1;
Delay_ms(300);
LATB0_bit=0;
tmp= T_Byte1/10 +T_Byte1%10 +T_Byte2/10;
HM= RH_Byte1/10 + RH_Byte1%10 +RH_Byte2/10;
}

else{
LATB1_bit=1;
Delay_ms(300);
LATB1_bit=0;
}
}
}

}while(1);
}


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,688
نشاط [ حسن هادي محمود ]
قوة السمعة:135
قديم 11-04-2014, 05:53 PM المشاركة 7   
افتراضي


بارك الله فيك أخي أحمد لقد قمت بتجريب هذا الكود ولكن للاسف لم ينجح مع 18F452 هذا هو الكود

sbit Data at LATA0_bit;
sbit DataDir at TRISA0_bit;
unsigned short TOUT = 0, CheckSum, i;
unsigned short T_Byte1, T_Byte2, RH_Byte1, RH_Byte2, tmp, HM;

void StartSignal(){
DataDir = 0; // Data port is output
Data = 0;
Delay_ms(25);
Data = 1;
Delay_us(30);
DataDir = 1; // Data port is input

}

unsigned short CheckResponse(){
TOUT = 0;
TMR2 = 0;
T2CON.TMR2ON = 1; // start timer
while(!Data && !TOUT);
if (TOUT) return 0;
else {
TMR2 = 0;
while(Data && !TOUT);
if (TOUT) return 0;
else {
T2CON.TMR2ON = 0;
return 1;
}
}
}

unsigned short ReadByte(){
unsigned short num = 0, t;
DataDir = 1;
for (i=0; i<8; i++){
while(!Data);
TMR2 = 0;
T2CON.TMR2ON = 1;
while(Data);
T2CON.TMR2ON = 0;
/*
For 10.0MHz clock, 1 machine cycle is 0.2 uS. So for 40 us, the
TMR2 value should be 200
*/
if(TMR2 > 200) num |= 1<<(7-i); // If time > 40us, Data is 1
}
return num;
}

void interrupt(){
if(PIR1.TMR2IF){
TOUT = 1;
T2CON.TMR2ON = 0; // stop timer
PIR1.TMR2IF = 0; // Clear TMR0 interrupt flag
}
}
void main() {
unsigned short check;
TRISB =0x06
LATB=0;

TRISA0_bit= 1;
TRISC 0

// configure pins as input

INTCON.GIE = 1; //Enable global interrupt
INTCON.PEIE = 1; //Enable peripheral interrupt
// Configure Timer2 module
PIE1.TMR2IE = 1; // Enable Timer2 interrupt
T2CON = 0; // Prescaler 1:1, and Timer2 is off initially
PIR1.TMR2IF =0; // Clear TMR INT Flag bit
TMR2 = 0;
LATB0_bit=1;
Delay_ms(300);
LATB0_bit=0;

do {
Delay_ms(1000);
StartSignal();
check = CheckResponse();
if (!check) {
LATB1_bit=1;
Delay_ms(300);
LATB1_bit=0;
}
else{ RH_Byte1 = ReadByte();
RH_Byte2 = ReadByte();
T_Byte1 = ReadByte();
T_Byte2 = ReadByte();
CheckSum = ReadByte();
LATB1_bit=1;
// Check for error in Data reception
if (CheckSum == ((RH_Byte1 + RH_Byte2 + T_Byte1 + T_Byte2) & 0xFF))
{
LATB0_bit=1;
Delay_ms(300);
LATB0_bit=0;
tmp= T_Byte1/10 +T_Byte1%10 +T_Byte2/10;
HM= RH_Byte1/10 + RH_Byte1%10 +RH_Byte2/10;
}

else{
LATB1_bit=1;
Delay_ms(300);
LATB1_bit=0;
}
}
}

}while(1);
}
السلام عليكم
تفضل اخي كريم
تم التعديل ومحاكاه على البروتيس الاصدار 8.1
http://arabsh.com/files/0c3347436cf1/dht11-rar.html


mohamed_amine
:: مهندس متواجد ::
تاريخ التسجيل: Jul 2012
المشاركات: 87
نشاط [ mohamed_amine ]
قوة السمعة:0
قديم 11-04-2014, 08:08 PM المشاركة 8   
افتراضي


السلام عليكم
تفضل اخي كريم
تم التعديل ومحاكاه على البروتيس الاصدار 8.1
http://arabsh.com/files/0c3347436cf1/dht11-rar.html
بارك الله فيك أخ حسن وجزاك الله كل خير ،مشكووور جربت عل PROTEUS وشغل بس عل تطبيق في مشكلة الحساس لا يبعث سيجنال ،مشكور مرة اخرة أخ حسن

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:34 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025