|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
22-04-2010, 12:53 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 5
: |
Giúp giải đáp thắc mắc về ADC
ADC trong PIC 16F877A là 10 bit
Mình nối 1 nguồn áp 1 chiều Vin vào chân AN0.Quan hệ giữa đầu ra của ADC và điện áp vào Vin là: N=Vin*1024/Vref (ở đây mình chọn Vref=5V) Mình lại có 1 biến E=500*Vin (1) nên E=500*N*Vref/1024=2.44*N (2) Vấn đề là khi mình đọc ADC (N =read_adc()để tính E và hiển thị lên LCD thì giá trị tính được theo biểu thức (1), (2) và giá trị hiển thị trên LCD lại khác nhau khá nhiều(với 1 giá trị điện áp Vin). Mình không hiểu mong mọi người trợ giúp Dưới là code mình viết Code:
#include <16f877a.h> #include <def_877a.h> #device *=16 ADC=10 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=4000000) #include <lcd_lib_4bit.c> // Thu vien ham cho LCD #use rs232(baud=15200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9) int8 low,high,dvi,chuc,tram,tg; int value; int8 E; //Ham chuyen thanh ma de hien thi len LCD //E<=10 void convert_bcd(int8 a) { a=a+0x30; LCD_putchar(a); } //E<=100 void convert_bcd1(int8 x) { low=x%10; //chia lay phan du, so hang don vi high=x/10; //tach hang chuc low = low + 0x30; high = high + 0x30; LCD_putchar(high); LCD_putchar(low); } //E>100 void convert_bcd2(int8 y) { dvi=y%10; tg=y/10; chuc=tg%10; tram=tg/10; dvi=dvi+0x30; chuc=chuc+0x30; tram=tram+0x30; LCD_putchar(tram); LCD_putchar(chuc); LCD_putchar(dvi); } void main() { trisb = 0x00; portb=0x00; LCD_init(); LCD_putcmd(0x82);//Dinh vi tri con tro de hien thi delay_us(100); setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); delay_us(100); value =read_adc(); //Gia tri cua cuong do anh sang E E=2.44*value; If(E<=10) convert_bcd((int8)E); Else { If((E>10)&&(E<=100)) convert_bcd1((int8)E); Else convert_bcd2((int8)E); delay_ms(100); } } thay đổi nội dung bởi: namqn, 22-04-2010 lúc 01:09 PM. Lý do: định dạng code |
Ðiều Chỉnh | |
Xếp Bài | |
|
|