Vẫn là vấn đề giao tiếp qua RS 232. Hôm trước đệ có làm giao tiếp PC - RS 232 -PIC theo một chiều từ PC - PIC, phần giao tiếp với cổng COM trên máy tình thì dùng C# và đã gửi được tín hiệu qua PIC rồi, tuy nhiên đoạn chương trình ở PIC đệ viết bằng CCS và nó chạy không theo ý đồ của đệ 'ý của đệ là sau khi check được LED nào thì LED đó sẽ sáng cho đến khi nào không check nữa' Vậy nhờ các huynh chỉ giáo!
Đây là đạn code:
Code:
#include <16f877a.h>
#include <def_877a.h>
#use delay(clock=20000000)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#define may1 RD0
#define may2 RD1
#define may3 RD2
#define may4 RD3
#define may5 RD4
#define on 1
#define off 0
char ch;
#INT_RDA
Receive_isr()
{
if (kbhit())
{
ch = getc();
if (ch=='a') may1 = on;
if (ch=='b') may2 = on;
if (ch=='c') may3 = on;
if (ch=='d') may4 = on;
if (ch=='e') may5 = on;
if (ch=='f') may1 = 0;
if (ch=='g') may2 = 0;
if (ch=='h') may3 = 0;
if (ch=='i') may4 = 0;
if (ch=='j') may5 = 0;
}
}
void main()
{
set_tris_d(0);
portd=0b00000000;
enable_interrupts(int_rda);
enable_interrupts(GLOBAL);
while (1)
{
}
}
và kèm theo C# and protues: