![《單片機原理及應用》課件-第7章_第1頁](http://file4.renrendoc.com/view12/M05/0F/15/wKhkGWdrjwaAJLm6AAHcwJNp5qA215.jpg)
![《單片機原理及應用》課件-第7章_第2頁](http://file4.renrendoc.com/view12/M05/0F/15/wKhkGWdrjwaAJLm6AAHcwJNp5qA2152.jpg)
![《單片機原理及應用》課件-第7章_第3頁](http://file4.renrendoc.com/view12/M05/0F/15/wKhkGWdrjwaAJLm6AAHcwJNp5qA2153.jpg)
![《單片機原理及應用》課件-第7章_第4頁](http://file4.renrendoc.com/view12/M05/0F/15/wKhkGWdrjwaAJLm6AAHcwJNp5qA2154.jpg)
![《單片機原理及應用》課件-第7章_第5頁](http://file4.renrendoc.com/view12/M05/0F/15/wKhkGWdrjwaAJLm6AAHcwJNp5qA2155.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章單片機并行擴展技術7.1單片機的最小系統(tǒng)7.2總線擴展及編址方法7.3存儲器的擴展7.4并行I/O口的應用7.5A/D、D/A轉換器及應用思考與練習
51系列單片機在一塊芯片上集成了CPU、RAM、ROM及I/O口等計算機的基本部件,使用起來非常方便。但單片機內的RAM、ROM和I/O接口數(shù)量有限,不夠使用時,需進行擴展。因此,單片機的系統(tǒng)擴展主要是指外接數(shù)據(jù)存儲器、程序存儲器或I/O接口等,以滿足應用系統(tǒng)的需要。
7.1單片機的最小系統(tǒng)
最小應用系統(tǒng),是指能維持單片機運行的最簡單配置的系統(tǒng)。這種系統(tǒng)成本低廉、結構簡單,常用來構成簡單的控制系統(tǒng),如開關狀態(tài)的輸入/輸出控制等。對于片內有ROM/EPROM的單片機,其最小應用系統(tǒng)即為配有晶振、復位電路和電源的單個單片機。對于片內無ROM/EPROM的單片機,其最小系統(tǒng)除了外部配置晶振、復位電路和電源外,還應當外接EPROM或E2PROM作為程序存儲器使用。
當然,最小系統(tǒng)有可能無法滿足應用系統(tǒng)的功能要求。比如,有時即使有內部程序存儲器,但由于程序很長,程序存儲器容量可能不夠;對一些數(shù)據(jù)采集系統(tǒng),內部數(shù)據(jù)存儲器容量也可能不夠等,這就需要根據(jù)情況擴展EPROM、RAM、I/O口及其他所需的外圍芯片。
7.1.180C51/89C51最小應用系統(tǒng)
51系列單片機的特點就是體積小,功能全,系統(tǒng)結構緊湊,硬件設計靈活。對于簡單的應用,最小系統(tǒng)即能滿足要求。
80C51/89C51是片內有ROM/E2PROM的單片機,因此,用這些芯片構成的最小系統(tǒng)簡單、可靠。
用80C51/89C51單片機構成最小應用系統(tǒng)時,只要將單片機接上時鐘電路和復位電路即可,具體電路見第2章。
7.1.28031最小應用系統(tǒng)
8031是片內無程序存儲器的芯片,因此,其最小應用系統(tǒng)必須在片外擴展EPROM。圖7-1所示為外接程序存儲器的最小應用系統(tǒng)。片外8KB單元地址要求地址線13根
(A0~A12),它由P0和P2.0~P2.4組成;地址鎖存器的鎖存信號為ALE(AddressLatchEnable)。程序存儲器的選通信號為PSEN(ProgramStoreEnable)。由于程序存儲器芯片
只有一片,故其片選線(CE)可以直接接地。圖7-18031最小應用系統(tǒng)
8031芯片本身的連接除了EA必須接地地外(選擇外部存儲器),其他與80C51/89C51最小應用系統(tǒng)一樣,也必須有復位及時鐘電路。
7.2總線擴展及編址方法
7.2.1單片機的外總線結構圖7-2給出了單片機應用系統(tǒng)的外總線結構示意圖。
單片機是通過地址總線線、數(shù)數(shù)據(jù)總線和控制總線與外部交換信息的的。圖7-2單片機的三總線結構
1.地址總線
地址總線寬度為16位,因此其尋址范圍為216=64KB。
高8位地址由P2口提供供,因為P2口具有輸出鎖存功能,且用于外部擴展時一般不做他用,所以不需地址鎖存器。
低8位地址由P0口提供供,PP0口是數(shù)據(jù)據(jù)、地地址分時使用的通道口口。為了保存地址信息,需外加地址鎖存器。鎖存器的鎖存信號為引腳ALE輸出的控制信號,在ALE的下降沿將P0口輸出的地址鎖存。
2.數(shù)據(jù)總線
數(shù)據(jù)總線由P0口提供,其寬度為8位,該口為三態(tài)雙向口,是應用系統(tǒng)中使用最為頻繁的通道。單片機所有需要與外部交換的數(shù)據(jù)、指令、信息,除少數(shù)可直接通過P1口傳送
外,大部分都通過P0口傳送。
3.控制總線
系統(tǒng)擴展時,常用的控制信號如下:
(1)EA:內部和外部程序存儲器的選擇控制信號。當EA=0時,只訪問外部程序存儲器。
(2)ALE:地址鎖存允許信號。
(3)PSEN:外部程序存儲器讀信號。
(4)WR:外部數(shù)據(jù)存儲器寫信號。
(5)RD:外部數(shù)據(jù)存儲器讀信號。
其中,EA引腳的電平高低由用戶決定;ALE信號自動產(chǎn)生;PSEN在訪問外部程序存儲器時自動產(chǎn)生;RD、WR信號在執(zhí)行MOVX指令時自動產(chǎn)生。
7.2.2單片機的擴展能力
根據(jù)單片機地址總線寬度,在片外可擴展的存儲器最大容量為64KB,地址范圍為0000H~FFFFH。由于片外數(shù)據(jù)存儲器和程序存儲器的操作使用不同的指令和控制信號,允許兩者的地址重復,因此片外可擴展的數(shù)據(jù)存儲器與程序存儲器各為64KB。.
片外數(shù)據(jù)存儲器與片內數(shù)據(jù)存儲器的操作指令不同,所以也允許兩者的地址重復,即外部擴展數(shù)據(jù)存儲器的地址可以從0000H開始。
MCS-51單片機片外程序存儲器與片內程序存儲器采用相同的操作指令,對片內、片外程序存儲器的選擇依靠硬件來實現(xiàn):當EA=0時,不論片內有無程序存儲器,片外程序
存儲器的地址都可以從0000H開始;但當EA=1時,前4KB的地址(0000H~0FFFH)為片內程序存儲器所有,片外擴展的程序存儲器的地址只能從1000H開始設置。
為了配置外圍設備而需要擴展的I/O口與片外數(shù)據(jù)存儲器統(tǒng)一編址,不再另外提供地址線。所以,當應用系統(tǒng)需要大量配置外圍設備以及擴展較多的I/O口時,要占去大量的
RAM地址。
7.2.3地址譯碼方法
擴展芯片與CPU地址總線的連接方式,必須滿足對這些芯片所分配的地址范圍的要求。CPU發(fā)出的地址信號必須實現(xiàn)兩種選擇:片選(即對對擴展芯片的選擇,使使相關芯片的片選端CS為有效效)和字選(即在在選中的芯片內部再選擇某一存儲單元)。片選信號和字選信號均由CPU發(fā)出的地址信號經(jīng)譯碼產(chǎn)生。通常的連接方法是:將擴展芯片的地址線和單片機的地址總線中的若干根低位地址線對應相連,其余的地址線(通常是P2口的高位地址)通過地址譯碼來產(chǎn)生外部擴展芯片的片選信號CE或CS。常用的地址譯碼方法有線選法和譯碼法兩種。
1.線選法
所謂線選法法,就就是將多余的高位地址線中單獨的一根直接接到擴展芯片的使能端上上。
線選法編址的特點是簡單明了,且不需要另外增加電路。由于片選線一般都是采用高位地址線,對于擴展芯片數(shù)量較多的應用系統(tǒng),這些芯片所需要的片選信號的數(shù)量有可能多于可用的高位地址線數(shù)量,因此采用線選法無法解決問題。另外,這種編址方法對存儲空間的使用是斷續(xù)的,不能充分有效地利用存儲空間,且擴充容量受限,因而只適用于小規(guī)模
單片機系統(tǒng)的外圍芯片擴展。
圖7-3所示為線選法應用實例。圖中所擴展的芯片地址范圍如表7-1所示,其中×可以取“0”,也可以取“1”,用十六進制數(shù)表示的地址如下:
2764(1):4000H~5FFFH,或C000H~DFFFH,有地址重疊現(xiàn)象。
2764(2):2000H~3FFFH,或A000H~BFFFH,有地址重疊現(xiàn)象。
6264(1):C000H~DFFFH。
6264(2):A000H~BFFFH。
8255:6000H~6003H,或6FFCH~6FFFH,或其他。8255雖然只用了四個存儲單元,但占用的地址空間可能從6000H一直到6FFFH,具體取決于那些“×”地址線的使用情況。圖7-3線選法應用實例
2.譯碼法
所謂譯碼法,就是使用譯碼器對系統(tǒng)的高位地址進行譯碼,以譯碼輸出作為存儲芯片的片選信號,將低位地址作為存儲芯片的片內地址。這是一種最常用的存儲器編址方法,
能有效地利用存儲空間,適用于大容量多芯片存儲器擴展;其缺點是增加了硬件電路。譯碼電路可以使用現(xiàn)有的譯碼器芯片,常用的譯碼芯片有74LS139(雙2-4譯碼器)和74LS138(3-8譯碼器)等。
1)全譯碼法
全譯碼法是指將各擴展芯片上的地址線均接到單片機系統(tǒng)的對應的地址總線上,各芯片的選擇利用譯碼電路實現(xiàn),地址譯碼器使用余下的全部地址線,地址與存儲單元一一對
應,也就是一個存儲單元只占用一個唯一的地址。全譯碼法的特點是:各擴展芯片均有獨立片選控制線,且地址連續(xù),這種方法可以消除地址空間重疊現(xiàn)象和斷續(xù)現(xiàn)象,可擴展較多的外圍芯片。如圖7-4所示是全譯碼法的一個簡單應用實例,圖中各芯片的地址范圍如下:圖7-4全譯碼法應用實例
2)部分譯碼法
部分譯碼法是指地址譯碼器僅對余下高位地址線的一部分進行譯碼,產(chǎn)生片選信號。這種方法也會產(chǎn)生地址重疊現(xiàn)象。
全譯碼法和部分譯碼法的區(qū)別在于剩余的高位地址線是否全部接地址譯碼器,在設計地址譯碼器電路時,需要充分注意。除了使用譯碼器進行譯碼,還可以使用組合邏輯電路構成譯碼電路,此時只需符合相應的地址安排。
隨著存儲器集成電路技術的進步,大容量存儲器的成本和售價大幅降低。單片機的外擴存儲器通常只要一片即可,例如使用27512/27C512(64KB),其價格和2764、2732相
當。所以,以上給出的存儲器擴展方法已無多大實用意義,但介紹的總線控制技術仍然十分有用,可以有效地應用到其他外圍芯片的擴展中。
7.3存儲器的擴展
7.3.1EPROM程序存儲器的擴展1.EPROM芯片簡介EPROM芯片是紫外線擦除可編程只讀存儲器,其上有一個玻璃窗口,在紫外線的照射下,存儲器中的各位信息都為1,一般擦除次數(shù)可達上百次,甚至可達到萬次,所以稱為紫外線擦除可編程只讀存儲器。EPROM重新編程時,需從插座上取出,放到專門的擦寫器上,擦除干凈的EPROM芯片通過編程器將應用程序固化到芯片中。
圖7-5所示是部分27系列EPROM芯片的引腳圖,各引腳功能如下:
(1)A0~Ai:地址線(不同容量芯片的地址線數(shù)目不同,i表示芯片的地址線數(shù)目)。
(2)D0~D7:8位輸出數(shù)據(jù)線。
(3)CE:片選端。
(4)OE:輸出允許端。
(5)VPP:編程電壓。
(6)PGM:編程脈沖輸入端。圖7-5部分27系列EPROM芯片的引腳圖
2.EPROM基本擴展法
圖7-6給出了外部程序存儲器的典型連接方法。圖7-6外部程序存儲器的典型連接方法
1)地址線的連接
存儲器低8位地址線A0~A7與P0口(經(jīng)鎖存器)的輸出端相連。
存儲器高8位地址線A8~A15中的若干根與P2口(無須經(jīng)過鎖存器)相連。P2口其余的高位地址線用作片選地址線(線選或譯碼)。
2)數(shù)據(jù)線的連接
存儲器的8位數(shù)據(jù)線與P0口相連。
3)控制線的連接
(1)PSEN:外部程序存儲器讀信號,與EPROM芯片的輸出允許端OE相連。
(2)ALE:接至地址鎖存器鎖存信號端。
(3)EA:采用8031/8032時,EA應接地;采用8751、89C51等型號的芯片并且使用到內部程序存儲器時,EA應接高電平。
【例7-1】用兩片2764EPROM芯片為8031單片機擴展16KB的程序存儲器,試畫出線路連接圖。
連接方法:
(1)將兩片2764EPROM芯片低8位地址線A0~A7通過地址鎖存器與8031P0口的P0.0~P0.7相連,高5位地址線A8~A12直接與P2口的P2.0~P2.4相連。
(2)將兩片2764EPROM芯片的數(shù)據(jù)線D0~D7直接接到P0口,作為數(shù)據(jù)總線。
(3)用P2.5和一個“非門”產(chǎn)生兩個片選信號,將P2.5直接接到上方EPROM的CE端,另一個經(jīng)過“非門”接到下方EPROM的CE端,如圖7-7所示。當P2.5=0時,選中上方的EPROM;當P2.5=1時,反相選中下方的EPROM。
兩個芯片的地址范圍:
在圖7-7的連接方式中,P2.6和P2.7并沒有參與譯碼,而用P2.5經(jīng)過“12”譯碼器產(chǎn)生兩個片選信號,所以該連接方式屬于部分譯碼方式,兩個芯片的地址范圍如下:
①2764(1):××00000000000000B~××01111111111111B,由于“×”可以取“0”、“1”之中的任一值,故十六進制地址有四組,即0000H~1FFFH,4000H~5FFFH,8000H~9FFFH,C000H~DFFFH
②2764(2):××10000000000000B~××11111111111111B,十六進制地址有四組,即
2000H~3FFFH,6000H~7FFFH,A000H~BFFFH,E000H~FFFFH
可以看出,部分譯碼方式和線選法一樣同樣浪費地址空間,出現(xiàn)地址重疊的情況。圖7-7兩片2764擴展16KB程序存儲器
7.3.2E2PROM程序存儲器的擴展
1.E2PROM芯片簡介
電擦除可編程只讀存儲器E2PROM是近年來國外廠家推出的新產(chǎn)品,它的主要特點是能在計算機系統(tǒng)中進行在線修改,并能在斷電的情況下保持修改的結果。因此,自從
E2PROM問世以來,在智能化儀器儀表、控制裝置、終端機、開發(fā)裝置等各種領域中受到極大的重視。下面介紹典型E
2PROM存儲器芯片Intel2864A。
Intel2864A是8K×8bit的電可擦除可編程只讀存儲器,單一+5V供電,最大工作電流為140mA,維持電流為60mA。由于其片內設有編程所需的高壓脈沖產(chǎn)生電路,因圖7-82864A引腳圖而無需外加編程電源和寫入脈沖即可工作。Intel2864A采用典型的28引腳結構,與常用的8KB靜態(tài)RAM6264引腳完全兼容。其芯片引腳如圖7-8所示。圖7-82864A引腳圖
2.E2PROM基本擴展法
MCS51單片機擴展E2PROM時,地址線和數(shù)據(jù)線的
連接方法與EPROM連接方法相同,控制線的連接中,只有
單片機的PSEN及RD信號與EPROM的連接有所不同。若
E2PROM僅作為程序存儲器,則將PSEN信號與OE引腳相
連。若E2PROM僅作為數(shù)據(jù)存儲器,則將RD信號與OE引腳相連。如E2PROM既作為數(shù)據(jù)存儲器用,又作為程序存儲器用,可將PSEN信號和RD信號經(jīng)過相“與”后與OE引腳相連。圖7-9所示是E2PROM芯片的一般連接圖。圖7-9E2PROM芯片的一般連接圖
7.3.3數(shù)據(jù)存儲器及其擴展
在MCS51單片機的產(chǎn)品中,片內數(shù)據(jù)存儲器的容量一般很小。當數(shù)據(jù)量較大時,需要在片外擴展RAM數(shù)據(jù)存儲器,擴展的容量最大可達64KB。但由于MCS-51系列單
片機對片外擴展的I/O口采用外部數(shù)據(jù)存儲器映射方式進行輸入/輸出(即將片外I/O口的數(shù)據(jù)寄存器當作外部數(shù)據(jù)存儲器的一個單元來看待,在指令系統(tǒng)及接口上不對這兩者加以區(qū)別),在這種情況下,允許直接擴展的外部數(shù)據(jù)存儲器的容量將不足64KB。
1.RAM芯片簡介
RAM的典型芯片有6116(2K×8bit)、6264(8K×8bit)等。圖7-10所示為6264芯片引腳圖,其引腳功能如下:圖7-106264芯片引腳圖
2.外部數(shù)據(jù)存儲器的擴展方法
外部數(shù)據(jù)存儲器的連接方法與程序存儲器的連接方法大致相同,區(qū)別在于控制線的連接。圖7-11所示為外部數(shù)據(jù)存儲器的一般連接方法,其中WR是外部數(shù)據(jù)存儲器的寫信
號,與RAM芯片的WE引腳相連;RD是外部數(shù)據(jù)存儲器的讀信號,與RAM芯片的OE引腳相連。圖7-11外部數(shù)據(jù)存儲器的一般連接方法
【例7-2】用三片6264芯片為AT89C51單片機擴展24KB的外部數(shù)據(jù)存儲器,分別采用線選法、部分譯碼法和全譯碼法來實現(xiàn),并給出各芯片的地址范圍,譯碼芯片不限。
連接方法和地址:其線路連接如圖7-12所示。圖7-12用6264芯片擴展24KB的數(shù)據(jù)存儲器圖7-12用6264芯片擴展24KB的數(shù)據(jù)存儲器圖7-12用6264芯片擴展24KB的數(shù)據(jù)存儲器
地址線:將6264芯片的低8位地址線A0~A7通過地址鎖存器74LS373與AT89C51P0口的P0.0~P0.7相連,高5位地址線A8~A12直接與P2口的P2.0~P2.4相連。
數(shù)據(jù)線:將6264芯片的數(shù)據(jù)線D0~D7直接接到P0口,作為數(shù)據(jù)總線。
控制線:將6264芯片的輸出允許端OE直接接到AT89C51的P3.7(RD),寫允許端WE直接接到P3.6(WR)。ALE與鎖存器74LS373的G相連,產(chǎn)生鎖存控制信號。
(1)線選法:在圖7-12(a)中,由于擴展三片,故將P2.5、P2.6、P2.7分別與三個6264芯片的CE相連,產(chǎn)生三個片選信號。
單片機P2.7=1、P2.6=1和P2.5=0是固定的,僅P2.5是低電平,選中第一個RAM,其余的地址線與6264(1)地址線直接相連,可以任意為“0”或“1”,均為有效地址。6264(1)的地址范圍是1100000000000000B~1101111111111111B,十六進制地址范圍為C000H~DFFFH。
P2.7=1、P2.6=0和P2.5=1時,選中第二個RAM,6264(2)的十六進制地址范圍為A000H~BFFFH。
P2.7=0、P2.6=1和P2.5=1時,選中第三個RAM,6264(3)的十六進制地址范圍為6000H~7FFFH。
顯然,用線選法會使存儲空間不連續(xù),也不能充分有效地利用存儲空間,擴充存儲容量受限。
(2)部分譯碼法:在圖7-12(b)中,P2.6、P2.7與74LS139(24譯碼器)輸入端A、B相連,三個輸出信號Y0、Y1和Y2與三片存儲器的CE端相連,由于P2.5空閑,可以選擇0或1,這時,第一個RAM可訪問的二進制地址范圍為00×0000000000000B~00×1111111111111B,由此可得兩組地址:0000000000000000B~0001111111111111B和
0010000000000000B~0011111111111111B,另兩個RAM可用類似方法獲得地址編碼,所以三片6264芯片的十六進制地址范圍如下:
6264(1):0000H~1FFFH和2000H~3FFFH;
6264(2):4000H~5FFFH和6000H~7FFFH;
6264(3):8000H~9FFFH和A000H~BFFFH。
通過地址范圍可以看出,每個芯片占用了16KB的地址空間,而每個芯片實際的容量是8KB,原因是地址線P2.5沒有參與譯碼,這種部分譯碼方式也存在地址空間浪費的情況。在這種情況下,地址0000H和2000H指向的是同一數(shù)據(jù)存儲器單元,其余類似。
(3)全譯碼法:如果把譯碼器換成74LS138,則P2.5(A13)也參與了譯碼,這種全譯碼(所有剩余高地址線都參與譯碼)方式不存在地址空間浪費,如圖7-12(c)所示。使用Y0、Y1和Y2作片選信號,則三片6264芯片的地址范圍如下:
6264(1):0000000000000000B~0001111111111111B,0000H~1FFFH。
6264(2):0010000000000000B~0011111111111111B,2000H~3FFFH。
6264(3):0100000000000000B~0101111111111111B,4000H~5FFFH。
注意:在擴展單片數(shù)據(jù)存儲器時,存儲器片選端能否直接接地,還需考慮應用系統(tǒng)中有無I/O口及外圍設備擴展,如果有,則要用剩余高地址線通過譯碼統(tǒng)一進行片選選擇,而8031因無片內ROM,還要同時進行外部程序存儲器擴展。
7.4并行I/O口的應用
在計算機應用系統(tǒng)中,因系統(tǒng)擴展外部存儲器而占用P2和P0口,而P3口又被作為第二功能使用時,留給用戶的只有P1口,這時不可避免地要進行I/O口的擴展,以便有效地與外部設備相連接。由于MCS51系列單片機的外部RAM和I/O口是統(tǒng)一編址的,因此用戶可以把單片機的外部64KBRAM空間的一部分作為擴展I/O的地址空間。這樣,單片機就可以像訪問外部RAM存儲器那樣訪問外部接口芯片,對其端口進行讀/寫操作。
7.4.1I/O口的簡單擴展
圖7-13所示是一個采用緩沖器74LS244作為擴展輸入、鎖存器74LS273作為擴展輸出的簡單I/O擴展應用。圖7-13用74LS273和74LS244進行簡單I/O擴展
【例7-3】如圖7-13所示,編寫一段程序,功能是按下任意鍵,使對應的LED發(fā)光。
分析:當74LS244選通時,與74LS244相連的按控信息將會從D0~D7引腳輸入,并從Q0~Q7輸出,再輸入到P0口的數(shù)據(jù)總線上。
當74LS273選通時,從P0口輸出的數(shù)據(jù)將被鎖存到74LS273的輸出端,控制Q0~Q7引腳上接的發(fā)光二極管LED。
因為74LS244和74LS273都是在P2.0為0時被選通的,所以二者的口地址都可以是FEFFH(不是唯一的,只要保證P2.0=0)。但由于分別由RD和WR控制,這兩個信號都是
在執(zhí)行MOVX指令時產(chǎn)生的,因此,兩者不可能同時有效,所以在邏輯上,輸入和輸出不會產(chǎn)生沖突。
7.4.2LED數(shù)碼管顯示接口
顯示器是最常用的輸出設備,在單片機應用系統(tǒng)中,常用發(fā)光二極管和數(shù)碼管作為顯示器顯示信息。由于數(shù)碼管結構簡單、價格便宜、接口容易,在單片機系統(tǒng)中被大量使用。
1.LED數(shù)碼管顯示器的結構
LED數(shù)碼管顯示器的結構如圖7-14所示。LED數(shù)碼管顯示器內部由8個發(fā)光二極管組成。其中7個長條形的發(fā)光二極管排列成“日”字形,另一個圓點形狀的發(fā)光二極管在顯示器的右下角,用于顯示小數(shù)點。當二極管導通時,相應的筆畫段發(fā)亮。因此,只要分別控制各筆畫段的發(fā)光二極管,使其中的某些發(fā)亮,就可以顯示各種不同的字符。圖7-14LED數(shù)碼管顯示器的結構
LED數(shù)碼管顯示器的內部結構有兩種:
(1)共陽極結構:8個發(fā)光二極管的陽極全部連接在一起組成公共端,8個發(fā)光二極管的陰極單獨引出,當公共端接高電平時,只要相應的陰極出現(xiàn)低電平,對應的發(fā)光二極管
就會發(fā)亮。
(2)共陰極結構:8個發(fā)光二極管的陰極全部連接在一起組成公共端,8個發(fā)光二極管的陽極單獨引出,當公共端接低電平時,只要相應的陽極出現(xiàn)高電平,對應的發(fā)光二極管就會發(fā)亮。
無論是共陰極還是共陽極結構的LED顯示器,它們排列成“日”字形的各筆畫段的安排順序都是相同的,如圖7-14中的“a、b、c、d、e、f、g、dp
”。
2.LED數(shù)碼管的驅動方法
在單片機應用系統(tǒng)中,LED數(shù)碼管顯示器的顯示方法有兩種:靜態(tài)顯示法和動態(tài)掃描顯示法。
1)靜態(tài)顯示法
圖7-15所示為一個4位的靜態(tài)顯示器電路。
所謂靜態(tài)顯示,就是當顯示器顯示某一個字符時,相應的發(fā)光二極管恒定地導通或截止。例如,七段顯示器的a、b、c、d、e、f導通,g截止,則顯示0。這種顯示方式,每一位都需要有一個8位輸出口控制,所以占用硬件多,一般用于顯示器位數(shù)較少(很少)的場合。圖7-154位LED靜態(tài)顯示電路
在靜態(tài)顯示電路中,由于I/O只要有段碼輸出,相應字符就會顯示出來,并保持不變,直到I/O輸出新的段碼,因此,為防止燒壞LED,一般要在LED的8個發(fā)光二極管的各引
出端接限流電阻,阻值大小根據(jù)額定導通電流來確定。
當位數(shù)較多時,用靜態(tài)顯示所需的I/O口太多,一般采用動態(tài)顯示方法。
用74LS164擴展兩個8位靜態(tài)數(shù)碼顯示電路設計如圖716所示。單片機的串行口工作在方式0,即移位寄存器方式,74LS164是8位串入/并出的移位寄存器。顯示數(shù)據(jù)時,串行數(shù)據(jù)由單片機的P3.0(RxD)送出,同步移位時鐘脈沖由P3.1(TxD)送出。在移位時鐘脈沖的作用下,串行口發(fā)送緩沖器SBUF中的數(shù)據(jù)按先后順序逐位移入74LS164移位寄存器中,于是兩片74LS164的并行輸出口將并行輸出移入的數(shù)據(jù),分別驅動兩個LED數(shù)碼管顯示數(shù)據(jù)。
【例7-4】試將RAM緩沖區(qū)40H、41H中的單BCD碼通過74LS164并行輸出并顯示到兩位LED數(shù)碼管,如圖7-16所示。假設LED數(shù)碼管是共陽的。
分析:40H和41H中的單BCD碼是“0~9”,需讀取字形碼,再放入到40H和41H;設置串行口工作于方式0,然后將P1.0置“1”,選通74LS164,最后調用一個串行輸出16
位的子程序。圖7-1674LS164驅動的靜態(tài)數(shù)碼顯示電路
2)動態(tài)掃描顯示法
在多位LED顯示時,為了簡化電路,降低成本,一般采用動態(tài)掃描顯示方式。動態(tài)掃描顯示是單片機應用系統(tǒng)中最常用的顯示方式之一。圖7-17就是一個4位LED動態(tài)顯示電路。圖7-174位LED動態(tài)顯示電路
所謂動態(tài)顯示,就是一位一位地輪流點亮各位顯示器(掃描),對于每一位顯示器來說,每隔一段時間點亮一次,但由于人眼存在視覺暫留效應,加上發(fā)光二極管的余輝效應,只要掃描的速度足夠快,每位顯示的間隔時間足夠短,就可以給人同時顯示的感覺,而不會有閃爍感。調整電流和顯示時間間隔,可實現(xiàn)亮度較高且穩(wěn)定的顯示。
在動態(tài)顯示電路中,所有LED顯示器的8個筆畫段的各段同名端互相連接起來,并把它接到輸出I/O(1)口上(稱為數(shù)據(jù)口,8位),這樣I/O上輸出的字形碼會同時到達每個
LED的“dp、g、f、e、d、c、b、a”。為了防止各顯示器顯示同樣的數(shù)字,各個顯示器應該輪流顯示,在某一時刻只能是其中的一個數(shù)碼管點亮,因此每個數(shù)碼管的COM端還要受到另一信號的控制,方法是將COM端接到另外一個I/O輸出口(稱為掃描口,位數(shù)與顯示器位數(shù)相等)上,某一個時刻只讓其中的一個COM出現(xiàn)低電平或高電平。
在MCS51單片機應用系統(tǒng)中,若無需擴展外部存儲器等部件,可直接用單片機自帶的I/O口來構建數(shù)碼管動態(tài)顯示系統(tǒng)。若外部擴展占用了I/O資源,可以采用8155、
8255等芯片擴展I/O口,構建數(shù)碼管動態(tài)顯示系統(tǒng)。
【例7-5】圖7-18為利用單片機P2口和P1口構成的動態(tài)顯示的電路,共有6個共陽極LED數(shù)碼管顯示器,P2口為字段口,輸出字形碼,P2.0~P2.7分別與“a、b、c、d、e、f、g、dp”對應相連,P1口為字位口,輸出位碼。編寫程序,使圖7-18的動態(tài)掃描顯示電路從左到右顯示l、2、3、4、5、6共六個字符。設晶振頻率為12MHz。
分析:在第一時刻從P2口輸出1的字形碼,從P1口輸出00100000B(20H),使最左邊的LED點亮;延時一段時間后,從P2口輸出2的字形碼,從P1口輸出00010000B(10H),使左邊第二個LED點亮;依次循環(huán),最后從P2口輸出6的字形碼,從P1口輸出0000001B(01H),使最右邊的LED點亮;再回過頭從左邊第一個開始。
獲取字形碼采用查表方式,將字形碼以表格的形式按順序存儲到ROM中,將表格首地址取到DPTR中,將要顯示的數(shù)字送給累加器A,執(zhí)行“MOVCA,@A+DPTR”指令獲取字形碼。
對于動態(tài)掃描顯示而言言,由由于各數(shù)碼管大部分時間不亮亮,只只有一小部分時間亮亮,因因此在設計實際的硬件電路時時,并并不一定需要加限流電阻阻,可以將單片機輸出段碼的I/O直接接到LED的8個發(fā)光二極管的各引出端。
采用動態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較簡單,但其亮度不如靜態(tài)顯示方式。而且在顯示位數(shù)較多時,CPU要依次掃描,占用CPU較多的時間。我們已經(jīng)知道,一旦程序使用軟件延時,在CPU執(zhí)行延時程序的時候,就不能做其他的事,這樣勢必會降低CPU的效率。在實際應用中,當然不可能只顯示幾個數(shù)字,還要做其他的事。這時,我們可以借助定時器。定時時間一到,產(chǎn)生中斷,更換一個數(shù)碼管點亮,然后立刻返回;此次點亮的數(shù)碼管會一直亮到下一次定時時間到。這段時間內不執(zhí)行延時程序,可以留給主程序做其他的事。到下一次定時時間到,則點亮下一個數(shù)碼管。
7.4.3鍵盤接口
在單片機應用系統(tǒng)中,為了控制系統(tǒng)的工作狀態(tài),以及向系統(tǒng)輸入數(shù)據(jù),應用系統(tǒng)應設有按鍵或鍵盤。鍵盤按接口形式可以分為獨立連接式和行列(矩陣)式兩類,按結構形式可分為編碼鍵盤和非編碼鍵盤。
編碼鍵盤除了按鍵以外,還包括產(chǎn)生編碼的硬件芯片(如:8279);非編碼鍵盤靠軟件來識別鍵盤上的閉合鍵,由此得出鍵值,在單片機應用系統(tǒng)中被普遍采用。
1.非編碼鍵盤的設計原理
非編碼鍵盤的設計必須解決以下問題:
(1)判定是否有鍵按下。
(2)若有鍵按下,判定是哪個鍵按下,確定被按鍵的“鍵值”。
(3)除抖動。按鍵從最初的按下到接觸穩(wěn)定要經(jīng)過數(shù)毫秒的抖動時間,鍵松開時也有同樣的問題,如圖7-19所示。抖動會引起一次按鍵多次讀數(shù),實際使用時必須避免。可
以用硬件或軟件方法來消除抖動。通常,鍵數(shù)較少時,采用硬件消除抖動,如用RS觸發(fā)器消除抖動(見圖7-20);鍵數(shù)多時,常用軟件消除抖動。當檢出鍵按下后執(zhí)行一個延時子程序產(chǎn)生數(shù)毫秒的延時,使前沿抖動消失后再檢驗鍵的閉合;當發(fā)現(xiàn)鍵松開后,也要經(jīng)數(shù)毫秒的延時,待抖動消失后再檢驗下一次鍵的閉合。
圖7-19鍵閉合及斷開時的電壓抖動圖7-20由RS觸發(fā)器構成的去抖電路
(4)準確得出按鍵值(或鍵號),以滿足跳轉指令要求。鍵盤上的每個鍵都應有一個鍵值,CPU將根據(jù)它來執(zhí)行相應的功能程序。為了方便地使用散轉指令,在許多場合下,常
采用依次排列鍵值的方法,這時的鍵值與鍵號一致。比如對圖7-23中的矩陣鍵盤,就可以將S1~S16號鍵的鍵值直接定為00H~0FH,這樣,掃描后得到的鍵值(存放在A中)可
以直接用于散轉指令。指令系統(tǒng)中的散轉指令“JMP@A+DPTR”,就是專門為了配合鍵輸入信息而設置的。
(5)同一按鍵長時間持續(xù)按下。在一般情況下,無論一次按鍵的時間有多長,系統(tǒng)僅執(zhí)行一次按鍵功能程序,但是很多智能儀表的數(shù)據(jù)修改鍵恰好充分利用這一特點,來增加數(shù)據(jù)的修改速度。
(6)處理同時按鍵。由于硬件條件限制,系統(tǒng)可以用多個按鍵的組合鍵實現(xiàn)不同功能,若沒有組合鍵功能,也可采用對按鍵位的查詢順序來確定哪個按鍵有效。
2.單片機對非編碼鍵盤的控制方式
單片機獲取按鍵狀態(tài)有三種方式:程序查詢方式、定時掃描方式和中斷掃描方式。
1)程序查詢方式
采用程序查詢方式將使CPU時刻處于鍵盤檢測狀態(tài),不能做其他事。對于單片機應用系統(tǒng),鍵盤處理往往只是CPU工作的一部分,所以此種方式效率低下。
2)定時掃描方式
單片機對鍵盤的掃描也可以采用定時掃描方式,即每隔一定的時間對鍵盤掃描一次。在這種掃描方式中,通常利用單片機的定時器,產(chǎn)生10ms的定時中斷,CPU響應定時器
溢出中斷請求,調用鍵盤掃描子程序,以響應鍵盤輸入請求。鍵盤掃描子程序流程圖如圖7-21所示,其中KM為除抖動標志位。需要說明的是,鍵按下或鍵抬起都會執(zhí)行按鍵處
理程序,所以我們還需在按鍵處理程序前識別按鍵是按下還是抬起,以便執(zhí)行不同的程序來分別處理。圖7-21鍵盤掃描子程序流程圖
3)中斷掃描方式
在鍵盤定時掃描方式中,CPU總要定時掃描,若此時定時中斷程序僅僅是進行鍵盤掃描,則在大多數(shù)情況下,CPU對鍵盤是空掃描。為提高CPU的效率,可以采用中斷掃描方式。當鍵盤有鍵閉合時,產(chǎn)生中斷請求,CPU響應中斷,執(zhí)行服務程序,判斷鍵號,做相應處理。
3.獨立式按鍵接口電路
獨立式按鍵是指直接用I/O口線構成的單個按鍵電路。每個獨立式按鍵單獨占用一位I/O口線。獨立式按鍵電路如圖7-22所示。
獨立式按鍵電路配置靈活,軟件結構簡單。但由于每個按鍵必須單獨占用一根I/O口線,在按鍵數(shù)量較多時,I/O口線浪費較大。如果應用系統(tǒng)中的鍵較少,就可采用獨立式
的鍵盤接口電路。
【例7-6】根據(jù)圖7-22所示的獨立式按鍵電路,編寫程序查詢方式的鍵盤處理子程序。
分析1:假設I/O口是P3口,當某一按鍵Sn(n=4~7)閉合時,P3.n輸入為低電平;釋放時,P3.n輸入為高電平。
在程序中S4~S7為每個按鍵功能程序入口地址標號,PROM4~PROM7為每個按鍵的功能程序。圖7-22獨立式按鍵電路
分析2:可以采用散轉指令來編寫程序。S4閉合時,P3輸入1110××××;S5閉合時,P3輸入1101××××;
S6閉合時,P3輸入1011××××;S7閉合時,P3輸入0111
××××。將對應值轉換成00000000、00000001、00000010、00000011,即0~3;采用帶進位位右移的方法,通過進位位Cy=0來計算移位次數(shù),即是需要的鍵值;然后轉換值乘3得到偏移量。需要注意的是:低4位沒用,應先右移4次。
4.矩陣式鍵盤
1)矩陣式鍵盤的結構
在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖7-23所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處通過一個按鍵加以連接。
這樣,一個8位并行端口(如P3口)最多可以構成4×4=16個按鍵,比直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯。比如,再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。
2)矩陣式鍵盤的工作原理及按鍵的識別
矩陣式鍵盤的識別比獨立式要復雜一些。在圖723中,行線和列線所接的I/O口分別作為輸入端和輸出端。這樣,當按鍵沒有按下時,所有的輸入端都是高電平,代表無鍵按下。若某輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入端的狀態(tài)即可知是否有鍵按下。識別按鍵的方法很多,其中最常用的是掃描法和反轉法。圖7-23矩陣式按鍵電路
(1)掃描法。
在圖7-23中,列線通過電阻接正電源,并將行線所接的I/O口作為輸出端,列線所接的I/O口作為輸入端。這樣,任何按鍵都沒有按下時,所有的列輸入端都是高電平。當所有的行線都處于高電平時,按鍵按下與否不會影響列線電平的變化,因此,必須使行線處于低電平,只有這樣,當有鍵按下時,該鍵所在的列電平才會由高電平變?yōu)榈碗娖?CPU根據(jù)列線電平的變化,便能判斷相應的列是否有鍵按下。以圖7-23中4×4鍵盤的S5號鍵的識別為例來說明,當S5鍵按下后,與此鍵相連的行線和列線導通,列0肯定是低電平。然而列0為低電平時能否肯定僅是S5鍵按下呢?當然不行,因為S1、S9、S13號鍵按下也同樣可能會使列0為低電平。
為進一步確定具體鍵,不能使所有的行線在同一時刻都處于低電平。當某一行線輸出是低電平時,比如行1處于低電平且行0、2、3處于高電平時,我們掃描的是S5、S6、S7、S8四個鍵是否按下,如S5鍵按下,則列0輸入為低,如S8鍵按下,則列3輸入為低。這樣,通過讀入列輸入線(列0)的狀態(tài)并結合行輸出線的狀態(tài)(行1)就可得知S5鍵是否按
下。以此類推,其他鍵是否按下,也可以通過這個方法確定。
所以,在某一時刻只能使1條行線處于低電平,其余行線都處于高電平;另一時刻,讓下一行處于低電平,依次循環(huán)。這種工作方式稱為鍵盤掃描。假設我們只考慮按鍵按下時有效(有些場合按鍵抬起時也要求系統(tǒng)能完成一定功能),那么一個完整的鍵盤掃描程序應包括以下內容:
①檢測當前是否有鍵按下。方法是輸出全0信號到所有的行線上,然后讀所有列線的狀態(tài)。當所有列線不全為1時,表明有鍵閉合;否則表明無鍵閉合,繼續(xù)等待。
②當有鍵閉合時,可以采用硬件措施或調用軟件延時程序消除抖動。
③在確認鍵已穩(wěn)定閉合后,需要進一步判斷是哪一個鍵閉合。方法是對鍵盤進行掃描,就是依次給每一條行線送出0信號,其余各行線均為1,并相繼檢測每一次掃描時所對
應的列狀態(tài)。若各列全為1,則表示為0的這一行上沒有鍵閉合;否則為0的這一行上有鍵閉合,且閉合鍵所在的列就是列狀態(tài)為0的列。
④判斷閉合鍵是否釋放,如沒釋放,則繼續(xù)等待。
⑤用查表法或計算法得到鍵值,然后轉向相應的處理程序。
鍵盤掃描也可以采用掃描列線判斷行線的方法。
【例7-7】如圖7-23所示矩陣式鍵盤,編寫鍵值獲取子程序。規(guī)定:S1~S16鍵對應的鍵值為0~15,如果有鍵按下,鍵值存入A,以便用散轉指令轉移到不同的處理程序上
去。如果沒有鍵按下,則A中的值為FFH。
分析(掃描法):參考程序是一個子程序,入口名稱為KEYP。出口參數(shù)為A(即鍵值)。首先判斷是否有鍵按下,用R3做行掃描控制,初始值為00000001B;然后依次左移,共4次,從上到下分別掃描4條行線,R4為行號記錄寄存器,取值0、4、8、12,以便于直接計算鍵值。假設x為行位置,y為列位置,則鍵值為4x+y。由于x、y的取值均為0~3,故最終的鍵值為0~15。
【例7-8】設圖7-23中16個按鍵對應的處理程序為WORK0~WORK15,利用例77獲得的鍵值,應用散轉指令跳轉到按鍵對應的處理程序上去。
分析:將獲得的鍵值(在A中)乘以3,得到偏移量,直接使用散轉指令“JMP@A+DPTR”,跳到相應位置。
(2)反轉法。
掃描法要逐行(列)掃描查詢,當所按下的鍵在最后行(列)時,要經(jīng)過多次掃描才能獲得鍵值或鍵號。而采用反轉法,只要經(jīng)過兩個步驟即可獲得鍵值。
反轉法原理如圖7-24所示,用一個8位I/O口構成4×4鍵盤,I/O口的排列規(guī)律與圖723相同。假設圖中所畫為所按下的鍵,則實現(xiàn)例7-7鍵盤功能的反轉法原理如下:圖7-24反轉法原理圖
第一步,行輸出線(P3.3~P3.0)輸出0000,若有鍵按下,則列輸入線(P3.7~P3.4)為0的位對應的是被按下鍵的列位置。如按下的是圖中所示的鍵,則輸入為1110,按鍵位于第
0列,并將這個輸入數(shù)據(jù)暫存入B(或某存儲單元)中。
第二步,列輸出線(P3.7~P3.4)輸出0000,若有鍵按下,則行輸入線(P3.3~P3.0)為0的位對應的是被按下鍵的行位置。如按下的是圖中所示的鍵,則輸入為1101,按鍵位于第1行。
綜合這兩步,就知道按鍵所在的位置,圖示按鍵在第1行第0列。
7.5A/D、D/A轉換器及應用
7.5.1A/D轉換器隨著單片機技術的不斷發(fā)展,許多新一代的單片機已經(jīng)在片內集成了多路A/D轉換通道和PWM輸出,這大大簡化了電路和編程工作,但這類CPU芯片大多價格較貴。本節(jié)主要介紹CPU芯片內無A/D轉換電路的MCS51單片機與A/D芯片的接口技術。
1.A/D轉換器的主要技術指標
1)量化誤差與分辨率
分辨率反映A/D轉換器所能分辨的被測量的最小值,通常以輸出二進制位數(shù)或BCD碼值數(shù)表示。位數(shù)越多,量化分層越細,分辨率就越高。例如,一個A/D轉換器為8位,則其分辨率為滿刻度電壓的1/28,該A/D轉換器能分辨的最小電壓值為5/28=20mV;若A/D轉換器為10位,則該A/D轉換器能分辨的最小電壓值為5/210=4.9mV。
為將模擬信號轉換為數(shù)字量,在A/D轉換過程中,還必須將采樣/保持電路的輸出電壓按某種近似方式歸化到相應的離散電平上,這一轉化過程稱為數(shù)值量化,簡稱量化。量
化過程中所取最小數(shù)量單位稱為量化單位,用Δ表示,記為1LSB(LeastSignificantBit)。在量化過程中,由于采樣電壓不一定能被Δ整除,所以量化前后不可避免地存在誤差,此誤差稱為量化誤差。對于四舍五入量化方式,最大量化誤差理論上為±1/2LSB。
2)轉換精度
A/D轉換器的轉換精度反映了一個實際A/D轉換器在量化值上與一個理想A/D轉換器進行A/D轉換的差值,可表示成相對誤差和絕對誤差。常用數(shù)字量的位數(shù)作為度量
絕對精度的單位,如精度為±1/2LSB,而用百分比來表示滿量程時的相對誤差,如±0.05%。
注意,精度和分辨率是兩個不同的概念。精度指的是轉換后所得結果相對于實際值的準確度,而分辨率指的是能對轉換結果發(fā)生影響的最小輸入量。分辨率很高的A/D轉換器可能由于溫度漂移、線性不良等原因而并不具有很高的精度。
3)轉換時間和轉換速度
A/D轉換器完成一次轉換所需要的時間稱為A/D轉換時間。轉換速度是轉換時間的倒數(shù)。
2.A/D轉換器的選擇
1)精度及分辨率的選擇
用戶提出的數(shù)據(jù)采集精度是綜合精度,可分為傳感器精度、信號調節(jié)電路精度和A/D轉換精度。應將綜合精度在各個環(huán)節(jié)上進行分配,以確定A/D轉換器的精度要求,再根據(jù)它來確定A/D轉換器的位數(shù)。
2)轉換速度的選擇
有的系統(tǒng)有實時性要求。對于快速信號的采集,有時找不到高速的A/D轉換芯片,應考慮采用采樣/保持電路。
3)轉換器輸出狀態(tài)的選擇
A/D轉換器輸出狀態(tài)的選擇包括以下內容:是并行輸出還是串行輸出,是二進制碼輸出還是BCD碼輸出,是用外部時鐘、內部時鐘還是不用時鐘,有無轉換結束狀態(tài)信號,與TTL、CMOS電路的兼容性等。
4)工作溫度范圍
由于溫度會對A/D轉換器內部運算放大器和加權電阻網(wǎng)絡等產(chǎn)生影響,所以只有在一定的溫度范圍內才能保證額定精度指標。較好的轉換器件的工作溫度為-40℃~85℃,較差者為0℃~70℃。
3.A/D轉換器的種類
A/D轉換器的種類很多,目前最常用的是逐次逼近式A/D轉換器和雙積分式A/D轉換器。
1)逐次逼近式A/D轉換器
逐次逼近式A/D轉換器是目前種類最多、數(shù)量最大、應用最廣的A/D轉換器件。逐次逼近式A/D轉換器中有一個逐次逼近寄存器SAR,數(shù)字量是由它產(chǎn)生的。SAR使用對分搜索法產(chǎn)生數(shù)字量。
以8位數(shù)字量為例,SAR首先產(chǎn)生8位數(shù)字量的一半,即10000000b,試探模擬量Ui的大小。若Uo>Ui,則清除最高位;反之,則保留最高位。在最高位確認后,SAR又以對分搜索法確定次高位,即以7位數(shù)字量的一半y1000000b(y由前面的過程已確認),試探模擬量Ui的大小。依此類推,直到確定了bit0為止,轉換結束。
2)雙積分式A/D轉換器
雙積分式A/D轉換器的基本原理是對輸入模擬電壓和參考電壓分別進行兩次積分,將輸入電壓平均值變成與之成正比的時間間隔,然后利用時鐘脈沖和計數(shù)器測出此時間間
隔,進而得到相應的數(shù)字量輸出。由于該轉換電路是對輸入電壓的平均值進行變換,所以它具有很強的抗工頻干擾能力,但雙積分式A/D轉換器轉換時間較長,在一些非快速過程
的數(shù)字測量中得到廣泛應用。
4.ADC0809芯片的工作原理
ADC0809是采樣分辨率為8位的、以逐次逼近原理進行模/數(shù)轉換的器件。其內部有一個8通道選擇開關,它可以根據(jù)地址碼鎖存譯碼后的信號,選通8路模擬輸入信號中的
一路進行A/D轉換。
1)ADC0809芯片的主要特性
ADC0809芯片的主要特性如下:
(1)8路輸入通道,8位A/D轉換器,即分辨率為8位。
(2)具有轉換啟??刂贫撕娃D換結束信號輸出端。
(3)輸入/輸出與TTL電平兼容。
(4)轉換時間為128ms(與CLK引腳外接時鐘信號有關)。
(5)單個+5V電源供電,模擬輸入電壓范圍為0~+5V,不需零點和滿刻度校準。
(6)工作溫度范圍為-40℃~+85℃。
(7)功耗低,約15mW。
2)ADC0809芯片的內部結構
ADC0809芯片的內部結構如圖-25所示,其內部有一個8通道多路開關,允許8路模擬量分時輸入,共用一個A/D轉換器進行轉換。通道地址鎖存和譯碼電路對ADDA、
ADDB、ADDC三個地址信號進行鎖存和譯碼,其輸出用于通道選擇。當選中某路并啟動A/D轉換時,該路模擬信號進行A/D轉換,當OE有效時,便可輸出轉換結果。圖7-25ADC0809芯片的內部結構
3)ADC0809芯片的引腳功能
ADC0809芯片有28個引腳,采用雙列直插式封裝,如圖726所示。
IN0~IN7:8路模擬量輸入端。在多路開關控制下,任一瞬間只能有一路模擬量經(jīng)相應通道輸入到A/D轉換器中的比較放大器。
D0~D7:8位數(shù)字量輸出端,可直接接入單片機的數(shù)據(jù)總線。
ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的某一路。這3位地址線與通道的對應關系見表7-2。
ALE:地址鎖存允許信號。該信號的上升沿,可將地址選擇信號ADDA、ADDB、ADDC鎖入地址寄存器內。
START:A/D轉換啟動信號。在START信號的上升沿,將逐次逼近寄存器復位;在START信號的下降沿,開始進行A/D轉換;在轉換過程中,START保持低電平。
EOC:A/D轉換結束信號,輸出。EOC=0,表示正在轉換(轉換期間一直為低電平);EOC=1,表示A/D轉換結束。該信號既可作為查詢的狀態(tài)標志,又可作為中斷請求信號使用。
OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效,用于控制三態(tài)輸出鎖存器向單片機輸出轉換得到的數(shù)字量。OE=0,輸出數(shù)據(jù)線呈高阻態(tài);OE=1,才能打開三態(tài)輸出鎖存器。
CLK:外部時鐘脈沖輸入端。ADC0809芯片內部沒有時鐘電路,故所需時鐘信號由外界提供。CLK的頻率決定了A/D轉換器的轉換速度,ADC0809的頻率不能高于640kHz。
VREF(+)和VREF(-):A/D轉換器的參考電壓輸入線,一般與本機電源和地相連。
VCC:+5V電源。
GND:地。
4)ADC0809芯片的工作過程
ADC0809芯片的工作過程如下:
(1)確定ADDA、ADDB、ADDC3位地址,決定選擇哪一路模擬信號。
(2)使ALE端接收一正脈沖信號,并使該路模擬信號經(jīng)選擇開關到達比較器的輸入端。
(3)使START端接收一正脈沖信號,在START的上升沿將逐次逼近寄存器復位,在下降沿啟動A/D轉換。
(4)EOC輸出信號變低,表示轉換正在進行。
(5)A/D轉換結束,EOC變?yōu)楦唠娖?。此時,數(shù)據(jù)已保存到8位三態(tài)輸出鎖存器中,CPU可以通過使OE信號為高電平,打開ADC0809三態(tài)輸出鎖存器,由ADC0809輸出的數(shù)字量傳送到CPU。
5)ADC0809芯片與單片機的接口
圖7-27所示為ADC0809芯片與單片機的一種接口方法。ADC0809芯片與單片機接口時,應考慮以下問題:
(1)8路模擬通道選擇。
一般來說,ADDA、ADDB、ADDC分別接地址鎖存器74LS373提供的低3位地址,若要選擇某個通道,還需輸出一個口地址來使ALE信號變?yōu)楦唠娖?才能將三位地址寫入
ADC0809的通道地址鎖存器并譯碼。圖中ALE信號是由單片機的P2.2、P2.1、P2.0經(jīng)過38譯碼器74LS138的輸出Y5與WR信號“相或”后再經(jīng)過反相器產(chǎn)生的。因此,ADC0809的8路通道的地址可以確定為0500H~0507H(P2.2、P2.1、P2.0=101)。
(2)START信號的產(chǎn)生。
圖7-27中ADC0809芯片的START引腳是和ALE引腳接在一起的,單片機的P3.6(WR)和38譯碼器74LS138的輸出Y5“相或”后再經(jīng)過反相器接到ADC0809芯片的
START、ALE引腳。因此,只要WR和Y5都為0,反相器的輸出信號就會出現(xiàn)高電平。在這個高電平的上升沿,將ADDA、ADDB、ADDC地址狀態(tài)送入地址鎖存器中;在下降沿,啟動ADC0809芯片轉換。啟動圖7-27中的DC0809芯片進行轉換只需要執(zhí)行下面幾條指令(以通道0為例):
(3)轉換的CLK時鐘的產(chǎn)生。
ADC0809的轉換頻率不能高于640kHz。圖7-27是將單片機的ALE引腳經(jīng)過一個2分頻電路接在ADC0809芯片的CLK引腳上的。如果單片機的fosc=6MHz,則ALE信
號的頻率為2×fosc/12,即1MHz,再經(jīng)過2分頻后,=500kHz,滿足ADC0809芯片的時鐘要求。圖7-27ADC0809芯片與單片機接口
(4)如何提供有效的OE信號。
圖7-27是將P3.7(RD)和3-8譯碼器74LS138的輸出Y5“相或”后再經(jīng)過反相器接到ADC0809芯片的OE引腳的。因此,只要RD和Y5都為0,OE引腳就會出現(xiàn)高電平,從而打開三態(tài)輸出鎖存器,A/D轉換的結果也會出現(xiàn)在P0口上,輸入到單片機中。
(5)CPU讀取A/D轉換器數(shù)據(jù)的方式。
①查詢方式。
直接用軟件檢測EOC的狀態(tài),EOC=1時表明A/D轉換結束,然后進行數(shù)據(jù)傳送。
優(yōu)點:接口電路設計簡單。
缺點:A/D轉換期間獨占CPU,致使CPU運行效率降低。
②定時方式。
ADC0809芯片的轉換時間為128ms,我們可設計一個延時150ms的子程序(稍大于128ms),A/D轉換啟動后即調用這個子程序,正常情況下延時時間一到,A/D轉換肯定已經(jīng)完成,接著就可以進行數(shù)據(jù)傳送。
優(yōu)點:接口電路設計比查詢方式的簡單,不必讀取EOC的狀態(tài)。
缺點:A/D轉換期間獨占CPU,致使CPU運行效率降低;另外還必須知道A/D轉換器的轉換時間。
③中斷方式。
將轉換完成的狀態(tài)信號EOC經(jīng)反相器連接到單片機的外部中斷請求引腳。
優(yōu)點:A/D轉換期間CPU可以處理其他的程序,提高了CPU的運行效率。
缺點:接口電路復雜。
圖7-27是將ADC0809的EOC引腳經(jīng)過一個反相器接在單片機的INT1引腳上的,轉換結束后,EOC=1,經(jīng)過反相器后為0,可以向單片機發(fā)出中斷請求,也可以作為查詢轉換結束的標志。
5.ADC0809芯片的應用舉例
【例7-9】在圖7-27的基礎上,設計一個8路模擬量輸入的巡回檢測系統(tǒng)。編寫程序,分別采用查詢方式和中斷方式,將采樣轉換后的數(shù)據(jù)依次存放在內部RAM的40H~
47H單元中。
分析1(查詢方式):通過判斷P3.3的電平變化確定A/D轉換是否完成,完成后讀取數(shù)據(jù)。IN0~IN7的地址是0500H~0507H。
A/D轉換啟動方法是向對應的地址寫入一個任意數(shù),這時WR為低電平,Y5為低電平,ADC0809的START輸入高電平,A/D轉換開始。
分析2(中斷方式):其他同查詢方式,只是轉換完成信號EOC觸發(fā)外中斷1,讀取數(shù)據(jù)等操作在中斷服務程序中進行。
7.5.2D/A轉換器
1.D/A轉換器概念
D/A轉換器(DAC)是一種將數(shù)字信號轉換成模擬信號的器件,為計算機系統(tǒng)的數(shù)字信號和模擬環(huán)境的連續(xù)信號之間提供了一種接口。D/A轉換器的輸出是由數(shù)字輸入和參
考源VREF組合進行控制的。大多數(shù)常用的D/A轉換器的數(shù)字輸入是二進制碼或BCD碼,輸出可以是電流或電壓,但多數(shù)是電流。因而,在多數(shù)電路中,D/A轉換器的輸出需要由運算放大器組成的電流/電壓轉換器將電流輸出轉換成電壓輸出。目前DAC除了使用并行方式與單片機連接外,還可使用I2C總線和SPI串行方式與單片機連接。
1)D/A轉換原理
數(shù)字量是用代碼按數(shù)位組合起來表示的,對于有權碼,每位代碼都有一定的權值。為了將數(shù)字量轉換成模擬量,必須將每1位的代碼按其權值的大小轉換成相應的模擬量,然
后將這些模擬量相加,即可得到與數(shù)字量成正比的總模擬量,從而實現(xiàn)數(shù)字—模擬轉換。這就是構成D/A轉換器的基本思路。
在單片集成D/A轉換器中,使用最多的是倒T形電阻網(wǎng)絡D/A轉換器。4位(D3D2D1D0)倒T形電阻網(wǎng)絡D/A轉換器原理圖如圖7-28所示。圖7-284位倒T形電阻網(wǎng)絡D/A轉換器原理圖
S0~S3為模擬開關,R-2R電阻解碼網(wǎng)絡呈倒T形,運算放大器A構成求和電路。Si由輸入數(shù)碼Di控制。當Di=1時,Si接運放反相輸入端(“虛地”),Ii流入求和電路;當Di=0時,Si將電阻2R接地。
無論模擬開關Si處于何種位置,與Si相連的2R電阻均等效接“地”(地或虛地),這樣流經(jīng)2R電阻的電流與開關位置無關,為確定值。
分析R-2R電阻解碼網(wǎng)絡不難發(fā)現(xiàn),從每個接點向左看的二端網(wǎng)絡等效電阻均為R,流入每個2R電阻的電流從高位到低位按2的整倍數(shù)遞減。設由基準電壓源提供的總電流
為I(I=UREF/R),則流過各開關支路(從右到左)的電流分別為I/2、I/4、I/8和I/16。
流過電阻Rf的電流為
將輸入數(shù)字量擴展到n位,可得n位數(shù)字量倒T形電阻網(wǎng)絡D/A轉換器輸出模擬量與輸入數(shù)字量之間的一般關系式:
2)D/A轉換芯片的主要性能指標
(1)分辨率。
D/A轉換器的分辨率是指當輸入數(shù)字是發(fā)生單位數(shù)碼(1LSB)變化時,所對應輸出模擬量(電壓或電流)的變化量。對于線性D/A轉換器來說,分辨率=模擬輸出的滿量程值/2n(其中n為數(shù)字量位數(shù))。在實際使用中,常采用輸入數(shù)字量的位數(shù)或最大輸入碼的個數(shù)來表示分辨率。例如,8位D/A轉換器,其分辨率為8位。顯然,位數(shù)越多,分辨率就越高。
(2)線性度。
D/A轉換器的線性度用非線性誤差的大小來表示。非線性誤差是指理想的輸入/輸出特性的偏差與滿刻度輸出之比的百分數(shù)。
(3)精度。
D/A轉換器的精度是實際輸出電壓與理論輸出電壓相差程度的一個量度,與D/A轉換芯片的結構和接口配置的電路有關。一般來說,當不考慮其他D/A轉換誤差時,D/A轉換的精度即為分辨率的大小。故要獲得高精度的D/A轉換結果,首先要保證選擇有足夠分辨率的D/A轉換器。但是D/A轉換精度還與外電路的配置有關,當外電路的器件或電源誤差較大時,會造成較大的D/A轉換誤差。當這些誤差超過一定程度時,會使增加D/A轉換位數(shù)失去意義。
(4)轉換時間。
D/A轉換器的轉換時間又稱建立時間,一般是指在輸入的數(shù)字量發(fā)生變化后,輸出的模擬量穩(wěn)定到相應數(shù)值范圍內(穩(wěn)定值±1/2LSB)所經(jīng)歷的時間。
(5)標稱滿量程和實際滿量程。
標稱滿量程(NFS)是指對應于數(shù)字量標稱值2n的模擬輸出量。但實際數(shù)字量最大為2n1,比標稱值小1個LSB,因此實際滿量程(AFS)比標稱滿量程(NFS)小1個LSB增量,即AFS=NFS-1LSB增量=(2n-1)/2n×NFS。
2.DAC0832芯片的工作原理及應用
1)DAC0832的主要特性
DAC0832是采用CMOS/Si-Cr工藝制成的雙列直插式單片8位D/A轉換器。它可直接與MCS51單片機相連,以電流形式輸出;當轉換為電壓輸出時,可外接運算放大器。
其主要應用特性如下:
(1)分辨率為8位,建立時間為1ms,功耗為20mW。
(2)DAC0832芯片是與微處理器兼容的D/A轉換器,邏輯電平輸入與TTL兼容,芯片的許多控制引腳可以和微處理器的控制線直接相連,接受微處理器控制。
(3)數(shù)字輸入端具有雙重鎖存控制功能,可以雙緩沖、單緩沖或直通數(shù)字輸入,實現(xiàn)多通道D/A的同步轉換輸出。
(4)芯片內部沒有參考電壓,必須外接參考電壓電路。
(5)該芯片為電流輸出型D/A轉換器,要獲得模擬電壓輸出,需外加轉換電路。
2)DAC0832的內部結構及外部引腳
DAC0832由輸入(數(shù)據(jù))寄存器、DAC寄存器和D/A轉換器三大部分組成,如圖7-29所示。
DAC0832內部采用R-2R梯形電阻網(wǎng)絡。輸入寄存器和DAC寄存器用以實現(xiàn)兩次緩沖,故在輸出的同時,還可同時存一個數(shù)字,從而提高了轉換速度。當多芯片同時工作時,可用同步信號實現(xiàn)各模擬量同時輸出。圖7-29DAC0832的內部結構
CS:片選信號,低電平有效。與ILE相配合,可對寫信號WR1是否有效起到控制作用。
ILE:允許輸入鎖存信號,高電平有效。輸入寄存器的鎖存信號LE1由ILE、CS、WR1的邏輯組合產(chǎn)生。當輸入寄存器的鎖存信號為高電平時,輸入寄存器與數(shù)據(jù)線上的狀態(tài)一致,輸入寄存器的鎖存信號的負跳變將輸入在數(shù)據(jù)線上的信息存入輸入鎖存器。
WR1:寫信號1,低電平有效。當WR1、CS、ILE均有效時,可將數(shù)據(jù)寫入8位輸入寄存器。
WR2:寫信號2,低電平有效。當WR2有效時,在XFER傳送控制信號作用下,可將鎖存在輸入寄存器的8位數(shù)據(jù)送到DAC寄存器。
XFER:數(shù)據(jù)傳送信號,低電平有效。當WR2、XFER均有效時,在DAC寄存器的鎖存信號產(chǎn)生正脈沖,當DAC寄存器的鎖存信號為高電平時,DAC寄存器的輸出和輸入寄
存器的狀態(tài)一致,DAC寄存器的鎖存信號負跳變,輸入寄存器的內容存入DAC寄存器。
VREF:基準電源輸入端。它與DAC內的R-2R梯形網(wǎng)絡相接,VREF可在±10V范圍內調節(jié)。
DI0~DI7:8位數(shù)字量輸入端。DI7為最高位,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路建筑材料質檢合同范例
- 北京出租合同范例
- 財產(chǎn)抵押擔保借款合同范本
- 冷庫安裝合同范例
- 公廁維修施工合同范本
- 公司工程裝修合同范例
- 個人廣告采購合同范本
- 全屋定制套餐合同范例
- 2025年度工傷事故責任認定與賠償金支付協(xié)議書
- 包子配送合同范本
- 《消防機器人相關技術研究》
- 2024年考研政治真題及答案
- 【直播薪資考核】短視頻直播電商部門崗位職責及績效考核指標管理實施辦法-市場營銷策劃-直播公司團隊管理
- 項目設計報告范文高中
- 《千年古村上甘棠》課件
- 部編版小學語文二年級下冊電子課文《小馬過河》
- 《醫(yī)療機構工作人員廉潔從業(yè)九項準則》專題解讀
- 愛車講堂 課件
- 成立商會的可行性報告5則范文
- 市場監(jiān)督管理局反電信網(wǎng)絡詐騙工作總結
- 2024-2030年中國免疫細胞存儲行業(yè)發(fā)展模式及投資戰(zhàn)略分析報告
評論
0/150
提交評論