التحويل من تناظرى إلى رقمى مع المترجم CCS C :

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

التحويل من تناظرى إلى رقمى مع المترجم CCS C :

مُساهمة من طرف Admin في السبت أبريل 25, 2015 10:45 pm

التحويل من تناظرى إلى رقمى مع المترجم CCS C :
للتحكم فى المحول من تناظرى إلى رقمى يوفر المترجم CCS C الدوال التالية :
• الدالة setup_adc(mode) : لتحديد مصدر ساعة المحول .
• الدالة setup_adc_ports(value) : لتحديد أى الأطراف تكون تناظرية .
• الدالة setup_adc_channel(channel) : لتحديد قناة الدخل التناظرى الحالية .
• الدالة read_adc() : تنفيذ التحويل .
كما يوجد أيضا التوجيه #device adc=xx والذى يحدد حجم العودة بالدالة read_adc() حيث xx يمكن أن تكون “8” أو “10” .
مثال :
البرنامج الأساسى :

الكود:


/*
PIC16F877A baic program EX1
*/
#include <16F877a.h>
#device adc=10    // Set ADC resolution to 10B it
#use delay(clock=4000000)
#include <lcd.c>

Void main()
{
  int16 x;
  float y;
/* ADC Initialization */
  setup_adc(ADC_CLOCK_INTERNAL); // initialize ADC with a sampling rate of Crystal/4 MHz
  setup_adc_ports(RA0_ANALOG);  // set PIN_A0 as analog input channel
  set_adc_channel(0);            // point ADC to channel 0 for ADC reading
  delay_ms(1);                  // ADC module is slow, needs some time to adjust.
 
  /* Peripherals Configurations */
  lcd_init();                  // Turn LCD ON, along with other initialization commands
  delay_ms(100);
 
     
  while(true)
{
  x = read_adc(); // x from 0 to 1023
  y = 5.0 * x / 1024.0; // y from 0v to 5v
  printf(lcd_putc, "\fADC = %4Ld", x);//format % : 4 digits , long integer
 
  printf(lcd_putc, "\nVoltage = %01.2fv",y);//format % : 2digits.2digit float
  delay_ms(500);
  }
}
 



Admin
Admin

عدد المساهمات : 985
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى