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 Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc 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 16-04-2009, 11:54 AM   #1
digan
Đệ tử 1 túi
 
digan's Avatar
 
Tham gia ngày: Jan 2006
Bài gửi: 14
:
em dùng đoạn CT này để KT nếu có ngắ nhận thì sẽ thay đổi trạng thái LED ở PORTB để nhận biết.nhưng không dc. các tiền bối chỉ giúp xem sai ở đâu.
code của em:
#include "D:\RS232\RS232.h"
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)

char buf;

#int_RDA
void RDA_isr()
{
buf=getc();
putc(buf);
portb = 0x0f;
}

void main()
{
trisb=0x00;
portb = 0x00;
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

while(1)
{

}
}
digan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-04-2009, 12:47 PM   #2
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
đọc chương trình của bạn có vẻ ổn
Phần cứng của bạn thế nào? bạn truyền nhận giữa PC va vdk hay là giữa 2 vdk?
Mình nghĩ có thể là lỗi phần cứng, bạn có thể kiểm tra bằng cách tháo con PIC ra, nối chân TX và RX trên board lại với nhau rồi truyền nhận bằng máy tính nếu truyền nhận OK nghĩa là phần cứng của bạn không sao
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-04-2009, 06:00 PM   #3
lequocbao
Đệ tử 6 túi
 
lequocbao's Avatar
 
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
:
#int_RDA
void RDA_isr()
{
buf=getc();
putc(buf);
portb = 0x0f;//----------> portb =0x0f khi có ngắt lần thứ mấy vẫn không đổi
}

void main()
{
trisb=0x00;
portb = 0x00;//---->trạng thái đầu của portB
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

while(1)
{

}
}

theo chương trình bạn viết thì portb chỉ thay đổi trạng thái chỉ 01 lần duy nhất thôi.sau đó dù có ngắt xảy ra bao nhiêu lần đi chăng nữa thì portb vẫn luôn không đổi và = 0x0f forever!vì vậy bạn cần quan sát kỹ trạng thái của portb khi mới cấp nguồn cho pic và khi bạn gưi dữ liệu qua rs232 lần đâu tiên là sẽ có sự khác nhau như bạn mong muốn và sau đó thì portb sẽ không đổi.

thay đổi nội dung bởi: lequocbao, 16-04-2009 lúc 06:13 PM.
lequocbao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
forms!nhap!vao = x

Ðiều Chỉnh
Xếp Bà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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Giao tiếp RS232 trên PC ngohaibac Giao tiếp cổng COM và LPT 193 18-02-2025 09:11 AM
Cho hỏi về giao tiếp RS232 của PIC16F877A enti Giao tiếp cổng COM và LPT 31 25-03-2016 10:14 PM
Giao tiếp RS232 trên PC qua Matlab ngohaibac Giao tiếp cổng COM và LPT 47 18-11-2015 03:51 PM
cần mua bộ thu GPS có giao tiếp RS232 kienvq Tìm mua sản phẩm 15 17-03-2011 11:25 PM
Help! Dùng C để giao tiếp RS232 dandiennang Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 6 15-03-2009 06:41 PM


Múi giờ GMT. Hiện tại là 11:27 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