Chán quá, lọ mọ một mình mãi vẫn không được. mình Post cả phần VB nhờ mọi ng kiểm tra xem có lối định dạng dữ liệu không nhé. Mình nối tắt chân 11 và 12 của Max232 để thử thì mình gửi chữ A nó trả về đúng chư A luôn.
Private Sub Exit_Click()
MSComm1.PortOpen = False
End
End Sub
Private Sub Form_Load()
With MSComm1
.CommPort = 1
.RThreshold = 1
.Settings = "9600,n,8,1"
.PortOpen = True
End With
TText.Text = "NHAP KY TU TRUYEN DI"
RText.Text = "KY TU NHAN DUOC"
End Sub
Private Sub MSComm1_OnComm()
If (MSComm1.CommEvent = comEvReceive) Then
buff = MSComm1.Input
a = Asc(buff)
RText.Text = a
End If
End Sub
Private Sub RButton_Click()
RText.Text = a
End Sub
Private Sub TButton_Click()
MSComm1.Output = TText.Text
End Sub
Phần Code cho pic mình dùng code do Đồng chí Bolsevik sửa giúp. (Thanks đồng chí!)
#include<16f877.h> //cẩn thận nhầm 16f877a
#FUSES
XT, NOWDT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOWRT
#use delay(clock=4000000) // defind crystal = 4MHz
#use rs232(baud=9600,xmit=PIN_C6, rcv=PIN_C7,
bits=8)
// Uses RS232 Baud-rate 9600 , TX PIN = RC6, RX PIN = RC7
#int_RDA
void RDA_isr() {
char key_in;
key_in=getc();
//delay_ms(1000); trong 1s lại có ký tự gửi đến thì trả về không đúng
putc(key_in);
}
main()
{
enable_interrupts(global);
enable_interrupts(INT_RDA);
while (true)
{
}
}