<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機的串行口擴展方法設計

51單片機的串行口擴展方法設計

作者: 時(shí)間:2012-03-21 來(lái)源:網(wǎng)絡(luò ) 收藏

1 引言

本文引用地址:http://dyxdggzs.com/article/171817.htm

在研究采場(chǎng)瓦斯積聚模擬試驗臺的過(guò)程中,筆者了主從式多機采控系統結構。主從式多機控制系統是實(shí)時(shí)控制系統中較為普遍的結構形式,它具有可靠性高,結構靈活等優(yōu)點(diǎn)。當選用單串口51構成這種主從式多機系統時(shí),51一方面可能要和主機Computer通信,一方面又要和下位機通信,這時(shí)就需要通道。本文具體介紹了兩種通道的。

2 口的

常用的標準51內部?jì)H含有一個(gè)可編程的全雙工串行通信接口,具有UART的全部功能。該接口電路不僅能同時(shí)進(jìn)行數據的發(fā)送和接收,也可作為一個(gè)同步移位寄存器使用。當以此類(lèi)型單片機構成分布式多級應用系統時(shí),器件本身的串口資源就不夠用了。筆者在實(shí)際開(kāi)發(fā)中,查閱了有關(guān)資料,總結出如下兩種常用而有效的串行通道擴展。

2.1 基于SP2538的擴展方法

SP2538是專(zhuān)用低功耗串行口擴展芯片,該芯片主要是為解決當前基于UART串口通信的外圍智能模塊及器件較多,而單片機或DSP原有的UART串口又過(guò)少的問(wèn)題而推出的。利用該器件可將現有單片機或DSP的單串口擴展至5個(gè)全雙工串口。使用方法簡(jiǎn)單、高效。

在應用SP2538擴展串行通道時(shí),母串口波特率K1=2880*Fosc_in,單位是MHz,且Fosc_in小于20.0MHz, 在SP2538輸入時(shí)鐘Fosc_in =20.0MHz時(shí)母串口可自適應上位機的56000bps和57600bps兩種標準波特率輸入。子串口波特率K2=480*Fosc_in。

母串口和所有子串口都是TTL電平接口,可直接匹配其他單片機或TTL數字電路,如需連接PC機則必須增加電平轉換芯片如MAX202 、MAX232 等。SP2538具有內置的上電復位電路和可關(guān)閉的看門(mén)狗監控電路。上位機寫(xiě)命令字0x10可實(shí)現喂狗,寫(xiě)命令字0x15關(guān)閉看門(mén)狗,初次上電后看門(mén)狗處于激活狀態(tài)或寫(xiě)命令字0x20激活看門(mén)狗監控功能。上位機可通過(guò)芯片復位指令0x35在任何時(shí)候讓芯片進(jìn)行指令復位,也可通過(guò)芯片睡眠指令0x55在任何時(shí)候讓芯片進(jìn)入微功耗睡眠模式以降低系統功耗。初次上電后芯片不會(huì )自行進(jìn)入睡眠模式,但只能由上位機通過(guò)母串口任意發(fā)送一個(gè)字節數據將其喚醒,其他子串口不具備這一功能。

圖(1)是AT89C52單片機與SP2538的電路連接,圖中,AT89C52的全雙工串口與SP2538的母串口5相連,該串口同時(shí)也作為命令/數據口。SP2538的ADRI0、ADRI1、ADRI2分別與AT89C52的P2.3、P2.4、P2.5口相連,可用于選擇發(fā)送數據是選擇相應的串口0~4;ADRO0、ADRO1、ADRO2與P2.0、P2.1、P2.2相連,用于判斷接收的數據來(lái)自哪一個(gè)串口。 SP2538的時(shí)鐘頻率選為20.0MHZ,此時(shí)母串口5的波特率為57600bps,串口0~4的波特率為9600bps。

下面是與上述硬件電路相關(guān)的接口程序,該程序用A51匯編語(yǔ)言編制,程序僅說(shuō)明了中斷方式下對子串口0(TX0、RX0)的操作,其它子串口類(lèi)似。
TBLOCK DATA 20H
RBLOCK DATA 30H
LENGTH DATA 14H

TXR_REV_SEND: CLR ES
JBC RI,RECEIVE
CLR TI
MOV A,@R0
CLR P2.0 ; 寫(xiě)數據到SBUF前必須先置欲發(fā)送子串口的地址
CLR P2.1
CLR P2.2
MOV SBUF,A
DJNZ R2,NEXT
SJMP $
NEXT: INC R0
RETI
RECEIVE: MOV A,P2
AND A,#31H ;判斷是否為子串口0
JNZ ELSE
MOV A,SBUF
MOV @R1,A
INC R1
RETI

49.gif

2.2 基于Intel8251的串行口擴展方法

上面基于SP2538的串口擴展方法可以說(shuō)是一種串行的擴展方法,這里基于Intel8251的擴展方法則是一種并行的方法。Intel8251是一種通用的同步/異步發(fā)送器(USART),它的工作方式可以通過(guò)編程設置。能夠以同步或異步串行通信方式工作,能自動(dòng)完成幀格式。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 設計 方法 擴展 串行 單片機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>