基本的 51 單片機有四個并行口,其中還包含了一個串行口。
當接口不夠用的時候,大家就會想到,使用什么外接芯片來擴充。
但是,各種教材、參考書、網絡文章,介紹擴充并行口的花樣不少,擴充串行口的方法,幾乎無人問津。
偶爾見到一個,也是使用 8250、8251 等“巨型”芯片來擴充的
使用這些芯片,就要占用單片機很多的更為緊缺的并行口,基本上就是得不償失。更別說還要設置復雜的控制字了。
做而論道使用簡單的三態門,即可為單片機擴充串行口,僅僅占用單片機的一、二個引腳作為控制引線而已。
這個方法,在以前的各種書籍、雜志、網文中,都沒有見到過,可以說是做而論道的獨創。
呵呵,小小的自豪一下,請不要拍磚。
實際上是很簡單的,就像使用 74LS373、74LS244 擴充并行口一樣,為串行口,配上合適三態門就行了。
選用 74LS125(低電平開門)、74LS126(高電平開門) 都行。
使用其它的具有三態輸出的芯片也可以,如:74LS244、74LS373 等等。
只是這些芯片的控制線,是成組的控制,不是單獨的一個門、一個門的進行控制,就有些不夠方便。
下面就是做而論道設計的擴充兩個串口通道的電路圖:
為了控制簡單,以及介紹全面一些,在圖中使用了兩種三態門。用同一種,也是可以的。
兩組三態門,均以 P3.4 作為控制信號。
當 P3.4 輸出高電平時,74LS126 開門,通道1導通,單片機即可對 74LS164 進行串行輸出,驅動數碼管;
當 P3.4 輸出低電平時,74LS125 開門,通道2導通,單片機即可與其它串口設備進行全雙工的通信。
如果需要,還可以在 125 的右邊再接上 TTL-RS232 電平轉換芯片(或 RS485 總線芯片),進行遠距離通信。
圖中是接上了一個 PROTEUS 軟件的虛擬終端,用來代表另一個串口通信設備。
做而論道用匯編語言寫了一小段程序,可以控制這個串口擴展電路進行工作。
;=================================================
ORG 0000H
SJMP START
ORG 0023H
AJMP S_INT
START:
MOV TMOD, #20H
MOV TH1, #0FDH ;設置波特率9600@11.0592MHz
MOV TL1, #0FDH
SETB TR1
MOV IE, #90H ;開串口中斷
CLR P3.4 ;選通74LS125(通道2)
MOV SCON, #50H ;串口方式1, 可接收
SJMP $
;-----------------------------------
S_INT: ;串口中斷程序
JNB RI, S_END
CLR RI
MOV A, SBUF ;取出收到的數據
;---------------------
SETB P3.4 ;選通74LS126(通道1)
MOV SCON, #0 ;串口通信方式0
MOV B, #16
DIV AB
XCH A, B
ADD A, #(TAB - $ - 3)
MOVC A, @A + PC ;取七段碼
MOV SBUF, A ;串口輸出
JNB TI, $ ;等待發送完畢
CLR TI
MOV A, B
ADD A, #(TAB - $ - 3)
MOVC A, @A + PC
MOV SBUF, A
JNB TI, $
CLR TI
;---------------------
CLR P3.4 ;選通74LS125(通道2)
MOV SCON, #50H ;串口方式1, 可接收
MOV SBUF, #'O'
JNB TI, $
CLR TI
MOV SBUF, #'K'
JNB TI, $
CLR TI
MOV SBUF, #13 ; JNB TI, $ CLR TI MOV SBUF, #10 ; JNB TI, $ CLR TI ;--------------------- S_END: RETI TAB: ;共陽段碼表 DB 0C0H, 0F9H, 0A4H, 0B0H, 099H, 092H, 082H, 0F8H;0~7 DB 080H, 090H, 088H, 083H, 0C6H, 0A1H, 086H, 08EH;8~F END ;================================================= 程序執行后,屏幕截圖如下: 在程序控制下,51 單片機隨時監聽通道2,一旦虛擬終端發來了一個字節的串行數據,單片機都要向虛擬終端回送 'OK' 這時,就是單片機和上位機之間的雙工串行通信。 然后,單片機轉向串口通道1,以方式0 輸出兩組七段碼,令外接的 74LS164 顯示剛剛收到的數據的高、低四位。 這時,就是簡單的 SPI 通信方式。 在圖中可以看到,數碼管顯示的是 41,這是在虛擬終端窗口中鍵入'A'時的現象,41 即字符 A 的 ASCII 碼。 虛擬終端,它并不顯示鍵入的內容,它僅僅顯示單片機發出的信息,在圖中可以看到顯示出來的 OK、回車、換行 74LS125 和 74LS126 都是 14 引腳的集成芯片,和 8250、16550A 等 40 引腳的專用串口芯片相比,要小巧的多。 每片(125 或 126)都含有四個獨立工作的三態門。實際上,使用一片 125 或 126,也就可以實現上述的兩個通道串口通信了。 注意:如果使用了一片芯片,那么通道控制的電平信號是相同的,這就需要使用單片機的兩個引腳來分別控制兩個通道。 多用幾片三態門,為單片機多擴充幾個串行口,也是可行的。 做而論道設計的這種串口擴充方案,硬件電路和軟件,都已經在實際電路中做過實驗,可以正常通信。
上一篇:關于51單片機的復位
下一篇:關于51單片機不能正常起振的原因
推薦閱讀
史海拾趣
在光通信領域,EUDYNA憑借其10Gb/s速率的光調制集成DFB激光器模塊,取得了重要突破。這款模塊采用了先進的封裝技術和內置光學隔離器,確保了信號的穩定性和可靠性。EUDYNA的這一創新,不僅提高了光通信的傳輸速度和效率,也為整個行業樹立了新的標桿。
在電子行業這個競爭激烈的領域里,技術的更新換代速度非常快。為了保持領先地位,Exclara高度重視研發投入,不斷引進高端人才和先進設備,加強研發團隊建設。通過持續的研發投入,公司不僅保持了技術的領先地位,還成功開發出了一系列具有自主知識產權的核心技術。
隨著銷售量的持續增長,APT公司很快便超出了其初始設施的產能。為了滿足市場需求,公司于1992年遷至加利福尼亞州納帕市的一座占地36,000平方英尺的工廠,并配備了2,000平方英尺的100級潔凈室。新工廠的啟用為APT公司提供了更大的發展空間,也進一步提升了其產品質量和產能。同時,APT公司始終致力于技術創新,不斷推出適應市場需求的新產品,進一步鞏固了其在氣體輸送領域的領先地位。
隨著技術的不斷進步和市場的不斷擴大,APT公司的產品逐漸應用于半導體制造和其他清潔行業,如太陽能電池板、LCD、LED、平板顯示器等。2000年,APT公司決定創建高純度產品系列,并成功推出了HP特種氣體應用和AK產品線。這一舉措不僅進一步豐富了APT公司的產品線,也使其能夠更好地滿足高端市場的需求。此后,APT公司不斷拓展其市場版圖,產品遠銷全球各地,贏得了廣泛的客戶認可。
在創業初期,安美通面臨著激烈的市場競爭和技術瓶頸。然而,公司的創始團隊憑借對無線通信技術的深刻理解和豐富經驗,成功研發出了一系列低功耗無線遠傳產品,為水氣電及工控行業提供了創新的解決方案。這些產品迅速獲得了市場的認可,為公司的初步發展奠定了堅實的基礎。
隨著技術的不斷進步,Aptos在微電子封裝領域取得了重大突破。公司成功開發出了一系列高效、穩定的封裝技術,并成功應用于多個電子產品中。同時,Aptos還積極拓展業務領域,將技術應用于智能穿戴、物聯網等新興領域,進一步提升了公司的市場影響力。
MP3充電器是最易損壞的配件之一。筆者維修多款充電器后發現,它們基本上都是采用開關電源電路,電路結構大同小異。本文以市面上最常見的昕潮TJ-01型充電器為例,簡述其工作原理與常見故障檢修,電路見圖1。工作原理 (1)開關振蕩電路市電經D1~D4整 ...… 查看全部問答∨ |
我想用兩個IO口,一個做SCL,一個做SDA, 實現兩個MCU通訊, 一個MCU做主機,一個做從機,主機的很好實現,因為SCL信號由主機控制。但是從機的話,很難實現跟主機同步,從機這部分,要如何處理接受?… 查看全部問答∨ |
LF198峰值保持電路分析、討教(電路圖+波形圖+詳解+無限感激) 最近做一個峰值保持電路,是用LF198FE芯片做的。在調試過程中發現了許多問題,現向各位高手請教。本人的電路圖如下: /************電路說明***************/ R5、R6為直流調零輸入端,本人電路上沒有接。 C6用152的聚脂膜電容 T1是為了給峰值 ...… 查看全部問答∨ |
請問各位大俠,有誰用過TD 的3G USB downgle的沒?平臺是6410+WINCE6.0, 找了幾家,都沒有CE6的驅動,只有PC上的驅動,但我們現在模具已定了,有客戶要用 TD的,所以我們只能以USB Downgle的形式來提供了。 如果哪位有相關信息,請告知我一聲, ...… 查看全部問答∨ |
我已安裝了wince5.0 Emulator, wince5.0 的SDK,在VS2005調試Device項目時,只有PocketPC2003 Emulator可用 請問怎么設置可以讓調試時,使用wince5.0 Emulator來調試呢?急急!… 查看全部問答∨ |
|
大家覺得用什么芯片做主控好,目前打算用PIC18F系列或者STM32和LM3S,大家覺得應該選擇哪個!~ 主要是用主控利用PID進行對電機轉速的控制,調節不同的比例系數,然后將轉速以波形的形式顯示到TFT上!~… 查看全部問答∨ |