Ðề tài: giao tiếp rs232
View Single Post
Old 04-05-2009, 02:47 PM   #42
digan
Đệ tử 1 túi
 
digan's Avatar
 
Tham gia ngày: Jan 2006
Bài gửi: 14
:
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)
{
}
}
digan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn