|
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 |
|
29-06-2009, 05:14 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 3
: |
Hỏi về ADC 10 bit
Em mới tìm hiểu PIC, em muốn viết một chương trình sử dụng ADC để hiển thị các mức điện áp 0-5v với nhiều đường vào từ AN0-AN4 (tất cả các đầu vào đều được cấp 1 nguồn điện áp riêng rẽ) của pic6F876a lên 1 LCD 16x2. Mọi người có thể giúp em thuật toán quét ADC để có thể nhận kết quả từ tất cả các đầu vào AN0-AN4 lên LCD được không ạ?
|
16-07-2009, 03:41 PM | #2 |
Đệ tử 3 túi
Tham gia ngày: Aug 2008
Bài gửi: 53
: |
bạn muốn đo đường nào thì settup đường đó, đo nhieeuf đường thì cứ settup lần lượt.set đường này đo lấy két quả xong lưu lại, set và đo đường tiếp theo....
__________________
Hãy cho trước khi nhận |
18-07-2009, 08:43 AM | #3 | |
Đệ tử 6 túi
Tham gia ngày: Mar 2007
Bài gửi: 150
: |
Trích:
vi du : với phần mềm CCS Code:
unsigned int doc_ad(unsigned int x) { unsigned int AD=0; set_adc_channel(x); delay_us(10); AD=read_adc(); return AD; } void main() { ......// khởi động AD while(true) { unsigned int i,j; .... // khi có yêu cầu for(i=0;i<5;i++) // đọc 5 kênh AD từ kênh 0 đến kênh 4 { j=doc_ad(i); ....... // hiển thị giá trị AD j ra LCD } } }
__________________
_________________________________________________ Le Trung Duc Industry Research & Application Center NTT Institute of Hi_technolog ltduc@ntt.edu.vn leduc_cktd@yahoo.com.vn http://www.nttc.edu.vn CNC DIY : http://quangcaosanpham.com/shop/driverservo 0909300332 |
|
21-09-2009, 10:01 PM | #4 |
Nhập môn đệ tử
Tham gia ngày: Jun 2008
Bài gửi: 10
: |
Hix . Em mới tìm hiểu về 18f4431 và cũng đang mắc đoạn này nè !
Bài toán của em cũng là chuyển đổi ADC từ AN0 - AN5 và hiển thị trên LCD Em sử dụng ADC 10 bit trong 18f4431 Nếu là chuyển đổi 1 kênh thì em được rùi nhưng khi chuyển đổi nhiều kênh thì ...... Em viết chương trình con khi chuyển đổi ADC là như thế này : // CHUYEN DOI ADC ------------------------------------------------------------ //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ VOID CHUYEN_DOI_ADC(VOID) { INT8 I; FOR(I=0;I<=5;++I) { SET_ADC_CHANNEL(I); DELAY_US(20); VALUE[I] = READ_ADC(); } } Nó cứ bắt kênh chuyển đổi trong SET_ADC_CHANNEL(); của e phải là 1 hắng số : http://www.mediafire.com/imageview.p...2hzno4&thumb=4 Nhưng e tưởng như vậy vẫn được chứ ? |
21-09-2009, 10:50 PM | #5 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
23-09-2009, 09:49 PM | #6 |
Nhập môn đệ tử
Tham gia ngày: Jun 2008
Bài gửi: 10
: |
Anh àh !
Em viết lại như vậy và được rồi Nhưng tại sao ngày trước viết em như vậy cho 16F887 lại được anh ạh ???? |
25-09-2009, 01:45 AM | #7 |
Nhập môn đệ tử
Tham gia ngày: Apr 2009
Bài gửi: 2
: |
adc cua 18f4431
các anh cho em hỏi một chút,đoan code cua em viet như sau:
#include <18f4431.h> #device *=16 adc=8 #use delay(clock=20000000) #fuses hs,nowdt #include <lcd.c> #use fast_io(b) #use fast_io(d) #byte portd=0xf83 int8 x; void main() {//set_tris_a(0xff); //set_tris_b(0x00); set_tris_d(0x00); setup_adc(ADC_CLOCK_INTERNAL ); setup_adc(san1|vss_vdd); set_adc_channel(1); delay_ms(10); while(1) { x=read_adc(); if (x>=100) { portd=1; delay_ms(200); portd=0; delay_ms(200); } } } //////////////////////////////////////////////////////////////////// sao trong protuers của em mô phỏng toan báo lỗi sau: porta <1> is not configured as a analog input em không hieu sao lại bị lối vậy nữa, các anh có thể giải thich giúp em được không ạ |
26-04-2010, 02:33 PM | #8 |
Đệ tử 2 túi
Tham gia ngày: Sep 2008
Bài gửi: 27
: |
Was rõ,chưa setup nó analog,nó đã chỉ rõ như thế rồi mà còn hỏi nữa à
|
|
|