![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển... |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#33 |
Đệ tử 1 túi
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) { } } |
![]() |
![]() |
|
|