《單片機原理及工程應用》課件-第6章 系統擴展_第1頁
《單片機原理及工程應用》課件-第6章 系統擴展_第2頁
《單片機原理及工程應用》課件-第6章 系統擴展_第3頁
《單片機原理及工程應用》課件-第6章 系統擴展_第4頁
《單片機原理及工程應用》課件-第6章 系統擴展_第5頁
已閱讀5頁,還剩56頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

16.1單片機系統總線的形成最小應用系統2系統總線形成電路地址總線:

P2口作為高8位地址總線PO口為地址/數據分時復用口。它分時用作低8位地址總線和8位雙向數據總線。因此,構成系統總線時,應加1個鎖存器74LS373,用于鎖存低8位地址信號A7~A0,這樣就構成了16位地址線,確定了其最大尋址空間為216=64KB。3數據總線:P0口作為數據總線D7~D0。數據總線是雙向三態總線。控制總線:

系統擴展時常用的控制信號有:ALE——地址鎖存允許信號。當CPU訪問外部部件時,利用ALE信號的正脈沖鎖存出現在P0口的低8位地址。4/PSEN——片外程序存儲器訪問允許信號,低電平有效。當CPU訪問外部程序存儲器時,該信號有效,CPU通過數據總線讀回指令或常數。擴展外部程序存儲器時,用該信號作為程序存儲器的讀出允許信號。當CPU訪問外部數據存儲器期間,該信號無效。/RD——片外數據存儲器讀信號,低電平有效。

/WR——片外數據存儲器寫信號,低電平有效。56

6.2外部數據存儲器擴展硬件系統擴展,核心是譯碼電路設計和讀取各存儲器、端口的地址。希望通過學習,讀者能夠達到給定地址能夠設計譯碼電路;拿到硬件電路圖能夠分析出相關存儲器、端口地址。7

6.2外部數據存儲器擴展51系列單片機內部RAM的容量是有限的,只有128B或256B。當單片機用于實時數據采集或處理大批量數據時,僅靠片內提供的RAM是不夠的。我們可以利用單片機的擴展功能,擴展外部數據存儲器。數據存儲器即隨機存取存儲器(RandomAccessMemory),簡稱RAM,用于存放可隨時修改的數據信息。常用的外部數據存儲器有靜態RAM稱為SRAM和動態RAM稱為兩種。SRAM讀/寫速度高,不需要刷新電路,使用方便,易于擴展;缺點是集成度低,成本高,功耗大。DRAM集成度高,成本低,功耗相對較低;缺點是需要增加動態刷新電路,硬件電路復雜。因此,單片機擴展數據存儲器時一般都采用靜態RAM。8常用的靜態RAM芯片有6264(8k×8)、62128(16K×8)、62256(32k×8)等芯片,其管腳配置均為28腳,使用方便,工程師可結合系統成本及性能需求選用。最長用的是6264。9存儲器擴展的核心問題是存儲器的編址問題,就是給存儲單元分配地址。由于存儲器通常由多塊芯片組成,因此,存儲器的編址分為兩個層次:存儲器芯片內部存儲單元編址和存儲器芯片編址。前者,靠存儲器芯片內部的譯碼器選擇芯片內部的存儲單元。后者,必須利用譯碼電路實現對芯片的選擇。10譯碼電路是將輸入的一組二進制編碼變換為一個特定的輸出信號,即:將輸入的一組高位地址信號通過譯碼,產生一個有效的輸出信號,用于選中某一個存儲器芯片,從而確定該存儲器芯片所占用的地址范圍,這一過程稱為地址譯碼。常用的譯碼方法有三種:全譯碼、部分譯碼和線選法。116.2.1全譯碼方式全譯碼是用全部的地址信號都參與譯碼。其特點是:地址與存儲單元一一對應,也就是說1個存儲單元占用1個唯一的地址,地址空間的利用率高。12例6.2.1:利用全譯碼為AT89C51擴展16KB的外部數據存儲器,存儲器芯片選用SRAM6264,要求外部數據存儲器占用從0000H開始的連續地址空間。解:首先確定要使用的6264芯片的數目:芯片數目=系統擴展的存儲容量÷6264芯片的容量=16KB÷8KB=2片然后進行地址分配,畫出地址譯碼關系圖。所謂地址譯碼關系圖,是一種用簡單的符號來表示系統地址與芯片所占用的地址之間相互關系的示意圖13然后進行地址分配,畫出地址譯碼關系圖。所謂地址譯碼關系圖,是一種用簡單的符號來表示系統地址與芯片所占用的地址之間相互關系的示意圖141516例6.2.2:利用全譯碼為AT89C51擴展40KB的外部數據存儲器,存儲器芯片選用SRAM6264。要求外部數據存儲器占用從6000H開始的連續地址空間。解:首先確定要使用的6264芯片的數目:芯片數目=系統擴展的存儲容量÷6264芯片容量=40KB÷8KB=5片3-8譯碼器74LS138是一種常用的地址譯碼器173-8譯碼器74LS138是一種常用的地址譯碼器18

6.2.2部分譯碼部分譯碼是只用部分地址參與了譯碼。其特點是:地址與存儲單元不是一一對應,而是1個存儲單元占用多個地址。我們把不參與譯碼的地址線稱為無關項,若1根地址線不參與譯碼,一個單元占用2(21)個地址;若n根地址線不參與譯碼,則一個單元占用2n個地址,n為無關項的個數。部分譯碼會造成地址空間的浪費,但譯碼器電路簡單,對地址譯碼電路的設計帶來很大方便。一般在較小的系統中常采用部分譯碼。19

6.2.2部分譯碼例6.2.3:分析圖6.8中的譯碼方法,寫出存儲器芯片SRAM6264占用的地址范圍。2021

6.2.3線選法所謂線選法,是利用系統的某一根地址線作為芯片的片選信號。線選法實際上是部分譯碼的一種極端應用,具有部分譯碼的所有特點,譯碼電路最簡單,甚至不使用譯碼器。如直接以系統的某一條地址線作為存儲器芯片的片選信號,只需把用到的地址線與存儲器芯片的片選端直接相連即可。當一個應用系統需要擴展的芯片數目較少,需要的實際存儲空間較小時,采用線選法。22

6.2.3線選法例6.2.4:分析圖6.10中的譯碼方法,寫出各存儲器芯片SRAM6264占用的地址范圍。2324

6.3外部程序存儲器擴展51系列單片機具有64KB的程序存儲器空間,其中87C51、AT89C51單片機含有4KB的片內程序存儲器,而8031則無片內程序存儲器。當采用87C51、AT89C51單片機而程序超過4KB,或采用8031型單片機時,就需要擴展程序存儲器。這里要注意的是,51系列單片機有一個管腳/EA

跟程序存儲器的擴展有關。25

6.3.1EPROM擴展擴展程序存儲器常用的器件是EPROM芯片,如2764(8K×8bit)、27128(16K×8bit)、27256(32K×8bit)等。26程序存儲器擴展276.3.2擴展EEPROM286.4并行I/O端口的擴展

對一些簡單外設的接口,只要按照“輸入三態,輸出鎖存”與總線相連的原則,選擇74LS系列的TTL或MOS器件即能組成擴展接口電路。例如,可采用8位三態緩沖器74LS244、74LS245等作為輸入端口,采用8D鎖存器74LS273、74LS373、74LS377等作為輸出端口。采用這些簡單接口芯片進行系統擴展,接口電路簡單、配置靈活、編程方便、且價格低廉,是I/O端口擴展的首選方案。2974LS244三態門3074LS2738D鎖存器31例6.4.1:采用74LS244和74LS273為AT89C51單片機擴展8位輸入端口和8位輸出端口。簡單I/O端口擴展請各位分析兩個8位輸入輸出端口的地址326.4.2LED數碼顯示器擴展LED數碼顯示器(又稱為LED數碼管)是單片機應用系統中最常用的顯示器之一。它由8個發光二極管(以下簡稱字段)構成,通過不同的組合可用來顯示數字0~9、字符A~F、P、空白字符、符號“

”及小數點“.”等。LED數碼管分為共陽極和共陰極兩種產品,無論是共陽極還是共陰極其外形結構與封裝形式相同。33它由8個發光二極管(以下簡稱字段)構成,通過不同的組合可用來顯示數字0~9、字符A~F、P、空白字符、符號“

”及小數點“.”等。LED數碼管分為共陽極和共陰極兩種產品,無論是共陽極還是共陰極其外形結構與封裝形式相同。輸出顯示形式分為靜態顯示和動態顯示。342位靜態LED顯示器356位動態LED顯示器366.4.3鍵盤接口由于單片機應用系統都是按實際需要設置外部接口和設備的,所以,一個系統設置幾個按鍵都是根據具體應用而定的,并且在多數情況下,都是一鍵多用的,其目的就是盡量精簡硬件設備。鍵盤按照其接口原理可分為編碼鍵盤與非編碼鍵盤兩類,這兩類鍵盤的主要區別是識別鍵符及給出相應鍵碼的方法不同。37編碼鍵盤主要是用硬件來實現對按鍵的識別,鍵盤接口電路能夠由硬件邏輯自動提供與鍵對應的編碼。此外,編碼鍵盤一般還具有去抖動和多鍵、竄鍵保護電路。這種鍵盤使用方便,但需要較多的硬件,一般的單片機應用系統較少采用。非編碼鍵盤的接口電路只是簡單地提供按鍵的行列矩陣,對按鍵的識別、編碼、去抖動等工作均由軟件完成。由于其經濟實用、設置靈活,常應用于單片機系統中。38一組鍵或一個鍵盤,總有一個接口電路與CPU相連。當按鍵較多時一般采用行列式結構并按矩陣形式排列。4×4表示有4根行線和4根列線,在每根行線和列線的交叉點上有1個按鍵,組成了一個有16個按鍵的矩陣鍵盤。39所謂行掃描法,就是通過行線逐行發出低電平信號,如果該行線所連接的鍵沒有按下,則列線的電平信號是全“1”;如果有鍵按下的話,則列線得到的是非全“1”信號。即根據列線的電平信號是否有“0”信號來判斷有無鍵按下。首先快速檢查整個鍵盤中是否有鍵按下,若無鍵按下,則結束鍵盤掃描程序。若有鍵按下,再用逐行掃描的方法來確定閉合鍵的具體位置408×4矩陣鍵盤電路41鍵盤掃描子程序應具有以下功能(1)判斷有無鍵按下。其方法為:行輸出口輸出全為0,讀列輸入口信息,若列輸入值為全1,則說明無鍵按下;若不為全1,則說明有鍵按下。

(2)消除按鍵的抖動。微機鍵盤通常使用機械觸點式按鍵開關。機械式按鍵在按下或釋放時,由于機械彈性作用的影響,通常伴隨有一定時間的觸點機械抖動,然后其觸點才穩定下來。抖動時間的長短與開關的機械特性有關,一般為5~10ms。42(3)逐行掃描。若有鍵按下,則逐行掃描,以判別閉合鍵的具體位置。(4)計算閉合鍵的鍵值。計算公式為:鍵值=行號×4+列號(5)判斷按鍵是否釋放。計算出閉合鍵的鍵值后,再判斷按鍵是否釋放?若按鍵未釋放,則等待;若鍵已釋放,則再延時消抖。(6)命令處理。根據閉合鍵的鍵值,程序應完成該按鍵所設定的功能。436.5D/A轉換器及應用D/A轉換器輸入的是數字量,經轉換后輸出的是模擬量,常用在需要模擬量輸出的場合。D/A轉換器的主要性能指標1.分辯率2.建立時間3.接口形式44典型D/A轉換器芯片DAC0832DAC0832是一個8位D/A轉換器。單電源供電,從+5V~+15V均可正常工作。基準電壓的范圍為±10V;電流建立時間為1μs;CMOS工藝,低功耗20mW。采用了兩次緩沖輸入方式,即由輸入寄存器和DAC寄存器構成兩級數據輸入鎖存器。這樣可以在輸出的同時接收下一個輸入數據,以提高轉換速度。45DAC0832的接口與應用51單片機與DAC0832的接口有3種連接方式:即直通方式、單緩沖方式及雙緩沖方式。直通方式不能直接與系統的數據總線相連,需另加鎖存器,故應用較少。46DAC8032工作于單緩沖方式,其中輸入寄存器受控,而DAC寄存器直通。可選用輸入寄存器地址為FE00H對其編程。由于其基準電壓Vref=-5.00V,用下列程序可以產生幅度為0V~+5V的鋸齒波:ORG 0200HSTART: MOV DPTR,#0FE00H ;0832輸入寄存器地址 MOV A,#00H;轉換初值

NEXT: MOVX @DPTR,A;D/A轉換 INC A NOP;延時 NOP SJMPNEXT47用同樣的方法也可以很方便地產生三角波、矩形波、梯形波,相信讀者能自行編寫程序。486.6A/D轉換器及應用A/D轉換器用于實現模擬量到數字量的轉換,按轉換原理可分為4種:計數式A/D轉換器、雙積分式A/D轉換器、逐次逼近式A/D轉換器和并行式A/D轉換器。

最常用的是雙積分式A/D轉換器和逐次逼近式A/D轉換器。雙積分式A/D轉換器的主要優點是轉換精度高,抗干擾性能好,價格便宜。其缺點是轉換速度較慢,因此,這種轉換器主要用于速度要求不高的場合。逐次逼近式A/D轉換器是一種速度較高,精度較高的轉換器,其轉換時間大約在幾μs到幾百μs之間。通常使用的逐次逼近式典型A/D轉換器芯片是ADC0809。49典型A/D轉換器芯片

ADC0809ADC0809是典型的8位8通道逐次逼近式A/D轉換器,CMOS工藝。5051單片機與ADC0809連接ADC0809與單片機的連接形式多種多樣。由于ADC0809內部具有地址鎖存器和三態

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論