PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp cổng COM và LPT

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

Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 30-08-2009, 06:33 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 maiduy082 View Post
đoạn code của em thế này:

setup_adc(adc_clock_internal);
setup_adc_ports( ALL_ANALOG);
set_adc_channel(0);

data = read_adc();
putc(data);

anh cho em hỏi thêm 1 ý nữa, khi mình không sử dụng (không nối đi dâu) chân Vref+ và chân Vref- thì pic sẽ hiểu như thế nào.
cám ơn anh Nam.
Nếu kết quả của read_adc() là một giá trị 8-bit thì lệnh putc(data) vẫn truyền được giá trị đó về PC, nhưng không phải là mã ASCII của 1 ký tự. Do đó, ở phía PC bạn phải hiểu là đã nhận được 1 byte giá trị, chứ không phải mã ASCII của 1 ký tự.

Nếu kết quả của read_adc() là một giá trị 10-bit thì lệnh putc(data) có lẽ chỉ lấy byte thấp của giá trị 10-bit đó, và gửi về PC như đã nói trên. Tôi thường không viết sai kiểu này nên mới có cụm từ "có lẽ" trong câu trước.

Vấn đề không phải là bạn có nối các chân Vref+ và Vref- hay không, mà là bạn có thiết lập để sử dụng hay không. Nếu thiết lập để không dùng các chân này thì không cần phải nối chúng đi đâu 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 30-08-2009, 08:15 PM   #2
maiduy082
Đệ tử 4 túi
 
Tham gia ngày: Apr 2008
Bài gửi: 66
:
đây là đoạn code của em, anh xem xét giúp em với

#include <16f877a.h>
#fuses HS,NOWDT,NOPROTECT,PUT,BROWNOUT,NOLVP
#device *=16 ADC=8
#use delay(clock=8000000)
#use rs232(baud=2400, parity=N, xmit=pin_C6, rcv=pin_C7, bits=9)

int8 offset;
void main()
{
setup_adc(adc_clock_internal);
setup_adc_ports(AN0);
delay_ms(10);
while (1)
{
offset = read_adc();
putc(offset);
delay_ms(5000);
}
}


điện áp em đo được ở chân AN0 là 1v vậy mà trên pc chỉ cho giá trị là 23, đúng ra phải là khoảng 52.
em có mắc 1 điện trở 1k từ chân AN0 lên Vcc giống như trong TUT của anh Linh.

cám ơn anh.
maiduy082 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-08-2009, 10:04 PM   #3
maiduy082
Đệ tử 4 túi
 
Tham gia ngày: Apr 2008
Bài gửi: 66
:
anh Nam ơi cứu em với, em mới chạy test lại cái mạch, em cho nguồn vô chân AN0 là từ 1 biến trở thì kết quả xuất ra trên PC đúng, còn khi em cho tín hiệu vô là từ mạch khuếch đại của em thì nó bị sai, sai không chấp nhận được (em bảo đảm là cái mạch khuếch đại của em chạy tốt, em đã kiểm tra rất nhiều cái mạch KD này).

giúp em với các cao thủ ơi
maiduy082 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-08-2009, 10:42 PM   #4
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 maiduy082 View Post
anh Nam ơi cứu em với, em mới chạy test lại cái mạch, em cho nguồn vô chân AN0 là từ 1 biến trở thì kết quả xuất ra trên PC đúng, còn khi em cho tín hiệu vô là từ mạch khuếch đại của em thì nó bị sai, sai không chấp nhận được (em bảo đảm là cái mạch khuếch đại của em chạy tốt, em đã kiểm tra rất nhiều cái mạch KD này).

giúp em với các cao thủ ơi
Sẽ không thừa nếu bạn để ai đó kiểm tra giúp bạn mạch khuếch đại đó.

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 30-08-2009, 11:05 PM   #5
maiduy082
Đệ tử 4 túi
 
Tham gia ngày: Apr 2008
Bài gửi: 66
:
em khuếch đại tín hiệu từ 1 cái cân điện tử.
Hình Kèm Theo
File Type: jpg kd.jpg (39.6 KB, 8 lần tải)
maiduy082 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-08-2009, 11:33 PM   #6
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 maiduy082 View Post
em khuếch đại tín hiệu từ 1 cái cân điện tử.
Bạn bỏ điện trở kéo lên 1k ở chân AN0 của PIC đi. Mạch khuếch đại của bạn nếu đã chạy ổn thì có thể nối vào ngõ vào analog của PIC mà không cần thêm linh kiện gì khác (có thể nối thêm một tụ ceramic nhỏ ở gần chân AN0 của PIC để lọc nhiễu).

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 30-08-2009, 11:56 PM   #7
maiduy082
Đệ tử 4 túi
 
Tham gia ngày: Apr 2008
Bài gửi: 66
:
em cho nguồn vô chân AN0 là từ 1 biến trở thì kết quả xuất ra trên PC đúng, còn khi em cho tín hiệu vô là từ mạch khuếch đại của em thì kết quả bị sai.
em không biết lý do nào lại bị như vậy, mong anh cho em 1 ý kiến. em cảm ơn.
maiduy082 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:17 PM.


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