em đang gặp vấn đề trong mô phỏng giao tiếp máy tính .em dịnh dung pic để dọc adc rồi vẽ lên máy tính bằng phần mềm gCom . gCOM - Phần mềm truyền - nhận dữ liệu với cổng COM .phần mềm này yêu cầu khung dữ liệu gởi lên phải theo dúng format: 'ch'+'data'+' ' . em làm mãi mà nó không nhận dũ liệu . các a/c/e có thể giúp mình sủa code được không. code cuả mình : laptrinh .emxin cảm ơn nhiều !
Thông báo
Collapse
No announcement yet.
giao tiếp máy tinh adc 10bit
Collapse
X
-
#include <16f877A.h>
#device *=16 ADC=10 //KHAI BAO ADC 10 BIT
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, LVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9)
//baud là khai báo TOC DO baud rate
//parity là khai báo check bit
//xmit là khai báo chân TX
//Rcv là khai báo chân RX
//bits LA SO BIT DU LIEU TREN MOT KHUNG
int16 value;
void main() {
setup_adc_ports(AN0); //Khoi tao che do cho bo ADC.
setup_adc(ADC_CLOCK_INTERNAL);//THOI GIAN LAY MAU BANG XUNG CAU HE THONG
delay_us(10);
do {
value = read_adc();
// ====Truyen len may tinh
delay_us(50);
putc('1'); //du lieu goi len theo dúng format: 'ch'+'data'+' '
printf("%lu", value); //de doc duoc bang phan mem gCOM
putc(' '); //
} while(true);
}
-
mình đã làm được vấn đề truyền dữ liệu lên máy tính.nhưng gặp phải một vấn đề khác .
code :#include <16f877A.h>
#include <def_877a.h>
#device *=16 ADC=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, BROWNOUT, LVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#include <lcd_4bit.c>
int16 temp;
int8 nghin,tram,chuc,donvi;
//==================================
//==================================
void convert_bcd(int16 x)
{
nghin = x / 1000 + 0x30;
temp = x % 1000;
tram = temp / 100 + 0x30;
temp = temp % 100;
chuc = temp / 10 + 0x30;
donvi = temp % 10 + 0x30;
}
//===================================
void main() {
setup_adc_ports(AN0);
Set_ADC_channel (0) ;
setup_adc(ADC_CLOCK_INTERNAL);
delay_us(10);
do {
temp = read_adc();
convert_bcd((int16)temp);// ====Truyen len may tinh
putc('1');
putc(nghin);
putc(tram);
putc(chuc);
putc(donvi);
putc(' ');
} while(true);
}
thời gian thực thi các câu lệnh in đậm delay khá lâu .làm cho thời gian lấy mẫu adc tăng lên.với tín hiệu dưới 10hz thì được.còn lên thì càng méo .(ko thỏa định lý nyquist). mình cần đọc tín hiệu có dải tần từ 0.5hz tới 100hz.
a/c/e nào có giải pháp giúp mình ko ạ .
xin cảm ơn !
Comment
Bài viết mới nhất
Collapse
-
bởi tungdqEm cần tìm sơ đồ mạch một số Main máy tính đời cao như Asrock B560M-HDV, các cao nhân chỉ giúp với. Thank!
-
Channel: Các mạch điện ứng dụng
hôm nay, 08:27 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
Comment