《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于AT89S51單片機接口電路的時序仿真研究
基于AT89S51單片機接口電路的時序仿真研究
2016年微型機與應(yīng)用第05期
侯進旺
(佛山職業(yè)技術(shù)學(xué)院,廣東 佛山 528000)
摘要: 高阻態(tài)是數(shù)字電路接口器件一個重要的狀態(tài),是接口電路的硬件設(shè)計中容易忽視的一種狀態(tài)。本文分析研究在某機床控制中74LS373接口芯片在單片機總線技術(shù)擴展I/O口時出現(xiàn)的總線沖突的時序仿真,使用接口芯片的高阻態(tài)可以有效解決多芯片I/O擴展時的總線沖突。
Abstract:
Key words :

  侯進旺

  (佛山職業(yè)技術(shù)學(xué)院,廣東 佛山 528000)

  摘要:高阻態(tài)是數(shù)字電路接口器件一個重要的狀態(tài),是接口電路的硬件設(shè)計中容易忽視的一種狀態(tài)。本文分析研究在某機床控制中74LS373接口芯片在單片機總線技術(shù)擴展I/O口時出現(xiàn)的總線沖突的時序仿真,使用接口芯片的高阻態(tài)可以有效解決多芯片I/O擴展時的總線沖突。

  關(guān)鍵詞AT89S51單片機;接口電路;時序分析;仿真;總線沖突

0引言

  在基于單片機的工業(yè)產(chǎn)品控制電路設(shè)計中,輸入輸出通道電路通常較多地關(guān)心信號傳輸中輸入輸出通道的高、低電平,對高阻態(tài)關(guān)注較少。實際上硬件設(shè)計如果對芯片的高阻態(tài)不注意,將會造成控制電路中接口芯片短路燒毀。下面針對基于AT89S51單片機[1]總線技術(shù)進行I/O擴展時接口芯片74LS373高阻態(tài)的時序進行仿真分析研究。

1基于單片機I/O擴展接口電路的硬件設(shè)計

  1.1基本擴展電路

  接口芯片74LS373是一個三態(tài)8D鎖存器,通常用于單片機的輸入輸出接口,其元件原理圖和功能表如圖1所示。

001.jpg

  圖174LS373原理圖與功能表從圖1功能表中知,當(dāng)OE端為低電平,控制端LE為高電平時,輸入D端的數(shù)據(jù)傳送到輸出端Q;當(dāng)OE和LE同為低電平時,輸出端Q保持原態(tài)(與輸入D無關(guān));當(dāng)OE為高電平時,無論LE、D如何,輸出均保持高阻態(tài)。

002.jpg

  圖2所示電路為基于單片機AT89S51總線技術(shù)和兩片接口芯片74LS373進行I/O口擴展的電路[2]。U2擴展輸出接口,U3擴展輸入接口。U2和U3的接口地址分別為7FFFH和FEFFH。

  在對圖2電路進行PROTEUS[3]仿真時,設(shè)置輸入開關(guān)的數(shù)據(jù)為01110110(76H),執(zhí)行如下指令:

  MOV DPTR,#0FEFFH

  MOVX A,@DPTR ;讀入U3開關(guān)數(shù)據(jù)

  NOP

  MOV DPTR,#7FFFH

  MOV A,#55H

  MOVX @DPTR,A ;向U2輸出01010101

  利用PROTEUS軟件仿真得到基本電路圖2的仿真時序圖,如圖3。從時序圖中看出,在RD信號有效(低電平)之前,AD(0..7)(P0)數(shù)據(jù)為高阻態(tài),說明在讀U3時數(shù)據(jù)出現(xiàn)錯誤(正確應(yīng)為FFH);在WR信號(低電平)前后,P0上的數(shù)據(jù)也為高阻態(tài)(正確應(yīng)分別為FFH和55H),說明在U2輸出時數(shù)據(jù)也出現(xiàn)錯誤;同時在對圖2的電路仿真時,P0口的數(shù)據(jù)信號出現(xiàn)短路現(xiàn)象。圖2基于單片機AT89S51總線技術(shù)和接口芯片

74LS373進行I/O口擴展的電路

003.jpg

  分別對U2和U3執(zhí)行輸出和輸入指令,通過時序分析知,U2的輸出數(shù)據(jù)正確,U3的數(shù)據(jù)出現(xiàn)錯誤。

  圖5重新設(shè)計后電路的仿真時序圖(下轉(zhuǎn)第48頁)1.2輸入接口的擴展電路錯誤原因分析

  從74LS373的功能表可以看出,當(dāng)OE端保持在低電平,LE同時為低時,其輸出保持原態(tài),說明74LS373具有鎖存功能。由于圖2電路中U3的OE端常接地,使得總線始終被U3占領(lǐng):當(dāng)U3的LE為高時,芯片外部輸入的開關(guān)信號送到芯片輸出,當(dāng)U3的LE為低時,其U2輸出的數(shù)據(jù)狀態(tài)被保持鎖存,也就意味著數(shù)據(jù)總線P0口被U3保持在輸入開關(guān)決定的數(shù)據(jù)。

  事實上AT89S51單片機通過MOVX指令訪問U2和U3時,先將U2和U3的口地址分別輸出到P2口(高8位地址)和P0口(低8位地址),輸出到P0的低8位地址數(shù)據(jù)可能與U3輸入并保持的數(shù)據(jù)不同,從而造成P0口的數(shù)據(jù)沖突。

  1.3解決數(shù)據(jù)沖突的方法

  從上述分析可以看出,造成數(shù)據(jù)沖突的原因是輸入芯片U3的OE端常接地,使得單片機數(shù)據(jù)總線始終被U3芯片占據(jù)。因此在硬件設(shè)計時應(yīng)該避免單片機的總線始終被某一個芯片占據(jù)的現(xiàn)象。

  事實上,從74LS373的功能表看,它還有一個高阻態(tài),只要保證當(dāng)單片機不訪問U3時或者U3被訪問而在尋址階段時,使U3的輸出端始終保持高阻態(tài),這樣就能避免數(shù)據(jù)沖突。

004.jpg

  如圖4為修改后的U3控制電路,OE信號由U4A或非門輸出信號取反得到。仿真結(jié)果如圖5所示。在執(zhí)行讀入U3的指令后,數(shù)據(jù)總線(P0)上的數(shù)據(jù)為76H;在執(zhí)行輸出U2指令后,數(shù)據(jù)總線(P0)上的數(shù)據(jù)為55H,輸入輸出結(jié)果正確。

005.jpg

2結(jié)論

  通過以上分析和仿真,在基于單片機控制的電子電路設(shè)計中,時序的仿真分析是查找硬件電路錯誤的有效方法。

  防止總線上數(shù)據(jù)沖突是硬件工程師在硬件電路設(shè)計中需要認(rèn)真考慮的問題,而高阻態(tài)也是硬件電路設(shè)計中常用到的,這也是硬件工程師在電路設(shè)計中容易忽視的地方。

  在使用單片機總線擴展I/O口時,常需要多個輸入輸出芯片時,正確運用接口芯片的高阻態(tài)是解決總線數(shù)據(jù)沖突的有效方法。

  若接口芯片輸出無高阻態(tài)控制,則該芯片不能用于輸入接口擴展。在使用單片機總線技術(shù)擴展I/O口時,硬件設(shè)計必須要保證總線被單片機訪問的接口芯片占據(jù),而且不被訪問的接口芯片與總線脫離。硬件設(shè)計時應(yīng)該避免單片機的總線始終被某一個芯片占據(jù)。

  參考文獻

 ?。?] 余永權(quán).Atmel89 系列單片機應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.

 ?。?] 高玉琴.單片機原理與應(yīng)用及C51編程技術(shù)[M].北京:機械工業(yè)出版社,2011.

 ?。?] 張靖武,周靈彬.單片機系統(tǒng)的PROTEUS設(shè)計與仿真[M].北京:電子工業(yè)出版社,2007.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。