Chương trình nhận dữ liệu từ máy tính của vi điều khiển
Code:
org 000h
; khoi tao UART
; Thiet lap SMOD = 1, nghia la chia cho 16
mov a,87h ; 87h chinh la dia chi cua thanh ghi PCON
setb ACC.7 ; SMOD =1, nghia la chia cho 32
mov 87h,a
mov SCON,#01010010b
; SM0_SM1_SM2_REN_TB8_RB8_TI_RI
; 0 1 0 1 0 0 1 0
; UART 8 bit , cho phep nhan ki tu, set co ngat phat
mov TMOD,#00100000b
; GATE_C/T_M1_M0_GATE_C/T_M1_M0
; 0 0 1 0 0 0 0 0
; Timer 1, mode 2 ( auto load )
mov TH1,#-3 ; toc do thuc 19200 baud
setb TR1 ; cho phep timer hoat dong
td: mov r0,#40h ; vi tri o nho bat dau luu
td1: jnb RI,$
clr RI
mov @r0,SBUF
inc r0
jmp td1
end
Chương trình gởi dữ liệu từ máy tính tới vi điều khiển:
Code:
Private Sub Form_Load()
RX_Counter = 0
' init for comport
With MSComm1
.CommPort = 2 'chose COM2
.Settings = "19200,N,8,1" 'baud 9600bps, none parity, 8 bit data, 1 bit stop
.InBufferSize = 1024
.InputLen = 0
.RThreshold = 1
.SThreshold = 1
.OutBufferSize = 512
.InputMode = comInputModeBinary
'.InputMode = comInputModeText
.PortOpen = True
End With
'init for edit boxes
For i = 0 To 10
Text1.Item(i).Text = i
Text1.Item(i).Alignment = 2
Next
End Sub
Private Sub cmdSend_Click()
Dim BytesToSend(10) As Byte
'Store the data in a byte array
For i = 0 To 10
BytesToSend(i) = Val("&h" & Text1.Item(i).Text)
Next
'Send the data to the port
MSComm1.Output = BytesToSend()
End Sub
Em có download chương trình Giao tiếp RS232 trên PC bằng Visual Basic ( do anh Hải Bắc viết ) về dùng!
Em truyền dữ liệu từ vi điều khiển 89S52 lên máy tính thì nhận đúng nhưng gởi dữ liệu từ máy tính xuống vi điều khiển thì vi điều khiển không nhận được!
Kính mong anh Hải Bắc xem dùm source code của Visual Basic, vi điều khiển của em viết đúng không? Nhờ anh Hải Bắc chỉ giúp!
Hiện nay em đang làm đồ án tốt nghiệp nhưng gặp sự cố ở khâu truyền dữ liệu từ máy tính xuống vi điều khiển.
Em hiện đang học ngành cơ khí.
@ngohaibac: em nhớ để
code giữa 2 tag code nhé. Cho người đọc dễ nhìn em ạ.