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

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

mtm4song
:: مهندس متميز ::
تاريخ التسجيل: Jun 2009
المشاركات: 635
نشاط [ mtm4song ]
قوة السمعة:0
قديم 19-01-2014, 09:31 PM المشاركة 1   
افتراضي مشكلة بسيطة في كود ADC Twitter FaceBook Google+



دايرة ADC بسيطة باستخدام 16F877A
دائما تعطيني القيمة 0
؟؟؟
كود:
//////////////////////
sbit lcd_rs at rb2_bit;
sbit lcd_en at rb3_bit;
sbit lcd_d4 at rb4_bit;
sbit lcd_d5 at rb5_bit;
sbit lcd_d6 at rb6_bit;
sbit lcd_d7 at rb7_bit;
sbit lcd_rs_direction at trisb2_bit;
sbit lcd_en_direction at trisb3_bit;
sbit lcd_d4_direction at trisb4_bit;
sbit lcd_d5_direction at trisb5_bit;
sbit lcd_d6_direction at trisb6_bit;
sbit lcd_d7_direction at trisb7_bit;
///////////
char str[16];
unsigned int temp;
float v;
////////////
void main() {
 trisa=0b11111111;
 adc_init(); lcd_init();
 lcd_cmd(_lcd_cursor_off);
 //////////////
 for(;;)
 {
 temp = adc_read(2);
 v = temp * 5 /1023;
 FloatToStr(v,str);
 lcd_out(1,1,"value = ");
 delay_ms(1000);
 lcd_out_cp(str);
 delay_ms(1000);
 }
}
البروتوس

اعلانات

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


دايرة ADC بسيطة باستخدام 16F877A
دائما تعطيني القيمة 0
؟؟؟
كود:
//////////////////////
sbit lcd_rs at rb2_bit;
sbit lcd_en at rb3_bit;
sbit lcd_d4 at rb4_bit;
sbit lcd_d5 at rb5_bit;
sbit lcd_d6 at rb6_bit;
sbit lcd_d7 at rb7_bit;
sbit lcd_rs_direction at trisb2_bit;
sbit lcd_en_direction at trisb3_bit;
sbit lcd_d4_direction at trisb4_bit;
sbit lcd_d5_direction at trisb5_bit;
sbit lcd_d6_direction at trisb6_bit;
sbit lcd_d7_direction at trisb7_bit;
///////////
char str[16];
unsigned int temp;
float v;
////////////
void main() {
 trisa=0b11111111;
 adc_init(); lcd_init();
 lcd_cmd(_lcd_cursor_off);
 //////////////
 for(;;)
 {
 temp = adc_read(2);
 v = temp * 5 /1023;
 FloatToStr(v,str);
 lcd_out(1,1,"value = ");
 delay_ms(1000);
 lcd_out_cp(str);
 delay_ms(1000);
 }
}
البروتوس
السلام عليكم
أخي كريم حساس اقصى قيمه له =1 فولت وعليه اذا كنت تريد أظهار درجه الحراره
عليك بتعديل الكود
كود:
v = temp * 500 /1023;
لماذا لان كل 1 درجه سليزيه =10mv وعليه تقرا الفولتيه بملي فولت وتقسم النتيجه على 10 لهذا كتبت 5000/10=500

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

mtm4song
:: مهندس متميز ::
تاريخ التسجيل: Jun 2009
المشاركات: 635
نشاط [ mtm4song ]
قوة السمعة:0
قديم 20-01-2014, 01:58 PM المشاركة 3   
افتراضي


السلام عليكم
أخي كريم حساس اقصى قيمه له =1 فولت وعليه اذا كنت تريد أظهار درجه الحراره
عليك بتعديل الكود
كود:
v = temp * 500 /1023;
لماذا لان كل 1 درجه سليزيه =10mv وعليه تقرا الفولتيه بملي فولت وتقسم النتيجه على 10 لهذا كتبت 5000/10=500
اها تمام اشتغل تمام

بس انا شبة فاهمو


الف شكر

إضافة رد

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

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

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


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

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