Chào các bạn. Vấn đề về 89c51 giao tiếp máy tính được ứng dụng rất nhiều,tuy diễn đàn đã nhiều lần đề cập đến vấn đề này nhưng vẫn còn nhiều vấn đề bất cập, một trong số đó là quá trình truyền dữ liệu chỉ thực hiện được theo một chiều, cụ thể là chỉ truyền được từ máy tính vào 89c51 còn chiều ngược lại thì không thực hiện được. vì vậy rất mong những bạn nào có kinh nghiệm về vấn đề này, đặc biệt là bạn minhtuan04 giải quyết giúp mọi người,đây là vướng mắc không chỉ riêng tôi mà còn là của rất nhiều người nữa. Cám ơn !!!!!
Dưới đây là một ví dụ viết bằng vb và asm chỉ truyền được từ máy tính xuống vdk nhưng không truyền được ngược lại.Rất mong sự đóng góp của mọi người.
cặp cổng com mình dùng là 4 và 14, CHƯƠNG TRÌNH NÀY TRUYỀN KÍ TỰ "A" BẰNG VĐK NÊN MÁY TÍNH NHƯNG KHÔNG ĐƯỢC
'''''''''''''''''''''''''''''CODE VB CHO MÁY TÍNH: '''''''''''''''''''''''''''''
Private Sub Form_Load()
MSComm1.CommPort = 14
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
End Sub
Private Sub MSComm1_OnComm()
If Me.MSComm1.CommEvent = comEvReceive Then
DLNHAN.Text = MSComm1.Input
End If
End Sub
Private Sub CMD_TRUYEN_Click()
MSComm1.Output = DLTRUYEN.Text
End Sub
;;;;;;;;;;;;;;;;;;;;;CODE ASM CHO 89C51: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;
$include(reg51.inc)
org 0000h
mov TMOD,#20h ; TIEMR1,CHE DO 2 TU DONG NAP
mov TH1,#-3 ;TOC DO 9600
MOV SCON,#50H ; N,8,1
SETB TR1 ;CHAY TIMER1
AGAIN: MOV SBUF,#'A' ; TRUYEN KI TU "A" DEN BO DEM
HERE: JNB TI,HERE;
CLR TI;
SJMP AGAIN
END
Dưới đây là một ví dụ viết bằng vb và asm chỉ truyền được từ máy tính xuống vdk nhưng không truyền được ngược lại.Rất mong sự đóng góp của mọi người.
cặp cổng com mình dùng là 4 và 14, CHƯƠNG TRÌNH NÀY TRUYỀN KÍ TỰ "A" BẰNG VĐK NÊN MÁY TÍNH NHƯNG KHÔNG ĐƯỢC
'''''''''''''''''''''''''''''CODE VB CHO MÁY TÍNH: '''''''''''''''''''''''''''''
Private Sub Form_Load()
MSComm1.CommPort = 14
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
End Sub
Private Sub MSComm1_OnComm()
If Me.MSComm1.CommEvent = comEvReceive Then
DLNHAN.Text = MSComm1.Input
End If
End Sub
Private Sub CMD_TRUYEN_Click()
MSComm1.Output = DLTRUYEN.Text
End Sub
;;;;;;;;;;;;;;;;;;;;;CODE ASM CHO 89C51: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;
$include(reg51.inc)
org 0000h
mov TMOD,#20h ; TIEMR1,CHE DO 2 TU DONG NAP
mov TH1,#-3 ;TOC DO 9600
MOV SCON,#50H ; N,8,1
SETB TR1 ;CHAY TIMER1
AGAIN: MOV SBUF,#'A' ; TRUYEN KI TU "A" DEN BO DEM
HERE: JNB TI,HERE;
CLR TI;
SJMP AGAIN
END