em mới học ghép nối máy tính.Em đang viết chương trình hiển thị chuỗi kí tự lên textbox của VB :
Chương trình 8051 là:
#include <REGX52.H>
#include <stdio.H>
sbit contac = P1^0;
unsigned int n,x;
/*************************ham delay*************/
void delay(unsigned int t)
{
unsigned int i;
for(i=0;i<=t;i++);
}
/******************ham chinh****************/
void main(void)
{
SCON = 0x52;
TMOD = 0x20;
TH1=TL1=-3;
TR1=1;
while(!TI)
TI=0;
x=0x41;
for(n=1;n<=10;n++)
{
putchar(x);
++x;
}
}
và chương trinh VB của em là:
Dim data As String
Dim temp As Integer
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
MSComm5.CommPort = 5
MSComm5.Settings = " 9600,N,8,1"
MSComm5.PortOpen = True
MSComm5.InputMode = 0
MSComm5.RThreshold = 1
MSComm5.InputLen = 0
End Sub
Private Sub MSComm5_OnComm()
If MSComm5.CommEvent = comEvReceive Then
data = MSComm5.Input
temp = Asc(data)
Text1.Text = Text1.Text + Str(temp)
End If
End Sub
Khi mô phỏng thì dòng chữ trên textbox hiển thị không đúng với dòng chữ mà em muốn gửi. Các bác xem hộ em chương trình với. Dữ liệu của vi điều khiển là mã hexa còn khi VB nhận dữ liệu dạng chuỗi kí tự không biết có phải dùng hàm nào để chuyển dữ liệu không nhỉ. A` cho em hỏi khi em muốn nhận hết các byte dữ liệu rồi mới đọc mục đích để hiện thị cùng lúc tất cả các byte đó luôn thì làm thế nào nhỉ?
VD hiển thị chuỗi ''Cơ điện tử ''
Thank so much !
Chương trình 8051 là:
#include <REGX52.H>
#include <stdio.H>
sbit contac = P1^0;
unsigned int n,x;
/*************************ham delay*************/
void delay(unsigned int t)
{
unsigned int i;
for(i=0;i<=t;i++);
}
/******************ham chinh****************/
void main(void)
{
SCON = 0x52;
TMOD = 0x20;
TH1=TL1=-3;
TR1=1;
while(!TI)
TI=0;
x=0x41;
for(n=1;n<=10;n++)
{
putchar(x);
++x;
}
}
và chương trinh VB của em là:
Dim data As String
Dim temp As Integer
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
MSComm5.CommPort = 5
MSComm5.Settings = " 9600,N,8,1"
MSComm5.PortOpen = True
MSComm5.InputMode = 0
MSComm5.RThreshold = 1
MSComm5.InputLen = 0
End Sub
Private Sub MSComm5_OnComm()
If MSComm5.CommEvent = comEvReceive Then
data = MSComm5.Input
temp = Asc(data)
Text1.Text = Text1.Text + Str(temp)
End If
End Sub
Khi mô phỏng thì dòng chữ trên textbox hiển thị không đúng với dòng chữ mà em muốn gửi. Các bác xem hộ em chương trình với. Dữ liệu của vi điều khiển là mã hexa còn khi VB nhận dữ liệu dạng chuỗi kí tự không biết có phải dùng hàm nào để chuyển dữ liệu không nhỉ. A` cho em hỏi khi em muốn nhận hết các byte dữ liệu rồi mới đọc mục đích để hiện thị cùng lúc tất cả các byte đó luôn thì làm thế nào nhỉ?
VD hiển thị chuỗi ''Cơ điện tử ''
Thank so much !