音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(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

串口問(wèn)題搞了兩天沒(méi)結(jié)果,請(qǐng)大家?guī)蛶兔?看看源程?/h1>

作者:行星 欄目:單片機(jī)
串口問(wèn)題搞了兩天沒(méi)結(jié)果,請(qǐng)大家?guī)蛶兔?看看源程?br>;**************延時(shí)833μs 子程序***
DEL833:
    ;MOV    R6,#02H
MS11:    MOV R7 ,#44    ; 9600bout     ;
    DJNZ R7,$
    ;DJNZ    R6,MS11
    RET
; **********************************
;******** 89C51發(fā)送數(shù)據(jù)給PC 機(jī)子程序****
INPUT: CLR C
MOV TXD1,C ;發(fā)送起始位
LCALL DEL833 ;延時(shí)
MOV R3,#8
REP: RRC A
MOV TXD1 ,C
LCALL DEL833
DJNZ R3,REP ;發(fā)送8 位數(shù)據(jù)
SETB C ;發(fā)送停止位
MOV TXD1,C
LCALL DEL833
RET
;********從PC 機(jī)接收數(shù)據(jù)子程序********
OUTPUT: JB RXD1, $ ; 判斷是否有起始位出現(xiàn)
LCALL DEL833
MOV R3,#8
OUT: MOV C ,RXD1
RRC A
LCALL DEL833
DJNZ R3,OUT ; 接收8 位數(shù)據(jù)
JNB RXD1 ,$ ; 判斷是否有停止位出現(xiàn)
RET



我用串口調(diào)試工具測(cè)試過(guò)拉,發(fā)送數(shù)據(jù)一切正常,但就是接受不到數(shù)據(jù)是什么原因啊?高人指點(diǎn)一下,十分感謝!

2樓: >>參與討論
2shift
接收程序有錯(cuò)誤!
判斷到有起始位后,不應(yīng)該延時(shí)“DEL833”,應(yīng)該是DEL833+DEL833/2,以后的延時(shí)就是DEL833了,知道為什么把?模擬的接受程序接收位流時(shí),在每個(gè)位周期的中間點(diǎn)判斷比較好。

3樓: >>參與討論
行星
十分感謝樓上的指點(diǎn)
我試一下,看看,再次感謝。

4樓: >>參與討論
行星
2shift,我已經(jīng)修改過(guò)拉,但是不行
我已經(jīng)按照你的意思修改果拉,但是還是收不到數(shù)據(jù),為什么?能幫我在分析一下嗎?

5樓: >>參與討論
2shift
仔細(xì)檢查你的起始位接受的對(duì)不對(duì)?還有邏輯
我告訴你的方法沒(méi)有問(wèn)題,我已經(jīng)做過(guò)n次了

6樓: >>參與討論
wujinlei
有問(wèn)題
單片機(jī)發(fā)送/接收數(shù)據(jù),是用中斷標(biāo)志位TI和RI來(lái)判斷的,起始位和終止位是由單片機(jī)硬件在選擇了發(fā)送模式后自動(dòng)添加的,以上程序根本不會(huì)通信

HE

7樓: >>參與討論
2shift
這是一個(gè)軟件模擬的串口通訊,不是硬件的
 
8樓: >>參與討論
行星
我試過(guò)在低波特率下通訊
我用2400 4800用單片機(jī)和單片機(jī)之間進(jìn)行收發(fā)測(cè)試,都可以成功,但一換位和
PC通訊,就只能發(fā)不能收啦?這是什么原因?能幫我解釋一下嗎?

9樓: >>參與討論
coke
用示波器看一下就知道了.
1.確定PC是否有數(shù)據(jù)送給MCU
2.端口是否上拉或其他設(shè)置.

10樓: >>參與討論
行星
我已經(jīng)用示波器看過(guò)
示波器可以看到波形,但好像mcu抓不到。

11樓: >>參與討論
CXCHINA
你這個(gè)程序要注意幾點(diǎn)!
你寫(xiě)的這個(gè)串口程序尤其應(yīng)注意以下幾點(diǎn):
1、接收的首個(gè)起始位應(yīng)加去抖動(dòng)干擾確認(rèn),還要注意是否和PC機(jī)約定的時(shí)間長(zhǎng)度一致。加幾個(gè)  NOP,保證后面接收數(shù)據(jù)正好是時(shí)間的中間點(diǎn)上接收。
2、接收時(shí)一定得正確地捕獲起始位。因此軟件中要加保證楨同步的措施。
3、接收發(fā)送程序前,SETB RXD1,發(fā)送前 SETB TXD1
4、加一個(gè)校驗(yàn)字節(jié)。
5、接收退出條件判斷停止位時(shí)防止死循環(huán),增加或改為延時(shí)自動(dòng)退出。


* - 本貼最后修改時(shí)間:2005-10-21 10:18:22 修改者:CXCHINA

12樓: >>參與討論
along_yu
搞定沒(méi)有?匯編模擬串口真容易啊!
 
13樓: >>參與討論
行星
讓樓上的見(jiàn)笑拉
十分感謝CXCHINA ,我再試一下,真是令人頭痛阿,技術(shù)不佳,讓大家見(jiàn)笑拉。

14樓: >>參與討論
wenbilin
應(yīng)一步一步的查原因!
 
15樓: >>參與討論
Torda
好像延時(shí)有問(wèn)題
    9600bps對(duì)應(yīng)的延時(shí)時(shí)間應(yīng)該是104us。你那個(gè)延時(shí)誤差好像比較大。

16樓: >>參與討論
行星
如果改為中斷方式,會(huì)不會(huì)對(duì)起始位的讀取好一點(diǎn)呢?
 
參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
大家來(lái)看看
8xC58
我反匯編后看了下mon51的程序,
想做一個(gè)便宜而且簡(jiǎn)單的定時(shí)電路!
請(qǐng)教 Disassembly window 是什么用的,
免費(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)