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

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

slimebdx
:: مهندس ::
تاريخ التسجيل: Jan 2010
الدولة: الجزائر
المشاركات: 40
نشاط [ slimebdx ]
قوة السمعة:0
قديم 24-02-2012, 08:32 PM المشاركة 1   
ha مشكلة في نتيجة ADC و ارسالها عبر USART Twitter FaceBook Google+



السلام عليكم اخوتي الكرام
أنا أعمل على مشروع في ما يخص data acquisition و أستعمل البيك 16f876a في ما يخص ال ADC عندي 10-bits أي ما يعادل 1023 بالنظام العشري و الجهد ما بين 0 الى 5 فولت أود استقبال هته النتيجة عبر السريال بورت عن طريقusart لكن لم أنجح في ذلك أنا أبرمج ب mikro C البرناجج هو كما يلي
كود:
//////////*************************************************************////////
///////data acquisition program ////programed by eng.s.slimane //////////////


      unsigned int temp_res;
      char  temp[12];
  //////////////////////Lecture de la Temperature//////////////////////
  void adc()
  {
  temp_res = ADC_Read(2);   // Get 10-bit results of AD conversion

  IntToStr(temp_res,temp);  }
 /////////// transfert du text à l'interface graphique ///////////////
  void Text_To_Usart(unsigned char *m)
  {
    unsigned char j;

    j = 0;
    while(m[j] != 0)
    {
       Usart_Write(m[j]);
       j++;
    }
  }


  ///////////////////Le Pregramme Principale////////////////////////
  void main()
  {
  TRISB =0x00;
  TRISA =0b000100;
  TRISC =0b10110000;
  // Initialize USART module at 9600 bps
  Usart_init(9600);
  // Wait for USART module to stabilize
  delay_ms(100);

  while(1)
    {


    // transfet à l'interface


      PORTB =  temp_res  ;

      Delay_ms(10);
      Text_To_Usart("R");
      Usart_Write(temp_res);

      Usart_Write(0x0D);
      Usart_Write(0x0A);

    delay_ms(10);

        adc();
    }
    }
///////////////////////////**********************//////////////////////////////

اعلانات

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:128
قديم 24-02-2012, 09:33 PM المشاركة 2   
افتراضي


السلام عليكم

اخي اتمني ان ترفق رسمه للدائره
وان توضح اكثر وجاري تحليل الكود

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

الصورة الرمزية fathi-mohmed
fathi-mohmed
:: مهندس متميز ::
تاريخ التسجيل: Aug 2010
الدولة: القاهرة
المشاركات: 518
نشاط [ fathi-mohmed ]
قوة السمعة:0
قديم 24-02-2012, 09:41 PM المشاركة 3   
افتراضي


ربنا يوفقك اخي


slimebdx
:: مهندس ::
تاريخ التسجيل: Jan 2010
الدولة: الجزائر
المشاركات: 40
نشاط [ slimebdx ]
قوة السمعة:0
قديم 25-02-2012, 02:32 AM المشاركة 4   
افتراضي


هذه هي الدارة التجريبية



سعد الجسري
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2005
الدولة: UAE
المشاركات: 144
نشاط [ سعد الجسري ]
قوة السمعة:0
قديم 25-02-2012, 02:39 AM المشاركة 5   
افتراضي


مرحبا
هل لديك مشكلة مع البرنامج
المايكرو سي يقوم بالتحويل لل hex دون أيا مشاكل......!!!!!
حاول أن تضع uart بدل usart


التعديل الأخير تم بواسطة : سعد الجسري بتاريخ 25-02-2012 الساعة 02:42 AM

slimebdx
:: مهندس ::
تاريخ التسجيل: Jan 2010
الدولة: الجزائر
المشاركات: 40
نشاط [ slimebdx ]
قوة السمعة:0
قديم 25-02-2012, 03:27 AM المشاركة 6   
افتراضي


نعم بالطبع فأنا أستخدم برامج أخرى و hex file يتم بالطريقة الصحيحة


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:409
قديم 25-02-2012, 05:58 AM المشاركة 7   
افتراضي


أخى
الداتا شيت يحدد أنك يجب أن تنفذ ADC-configuration قبل استخدامها ثم الانتظار فترة و هذا غير موجود فى البرنامج
قد تفترض أنك تعتمدعلى بروتس فى وضع هذه القيم افتراضية و لكنك توصل مقاومة متغيرة على طرف يقوم بوظيفتين احدهما دخول تماثلى و الثانى تحديد قيمة المرجع الصغرى Vref- و المتوقع أن يظنها مرجع وليس جهد قياس


slimebdx
:: مهندس ::
تاريخ التسجيل: Jan 2010
الدولة: الجزائر
المشاركات: 40
نشاط [ slimebdx ]
قوة السمعة:0
قديم 25-02-2012, 04:04 PM المشاركة 8   
افتراضي


كود:
TRISA:= %11111111;  //RA0-7 as input
ANSEL:= %00000000;  //AN0-7 are disabled
ASNELH:=%00111111;  //AN8-13 are enabled
ADCON0:=%11000001;  //frc, chanel = AN0, go/done=0, adon=1
ADCON1:=%00010000;  //adfm=0, Vref- = Vss, Vref+ = pin
delay_us(5);        //required acquisition time
ADCON0.1:=1;  //start conversion
repeat
until ADCON.1=0;  //wait for the conversion to finish
adc:=Bcd2Dec(ADRESH*100+ADRESL); //read upper 8 bits of 10bit conversion (ADRESH register) and lower 2 bits of 10bit conversion (ADRESL register)

إضافة رد

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

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

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


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

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