PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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
Prev Previous Post   Next Post Next
Old 08-04-2008, 01:30 AM   #1
nhong
Đệ tử 1 túi
 
Tham gia ngày: Jan 2008
Bài gửi: 15
:
Question Mới học ADC - vướng mắc 1 số chỗ xin được hỏi

em đang tập dùng chức năng adc của pic nhưng gặp 1 số vấn đề như vầy,

*acquisition time, em ko biết tính cái khoảng delay trong đoạn code sau như nào, nó có phụ thuọc vào osc mà mình dùng ko
Code:
setup_adc_ports(AN0); 
setup_adc(ADC_CLOCK_INTERNAL); 
delay_us(10);
*realtime convert, nghĩa là em muốn nó nhận biết sự thay đổi liên tục ấy, vd em thay đổi điện áp vào ANx 1 cái thì làm sao để thằng led 7 đoạn nó cũng thay đổi theo tương ứng, vì em mới chỉ biết cách lấy giá trị Digital từ đầu vào Analog(giá trị tĩnh).

*adc của em xuất ra 10 bit(2 thanh ghi) nhưng mà cổng xuất như portB chỉ có 8 bit, thì làm thế nào để giữ nguyên dc độ chính xác(Vref/1024) hoặc là giảm độ chính xác xuống 8 bit(Vref/256)

*có bác nào có đoạn code hiển thị điện áp vào ANx (analog) ra led 7 đoạn thì cho em xin tham khảo(viết bằng CCS C)

code em viết thì thế này, cái này em mới chỉ cho hiển thì qua 8led trên cổng B thôi, em dùng hàm while và delay để lặp đi lặp lại quá trình convert trong 1 khoảng delay nhất định thì đầu ra digital cũng thay đổi được khi mình thay đổi điện áp vào nhưng hình như ko ổn lắm vì nó cứ nhấp nháy, ko liền mạch, các bác các thầy chỉ giáo hộ em chút, em xin cám ơn!

Code:
#include <16f877a.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
void main()
{
float voltage;
//thiet lap che do cho portb
trisa=0xff;
trisb=0x00;
trisc=0x00;
trisd=0x00;
trise=0x00;

//adc intiate
setup_adc(adc_clock_internal);
setup_adc_ports(an0);
delay_us(20);
//read
while (true){
voltage=(float)read_adc();
portb=voltage;
delay_ms(100);
portb=0;
delay_ms(100);
}
}
nhong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 03:21 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam