View Single Post
Old 22-11-2010, 08:11 AM   #112
TheHouse
Đệ tử 1 túi
 
Tham gia ngày: Feb 2010
Bài gửi: 13
:
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
TheHouse vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn