|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
20-03-2009, 02:31 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Dec 2007
Bài gửi: 5
: |
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 |
Ðiều Chỉnh | |
Xếp Bài | |
|
|