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 17-05-2013, 01:07 PM   #1
dungeonlegend
Nhập môn đệ tử
 
Tham gia ngày: Jul 2011
Bài gửi: 1
:
[cần giúp đỡ] cách lấy mẫu ADC

Chào các anh chị và các bạn.

Mình là thành viên mới, và mình mong nhận được sự giúp đỡ rất nhiều từ các bạn. Hiện tại mình đang làm đề tài lấy tín hiệu ADC để hiển thị & vẽ đồ thị lên điện thoại di động.

Mình có đọc thử 1 số tài liệu thì họ bảo để vẽ được cần phải lấy mẫu ADC. Mình gặp vấn đề lớn tại chỗ này vì mình ko hiểu và ko biết cách code thế nào. Hiện tại kết quả mình đạt được chỉ là hiển thi được ADC lên điện thoại thông qua UART.

Code C mình viết bằng CCS Compile PWD chỉ dừng lại là read_adc() mà thôi :

#include <16F887.h>
#device pic16f887*=16 ADC=10
#fuses NOWDT, PUT, HS, NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,NOCPD,NOWRT
#Use delay(clock = 20000000)
#use rs232 (baud=9600 , parity=n , xmit=pin_C6 , rcv=pin_C7)

int value;
void main()
{
set_tris_d(0x00);
ENABLE_INTERRUPTS(GLOBAL);
setup_adc_ports(ALL_ANALOG);
setup_ADC(ADC_CLOCK_DIV_32);
set_adc_channel(0);

while(1)
{
int t;
delay_ms(500);
value=read_adc();
t = 35 + value*0.02745098039;
printf("%d\n\r",t);

}
}

trong code C mình phải thêm những yêu cầu lấy mẫu thế nào, và đối với phần nhận là điện thoại thì yêu cầu đặt ra phải làm là gì. Mình thực sự rất cần sự giúp đỡ của mọi ng.

Mình mới tìm hiểu về ADC, mong các bạn chỉ giáo cho mình nhiều. Cảm ơn mọi ng
dungeonlegend vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-05-2013, 12:35 AM   #2
tuonghiendk7.1
Đệ tử 1 túi
 
Tham gia ngày: Aug 2011
Bài gửi: 13
:
Send a message via Yahoo to tuonghiendk7.1
int16 value;
void main()
{
set_tris_a(0xff);

ENABLE_INTERRUPTS(GLOBAL);
setup_adc_ports(ALL_ANALOG); hoặc setup_adc_ports(an0);
setup_ADC(ADC_CLOCK_DIV_32);//tùy bạn
set_adc_channel(0);

while(1)
{
int t;
delay_ms(500); // mình nghĩ ko cần
value=read_adc();

Đây là một số thứ theo mình biết bạn dùng ADC 10 bit bạn khai báo value ở chế độ int16 thì hợp lý hơn.
tuonghiendk7.1 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à 10:12 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