PDA

View Full Version : pic và rs232


nvb_moitrang
14-03-2011, 10:03 PM
các bác ơi xin chỉ giáo cho em chút, em mới học pic mà tự mày mò chẳng biết hỏi ai cả.
em đang viết đoạn code giao tiếp với máy tính qua cổng rs232 mà không được. Code của em như sau
//************************
#include <18F4550.h>
#device *=16
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7,bi ts=8)
#define LCD_ENABLE_PIN PIN_D2
#define LCD_RS_PIN PIN_D0
#define LCD_RW_PIN PIN_D1
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include "lcd.c"
#include <string.h>
void main()
{
int i;
while(1)
{
lcd_init();
printf(lcd_putc,"ct rs232");
delay_ms(100);
printf(lcd_putc,"\n nhap pass");
delay_ms(100);
char tinhieu[20];
char pas[20]="nvb";
gets(tinhieu);
if(strcmp(tinhieu, pas))
puts("ok");
else
puts("sai pas");
}
}
//*******************
không biết em sai chổ nào, cái rs232 này ít tài liệu quá
Mong các bác chỉ giáo
thank nhiều

Delfy_Coltech
14-03-2011, 10:13 PM
Lỗi của bạn là gì?
Cổng COM của bạn hoạt động OK chứ? Thử dùng hàm printf lên một chuỗi xem PC có nhận dc ko nhé!
Good luck,

nvb_moitrang
14-03-2011, 10:17 PM
Em không hiểu ý của bác lắm, tại gửi một chuổi thì hình như là bằng puts ( theo em đọc tài liệu). Em hỏi mấy nguời thì bảo là khi gửi một chuổi cần có những báo hiệu bắt đầu và kết thúc,nhưng mà em đọc trong các tài liệu thì không thấy nhắc gì đến. Không biết có cần đến hàm ngắt không hả các bác

Delfy_Coltech
14-03-2011, 10:35 PM
Ý mình là trước tiên bạn phải check xem kết nối giữa máy tính và mạch đã ổn chưa bằng cách gửi thử một chuỗi lên PC.

void main()
{
do
{
printf("Test RS232\r\n");
}
while(true);
}

nvb_moitrang
14-03-2011, 10:51 PM
anh ơi. Nếu em dùng printf() thì pic sẽ tự động chuyển chuổi lên máy tính và hiện trên màn hình thông qua cổng r232 hả anh. ý em là có cần khai báo gì cho rs232 không. Em mới làm nên gà quá :D thank anh nhiều