PDA

View Full Version : dieu khien adc trong pic16f77a


smile
15-01-2007, 11:42 AM
Toi dang lam ve phan dieu khien 8 kenh adc trong pic16f877a hien thi gia tri tuong tu dau vao tren lcd. Toi thay kho khan trong viec chuyen doi gia tri adc nhan duoc thanh gia tri tuong tu dau vao. Toi co thay ky thuat lap bang tra. Co ban nao biet cach phuong phap lap bang tra thi bao minh voi. Neu viet bang ngon ngu C thi cang tot. Mong moi nguoi het suc giup do.

ngohaibac
15-01-2007, 11:53 AM
ADC trong 16F877A là 10bit tức 1024 mức (mức 0 đến mức 1023)=> giá trị điện áp của 1 mức là:
= Vref/1023;

=> giá trị tương tự = (giá trị 10 bit trên 2 thanh ghi )* Vref/1024;

Bạn có thể viết như sau: (giả sử Vref = 5V)


unsigned int number;
number=(ADRESH<<8)|ADRESL;
number=(unsigned int) (number* 4.8876); (4.8876 = 5/1023).


ADRESH và ADRESL là 2 thanh ghi kết quả của chuyển đổi ADC. Sau đó bạn chuyển đổi số number thành kí tự hoặc tách thành từng số rùi chuyển lên LCD nhé.

Bạn có thể xem bài viết số 20 của mình tại đây:
http://www.picvietnam.com/forum//showthread.php?t=339&page=2

Chúc bạn thành công.

riquelme
15-01-2007, 02:00 PM
Nếu bác viết bằng ASM hoặc muốn đơn giản thì lấy 8 bit trong giá trị đầu ra của ADC 10 bit sẽ đơn giản hơn trong tính toán. Muốn vậy mình để canh trái dữ liệu ra (ADFM = 0), lúc này, ta chỉ cần lấy 8 bit ra chính là 8 bit trong thanh ghi ADRESH. (Ở đây vì ta canh trái nên 2 bit bỏ đi thuộc về ADRESL trở thành các bit LSbits, do đó sai số sẽ nhỏ), bác viết công thức sai số giữa dùng 8 bit và 10 bit ra thì sẽ thấy, sai số gần như không ảnh hưởng.