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
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Bài hát mới, nhạc Phật: Về Giữa Chiêm Bao, sáng tác: Hoàng Đình Thường.
[Verse 1] Nhân gian bao thay đổi
ĐỜI là giấc CHIÊM BAO
Người mê lầm tranh đấu
KHỔ ĐAU mãi LUÂN HỒI.
VÔ THƯỜNG nào ai thấu
...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 19:01 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi davidcopyBạn muốn hỏi nguyên lý làm việc của mạch nào...
-
Channel: Hỗ trợ học tập
24-03-2026, 22:50 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi N_Tu_Hoc_HoiBạn cần sơ đồ mạch ổn áp bao nhiêu Volt, Nếu giống anh bạn guiwr có khả năng ổn áp dùng iC họ 78XX, 79XX. Những mạch này bạn tim kiếm trên google sẽ thấy!!
-
Channel: Hỗ trợ học tập
23-03-2026, 02:32 -
-
bởi chinhnguyen9
Điến âp vào 24V;Điên áp ra 30V;Dòng điện ra 10A
Trên nền tảng mạch Boost thay đổi như sau: cự âm tụ lọc C không nối mas mà nối vào Vc +24V
Mach phản hồi tao điê áp trên tụ lọc này ổn đinh ở 6V
Kết quả:
· Điện áp ra =24V+ 6V=30V
· Công...-
Channel: Hướng dẫn sử dụng diễn đàn
21-03-2026, 19:33 -
-
bởi chinhnguyen92. Các yếu tố để dòng điện đầu ra không bị "thiếu"
Dòng điện đầu ra bị "thiếu" có thể hiểu là không đủ 10A theo yêu cầu hoặc bị sụt áp khi tải thay đổi. Để đảm bảo điều này, bạn cần xem xét các yếu tố sau:
a. Khả năng chịu dòng của cuộn cảm- Dòng bão hòa (I_sat): Như
-
Channel: Hướng dẫn sử dụng diễn đàn
21-03-2026, 19:06 -
bởi chinhnguyen9
1. Tính toán cuộn cảm (Inductor)
Để tính giá trị cuộn cảm, chúng ta cần thực hiện các bước sau:
a. Xác định chu kỳ nhiệm vụ (Duty Cycle - D)
Với mạch tăng áp lý tưởng, chu kỳ nhiệm vụ được tính theo công thức :
D=1-VinVout=1-24V30V=0.2
Vậy D = 0.2 (20%)
b....-
Channel: Hướng dẫn sử dụng diễn đàn
21-03-2026, 19:03 -
-
bởi chinhnguyen9Công thức
Gain (dB) = 20 × log₁₀(A)
Thí dụ 1; 60dB
log₁₀(A)=60/20=3
⇒ A=V_out / V_in = 10³ = 1.000
Thí dụ 2; 100dB
log₁₀(A)=100/20=5
⇒ A=V_out / V_in = 105 = 100.000
Tí dụ 3; LM 358
Large Signal Open Loop Voltage Gain AVOL V/mV RL = 2.0...-
Channel: Hướng dẫn sử dụng diễn đàn
19-03-2026, 08:44 -
-
Trả lời cho Mạch 3s bị giảm điện áp đầu rabởi minhtri0405chả biết bạn xử lý được chưa , kích sạc hoặc điện áp > điện áp khối pin vào 2 chân P - P+ , nhiều mạch phải yêu cầu có kích lần đầu sau đó mới chạy...
-
Channel: Điện tử dành cho người mới bắt đầu
18-03-2026, 10:01 -
-
bởi minhtri0405đây có phải là 1 cách để test mosfet xịn hay dỏm khi mua đồ tàu không nhỉ , vì ko thể đập ra để coi lõi rồi trả hàng được....
-
Channel: Tâm tình dân kỹ thuật
18-03-2026, 09:57 -

Comment