Mọi người xem giúp, đoạn code C viết cho PIC 16F877a gửi dữ liệu lên PC & gửi từ PC về VDK mình làm hoài mà không chạy. Lúc nạp hay bị báo lỗi nữa chứ.
Đây là đoạn code gửi dữ liệu từ VDK lên PC, code trên PC mình lấy từ mấy bài hướng dẫn trên forum. Mà vẫn không thấy động tĩnh gì cả. Rồi từ PC gửi xuống cũng vậy.
Code:
#include <16f877a.h>
#use delay (clock=20000000)
#use rs232(baud=9600,parity=n,xmit=PIN_C6,rcv=PIN_C7)
#byte portb=0x06
#byte trisb=0x86
#byte portc=0x07
#byte trisc=0x87
void main()
{
trisb=0;
while(true)
{
portb = 0x00;
putc(0x00);
delay_ms(100);
portb = 0xff;
putc(0xff);
delay_ms(100);
}
}
Code trên PC:
Code:
Private Sub cmdClear_Click()
Text1.Text = ""
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Private Sub cmdSend_Click()
MSComm1.Output = Text2.Text
End Sub
Private Sub Form_Load()
cmdSend.Caption = "&Send"
Text1.Text = ""
Text2.Text = ""
Text1.Enabled = False
cmdExit.Caption = "&Exit"
With MSComm1
.Settings = "9600,N,8,1"
.CommPort = 4
.RThreshold = 1
.SThreshold = 0
.InputMode = comInputModeText
.InputLen = 0
.Handshaking = comNone
.InBufferSize = 1024
.OutBufferSize = 1024
If .PortOpen = False Then
.PortOpen = True
End If
End With
End Sub
Private Sub MSComm1_OnComm()
Dim Buffer As Variant
If MSComm1.CommEvent = comEvReceive Then
Text1.Text = Text1.Text + MSComm1.Input
End If
End Sub
Vừa chạy thực tế, vừa chạy trên mô phỏng, nên mình có chuyển đổi qua lại giữa COM 4 & COM 1