Ðề tài: giao tiếp rs232
View Single Post
Old 22-10-2008, 08:51 PM   #9
nguyenquoctoan
Đệ tử 6 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
:
mình truyền giá trị 0<X<1000 cho bạn xem như sau
khi truyền và nhận tất cả phải ở dạng chuỗi
code vb:
rstr = txttruyen.Text 'dữ liệu cần truyền
If (Val(rstr) < 1000) And (Val(rstr) > 0) Then
l = Len(rstr) ‘gan l cho do dai c
If (l = 1) Then
rstr = "000" + rstr
End If
If (l = 2) Then
rstr = "00" + rstr
End If
If (l = 3) Then
rstr = "0" + rstr
End If
End If
If rstr = "" Then
' do anything if u want
Else
Call MoPort_Click 'goi hàm mở port khai báo thông số cần truyền
MSComm1.Output = rstr 'truyền dữ liệu xuống
End If
code c
#include<16f877a.h>
#device PIC16F877a*=16 ADC=10
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
//hàm nhận dữ liệu
void getvalue()
{
int16 x;
int i;
char s[1]; //khai báo số lượng chuỗi truyền
for(i=0;i<4;i++) //số ký tự truyền xuống
s[i]=getc(); //nhan s vao tu tu dang chuoi
x=atol(s); //chuyen chuoi sang so
y=x; //số bạn cần truyền đây
printf("%lu",x); “xuat gia tri x ra pc so ko dau
}
//hàm main
void main()
{
while(1)
{
if (y==0)
getvalue();
}

}
hi vọng giúp được bạn
nguyenquoctoan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn