Ðề tài: ADC 10 bit 18F4550
View Single Post
Old 20-03-2009, 02:31 AM   #1
black_76
Nhập môn đệ tử
 
Tham gia ngày: Dec 2007
Bài gửi: 5
:
Smile ADC 10 bit 18F4550

Các bác cho em hỏi một chút về ADC 10 bit của 18F4550. Đối với ADC 8 bit thì không vấn đề j nhưng với ADC 10bit thì khi cho hiển thị lên LCD nó chạy linh tinh cả và chữ số hàng nghìn bị lỗi. Em post cả code lên. Bác nào biết chỉ dùm em cái. Thanks.

Code:
#include <18f4550.h>
#device ADC = 16
#include <string.h> 
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=20000000)
#include <lcd.c>
      long data = 0;
      int8 donvi = 0,chuc = 0,tram = 0,nghin = 0;

//Chuong trinh hien thi
 void Display(long x)
   {
      donvi = (x%10);
      chuc = ((x%100)/10);
      tram = ((x/100)%10);
      nghin = (x/1000);
      if(nghin>0)
               {
               lcd_putc("Bien tro:");
               lcd_putc(nghin+48);
               lcd_putc(tram+48);
               lcd_putc(chuc+48);
               lcd_putc(donvi+48);
               }
     else if(tram>0)
               {
               lcd_putc("Bien tro:");
               lcd_putc(tram+48);
               lcd_putc(chuc+48);
               lcd_putc(donvi+48);
               }
     else if(chuc>0)
               {
               lcd_putc("Bien tro:");
               lcd_putc(chuc+48);
               lcd_putc(donvi+48);
               }
     else if(donvi>0)
               {
               lcd_putc("Bien tro:");
               lcd_putc(donvi+48);
               }
   }
   
//Chuong trinh hien thi

      
//Chuong trinh chinh
void Main() 
{      
//LCD setup
      lcd_init();
      lcd_gotoxy(1,1);
      lcd_putc("PLEASE WAIT...");
      delay_ms(4000);
      lcd_putc('\f');
      lcd_putc("START");
      delay_ms(2000);
      lcd_putc('\f');
//ADC setup
      setup_adc( ADC_CLOCK_INTERNAL );
      setup_adc_ports( AN0 );      
      set_adc_channel( 0 );
      delay_us(10);
While ( true )
   { 
      data = Read_ADC();
      Display(data);
      delay_ms(1000);
      lcd_putc('\f');
   }
}

thay đổi nội dung bởi: namqn, 20-03-2009 lúc 02:51 AM. Lý do: định dạng code
black_76 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn