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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 21-09-2009, 10:50 PM   #1
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi letrongdtk4 View Post
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ứ ?
Bạn đang dùng hàm của CCS C, do đó phải tuân theo quy định của CCS C. Hàm set_adc_channel() có đối số là một hằng số, do đó bạn gặp thông báo lỗi như vậy là đúng rồi. Bây giờ thay vì viết một vòng lặp như vậy, bạn có thể viết tường minh 6 cụm lệnh như vậy cho 6 ngõ vào (AN0 đến AN5), chẳng có vấn đề gì là nghiêm trọng cả.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-09-2009, 09:49 PM   #2
letrongdtk4
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 ????
letrongdtk4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-09-2009, 01:45 AM   #3
phuong_dtk4s
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 ạ
phuong_dtk4s vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 06:32 AM.


Đượ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