|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
怎么編VB與單片機(jī)的串口通訊 |
| 作者:xingyuelq 欄目:單片機(jī) |
看了個(gè)例子,自己就參考著寫(xiě)了一個(gè)VB上位機(jī)發(fā)送單片機(jī)接收的程序。 可就是不成功,先把程序貼出往高手指教。 VB:我測(cè)試了下能觸發(fā)oncomm事件 Option Explicit Private Sub Button_SEND_Click() Dim X As String Dim Num As Variant Dim outbyte(0) As Byte If Text_SEND.Text = "" Then X = MsgBox("發(fā)送數(shù)據(jù)不能為空", 16) Exit Sub End If If Not MSComm1.PortOpen Then MSComm1.PortOpen = True End If Num = Str(Text_SEND.Text) outbyte(0) = CByte(Num) MSComm1.OutBufferCount = 0 '...清空輸出寄存器 MSComm1.Output = outbyte '...發(fā)送數(shù)據(jù)?這個(gè)地方搞不清是不是這樣寫(xiě)。 End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "2400,N,8,1" '采用的是STC2501單片機(jī) MSComm1.InputLen = 0 MSComm1.RThreshold = 6 MSComm1.InBufferSize = 256 MSComm1.OutBufferSize = 256 MSComm1.SThreshold = 1 If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End Sub 單片機(jī)程序: BUFFER EQU 7FH ORG 0000H JMP MAIN ORG 0023H AJMP RECEIVE MAIN: MOV SP,#30H MOV BUFFER,#00H MOV PCON,#00H ;波特率不倍增 MOV SCON,#40H ;串行通訊為方式1,即1起始位+8數(shù)據(jù)位+停止位,無(wú)校驗(yàn)位 MOV TMOD,#20H ;定時(shí)器T1為方式1 MOV TH1 ,#70H MOV TL1 ,#70H ;波特率為9600 bit/s SETB REN ;允許接收 SETB ES ;使能單片機(jī)串行中斷 SETB EA ;打開(kāi)總中斷 SETB TR1 ;啟動(dòng)定時(shí)T1 LOOP: MOV A,BUFFER CPL A MOV P1,A ;實(shí)時(shí)將接收緩存值BUFFER取反輸出 JMP LOOP RECEIVE: PUSH ACC CLR RI MOV A,SBUF MOV BUFFER,A ;讀取計(jì)算機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)到BUFFER RETI END 單片機(jī)就是沒(méi)有反應(yīng)不知什么地方設(shè)置不對(duì),望大家?guī)兔Α?br> |
| 2樓: | >>參與討論 |
| 作者: zgl7903 于 2006/11/1 9:20:00 發(fā)布:
PUSH是不是應(yīng)該對(duì)應(yīng)一個(gè)POP,否則堆棧豈不是要溢出? |
|
| 3樓: | >>參與討論 |
| 作者: xingyuelq 于 2006/11/1 11:10:00 發(fā)布:
噢謝謝真是一點(diǎn)也馬虎不得呀致敬 |
|
| 4樓: | >>參與討論 |
| 作者: squarelook 于 2006/11/1 11:15:00 發(fā)布:
我用VC寫(xiě)串口通信的程序
|
|
| 5樓: | >>參與討論 |
| 作者: zuosheng 于 2006/11/8 21:37:00 發(fā)布:
。 上面的不好用,遠(yuǎn)一點(diǎn)就完了,100M |
|
| 6樓: | >>參與討論 |
| 作者: conwh 于 2006/11/8 21:49:00 發(fā)布:
LS的不要這樣講嗎,就是個(gè)轉(zhuǎn)換器 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |