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 25-05-2009, 06:41 PM   #1
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
Pic rs232 ???!!!

Có ai giúp em với ?! Giao tiếp PIC16F877A - RS232, nó vẫn gửi và nhận dữ liệu từ máy tính bình thường, những mỗi tội là ký tự rờ rờ, chả đúng gì cả, gửi 1 ký tự từ máy tính xuống , nó hiển thị lên LCD và phát trở lại máy tính mà sai bét , hu hu, ai giúp em với (


Code:
#include <16f877a.h>
#include <def_877a.h>
#device *=16                                       
#use delay(clock=20000000)                                                   
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stop=1)      
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT 
#include <lcd_lib_4bit.c>         
                                                               
char c;                                            
char d[]="Test RS232"; 
int8 i;
                                                      
#INT_RDA                             
void Receive_isr()                    
{                                   
     c=getc();                          
     delay_us(10);                                         
     //printf(c); 
     putc(c);
}                                                  
/////////////////////////////////////////////

void main()                   
{                                         
  ENABLE_INTERRUPTS(INT_RDA);                                  
  enable_interrupts(global);              

  lcd_init();
                                       
  for(i=0;i<10;i++)
  {
      //printf(d[i]);                    
      putc(d[i]);                               
  }                        


  while(1)
  {                                   
      lcd_putcmd(0xC0);
      lcd_putchar(c);
  }   
}
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-05-2009, 07:18 PM   #2
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
Hic, thử nối 2 con PIC với nhau thì vẫn truyền hình như chẳng đúng, bó tay bó cẳng, nếu không có ai giúp nữa có lẽ là bó bột
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-05-2009, 11:15 AM   #3
thientaisodo
Đệ tử 4 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Tĩnh - Hà Nội
Bài gửi: 61
:
Send a message via Yahoo to thientaisodo
HIc, chuối cả nải các bác ạ, cắm cái LCD vào thì nó bị nhiễu ngay, em đoán là nó hút dòng của Max232 nên sinh ra điện áp sai . Bây giờ lại có vấn đề là truyền nhận ký tự thì ok, nhưng mà số thì hình như theo một cách nào đó thì phải, ví dụ khi gõ số 0 từ máy tính và gửi sang PIC thì PIC phản hồi về hiển thị được củ đậu gì đó, đọc dạng hex thì là 0xF0, tương tự số 1 là 0xF1 ... số 9 là 0xF9 ..........
Ai có thể giải thích giúp em đc ko?
thientaisodo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-05-2009, 06:05 PM   #4
ngotuyen
Nhập môn đệ tử
 
Tham gia ngày: May 2009
Bài gửi: 4
:
Mã ACSII của số 0 là 0x30, còn tùy xem bạn truyền số 0 được hiểu theo nghĩa như thế nào:
- Nếu là số nhị phân thì bạn có thể hiểu theo hai cách: 0b00000000 (0x00 theo Decimal = 0) hay 0b00110000 (0x30 mã ACSII của số 0)
- Tương tự như thế số 9: 0b00001001 (0x09 theo Decima = 9) hay 0b00111001 (0x39 mã ACSII của số 9)

thay đổi nội dung bởi: ngotuyen, 29-05-2009 lúc 03:00 PM.
ngotuyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-06-2009, 05:19 PM   #5
TANDEM
Đệ tử 2 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 40
:
Hi thientaisodo! Bạn lưu ý một vấn đề nhỏ đó là: Xung nhịp của Thạch anh trên mạch phải đúng bằng xung nhịp khai báo trong CCS.
TANDEM vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-06-2009, 12:33 PM   #6
ThaoBinh90
Đệ tử 1 túi
 
Tham gia ngày: Feb 2009
Bài gửi: 19
:
Theo mình thấy vấn đề của bạn thientaisodo không phải là ở code PIC, cơ bản là bạn đã giao tiếp được với PC và đã truyền nhận dữ liệu được. Vấn đề của bạn là bạn xử lý dữ liệu PC nhận được chưa phù hợp. Không biết bạn kiểm tra dữ liệu nhận được từ PIC như thế nào? Bạn lưu vào file, xuất ra màn hình? Bạn viết chương trình trên PC giao tiếp vơi PIC dùng phần mềm gì ?
ThaoBinh90 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-06-2009, 03:03 PM   #7
manhha2799
Đệ tử 5 túi
 
Tham gia ngày: Apr 2007
Bài gửi: 121
:
Send a message via Yahoo to manhha2799
Bạn tét cổng com trước. Nối tx và rx lại. Xem cổng com có sao ko đã. KO được tìm cách khác. Coi chừng com hư.
__________________
Bảng ledsigns chất lượng cao...
http://www.ledviet.info - manhha2700@yahoo.com
Đt:0949299699
manhha2799 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à 05:45 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