Chào các bạn, minh đang làm giao tiếp PC và PIC sử dụng com ảo, nhưng giá trị gửi từ máy tính 4 số 0, 1, 2, 3, 4 chỉ nhận đúng 0 và 1, còn 3 thì nhận được 1, 4 thì nhận được 0, nói chung số chẫn nhân 0, số lẻ nhận được 1. Nhờ các bạn giải thích và sửa dúp dùm mình.
Chương trình VB
Dim i As Byte
Private Sub CmdSend_Click()
i = 0
MSComm1.Output = Chr(i)
End Sub
Private Sub Command1_Click()
i = 1
MSComm1.Output = Chr(i)
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
i = 2
MSComm1.Output = Chr(i)
End Sub
Private Sub Command4_Click()
i = 3
MSComm1.Output = Chr(i)
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 5
MSComm1.PortOpen = True
'i = 0
Text1.Text = "DKM"
Text1.Enabled = False
End Sub
Chương trình CSS
#include <16F877A.h>
#FUSES NOWDT, HS, PUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
#use delay (clock=20000000)
#use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7)
#include <DEFS_16F877A.h>
char value;
#int_RDA
void RDA_isr(void)
{
value = getc();
switch(value)
{
case 0:
{
PORTB = 0x0f;
break;
}
case 1:
{
PORTB = 0x07;
break;
}
case 2:
{
PORTB = 0x08;
}
case 3:
{
PORTB = 0x09;
break;
}
}
}
void main()
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
set_tris_B(0);
PORTB = 0;
while(true)
{
;
}
}
|