版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章單片機(jī)系統(tǒng)的擴(kuò)展
及接口技術(shù)5.1系統(tǒng)擴(kuò)展概述5.2存儲(chǔ)器的擴(kuò)展5.3I/O接口技術(shù)概述5.4可編程并行I/O接口芯片8255A5.5A/D轉(zhuǎn)換器接口5.6D/A轉(zhuǎn)換器接口5.7應(yīng)用舉例習(xí)題5
5.1系統(tǒng)擴(kuò)展概述5.1.1最小應(yīng)用系統(tǒng)單片機(jī)系統(tǒng)的擴(kuò)展是以最小系統(tǒng)為基礎(chǔ)的,故應(yīng)首先熟悉最小系統(tǒng)的結(jié)構(gòu)。所謂最小系統(tǒng),也稱為最小應(yīng)用系統(tǒng),是指一個(gè)真正可用的單片機(jī)最小配置系統(tǒng)。實(shí)際上,內(nèi)部帶有程序存儲(chǔ)器的AT89C51或AT89S51等單片機(jī)本身就是一個(gè)最小應(yīng)用系統(tǒng),許多實(shí)際應(yīng)用系統(tǒng)就是用這種成本低和體積小的單片機(jī)結(jié)構(gòu)實(shí)現(xiàn)高性能控制的。對(duì)于內(nèi)部無程序存儲(chǔ)器的芯片來說,則要用外擴(kuò)程序存儲(chǔ)器的方法才能構(gòu)成一個(gè)最小應(yīng)用系統(tǒng)。
圖5.1單片機(jī)最小應(yīng)用系統(tǒng)
該系統(tǒng)的特點(diǎn)如下:
(1)系統(tǒng)有大量的I/O線可供用戶使用:P0、P1、P2、P3四個(gè)口都可以作為I/O口使用。
(2)內(nèi)部存儲(chǔ)器的容量有限,只有128B的RAM和4KB的程序存儲(chǔ)器。
(3)應(yīng)用系統(tǒng)的開發(fā)具有特殊性,由于應(yīng)用系統(tǒng)的P0口、P2口在開發(fā)時(shí)需要作為數(shù)據(jù)和地址總線,因此這兩個(gè)口上的硬件調(diào)試只能用模擬的方法進(jìn)行。
5.1.2系統(tǒng)擴(kuò)展的內(nèi)容與方法
1.單片機(jī)的三總線結(jié)構(gòu)
當(dāng)單片機(jī)最小系統(tǒng)不能滿足系統(tǒng)功能的要求時(shí),就需要進(jìn)行擴(kuò)展。為了使單片機(jī)能方便地與各種擴(kuò)展芯片連接,常將單片機(jī)的外部連線轉(zhuǎn)換為一般的微型計(jì)算機(jī)三總線結(jié)構(gòu)形式。對(duì)于AT89S51單片機(jī),其三總線結(jié)構(gòu)按照下列方式構(gòu)成。
圖5.2為AT89S51單片機(jī)的三總線結(jié)構(gòu)框圖。這樣一來,擴(kuò)展芯片與主機(jī)的連接方法就同一般三總線結(jié)構(gòu)的微型計(jì)算機(jī)一樣了。對(duì)于MCS-51系列及其兼容單片機(jī)而言,各大公司為其生產(chǎn)了大量的配套外圍芯片,使其系統(tǒng)的擴(kuò)展相當(dāng)方便。
圖5.2AT89S51單片機(jī)的三總線結(jié)構(gòu)框圖
2.系統(tǒng)擴(kuò)展的內(nèi)容與方法
系統(tǒng)擴(kuò)展一般有以下幾方面的內(nèi)容:
(1)外部程序存儲(chǔ)器的擴(kuò)展。
(2)外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。
(3)輸入/輸出接口的擴(kuò)展。
(4)管理功能器件(如定時(shí)/計(jì)數(shù)器、鍵盤/顯示器、中斷優(yōu)先級(jí)編碼器等)的擴(kuò)展。
單片機(jī)系統(tǒng)通??墒褂孟铝衅骷M(jìn)行擴(kuò)展。
(1)使用TTL中、小規(guī)模集成電路進(jìn)行擴(kuò)展。
(2)采用IntelMCS-80/85微處理器外圍芯片來擴(kuò)展。
(3)采用為MCS-48系列單片機(jī)設(shè)計(jì)的一些外圍芯片來擴(kuò)展。
(4)采用與MCS-80/85外圍芯片兼容的其他一些通用標(biāo)準(zhǔn)芯片來擴(kuò)展。
5.1.3常用的擴(kuò)展器件簡(jiǎn)介
1.8D鎖存器74LS373
74LS373是一種帶三態(tài)門的8D鎖存器,采用20腳DIP封裝,其引腳排列如圖5.3所示。
圖5.374LS373的引腳排列圖
2.總線驅(qū)動(dòng)器74LS244、74LS245
總線驅(qū)動(dòng)器74LS244和74LS245常用作三態(tài)數(shù)據(jù)緩沖器,其引腳排列如圖5.4所示。
圖5.4總線驅(qū)動(dòng)器的引腳排列圖
3.3-8譯碼器74LS138
譯碼電路通常采用譯碼芯片,如74LS139(雙2-4譯碼器)、74LS138(3-8譯碼器)及74LS154(4-16譯碼器)等,其中以74LS138最為常用。74LS138的引腳排列如圖5.5所示。圖5.574LS138的引腳排列圖
5.2存儲(chǔ)器的擴(kuò)展
5.2.1存儲(chǔ)器擴(kuò)展概述MCS-51及其兼容單片機(jī)的地址總線寬度為16位,因此最大可尋址的外部存儲(chǔ)器空間為64KB,地址范圍為0000H~0FFFFH。AT89S51單片機(jī)內(nèi)部具有4KB程序存儲(chǔ)器,當(dāng)程序大小超過4KB時(shí),就需要進(jìn)行程序存儲(chǔ)器的擴(kuò)展。另外,其片內(nèi)數(shù)據(jù)存儲(chǔ)器空間只有128B,如果片內(nèi)的數(shù)據(jù)存儲(chǔ)器不夠用,則需進(jìn)行數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。
存儲(chǔ)器芯片的選擇有兩種方法:線選法和譯碼法。
1.線選法
所謂線選法,就是直接以系統(tǒng)的地址線作為存儲(chǔ)器芯片的片選信號(hào),為此只需把用到的地址線與存儲(chǔ)器芯片的片選端直接相連即可。線選法編址的優(yōu)點(diǎn)是簡(jiǎn)單明了,不需要另外增加譯碼電路,成本低。但其缺點(diǎn)是浪費(fèi)了大量的存儲(chǔ)空間,因此只適用于存儲(chǔ)容量不需要很大的小規(guī)模單片機(jī)系統(tǒng)。
2.譯碼法
所謂譯碼法,就是使用地址譯碼器對(duì)系統(tǒng)的片外地址進(jìn)行譯碼,以其譯碼輸出作為存儲(chǔ)器芯片的片選信號(hào)。這種方法能有效地利用存儲(chǔ)空間,適用于大容量多芯片存儲(chǔ)器的
擴(kuò)展。
譯碼法又有兩種,即完全譯碼法和部分譯碼法。
(1)完全譯碼。地址譯碼器使用了全部地址線,地址與存儲(chǔ)單元一一對(duì)應(yīng),一個(gè)存儲(chǔ)單元只占用一個(gè)地址。
(2)部分譯碼。地址譯碼器僅使用了部分地址線,地址與存儲(chǔ)單元不是一一對(duì)應(yīng)的,而是一個(gè)存儲(chǔ)單元占用多個(gè)地址。如未使用的地址線數(shù)為n,則一個(gè)存儲(chǔ)單元將占用2n個(gè)
地址。
在設(shè)計(jì)存儲(chǔ)器擴(kuò)展連接或分析擴(kuò)展連接電路以確定存儲(chǔ)器芯片的地址范圍時(shí),常采用地址譯碼關(guān)系圖,即一種用簡(jiǎn)單的符號(hào)來表示全部地址譯碼關(guān)系的示意圖,如圖5.6所示。假定某存儲(chǔ)器芯片進(jìn)行擴(kuò)展連接時(shí)具有如圖5.6所示的譯碼地址線狀態(tài),我們以此為例來分析其擴(kuò)展的地址范圍。圖5.6地址譯碼關(guān)系圖
3.?dāng)U展存儲(chǔ)器所需芯片數(shù)目的確定
若所選存儲(chǔ)器芯片字長(zhǎng)與單片機(jī)字長(zhǎng)一致,則只需擴(kuò)展容量。所需芯片數(shù)目按下式確定:
若所選存儲(chǔ)器芯片字長(zhǎng)與單片機(jī)字長(zhǎng)不一致,則不僅需進(jìn)行容量擴(kuò)展,還需進(jìn)行字長(zhǎng)擴(kuò)展。所需芯片數(shù)目按下式確定:
5.2.2程序存儲(chǔ)器的擴(kuò)展
在單片機(jī)應(yīng)用系統(tǒng)的擴(kuò)展中,經(jīng)常要進(jìn)行ROM的擴(kuò)展。其擴(kuò)展方法較為簡(jiǎn)單,這是由單片機(jī)優(yōu)良的擴(kuò)展性能決定的。單片機(jī)的地址總線為16位,擴(kuò)展的片外ROM最大容量為64KB,地址為0000H~0FFFFH。擴(kuò)展的片外RAM的最大容量也為64KB,地址也為0000H~0FFFFH。
在單片機(jī)應(yīng)用系統(tǒng)中,片外ROM和RAM共享數(shù)據(jù)總線和地址總線。片外ROM的操作時(shí)序如圖5.7所示。圖5.7片外ROM的操作時(shí)序
單片機(jī)系統(tǒng)片外ROM擴(kuò)展通常使用EPROM芯片。常用的EPROM芯片有2732、2764、27128、27256、27512等。它們的容量和引腳都有所區(qū)別,但用法類似。這幾種EPROM芯片的引腳定義如圖5.8所示。
圖5.8幾種EPROM芯片的引腳定義
例5.1要求用2764芯片來擴(kuò)展AT89S51的片外程序存儲(chǔ)器空間,采用完全譯碼法,分配的地址范圍為0000H~3FFFH。
解本例采用完全譯碼法,即所有地址線全部連接,每個(gè)單元只占用一個(gè)地址。
①確定片數(shù)。題目要求的地址范圍為16KB,而一片2764的地址容量為8KB,顯然需要兩片2764。
也可按照5.2.1節(jié)所述的公式計(jì)算:
②分配地址范圍。根據(jù)①的分析,兩片2764應(yīng)平均分擔(dān)16KB的地址,每片8KB,故第1片2764所占用的地址范圍為0000H~1FFFH;第2片2764所占用的地址范圍為2000H~3FFFH。
③畫出地址譯碼關(guān)系圖。
第1片:
第2片:
圖中打“×”部分為片內(nèi)譯碼(與單片機(jī)地址線對(duì)應(yīng)相連)。對(duì)于2764來說有13位,其地址變化范圍為從全“0”變到全“1”,其余部分為片外譯碼(由單片機(jī)剩余的高位地址線與譯碼器輸入相連)。
④設(shè)計(jì)片外譯碼電路。
⑤畫出存儲(chǔ)器擴(kuò)展連接圖(采用地址譯碼器的擴(kuò)展存儲(chǔ)器如圖5.9所示)。
圖5.9中,74LS138只用了兩個(gè)譯碼輸出端,未用的輸出端可以保留,以便于今后系統(tǒng)升級(jí)使用。
圖5.9采用地址譯碼器的擴(kuò)展存儲(chǔ)器連接圖
5.2.3數(shù)據(jù)存儲(chǔ)器的擴(kuò)展
CPU對(duì)擴(kuò)展的片外RAM進(jìn)行讀和寫的操作時(shí)序如圖5.10和圖5.11所示。圖5.10片外RAM讀時(shí)序圖5.11片外RAM寫時(shí)序
圖5.12幾種RAM芯片的引腳定義
用6264擴(kuò)展8KB的RAM的電路圖如圖5.13所示。圖5.136264的擴(kuò)展電路
5.3I/O接口技術(shù)概述
5.3.1I/O接口電路的作用一個(gè)完整的計(jì)算機(jī)系統(tǒng)除了CPU、存儲(chǔ)器外,還必須有外部設(shè)備。計(jì)算機(jī)系統(tǒng)中共有兩類數(shù)據(jù)傳送操作:一類是CPU和存儲(chǔ)器之間的數(shù)據(jù)讀/寫操作;另一類則是CPU和外部設(shè)備之間的數(shù)據(jù)輸入/輸出(I/O)操作。CPU和存儲(chǔ)器之間的數(shù)據(jù)讀/寫操作在上文中已述及,這里不再贅述。此處討論CPU和外部設(shè)備之間的I/O操作。
I/O接口的功能主要有以下幾點(diǎn)。
1.對(duì)單片機(jī)輸出的數(shù)據(jù)鎖存
就對(duì)數(shù)據(jù)的處理速度來講,單片機(jī)往往要比I/O設(shè)備快得多。
2.對(duì)輸入設(shè)備的三態(tài)緩沖
單片機(jī)系統(tǒng)的數(shù)據(jù)總線是雙向總線,是所有I/O設(shè)備分時(shí)復(fù)用的。
3.信號(hào)轉(zhuǎn)換
由于I/O設(shè)備的多樣性,必須利用I/O接口實(shí)現(xiàn)單片機(jī)與I/O設(shè)備間信號(hào)類型(模擬或數(shù)字、電流或電壓)、信號(hào)電平(高或低、正或負(fù))、信號(hào)格式(并行或串行)等的轉(zhuǎn)換。
4.時(shí)序協(xié)調(diào)
單片機(jī)輸入數(shù)據(jù)時(shí),只有在確知輸入設(shè)備已向I/O接口提供了有效的數(shù)據(jù)后,才能進(jìn)行讀操作。
5.3.2接口與端口
“接口”的英文是“Interface”,具有界面、相互聯(lián)系等含義。接口這個(gè)術(shù)語在計(jì)算機(jī)領(lǐng)域中應(yīng)用十分廣泛。本章所述的接口則特指計(jì)算機(jī)與外設(shè)之間在數(shù)據(jù)傳送方面的聯(lián)系。其功能主要通過電路來實(shí)現(xiàn),因此也稱為接口電路,簡(jiǎn)稱接口。
了實(shí)現(xiàn)接口電路在數(shù)據(jù)I/O傳送中的界面功能,在接口電路中應(yīng)該包含數(shù)據(jù)寄存器、狀態(tài)寄存器和命令寄存器,以保存輸入/輸出數(shù)據(jù)、狀態(tài)信息和來自CPU的有關(guān)數(shù)據(jù)傳送的控制命令。由于在數(shù)據(jù)的I/O傳送中,CPU需要對(duì)這些寄存器進(jìn)行讀/寫操作,因此這些寄存器都是可讀/寫的編址寄存器,對(duì)它們像存儲(chǔ)單元一樣進(jìn)行編址。我們通常把接口電路中這些已編址并能進(jìn)行讀或?qū)懖僮鞯募拇嫫鞣Q為端口(Port),簡(jiǎn)稱口。
5.3.3I/O的編址方式
1.獨(dú)立編址方式
所謂獨(dú)立編址,就是把I/O和存儲(chǔ)器分開進(jìn)行編址。
獨(dú)立編址方式的優(yōu)點(diǎn)是不占用存儲(chǔ)器的地址空間,不會(huì)減少內(nèi)存的實(shí)際容量;
缺點(diǎn)是需用專門的I/O指令和控制信號(hào),從而增加了系統(tǒng)的軟、硬件復(fù)雜性。
2.統(tǒng)一編址方式
統(tǒng)一編址就是把系統(tǒng)中的I/O和存儲(chǔ)器統(tǒng)一進(jìn)行編址。在這種編址方式中,把端口當(dāng)作存儲(chǔ)單元來對(duì)待,也就是讓端口占用存儲(chǔ)器單元地址。這種編址又稱為存儲(chǔ)器映像(MemoryMapped)編址方式。采用這種編址方式的計(jì)算機(jī)只有一個(gè)統(tǒng)一的地址空間,這個(gè)空間既供存儲(chǔ)器編址使用,也供I/O編址使用。
統(tǒng)一編址方式的優(yōu)點(diǎn)是不需要專門的I/O指令,可直接使用存儲(chǔ)器指令進(jìn)行I/O操作,不但簡(jiǎn)單方便、功能強(qiáng),而且I/O地址范圍不受限制。
其缺點(diǎn)是端口地址占用了一部分存儲(chǔ)器地址空間,使存儲(chǔ)器的有效容量減少。另外,16位的端口地址會(huì)使地址譯碼變得復(fù)雜,尋址指令長(zhǎng)且執(zhí)行速度慢。
5.3.4I/O的傳送方式
1.無條件傳送方式
無條件傳送也稱為同步程序傳送,類似于CPU和存儲(chǔ)器之間的數(shù)據(jù)傳送。無條件傳送方式適用于以下兩類外設(shè)的輸入/輸出:
(1)外設(shè)的工作速度非常快,足以和CPU同步工作。
(2)具有不變的或變化緩慢的數(shù)據(jù)信號(hào)的外設(shè)。
2.查詢傳送方式
查詢傳送又稱為條件傳送,即數(shù)據(jù)的傳送是有條件的。單片機(jī)在執(zhí)行輸入/輸出指令前,首先要檢測(cè)I/O接口的狀態(tài)及端口的狀態(tài),以了解外設(shè)是否已為數(shù)據(jù)輸入/輸出做好了準(zhǔn)備。只有在確認(rèn)外設(shè)已“準(zhǔn)備就緒”的情況下,CPU才能執(zhí)行數(shù)據(jù)輸入/輸出操作。通常把通過程序?qū)ν庠O(shè)狀態(tài)的檢測(cè)稱之為“查詢”,所以這種方式又稱為程序查詢方式。查詢傳送方式與前述無條件的同步傳送不同,是有條件的異步傳送。
3.中斷傳送方式
由于在查詢傳送方式中,CPU主動(dòng)要求傳送數(shù)據(jù),而它又不能控制外設(shè)的工作速度,因此只能用等待的方法來解決CPU和外設(shè)工作速度的匹配問題。而在一般的控制系統(tǒng)中,往往有大量的I/O設(shè)備,有些I/O設(shè)備還要求單片機(jī)為它們進(jìn)行實(shí)時(shí)服務(wù)。如果采用查詢傳送方式,除浪費(fèi)等待時(shí)間外,還很難及時(shí)地響應(yīng)I/O設(shè)備的請(qǐng)求。這時(shí),可以采用中斷傳送方式。
4.直接存儲(chǔ)器存取(DMA)方式
利用中斷傳送方式,雖然可以提高單片機(jī)的工作效率,但它仍需由單片機(jī)通過執(zhí)行程序來傳送數(shù)據(jù),并在處理中斷時(shí),還要進(jìn)行“保護(hù)現(xiàn)場(chǎng)”和“恢復(fù)現(xiàn)場(chǎng)”等操作,而這些操作與數(shù)據(jù)傳送沒有直接的關(guān)系,卻依然要占用一定的時(shí)間,這對(duì)于高速外設(shè)以及成組數(shù)據(jù)交換的場(chǎng)合還是顯得較慢。
5.4可編程并行I/O接口芯片8255A
可供單片機(jī)進(jìn)行I/O擴(kuò)展的接口芯片很多,但按其所能實(shí)現(xiàn)的擴(kuò)展功能又可分為兩類:一類是只能實(shí)現(xiàn)簡(jiǎn)單擴(kuò)展的中、小規(guī)模集成電路芯片;另一類則是能實(shí)現(xiàn)可編程I/O擴(kuò)展的可編程接口芯片。
簡(jiǎn)單I/O擴(kuò)展可利用74LS系列集成電路按照“輸出鎖存,輸入三態(tài)”的原則構(gòu)成,如5.1.3節(jié)中所述的74LS244/245可用于實(shí)現(xiàn)簡(jiǎn)單輸入接口的擴(kuò)展,利用74LS377(具有使能控制端的8D鎖存器)可實(shí)現(xiàn)簡(jiǎn)單輸出接口的擴(kuò)展。本節(jié)將重點(diǎn)講述能實(shí)現(xiàn)可編程I/O擴(kuò)展的并行接口芯片。這些芯片功能較強(qiáng),其最大的特點(diǎn)在于工作方式的確定和改變是用程序?qū)崿F(xiàn)的,因此稱之為可編程接口芯片。
在單片機(jī)I/O擴(kuò)展中常用的可編程接口芯片有可編程通用并行接口芯片8255A、帶RAM和定時(shí)/計(jì)數(shù)器的可編程并行接口芯片8155等。
5.4.18255A的內(nèi)部結(jié)構(gòu)與引腳
1.8255A的內(nèi)部結(jié)構(gòu)
8255A的內(nèi)部結(jié)構(gòu)框圖如圖5.14所示。
圖5.148255A的內(nèi)部結(jié)構(gòu)框圖
8255A由以下幾部分組成:
(1)數(shù)據(jù)端口A、B、C。8255A有三個(gè)8位數(shù)據(jù)端口,即端口A、端口B和端口C。編程人員可以通過軟件將它們分別作為輸入端口或輸出端口,這三個(gè)端口在不同的工作方式下有不同的功能及特點(diǎn),如表5.1所示。
(2)?A組和B組控制電路。這是兩組根據(jù)CPU的命令字控制8255A工作方式的電路。它們的控制寄存器先接收CPU送出的命令字,然后根據(jù)命令字分別決定兩組的工作方式,也可根據(jù)CPU的命令字對(duì)端口C的每一位實(shí)現(xiàn)按位“復(fù)位”或“置位”。其中:
?A組控制電路控制端口A和端口C的上半部(PC7~PC4)。
?B組控制電路控制端口B和端口C的下半部(PC3~PC0)。
(3)數(shù)據(jù)總線緩沖器。這是一個(gè)三態(tài)雙向的8位數(shù)據(jù)緩沖器,可直接與系統(tǒng)的數(shù)據(jù)總線相連,以實(shí)現(xiàn)CPU和8255A之間的數(shù)據(jù)、控制字和狀態(tài)信息等的傳送。
(4)讀/寫控制邏輯。讀/寫控制邏輯電路負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過程。
2.8255A的芯片引腳
8255A的引腳圖如圖5.15所示。除電源(+5V)和地外,其他信號(hào)可以分為兩組:
(1)與外設(shè)相連接的引腳。
?PA7~PA0:A口數(shù)據(jù)線。
?PB7~PB0:B口數(shù)據(jù)線。
?PC7~PC0:C口數(shù)據(jù)線。
5.4.28255A的工作方式
1.方式0(基本輸入/輸出方式)
這種工作方式不需要任何選通信號(hào),A口、B口及C口的高4位和低4位都可以設(shè)定為輸入或輸出。作為輸出口時(shí),輸出的數(shù)據(jù)均被鎖存;作為輸入口時(shí),A口的數(shù)據(jù)能鎖存,B口和C口的數(shù)據(jù)不能鎖存。
2.方式1(選通輸入/輸出方式)
在這種工作方式下,A口可由編程設(shè)定為輸入口或輸出口,C口的三位用來作為輸入/輸出操作的控制和同步信號(hào);B口同樣可由編程設(shè)定為輸入口或輸出口,C口的另三位用來作為輸入/輸出操作的控制和同步信號(hào)。在方式1下,A口和B口的輸入/輸出數(shù)據(jù)都能被鎖存。
為了便于闡述問題,我們以A口、B口均為輸入或均為輸出加以說明。
1)方式1下A口、B口均為輸入
在方式1下,A口和B口均工作在輸入狀態(tài)時(shí),需利用C口的6條線作為控制和狀態(tài)信號(hào)線,方式1下的信號(hào)定義如圖5.16(a)所示。
圖5.16方式1下的信號(hào)定義
圖5.17方式1下的輸入時(shí)序
2)方式1下A口、B口均為輸出
與輸入時(shí)一樣,也要利用C口的6根信號(hào)線,其定義如圖5.16(b)所示。用于輸出的聯(lián)絡(luò)信號(hào)有:
圖5.18方式1下的輸出時(shí)序
3.方式2(雙向數(shù)據(jù)傳送方式)
8255A只有A口具有這種雙向輸入/輸出工作方式,實(shí)際上是在方式1下A口輸入/輸出的結(jié)合。在這種方式下,A口為8位雙向傳輸口,C口的PC7~PC3用來作為輸入/輸出的同步控制信號(hào)。當(dāng)A口工作于方式2下時(shí),B口和PC2~PC0只能編程為方式0或者方式1工作,而C口剩下的3條線可作為輸入或輸出線使用或用作B口在方式1下工作時(shí)的控制線。
當(dāng)A口工作于方式2時(shí),方式2下的信號(hào)定義如圖5.19所示(其中的控制信號(hào)與前述相同)。圖5.19方式2下的信號(hào)定義
在方式2下,其輸入/輸出的操作時(shí)序如圖5.20所示。圖5.20方式2下的時(shí)序
5.4.38255A的控制字及初始化
1.工作方式控制字
工作方式控制字用于確定各口的工作方式及數(shù)據(jù)的傳送方向,8255A工作方式控制字如圖5.21所示。圖5.218255A工作方式控制字
說明如下:
(1)?A口有三種工作方式,而B口只有兩種工作方式。
(2)?A組包括A口與C口的高4位,B組包括B口與C口的低4位。
(3)在方式1或方式2下,將C口定義為輸入或輸出不影響作為聯(lián)絡(luò)線使用的C口各位的功能。
(4)最高位(D7)是標(biāo)志位,其值固定為1,用于表明本字節(jié)是方式控制字。
2.C口置位/復(fù)位控制字
在一些應(yīng)用情況下,C口用來定義控制信號(hào)和狀態(tài)信號(hào),因此C口的每一位都可以進(jìn)行置位或復(fù)位。對(duì)C口各位的置位或復(fù)位是由置位/復(fù)位控制字進(jìn)行控制的。C口置位/復(fù)位控制字如圖5.22所示。圖5.22C口置位/復(fù)位控制字
3.8255A的初始化編程
對(duì)任何可編程的接口芯片,在使用前都必須對(duì)其進(jìn)行初始化。8255A的初始化就是向控制字寄存器寫入工作方式控制字和C口置位/復(fù)位控制字。這兩個(gè)控制字可按同一個(gè)地址寫入且不受先后順序限制。由于兩個(gè)控制字標(biāo)志位的狀態(tài)不同,因此8255A能加以區(qū)分。
5.4.48255A與系統(tǒng)的連接方法
由于8255A是Intel公司專為其主機(jī)配套設(shè)計(jì)制造的標(biāo)準(zhǔn)化外圍接口芯片,因此,它與MCS-51及其兼容單片機(jī)的連接比較簡(jiǎn)單方便。
單片機(jī)擴(kuò)展的I/O接口均與片外RAM統(tǒng)一編址。由于單片機(jī)系統(tǒng)片外RAM的實(shí)際容量一般均不太大,遠(yuǎn)遠(yuǎn)達(dá)不到64KB的范圍,因此I/O接口芯片大多采用部分譯碼法或線選法。這種方法雖然要浪費(fèi)大量的地址號(hào),但譯碼電路比較簡(jiǎn)單。8255A與單片機(jī)的連接如圖5.23所示。圖5.238255A與單片機(jī)的連接
5.5A/D轉(zhuǎn)換器接口
5.5.1A/D轉(zhuǎn)換器概述A/D轉(zhuǎn)換器用以實(shí)現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換。在設(shè)計(jì)A/D轉(zhuǎn)換器與單片機(jī)接口之前,往往要根據(jù)A/D轉(zhuǎn)換器的原理及技術(shù)指標(biāo)選擇A/D轉(zhuǎn)換器。常用的A/D轉(zhuǎn)換器按轉(zhuǎn)換原理有計(jì)數(shù)式、雙積分式、逐次逼近式及并行式等。
例如,當(dāng)滿量程電壓為5V時(shí),采用10位A/D轉(zhuǎn)換器的量化間隔、絕對(duì)量化誤差、相對(duì)量化誤差分別為
5.5.2ADC0809及其與系統(tǒng)的連接
A/D轉(zhuǎn)換器(ADC)與單片機(jī)接口具有硬、軟件相依性。一般來說,A/D轉(zhuǎn)換器與單片機(jī)的接口主要考慮的是數(shù)字量輸出線的連接、ADC啟動(dòng)方式、轉(zhuǎn)換結(jié)束信號(hào)處理方法以及時(shí)鐘的連接等。
A/D轉(zhuǎn)換器數(shù)字量輸出線與單片機(jī)的連接方法與其內(nèi)部結(jié)構(gòu)有關(guān)。對(duì)于內(nèi)部帶有三態(tài)鎖存數(shù)據(jù)輸出緩沖器的ADC(如ADC0809、AD574等),可直接與單片機(jī)相連。對(duì)于內(nèi)部不帶鎖存器的ADC,一般通過鎖存器或并行I/O接口與單片機(jī)相連。
A/D轉(zhuǎn)換器的另一個(gè)重要連接信號(hào)是時(shí)鐘,其頻率是決定芯片轉(zhuǎn)換速度的基準(zhǔn)。整個(gè)A/D轉(zhuǎn)換過程都是在時(shí)鐘的作用下完成的。A/D轉(zhuǎn)換時(shí)鐘的提供方法有兩種:一種是由芯片內(nèi)部提供(如AD574),一般不允許外加電路;另一種是由外部提供,有的用單獨(dú)的振蕩電路產(chǎn)生,更多的則把單片機(jī)輸出時(shí)鐘經(jīng)分頻后,送到A/D轉(zhuǎn)換器的相應(yīng)時(shí)鐘端。這里只介紹ADC0809與單片機(jī)的接口方法。
1.ADC0809芯片簡(jiǎn)介
ADC0809是8位逐次比較式A/D轉(zhuǎn)換芯片,具有8路模擬量輸入通道,ADC0809芯片的內(nèi)部邏輯結(jié)構(gòu)與引腳如圖5.24所示。圖5.24ADC0809芯片的內(nèi)部邏輯結(jié)構(gòu)與引腳
圖5.24中,8路模擬開關(guān)可選通8個(gè)模擬量,允許8路模擬量分時(shí)輸入,并共用一個(gè)A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。地址鎖存與譯碼電路完成對(duì)A、B、C三個(gè)地址位進(jìn)行鎖存和譯碼的功能,其譯碼輸出用于通道選擇,如表5.3所示。8位A/D轉(zhuǎn)換器為逐次逼近式,由控制與時(shí)序電路、逐次逼近寄存器、樹狀開關(guān)及256個(gè)電阻梯形網(wǎng)絡(luò)等組成。三態(tài)輸出鎖存器用于存放和輸出轉(zhuǎn)換得到的數(shù)字量。
ADC0809芯片為28引腳雙列直插式封裝,其引腳簡(jiǎn)介如下:
?IN7~I(xiàn)N0:模擬量輸入通道。ADC0809對(duì)輸入模擬量的主要要求有:信號(hào)單極性、電壓范圍為0~5V。如輸入信號(hào)幅度過小還需進(jìn)行放大。另外,輸入模擬量在A/D轉(zhuǎn)換過程中其值不應(yīng)變化,如輸入模擬量變化速度較快,則在輸入前應(yīng)增加采樣保持器電路。
?ADDA、ADDB、ADDC:模擬通道地址線。這三根線用于對(duì)模擬通道進(jìn)行選擇,如表5.3所示。ADDA為低地址,ADDC為高地址。
?
ALE:地址鎖存信號(hào)。對(duì)應(yīng)于ALE上跳沿時(shí),ADDA、ADDB、ADDC地址狀態(tài)送入地址鎖存器中。
?START:轉(zhuǎn)換啟動(dòng)信號(hào)。在START信號(hào)上跳沿時(shí),所有內(nèi)部寄存器清0;在START下跳沿時(shí),開始進(jìn)行A/D轉(zhuǎn)換。在A/D轉(zhuǎn)換期間,START信號(hào)應(yīng)保持低電平。
?D7~D0:數(shù)據(jù)輸出線。該數(shù)據(jù)輸出線為三態(tài)緩沖形式,可以與單片機(jī)的數(shù)據(jù)總線直接相連。
?OE:輸出允許信號(hào)。它用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換后的數(shù)據(jù)。OE=0時(shí)輸出數(shù)據(jù)線呈高阻狀態(tài);OE=1時(shí)允許輸出。
?CLK:時(shí)鐘信號(hào)。ADC0809的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號(hào)由外界提供,通常使用500kHz的時(shí)鐘信號(hào)。
?EOC:轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)。當(dāng)EOC=0時(shí),表示正在進(jìn)行轉(zhuǎn)換;當(dāng)EOC=1時(shí),表示轉(zhuǎn)換結(jié)束。實(shí)際使用中,該信號(hào)既可作為查詢的狀態(tài)標(biāo)志,也可作為中斷請(qǐng)求信號(hào)。
?VCC:+5V電源。
?VREF:參考電壓。參考電壓作為逐次逼近的基準(zhǔn),并用來與輸入的模擬信號(hào)進(jìn)行比較。其典型值為+5V(VREF(+)=+5V、VREF(-)=0V)。
2.ADC0809與單片機(jī)的接口
電路的連接主要考慮兩個(gè)問題:一是8路模擬信號(hào)的通道選擇;二是A/D轉(zhuǎn)換完成后轉(zhuǎn)換數(shù)據(jù)的傳送。典型的ADC0809與單片機(jī)的連接如圖5.25所示。
圖5.25ADC0809與單片機(jī)的連接
1)?8路模擬通道的選擇
圖5.25中,ADC0809的轉(zhuǎn)換時(shí)鐘由單片機(jī)的ALE提供。因ADC0809的典型轉(zhuǎn)換頻率在640kHz以下,ALE信號(hào)頻率與晶振頻率有關(guān),如果晶振頻率為12MHz,則ALE的頻率為2MHz,所以ADC0809的時(shí)鐘端CLK與單片機(jī)的ALE相連時(shí),要考慮分頻。
從圖5.25中可以看到,ALE信號(hào)與START(ST)信號(hào)連在一起,這樣連接可以在信號(hào)的前沿寫入地址信號(hào),在其后沿便啟動(dòng)轉(zhuǎn)換。ADC0809相關(guān)信號(hào)時(shí)序如圖5.26所示。圖5.26ADC0809相關(guān)信號(hào)時(shí)序
2)轉(zhuǎn)換數(shù)據(jù)的傳送
A/D轉(zhuǎn)換后得到的數(shù)據(jù)為數(shù)字量,這些數(shù)據(jù)應(yīng)傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)數(shù)據(jù)轉(zhuǎn)換完成后,才能進(jìn)行傳送。通??刹捎孟率鋈N方式。
(1)定時(shí)傳送方式。
(2)查詢方式。
(3)中斷方式。
這里需要說明的是,ADC0809的三個(gè)地址端ADDA、ADDB、ADDC既可以如前所述與地址線相連,也可與數(shù)據(jù)線相連,例如與D0~D2相連,ADC0809與系統(tǒng)的另一種連接方法如圖5.27所示。這時(shí)啟動(dòng)A/D轉(zhuǎn)換的指令與上述類似,只不過A的內(nèi)容不能為任意值,而必須和所選輸入通道號(hào)IN0~I(xiàn)N7相一致。
圖5.27ADC0809與系統(tǒng)的另一種連接方法
5.6D/A轉(zhuǎn)換器接口
5.6.1D/A轉(zhuǎn)換器的技術(shù)指標(biāo)D/A轉(zhuǎn)換器(DAC)是單片機(jī)應(yīng)用系統(tǒng)與外部模擬對(duì)象之間的一種重要控制接口。單片機(jī)輸出的數(shù)字信號(hào)必須經(jīng)D/A轉(zhuǎn)換器,變換為模擬信號(hào)后,才能對(duì)控制對(duì)象進(jìn)行控制。這就涉及D/A轉(zhuǎn)換接口的問題。
1.分辨率
分辨率是指輸入數(shù)字量的最低有效位(LSB)發(fā)生變化時(shí),所對(duì)應(yīng)的輸出模擬量(常為電壓)的變化量。分辨率是D/A轉(zhuǎn)換器對(duì)輸入量變化敏感程度的描述,與輸入數(shù)字量的位數(shù)有關(guān)。對(duì)于線性D/A轉(zhuǎn)換器來說,如果其輸入數(shù)字量的位數(shù)為n,則其分辨率Δ可表示為
2.線性度
線性度(也稱非線性誤差)是實(shí)際轉(zhuǎn)換特性曲線與理想的直線特性之間的最大偏差。通常以相對(duì)于滿刻度的百分?jǐn)?shù)來表示。如某D/A轉(zhuǎn)換器的線性度為±1%,說明其實(shí)際輸出值與理論值之差在滿刻度的±1%以內(nèi)。
3.絕對(duì)精度與相對(duì)精度
絕對(duì)精度(簡(jiǎn)稱精度)是指在整個(gè)刻度范圍內(nèi),任一輸入數(shù)碼所對(duì)應(yīng)的模擬量實(shí)際的輸出值與理論值之間的最大誤差。絕對(duì)精度是由DAC的增益誤差(當(dāng)輸入數(shù)碼為全1時(shí),實(shí)際輸出值與理想輸出值之差)、零點(diǎn)誤差(數(shù)碼輸入為全0時(shí)DAC的非零輸出值)、非線性誤差和噪聲等引起的。絕對(duì)精度(即最大誤差)應(yīng)小于1個(gè)LSB。
4.建立時(shí)間
建立時(shí)間是指輸入的數(shù)字量發(fā)生滿刻度變化時(shí),輸出模擬信號(hào)達(dá)到滿刻度值的±1/2個(gè)LSB所需的時(shí)間。這是描述DAC轉(zhuǎn)換速率的一個(gè)動(dòng)態(tài)指標(biāo)。電流輸出型DAC的建立時(shí)間短,電壓輸出型DAC的建立時(shí)間主要決定于運(yùn)算放大器的響應(yīng)時(shí)間。根據(jù)建立時(shí)間的長(zhǎng)短,可以將DAC分成超高速(小于1μs)、高速(10~1μs)、中速(100~10μs)和低速(大于等于100μs)等。
5.6.2DAC0832及其與系統(tǒng)的連接
1.DAC0832芯片簡(jiǎn)介
DAC0832是一個(gè)典型的8位D/A轉(zhuǎn)換器,采用單電源供電,電源電壓在+5~+15V范圍內(nèi)均可正常工作。基準(zhǔn)電壓的范圍為±10V。電流輸出時(shí)其電流建立時(shí)間約為1μs,當(dāng)需要轉(zhuǎn)換為電壓輸出時(shí),可外接運(yùn)算放大器。CMOS工藝為低功耗設(shè)計(jì),功耗約為20mW。
DAC0832由一個(gè)8位輸入寄存器、一個(gè)8位DAC寄存器和一個(gè)8位D/A轉(zhuǎn)換器及邏輯控制電路組成。DAC0832內(nèi)部結(jié)構(gòu)框圖如圖5.28所示。
圖5.28DAC0832內(nèi)部結(jié)構(gòu)框圖
DAC0832為電流輸出形式,其兩個(gè)輸出端電流的關(guān)系為
IOUT1?+?IOUT2?=?常數(shù)
為了得到電壓輸出,可在電流輸出端接一個(gè)運(yùn)算放大器,如圖5.29所示。在DAC0832內(nèi)部已有反饋電阻RFB,其阻值為15kΩ。若需加大阻值,則可外接反饋電阻。
DAC0832為20腳雙列直插封裝,其引腳排列如圖5.30所示。
圖5.29DAC0832電壓輸出電路圖5.30DAC0832引腳排列
2.DAC0832與單片機(jī)的接口
DAC0832可以通過三種方式與單片機(jī)相連,即直通方式、單緩沖方式及雙緩沖方式。
1)直通方式
2)單緩沖方式
所謂單緩沖方式,就是使DAC0832的兩個(gè)寄存器中有一個(gè)處于直通方式,而另一個(gè)處于受控的鎖存方式,當(dāng)然也可以使兩個(gè)寄存器同時(shí)選通及鎖存。因此,單緩沖方式有三種不同的連接方法,DAC0832的三種單緩沖連接方法如圖5.31所示。圖5.31DAC0832的三種單緩沖連接方法
3)雙緩沖方式
所謂雙緩沖方式,就是把DAC0832的兩個(gè)鎖存器都接成受控鎖存方式。由于芯片中有兩個(gè)數(shù)據(jù)寄存器,這樣就可以將8位輸入數(shù)據(jù)先保存在“輸入寄存器”中,當(dāng)需要D/A轉(zhuǎn)換時(shí),再將此數(shù)據(jù)從輸入寄存器送至“DAC寄存器”中鎖存,并進(jìn)行D/A轉(zhuǎn)換輸出。采用這種方式,可以克服在輸入數(shù)據(jù)更新期間輸出模擬量隨之出現(xiàn)的不穩(wěn)定。這時(shí),可以在上一次模擬量輸出的同時(shí),將下一次要轉(zhuǎn)換的數(shù)據(jù)事先存入“輸入寄存器”中,一方面克服了不穩(wěn)定現(xiàn)象,另一方面提高了數(shù)據(jù)的轉(zhuǎn)換速度。用這種方式還可以同時(shí)更新多個(gè)D/A轉(zhuǎn)換器的輸出。DAC0832的雙緩沖連接方式如圖5.32所示,圖中給出了采用線選法,利用兩位地址碼進(jìn)行兩次輸出操作完成數(shù)據(jù)的傳送及轉(zhuǎn)換的雙緩沖方式。
圖5.32DAC0832的雙緩沖連接方式
由于兩個(gè)鎖存器分別占據(jù)兩個(gè)地址,因此在程序中需要使用兩條傳送指令,才能完成一個(gè)數(shù)字量的模擬轉(zhuǎn)換。假設(shè)輸入寄存器地址為0FEFFH,DAC寄存器地址為0FDFFH,則完成一次D/A轉(zhuǎn)換的程序段可如下編制:
5.7應(yīng)用舉例5.7.18255A應(yīng)用舉例8255A在單片機(jī)控制系統(tǒng)中得到了廣泛的應(yīng)用,現(xiàn)舉例加以說明。
例5.2要求通過8255A的PC5端向外輸出一個(gè)正脈沖信號(hào),已知8255A的C口和控制口的地址分別為0002H和0003H。解若要從PC5端輸出一個(gè)正脈沖信號(hào),可通過對(duì)PC5位的置位和復(fù)位控制來實(shí)現(xiàn)。由于每送一個(gè)控制字,只能對(duì)一位作一次置位或復(fù)位操作,因而產(chǎn)生一個(gè)正脈沖要對(duì)PC5位先送置位控制字,經(jīng)過一定延時(shí)后(延時(shí)時(shí)間視脈寬而定),再送復(fù)位控制字即能實(shí)現(xiàn)。
例5.3完成8255A作為連接打印機(jī)的接口電路的程序編制。
解8255A連接打印機(jī)的接口電路如圖5.33所示。圖5.338255A連接打印機(jī)的接口電路
5.7.2A/D應(yīng)用舉例
例5.4設(shè)有一個(gè)8路模擬量輸入的巡回檢測(cè)系統(tǒng),使用中斷方式采集數(shù)據(jù),每次中斷依次采集8路輸入,并將轉(zhuǎn)換結(jié)果對(duì)應(yīng)存放在外部RAM的30H~37H單元中。采集完一遍以后即停止采集。
解硬件電路可采用前述圖5.25,其數(shù)據(jù)采樣的初始化程序和中斷服務(wù)程序如下。
5.7.3D/A應(yīng)用舉例
D/A轉(zhuǎn)換器可以應(yīng)用在許多場(chǎng)合,例如控制伺服電機(jī)或其他執(zhí)行機(jī)構(gòu),也可以很方便地產(chǎn)生各種輸出波形,如矩形波、三角波、階梯波、鋸齒波、梯形波、正弦波及余弦波等。這里介紹利用D/A轉(zhuǎn)換器來產(chǎn)生波形的方法。
例5.5產(chǎn)生階梯波。
解階梯波是在一定的時(shí)間范圍內(nèi)每隔一段時(shí)間,輸出幅度遞增一個(gè)恒定值的波形。如每隔1ms輸出幅度增長(zhǎng)一個(gè)定值,經(jīng)10ms后重新循環(huán)。用DAC0832在單緩沖方式下可以輸出這樣的波形(單緩沖方式的連接方法可參考前述圖5.31),這里假定DAC0832地址為7FFFH。系統(tǒng)中所需的1ms延時(shí)可以通過延時(shí)程序獲得,也可以通過單片機(jī)內(nèi)的定時(shí)器來定時(shí)。
例5.6同步波形輸出——同時(shí)輸出X和Y波形到示波器。
解在應(yīng)用系統(tǒng)中,如果需要同時(shí)輸出幾路模擬信號(hào),這時(shí)D/A轉(zhuǎn)換器就必須采用雙緩沖工作方式,兩路DAC0832與單片機(jī)的接口電路如圖5.34所示。
圖5.34兩路DAC0832與單片機(jī)的接口電路
上述例子僅說明了單片機(jī)如何通過D/A轉(zhuǎn)換器產(chǎn)生模擬波形。用這種方法產(chǎn)生信號(hào)波形時(shí),由于受單片機(jī)本身工作速度的限制(12MHz晶振頻率時(shí),機(jī)器周期為1μs),輸出頻率不可能太高。另一方面,為了有一定的顯示質(zhì)量,在信號(hào)的一個(gè)周期內(nèi)取樣點(diǎn)也不可能太少,這就進(jìn)一步限制了信號(hào)的頻率。但是,用單片機(jī)產(chǎn)生波形比較靈活,特別是可以產(chǎn)生各種不規(guī)則的波形,因此在一些要求不高的場(chǎng)合還存在著一定的應(yīng)用。
5.7.4集成溫度傳感器及其應(yīng)用舉例
1.DS18B20簡(jiǎn)介
DS18B20是美國(guó)Dallas公司生產(chǎn)的最新的單線數(shù)字溫度傳感器,支持“1-Wire”接口。1-Wire是一種簡(jiǎn)單的信號(hào)交換方式,它是指在主機(jī)與外圍器件之間通過一條線路進(jìn)行雙向通信。多個(gè)1-Wire總線器件可以直接掛接在一條總線上,使用戶可輕松地組建傳感器網(wǎng)絡(luò)?,F(xiàn)場(chǎng)溫度直接以1-Wire的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量。
1)?DS18B20的主要特性
DS18B20的主要特性如下所述:
(1)單線接口,即僅需一根接口線與單片機(jī)連接。
(2)每個(gè)器件的內(nèi)部存儲(chǔ)器中存儲(chǔ)有該器件唯一的64位序列號(hào)。
(3)無需外圍元件即可實(shí)現(xiàn)溫度測(cè)量。
(4)可通過數(shù)據(jù)線供電,工作電壓范圍為3.0~5.5V。
(5)測(cè)溫范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi)精度為±0.5℃。
(6)用戶可以選擇9~12位的分辨率,其中9位分辨率轉(zhuǎn)換時(shí)間為93.75ms,12位分辨率轉(zhuǎn)換時(shí)間為750ms。
(7)用戶可自行設(shè)定溫度報(bào)警的上、下限,其值在斷電后仍可保存,利用報(bào)警搜索命令可識(shí)別超限報(bào)警的器件。
2)?DS18B20的引腳及功能
DS18B20的引腳排列如圖5.35所示,各引腳功能如下:
?GND:地。
?DQ:數(shù)據(jù)輸入/輸出引腳,為開漏單總線接口引腳,當(dāng)被用在寄生電源下時(shí),也可以向器件提供電源。
?VDD:可選擇的電源引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。圖5.35DS18B20的引腳排列
3)?DS18B20的工作原理
DS18B20的內(nèi)部結(jié)構(gòu)框圖如圖5.36所示。圖5.36DS18B20的內(nèi)部結(jié)構(gòu)框圖
DS18B20高速緩沖寄存器包含了9個(gè)連續(xù)字節(jié),DS18B20內(nèi)部E2PROM與高速寄存器的映射關(guān)系如圖5.37所示。第1字節(jié)的內(nèi)容是溫度的低8位;第2字節(jié)是溫度的高8位;第3、4字節(jié)是溫度設(shè)定上限TH和下限TL的易失性拷貝,第5字節(jié)是配置寄存器的易失性拷貝,這3個(gè)字節(jié)的內(nèi)容在每次上電復(fù)位時(shí)被刷新;第6、7、8字節(jié)用于內(nèi)部計(jì)算;第9字節(jié)是冗余校驗(yàn)字節(jié)。
圖5.37DS18B20內(nèi)部E2PROM與高速寄存器的映射關(guān)系
配置寄存器的結(jié)構(gòu)框圖如圖5.38所示。低5位固定為1,TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是測(cè)試模式,該位出廠時(shí)被設(shè)置為0,用戶一般不要去改動(dòng)。R1和R0用來設(shè)置分辨率,如表5.4所示。圖5.38配置寄存器的結(jié)構(gòu)框圖
DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)換為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式提供,以0.0625℃/LSB形式表達(dá),DS18B20溫度傳感器的數(shù)據(jù)格式如圖5.39所示。圖5.39DS18B20溫度傳感器的數(shù)據(jù)格式
2.DS18B20的應(yīng)用示例
DS18B20的1-Wire總線可以很方便地與單片機(jī)進(jìn)行連接,只需將其DQ端與單片機(jī)的一條I/O線相接即可,且多個(gè)DS18B20可以同時(shí)掛接在同一根總線上,多個(gè)DS18B20與單片機(jī)的連接如圖5.40所示。
圖5.40多個(gè)DS18B20與單片機(jī)的連接
三片DS18B20都接到單片機(jī)的一個(gè)I/O口時(shí),注意上拉電阻不能太大,否則DS18B20可能工作不正常。當(dāng)DS18B20工作于寄生供電方式時(shí),為保證提供足夠的工作電流,可用一個(gè)MOSFET管來完成對(duì)總線的上拉,DS18B20溫度轉(zhuǎn)換期間的強(qiáng)上拉供電如圖5.41所示。圖5.41DS18B20溫度轉(zhuǎn)換期間的強(qiáng)上拉供電
5.7.5液晶顯示模塊及其應(yīng)用舉例
液晶顯示器(LCD)是近年來飛速發(fā)展的一種顯示器件。LCD通常都是作為一個(gè)整體模塊用于設(shè)備中的,這是因?yàn)橐壕骷奶厥庑砸约斑B接和裝配需要專用的工具,且操作技術(shù)的難度較大等原因。生產(chǎn)廠家將液晶顯示屏幕、連接件、驅(qū)動(dòng)電路的PCB電路板、背光燈(視型號(hào)而定)等元器件封裝在一起,只留有背光燈插頭(視型號(hào)而定)和驅(qū)動(dòng)信號(hào)輸入插座,這種組件被稱為液晶顯示模塊。
1.LCD1602簡(jiǎn)介
LCD1602是一種字符式液晶顯示模塊,它可以顯示兩行,每行16個(gè)字符,相當(dāng)于32個(gè)LED數(shù)碼管,而且比數(shù)碼管顯示的信息還要豐富。LCD1602采用單一?+5V電源供電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有較高的性價(jià)比。LCD1602的引腳排列如圖5.42所示圖5.42LCD1602的引腳排列
LCD1602有11個(gè)控制指令,其功能如表5.5所示。
其中,常用的命令格式及其功能簡(jiǎn)介如下。
(3)光標(biāo)、畫面位移:
(4)功能設(shè)置:
2.LCD1602應(yīng)用示例
LCD1602與單片機(jī)連接的典型電路如圖5.43所示。圖5.43LCD1602與單片機(jī)連接的典型電路
習(xí)題5
1.什么是單片機(jī)最小應(yīng)用系統(tǒng)?2.MCS-51系列單片機(jī)如何訪問外部ROM及外部RAM?3.試說明存儲(chǔ)器的容量與芯片的地址線和數(shù)據(jù)線之間的關(guān)系。4.當(dāng)單片機(jī)應(yīng)用系統(tǒng)中數(shù)據(jù)存儲(chǔ)器RAM地址和程序存儲(chǔ)器EPROM地址重疊時(shí),是否會(huì)發(fā)生數(shù)據(jù)沖突?為什么?5.在AT89S51單片機(jī)應(yīng)用系統(tǒng)中,P0口和P2口是否可以直接作為輸入/輸出而連接開關(guān)、指示燈等外圍設(shè)備?為什么?
6.試用Intel2764(8K×8bit)和6116(2K×8bit)為AT89S51單片機(jī)設(shè)計(jì)一個(gè)外部存儲(chǔ)器系統(tǒng),它具有8KB的程序存儲(chǔ)器(地址為0000H~1FFFH)和8KB的數(shù)據(jù)存儲(chǔ)器(地址為0000H~1FFFH)。畫出該存儲(chǔ)器系統(tǒng)的硬件連接圖。
7.采用線選法在AT89S51單片機(jī)上擴(kuò)展兩片2764EPROM芯片,試連接三總線及根據(jù)連線確定兩芯片的地址空間。
8.采用線選法在AT89S51單片機(jī)上擴(kuò)展兩片6264RAM芯片,試連接三總線及根據(jù)連線確定兩芯片的地址空間。
9.?dāng)?shù)據(jù)存儲(chǔ)器的擴(kuò)展與程序存儲(chǔ)器的擴(kuò)展有哪些主要區(qū)別?
10.I/O編址方式有哪幾種?各有什么優(yōu)缺點(diǎn)?
11.I/O接口和I/O端口有什么區(qū)別?I/O接口的功能是什么?
12.I/O數(shù)據(jù)傳送有哪幾種傳送方式?分別在哪些場(chǎng)合下使用?
13.簡(jiǎn)要說明單片機(jī)I/O口擴(kuò)展的特點(diǎn)及應(yīng)注意的事項(xiàng)。
14.8255A共有幾種工作方式?怎樣進(jìn)行選擇?各種方式分別適用于什么場(chǎng)合?
15.8255A的方式控制字和C口按位置位/復(fù)位控制字都可以寫入8255A的同一控制寄存器。請(qǐng)問8255A是如何區(qū)分這兩個(gè)控制字的?
16.試編程對(duì)8255A進(jìn)行初始化。設(shè)A口為選通輸出,B口為基本輸入,C口作為控制聯(lián)絡(luò)口,并啟動(dòng)定時(shí)/計(jì)數(shù)器按方式1工作,定時(shí)時(shí)間為10ms,定時(shí)器計(jì)數(shù)脈沖頻率為單片機(jī)時(shí)鐘頻率的24分頻,fosc=12MHz。
17.現(xiàn)用AT89S51單片機(jī)擴(kuò)展一片8255A,若把8255A的B口用做輸入,B口的每一位接一個(gè)開關(guān),A口用作輸出,A口每一位接一個(gè)發(fā)光二極管,請(qǐng)畫出電路原理圖,并編寫出B口某一位接高電平時(shí),A口相應(yīng)位發(fā)光二極管被點(diǎn)亮的程序。
18.單片機(jī)系統(tǒng)硬件連接如圖5.44所示,系統(tǒng)采用12MHz的晶體振蕩器,擴(kuò)展了一片數(shù)據(jù)存儲(chǔ)器6264和一片8255A,并通過8255A的PA端口驅(qū)動(dòng)8個(gè)發(fā)光二極管,各發(fā)光二極管的陰極一起連接到地(GND)。要求:
(1)寫出數(shù)據(jù)存儲(chǔ)器6264的地址范圍。
(2)寫出8255A各端口地址。
(3)編程實(shí)現(xiàn)連接在8255A的PA端口上的發(fā)光二極管循環(huán)閃亮的控制程序。要求循環(huán)閃亮的時(shí)間間隔為50ms,采用定時(shí)中斷的方式來實(shí)現(xiàn)。
圖5.44第18題圖
19.用8255A擴(kuò)展電路設(shè)計(jì)四路搶答器。要求A口輸入四路搶答信號(hào),B口輸出四路搶答指示(用LED發(fā)光二極管)和聲音提示。
20.編寫程序,采用8255A的C口按位置位/復(fù)位控制字,將PC7置0,PC4置1(已知8255A各端口的地址為7FFCH~7FFFH)。
21.在一個(gè)AT89S51應(yīng)用系統(tǒng)中擴(kuò)展一片2764、一片8255和一片6264。試畫出系統(tǒng)電路連接圖,并指出所擴(kuò)展的各個(gè)芯片的地址范圍。
22.在A/D轉(zhuǎn)換中,哪些情況下可以不用采樣保持器?哪些情況下必須使用采樣保持器?
23.根據(jù)圖5.25所示電路,若要從ADC0809的模擬通道IN1連續(xù)采樣三個(gè)數(shù)據(jù),然后用平均值法進(jìn)行濾波,以消除干擾,并將最終結(jié)果送至片內(nèi)RAM暫存,試編寫相應(yīng)的匯編程序。
24.A/D轉(zhuǎn)換器與D/A轉(zhuǎn)換器各有哪些主要技術(shù)指標(biāo)?各指標(biāo)的含義如何?
25.試述DAC0832芯片的輸入寄存器和DAC寄存器二級(jí)緩沖的優(yōu)點(diǎn)。
26.DAC0832有幾種工作方式?各用于什么場(chǎng)合?如何應(yīng)用?
27.設(shè)計(jì)AT89S51與DAC0832的接口電路,并編制程序,輸出如圖5.45所示的波形(圖中,ΔU和Δt的值可自行確定)。圖5.45第27題圖
28.利用DAC0832芯片,采用單緩沖方式,口地址為F8FFH,試畫出電路連接圖,并編制利用該電路產(chǎn)生階梯波的程序。設(shè)臺(tái)階數(shù)為20,最上邊的臺(tái)階對(duì)應(yīng)于滿值電壓。
29.若想利用DAC0832芯片輸出正弦波,可采用什么方法?試編制相應(yīng)的程序。第6章高性能微處理器6.18位高性能微處理器C8051F0406.216位微處理器MSP430F1496.332位微處理器STM32F103
6.18位高性能微處理器C8051F040
6.1.1C8051F040單片機(jī)簡(jiǎn)介C8051F040單片機(jī)是完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,具有與8051兼容的微控制器內(nèi)核,與MCS-51指令集完全兼容。除了具有標(biāo)準(zhǔn)8052的數(shù)字外設(shè)部件之外,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設(shè)及功能部件。
C8051F040的特征如下:
25MIPS8051CPU;
4352B的RAM;
外部數(shù)據(jù)存儲(chǔ)接口;
?5個(gè)16位定時(shí)器,可編程計(jì)數(shù)器陣列(PCA);
12位ADC:100kb/s,8位ADC:500kb/s;
12位DAC;
JTAG非侵入式在系統(tǒng)調(diào)試;
64KBFlash;
?
CAN2.0B,32個(gè)目標(biāo)信息;
兩個(gè)UART,SPI,SMBus/I2C;
?64個(gè)I/O口;
?60V輸入的PGA;
有比較器、電壓基準(zhǔn)、溫度傳感器;
工作溫度為?-40℃~+85℃,采用TQFP-100封裝。
C8051F040單片機(jī)的內(nèi)部結(jié)構(gòu)框圖和引腳圖如圖6.1所示,各引腳的定義如表6.1所示。
圖6.1C8051F040單片機(jī)的內(nèi)部結(jié)構(gòu)框圖和引腳圖圖6.1C8051F040單片機(jī)的內(nèi)部結(jié)構(gòu)框圖和引腳圖
6.1.2C8051F處理器特性
1.CIP-51內(nèi)核
C8051F040單片機(jī)采用流水線結(jié)構(gòu),機(jī)器周期由標(biāo)準(zhǔn)的12個(gè)系統(tǒng)時(shí)鐘周期降為1個(gè)系統(tǒng)時(shí)鐘周期,處理能力大大提高,峰值性能可達(dá)25MIPS(百萬條指令/秒)。C8051F040單片機(jī)是真正能獨(dú)立工作的片上系統(tǒng)(SOC)。MCU能有效地管理模擬和數(shù)字外設(shè),可以關(guān)閉單個(gè)或全部外設(shè)以節(jié)省功耗。
CIP-51指令與MCS-51指令系統(tǒng)全兼容,共有111條指令。表6.2為指令數(shù)所對(duì)應(yīng)的時(shí)鐘周期數(shù)。
圖6.2是幾個(gè)典型MCU指令的執(zhí)行速度對(duì)照?qǐng)D。圖6-2MCU指令的執(zhí)行速度
2.運(yùn)行模式
CIP-51有兩種可軟件編程的電源管理方式:空閑和停機(jī)。在空閑方式,CPU停止運(yùn)行,而外設(shè)和時(shí)鐘處于活動(dòng)狀態(tài)。在停機(jī)方式,CPU停止運(yùn)行,所有的中斷和定時(shí)器(時(shí)鐘丟失檢測(cè)器除外)都處于非活動(dòng)狀態(tài),系統(tǒng)時(shí)鐘停止。由于在空閑方式下時(shí)鐘仍然運(yùn)行,因此功耗與進(jìn)入空閑方式之前的系統(tǒng)時(shí)鐘頻率和處于活動(dòng)狀態(tài)的外設(shè)數(shù)目有關(guān)。停機(jī)方式消耗最少的功率。
每個(gè)模擬外設(shè)在不用時(shí)都可以被禁止,使其進(jìn)入低功耗方式。
(1)空閑方式:將空閑方式選擇位(PCON.0)置1將使CIP-51停止CPU運(yùn)行并進(jìn)入空閑方式,在執(zhí)行完對(duì)該位置1的指令后,MCU立即進(jìn)入空閑方式。在空閑方式下,所有內(nèi)部寄存器和存儲(chǔ)器都保持原來的數(shù)據(jù)不變。所有模擬和數(shù)字外設(shè)在空閑方式期間都可以保持活動(dòng)狀態(tài)。
(2)停機(jī)方式:將停機(jī)方式選擇位(PCON.1)置1將使CIP-51進(jìn)入停機(jī)方式,在執(zhí)行完對(duì)該位置1的指令后,MCU立即進(jìn)入停機(jī)方式。在停機(jī)方式,CPU和振蕩器都被停止,實(shí)際上所有的數(shù)字外設(shè)都停止工作。在進(jìn)入停機(jī)方式之前,必須關(guān)閉每個(gè)模擬外設(shè),只有內(nèi)部或外部復(fù)位能結(jié)束停機(jī)方式。復(fù)位時(shí),CIP-51進(jìn)行正常的復(fù)位過程并從地址0x0000開始執(zhí)行程序。
3.中斷系統(tǒng)
標(biāo)準(zhǔn)的8051只有5個(gè)中斷源。C8051F040單片機(jī)擴(kuò)展了中斷處理,這對(duì)于實(shí)時(shí)多任務(wù)系統(tǒng)的處理是很重要的。擴(kuò)展的中斷系統(tǒng)向CIP-51提供了20個(gè)中斷源,允許大量的模擬和數(shù)字外設(shè)中斷。一個(gè)中斷處理需要較少的CPU干預(yù),卻有更高的執(zhí)行效率。表6.3為中斷一覽表。
6.1.3存儲(chǔ)器組織結(jié)構(gòu)
1.?dāng)?shù)據(jù)存儲(chǔ)器
CIP-51具有標(biāo)準(zhǔn)8051的程序和數(shù)據(jù)地址配置。片內(nèi)存儲(chǔ)器組織圖如圖6.3所示,包括256B的RAM,其中高128B只能用直接尋址訪問的SFR地址空間方式訪問;低128B可用直接或間接尋址方式訪問,前32B為四個(gè)通用工作寄存器區(qū),接下來的16B既可以按字節(jié)尋址也可以按位尋址。C8051F040除了內(nèi)部可擴(kuò)展4KB數(shù)據(jù)RAM外,片外還可擴(kuò)展至64KB數(shù)據(jù)RAM。圖6.3片內(nèi)存儲(chǔ)器組織圖
2.程序存儲(chǔ)器
C8051F040單片機(jī)程序存儲(chǔ)器為64KB的Flash存儲(chǔ)器,該存儲(chǔ)器可按512B為一扇區(qū)編程,也可以在線編程,且不需在片外提供編程電壓。該程序存儲(chǔ)器未用到的扇區(qū)均可由用戶按扇區(qū)作為非易失性數(shù)據(jù)存儲(chǔ)器使用。
6.1.4外圍設(shè)備
1.交叉開關(guān)
交叉開關(guān)功能框圖如圖6.4所示。圖6.4交叉開關(guān)功能框圖
2.定時(shí)器
圖6.5所示為定時(shí)器0和定時(shí)器1的功能框圖;圖6.6所示為定時(shí)器2、定時(shí)器3和定時(shí)器4的功能框圖。圖6.5定時(shí)器0和定時(shí)器1的功能框圖圖6.6定時(shí)器2、定時(shí)器3和定時(shí)器4的功能框圖
3.比較器
C8051F040內(nèi)部有三個(gè)電壓比較器,比較器功能框圖如圖6.7所示。圖6.7比較器功能框圖
4.模/數(shù)轉(zhuǎn)換器
C8051F040具有一個(gè)12位模/數(shù)轉(zhuǎn)換器ADC0和一個(gè)8位模/數(shù)轉(zhuǎn)換器ADC2。其中,ADC0子系統(tǒng)包括一個(gè)9通道的可編程模擬多路選擇器(AMUX0),一個(gè)可編程增益放大器(PGA0)和一個(gè)100ks/s、12位分辨率的逐次逼近寄存器型ADC,ADC中集成了跟蹤保持電路和可編程窗口檢測(cè)器。AMUX0、PGA0、數(shù)據(jù)轉(zhuǎn)換方式及窗口檢測(cè)器都可用軟件通過特殊功能寄存器來控制。只有當(dāng)ADC0控制寄存器中的AD0EN位被置1時(shí)ADC0子系統(tǒng)(ADC0、跟蹤保持器和PGA0)才被允許工作。當(dāng)AD0EN位為0時(shí),ADC0子系統(tǒng)處于低功耗關(guān)斷方式。ADC0功能框圖如圖6.8所示。圖6.8ADC0功能框圖
除了12位的ADC子系統(tǒng)ADC0之外,C8051F040還有一個(gè)8位ADC子系統(tǒng),即ADC2,它有一個(gè)8通道輸入多路選擇器和可編程增益放大器。該ADC工作在500ks/s的最大采樣速率時(shí)可提供真正的8位精度。ADC2的電壓基準(zhǔn)可以在模擬電源電壓(AV+)和外部VREF引腳之間選擇。用戶可以通過軟件將ADC2置于關(guān)斷狀態(tài)以節(jié)省功耗。ADC2的可編程增益放大器的增益可以被編程為0.5、1、2或4。ADC2也有靈活的轉(zhuǎn)換控制機(jī)制,允許用軟件命令(AD2BUSY位寫1)、定時(shí)器(Timer2或Timer3)溢出或外部信號(hào)輸入(CNVSTR)啟動(dòng)ADC2轉(zhuǎn)換;用軟件命令(AD0BUSY位寫1)可以使ADC2與ADC0同步轉(zhuǎn)換,ADC2功能框圖如圖6.9所示。圖6.9ADC2功能框圖
5.?dāng)?shù)/模轉(zhuǎn)換器
C8051F040內(nèi)部有兩個(gè)12位電壓輸出的DAC,12位DAC功能框圖如圖6.10所示。
圖6.1012位DAC功能框圖
6.UART0串行通信
UART0具有硬件地址識(shí)別和錯(cuò)誤檢測(cè)功能。UART0可以工作在全雙工異步方式或半雙工同步方式,并支持多處理器通信。接收數(shù)據(jù)被暫存于一個(gè)保持寄存器中,這就允許UART0在軟件尚未讀取前一個(gè)數(shù)據(jù)字節(jié)的情況下開始接收第二個(gè)輸入數(shù)據(jù)字節(jié)。一個(gè)接收覆蓋位用于指示新的接收數(shù)據(jù)已被鎖存到接收緩沖器而前一個(gè)接收數(shù)據(jù)尚未被讀取。圖6.11所示為UART0的功能框圖。圖6.11UART0的功能框圖
7.UART1串行通信
UART1是一個(gè)異步、全雙工串口,它提供標(biāo)準(zhǔn)8051串行口的方式1和方式3。UART1具有增強(qiáng)的波特率發(fā)生器電路,多個(gè)時(shí)鐘源可用于產(chǎn)生標(biāo)準(zhǔn)波特率。接收數(shù)據(jù)緩沖機(jī)制允許UART1在軟件尚未讀取前一個(gè)數(shù)據(jù)字節(jié)的情況下開始接收第二個(gè)輸入數(shù)據(jù)字節(jié)。
圖6.12所示為UART1的功能框圖。圖6.12UART1的功能框圖
8.SPI總線
串行外設(shè)接口(SPI0)提供了一個(gè)可靈活訪問的全雙工串行總線。SPI0可以作為主器件或從器件,有3線工作方式和4線工作方式,并支持在同一總線上連接多個(gè)主器件和從器件。從選擇信號(hào)(NSS)可以被配置為輸入,以選擇從方式下的SPI0,或在多主環(huán)境中禁止主器件方式操作,以避免兩個(gè)以上主器件試圖同時(shí)進(jìn)行數(shù)據(jù)傳輸時(shí)產(chǎn)生沖突。NSS還可以被配置為主方式下的片選輸出,或在3線操作時(shí)被禁止。在主方式下,可以用通用端口I/O引腳選擇多個(gè)從器件。圖6.13所示為SPI0的功能框圖。
圖6.13SPI0的功能框圖
9.SMBus總線
SMBusI/O接口是一個(gè)雙線雙向的串行總線。與I2C串行總線兼容并完全符合系統(tǒng)管理總線規(guī)范1.1版。系統(tǒng)控制器對(duì)總線的讀/寫操作都是以字節(jié)為單位的,由SMBus接口控制數(shù)據(jù)的串行傳輸??梢圆捎醚娱L(zhǎng)時(shí)鐘低電平時(shí)間的方法協(xié)調(diào)同一總線上不同速度的器件。圖6.14所示為SMBus的功能框圖。圖6.14SMBus的功能框圖
10.CAN總線控制器
C8051F040具有控制器局域網(wǎng)(CAN)控制器,用CAN協(xié)議進(jìn)行串行通信。SiliconLabsCAN控制器符合Bosch規(guī)范2.0A(基本CAN)和2.0B(全功能CAN),方便了在CAN網(wǎng)絡(luò)上的通信。CAN控制器包含一個(gè)CAN核、消息RAM(獨(dú)立于CIP-51的RAM)、消息處理狀態(tài)機(jī)和控制寄存器。SiliconLabsCAN是一個(gè)協(xié)議控制器,不提供物理層驅(qū)動(dòng)器(即收發(fā)器)。
圖6.15所示為CAN的功能框圖。圖6.15CAN的功能框圖
11.JTAG調(diào)試和邊界掃描
由于所用芯片的引腳多,元器件體積小,板的密度特別大,根本沒有辦法進(jìn)行下探針測(cè)試。于是產(chǎn)生了一種新的測(cè)試技術(shù)——聯(lián)合測(cè)試行為組織(JointTestActionGroup,JTAG)。這種新的測(cè)試方法即邊界掃描(BoundaryScan)測(cè)試規(guī)范,簡(jiǎn)稱JTAG標(biāo)準(zhǔn)。JTAG主要應(yīng)用于電路的邊界掃描測(cè)試和可編程芯片的在線系統(tǒng)編程。
6.216位微處理器MSP430F149
6.2.1MSP430F14x系列單片機(jī)簡(jiǎn)介德州儀器公司的MSP430系列是一種超低功耗微控制器系列,由針對(duì)各種不同應(yīng)用模塊組合特性的多種型號(hào)單片機(jī)組成,可適應(yīng)不同應(yīng)用層次的需求。在硬件架構(gòu)上,MSP430提供了五種低功耗模式,可最大限度地延長(zhǎng)手持設(shè)備的電池壽命。
MSP430F149的特征如下:
低電源電壓范圍:1.8~3.6V。
超低功耗:
待機(jī)模式:1.6μA;
關(guān)閉模式(RAM保持):0.1μA;
活動(dòng)模式:280μA(1MHz,2.2V下)。
圖6.16MSP430F149單片機(jī)內(nèi)部結(jié)構(gòu)框圖和引腳圖圖6.16MSP430F149單片機(jī)內(nèi)部結(jié)構(gòu)框圖和引腳圖
6.2.2MSP430處理器特性
1.CPU
MSP430處理單元具有16位RISC結(jié)構(gòu),這種結(jié)構(gòu)對(duì)應(yīng)用程序開發(fā)高度透明。除了程序流程控制指令之外的所有操作都需通過寄存器操作來執(zhí)行,寄存器作為源操作數(shù)時(shí)具有七種尋址方式,作為目的操作數(shù)時(shí)具有四種尋址方式。
MSP430處理器內(nèi)部寄存器如圖6.17所示圖6.17MSP430處理器內(nèi)部寄存器
2.指令集
指令集為這種寄存器結(jié)構(gòu)提供了一種強(qiáng)大和易用的匯編語言。這個(gè)指令集由三種格式和七種尋址方式的51條指令組成,表6.5給出了三類指令格式的總結(jié)和例子,尋址方式在表6.6中列出。
3.運(yùn)行模式
MSP430具有一種程序運(yùn)行模式和五種軟件可選的低功耗運(yùn)行模式。一個(gè)中斷事件可以將芯片從五種低功耗模式中的任何一種喚醒為請(qǐng)求服務(wù)并在從中斷程序返回時(shí)恢復(fù)低功耗模式。
下列六種運(yùn)行模式由軟件配置:
4.中斷向量地址
如表6.7所示,中斷向量和上電啟動(dòng)地址位于存儲(chǔ)器中0FFFFh-0FFE0h的地址范圍內(nèi),各向量包含相應(yīng)中斷處理程序指令序列的16位地址。
5.特殊功能寄存器
大多數(shù)中斷和模塊的使能位被集中于最低地址空間,有分配功能用途的特殊功能寄存器位在物理上并不存在于器件中,這種安排可提供簡(jiǎn)單的軟件訪問。
1)中斷使能寄存器1和2
中斷使能寄存器1各位定義如下:
中斷使能寄存器2各位定義如下:
2)中斷標(biāo)志寄存器1和2
中斷使能寄存器1各位定義如下:
3)模塊使能寄存器1和2
中斷使能寄存器1各位定義如下:
6.2.3存儲(chǔ)器組織結(jié)構(gòu)
1.存儲(chǔ)器組織
存儲(chǔ)器地址空間及功能的組織結(jié)構(gòu)如表6.8所示。
2.引導(dǎo)裝載程序(BootStrapLoader,BSL)
MSP430的引導(dǎo)裝載程序允許用戶通過UART接口對(duì)閃速存儲(chǔ)器或RAM進(jìn)行編程。各種寫、讀和擦除操作需要正確的下載環(huán)境,具體如下:
3.閃速存儲(chǔ)器
閃速存儲(chǔ)器可通過JTAG接口、BSL或者微處理器內(nèi)核CPU進(jìn)行訪問。閃速存儲(chǔ)器的特征包含如下幾點(diǎn):
閃速存儲(chǔ)器有n段主存儲(chǔ)器和每段128B的兩段信息存儲(chǔ)器(A和B),主存儲(chǔ)器每個(gè)段長(zhǎng)為512B。
段0到n可以一步擦除,也可以每段分別擦除。
段A和B可以分別擦除,或與段0到n作為一組擦除;段A和B也可稱作信息存儲(chǔ)器。
由于生產(chǎn)測(cè)試的需要,新出廠器件的信息存儲(chǔ)器可能存在被寫入一些數(shù)據(jù)的可能,所以用戶在初次使用前應(yīng)先對(duì)存儲(chǔ)器進(jìn)行一次擦除。
6.2.4外圍設(shè)備
MSP430的片內(nèi)外圍設(shè)備通過數(shù)據(jù)總線、地址總線和控制總線與CPU相連,用戶可通過內(nèi)存操作指令對(duì)其進(jìn)行操作。
1.?dāng)?shù)字I/O
有6個(gè)8位端口,即P1到P6,其功能如下:
所有單個(gè)I/O口均可獨(dú)立編程;
任何輸入、輸出和中斷條件的組合都是可能的;
端口P1和P2的所有8位都支持外部事件的中斷處理;
支持所有指令對(duì)端口控制寄存器的讀/寫訪問。
2.振蕩器和系統(tǒng)時(shí)鐘
MSP430F14x系列微處理器的時(shí)鐘系統(tǒng)由一個(gè)32768Hz的晶體振蕩器和一個(gè)內(nèi)部DCO及一個(gè)高頻晶體振蕩器與幾個(gè)基本時(shí)鐘模塊組成?;緯r(shí)鐘模塊是為了滿足低系統(tǒng)成本和低功耗的要求而設(shè)計(jì)的。內(nèi)部DCO提供了一個(gè)可快速開啟的時(shí)鐘源,穩(wěn)定時(shí)間小于6μs。
基本時(shí)鐘模塊提供了以下時(shí)鐘信號(hào):
輔助時(shí)鐘(ACLK),由32768Hz晶振或高頻晶振產(chǎn)生;
主時(shí)鐘(MCLK),提供CPU的系統(tǒng)時(shí)鐘;
次主時(shí)鐘(SMCLK),提供外圍設(shè)備模塊的子系統(tǒng)時(shí)鐘。
3.看門狗定時(shí)器
看門狗定時(shí)器(WDT)模塊的主要功能是在軟件發(fā)生混亂之后執(zhí)行一次受控系統(tǒng)重啟,如果選定的時(shí)間間隔到期,將發(fā)生一次系統(tǒng)復(fù)位。如果應(yīng)用中不需要看門狗功能,則看門狗定時(shí)器模塊也可以作為一個(gè)定時(shí)器使用。
4.硬件乘法器
乘法操作由一個(gè)專門的外圍模塊支持,模塊執(zhí)行16×16、16×8、8×16、8×8位操作,模塊能夠支持有符號(hào)和無符號(hào)乘法以及有符號(hào)和無符號(hào)的乘加操作,在操作數(shù)裝載到外設(shè)寄存器以后,操作結(jié)果能夠被立即訪問,無需另外的時(shí)鐘周期。
5.USART0和USART1
在MSP430F14x中有兩個(gè)USART外設(shè):USART0和USART1。兩者具有相同的功能,它們用不同的引腳通信,用不同的寄存器控制模塊。相同功能的寄存器具有不同的地址。
通用同步/異步接口是一個(gè)用于串行通信的專門的外設(shè)模塊,利用雙緩沖的發(fā)送和接收通道,USART支持同步SPI(3或4個(gè)腳)和異步UART通信協(xié)議,7位或8位長(zhǎng)度的數(shù)據(jù)流能夠按一個(gè)由程序或外部時(shí)鐘確定的速率傳送。UART模塊選項(xiàng)允許僅接收一個(gè)完整幀的第一個(gè)字節(jié),然后應(yīng)用軟件來判決是否成功處理了數(shù)據(jù)。
6.比較器_A
比較器模塊的主要功能是支持A/D應(yīng)用中的精密斜率轉(zhuǎn)換、電池電壓監(jiān)管和外部模擬信號(hào)監(jiān)控。比較器被連接到端口引腳P2.3(正端)和P2.4(負(fù)端)上。比較器通過CACTL寄存器中的8個(gè)位控制。
7.ADC12
ADC12模塊支持快速12位模/數(shù)轉(zhuǎn)換,它由一個(gè)12位逐次逼近轉(zhuǎn)換技術(shù)內(nèi)核、采樣選擇控制、參考輸出和16位的轉(zhuǎn)換與控制緩沖區(qū)構(gòu)成。這個(gè)轉(zhuǎn)換和控制緩沖區(qū)允許多達(dá)16個(gè)獨(dú)立ADC采樣樣本被轉(zhuǎn)換并存儲(chǔ),采樣過程不需要任何CPU介入。
8.定時(shí)器_A3
定時(shí)器_A3模塊提供一個(gè)16位計(jì)數(shù)器和3個(gè)捕獲/比較寄存器。定時(shí)器_A3可以支持多個(gè)捕獲/比較、PWM輸出和間隔定時(shí)。定時(shí)器_A3還具有擴(kuò)展中斷的功能。計(jì)數(shù)器溢出和每一個(gè)捕獲/比較寄存器都可能產(chǎn)生中斷。
9.定時(shí)器_B7
定時(shí)器_B7模塊提供一個(gè)16位計(jì)數(shù)器和7個(gè)捕獲/比較寄存器。定時(shí)器_B7可以支持多個(gè)捕獲/比較、PWM輸出和間隔定時(shí)。定時(shí)器_B7還具有擴(kuò)展中斷的功能。計(jì)數(shù)器溢出和每一個(gè)捕獲/比較寄存器都可能產(chǎn)生中斷。
6.332位微處理器STM32F1036.3.1STM32F103xx系列單片機(jī)簡(jiǎn)介STM32F103xx增強(qiáng)型系列單片機(jī)使用高性能的ARM?Cortex?-M332位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲(chǔ)器(高達(dá)512KB的閃存和64KB的SRAM),豐富的增強(qiáng)I/O端口和連接到兩條APB總線的外設(shè)。所有型號(hào)的器件都包含3個(gè)12位的ADC、4個(gè)通用16位定時(shí)器和2個(gè)PWM定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個(gè)I2C接口、3個(gè)SPI接口、2個(gè)I2S接口、1個(gè)SDIO接口、5個(gè)USART接口、1個(gè)USB接口和1個(gè)CAN接口。
STM32F103xx的特征如下:
內(nèi)核:ARM32位的Cortex?-M3CPU:
—最高72MHz工作頻率,在存儲(chǔ)器的0等待周期訪問時(shí)可達(dá)1.25DMips/?MHz(Dhrystone2.1);
—單周期乘法和硬件除法。
存儲(chǔ)器:
——256~512KB的閃存程序存儲(chǔ)器;
——高達(dá)64KB的SRAM。
時(shí)鐘、復(fù)位和電源管理:
——2.0~3.6V供電和I/O引腳;
——上電/斷電復(fù)位(POR/PDR)、可編程電壓監(jiān)測(cè)器(PVD);
——4~16MHz晶體振蕩器;
——內(nèi)嵌經(jīng)出廠調(diào)校的8MHz的RC振蕩器;
——內(nèi)嵌帶校準(zhǔn)的40kHz的RC振蕩器和32kHz的RTC振蕩器。
低功耗:
——睡眠、停機(jī)和待機(jī)模式;
——VBAT為RTC和后備寄存器供電。
?3個(gè)12位模/數(shù)轉(zhuǎn)換器,1μs轉(zhuǎn)換時(shí)間(多達(dá)21個(gè)輸入通道)。
?2通道12位D/A轉(zhuǎn)換器。
?DMA:12通道DMA控制器。其支持的外設(shè)有:定時(shí)器、ADC、DAC、SDIO、I2S、SPI、I2C和USART。
調(diào)試模式:
——串行單線調(diào)試(SWD)和JTAG接口;
——Cortex-M3內(nèi)嵌跟蹤模塊(ETM)。
多達(dá)112個(gè)快速I/O端口:
——51/80/112個(gè)多功能雙向的I/O口,所有I/O口可以映像到16個(gè)外部中斷;
——幾乎所有端口均可接收5V信號(hào)。
多達(dá)11個(gè)定時(shí)器:
——多達(dá)4個(gè)16位定時(shí)器,每個(gè)定時(shí)器有多達(dá)4個(gè)用于輸入捕獲/輸出比較/PWM或脈沖計(jì)數(shù)的通道和增量編碼器輸入;
——2個(gè)16位帶死區(qū)控制和緊急剎車、用于電機(jī)控制的PWM高級(jí)控制定時(shí)器;
——2個(gè)看門狗定時(shí)器(獨(dú)立的和窗口型的);
——系統(tǒng)時(shí)間定時(shí)器:24位自減型計(jì)數(shù)器;
——2個(gè)16位基本定時(shí)器用于驅(qū)動(dòng)DAC。
多達(dá)13個(gè)通信接口:
——多達(dá)2個(gè)I2C接口(支持SMBus/PMBus);
——多達(dá)5個(gè)USART接口(支持ISO7816、LIN、IrDA接口和調(diào)制解調(diào)控制);
——多達(dá)3個(gè)SPI接口(18Mb/s),2個(gè)可復(fù)用的I2S接口;
——CAN接口(2.0B主動(dòng));
——USB2.0全速接口;
——SDIO接口。
CRC計(jì)算單元,96位的芯片唯一代碼。
ECOPACK?封裝。
器件型號(hào)列表如下:
STM32F103RE單片機(jī)內(nèi)部結(jié)構(gòu)框圖和引腳圖如圖6.18所示,各引腳的定義如表6.9所示。
圖6.18STM32F103RE單片機(jī)內(nèi)部結(jié)構(gòu)框圖和引腳圖
6.3.2STM32F103xx器件一覽
表6.10給出了STM32F103xC、STM32F103xD和STM32F103xE器件功能與配置說明。
6.3.3系列之間的全兼容性
STM32F103xx是一個(gè)完整的系列,其成員之間是完全地腳對(duì)腳兼容,軟件和功能上也兼容。在參考手冊(cè)中,STM32F103x4和STM32F103x6被歸為小容量產(chǎn)品,TM32F103x8和STM32F103xB被歸為中等容量產(chǎn)品,STM32F103xC、STM32F103xD和STM32F103xE被歸為大容量產(chǎn)品。
STM32F103x4、STM32F103x6、STM32F103xC、STM32F103xD和STM32F103xE可直接替換中等容量的STM32F103x8/B產(chǎn)品,為用戶在產(chǎn)品開發(fā)中嘗試使用不同的存儲(chǔ)容量提供了更大的自由度。表6.11詳細(xì)介紹了STM32F103xx系列產(chǎn)品的相關(guān)信息。
6.3.4ARM?的Cortex?-M3處理器特性
1.CPU
ARM的Cortex?-M3處理器是最新一代的嵌入式ARM處理器,它為實(shí)現(xiàn)MCU的需要提供了低成本的平臺(tái),縮減了引腳數(shù)目,降低了系統(tǒng)功耗,同時(shí)提供了卓越的計(jì)算性能和先進(jìn)的中斷系統(tǒng)響應(yīng)。
2.CRC(循環(huán)冗余校驗(yàn))計(jì)算單元
CRC(循環(huán)冗余校驗(yàn))計(jì)算單元使用一個(gè)固定的多項(xiàng)式發(fā)生器,從一個(gè)32位的數(shù)據(jù)字產(chǎn)生一個(gè)CRC碼。在眾多的應(yīng)用中,基于CRC的技術(shù)被用于驗(yàn)證數(shù)據(jù)傳輸或存儲(chǔ)的一致性。在EN/IEC60335-1標(biāo)準(zhǔn)的范圍內(nèi),它提供了一種檢測(cè)閃存存儲(chǔ)器錯(cuò)誤的手段,CRC計(jì)算單元可以用于實(shí)時(shí)地計(jì)算軟件的簽名,并與在鏈接和生成該軟件時(shí)產(chǎn)生的簽名對(duì)比。
3.時(shí)鐘與啟動(dòng)
系統(tǒng)時(shí)鐘的選擇是在啟動(dòng)時(shí)進(jìn)行的,復(fù)位時(shí)內(nèi)部8MHz的RC振蕩器被選為默認(rèn)的CPU時(shí)鐘,隨后可以選擇外部的、具有失效監(jiān)控的4~16MHz時(shí)鐘;當(dāng)檢測(cè)到外部時(shí)鐘失效時(shí),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年堿錳電池合作協(xié)議書
- 小學(xué)一年級(jí)2025年秋季學(xué)期語文教學(xué)計(jì)劃
- 2025年企業(yè)公轉(zhuǎn)私借款合同(2篇)
- 2025年九年級(jí)第二學(xué)期思想品德教學(xué)工作總結(jié)(三篇)
- 2025年個(gè)人房屋買賣協(xié)議例文(五篇)
- 2025年買賣合同要式合同(2篇)
- 2025年代理委托貸款協(xié)議(2篇)
- 2025年九年級(jí)初三班主任的工作總結(jié)模版(二篇)
- 2025年二手房買賣購房合同樣本(三篇)
- 2025年個(gè)人私人借款合同標(biāo)準(zhǔn)版本(2篇)
- 中學(xué)學(xué)校2024-2025學(xué)年第二學(xué)期教學(xué)工作計(jì)劃
- 人大代表小組活動(dòng)計(jì)劃人大代表活動(dòng)方案
- 2023年護(hù)理人員分層培訓(xùn)、考核計(jì)劃表
- 《銷售培訓(xùn)實(shí)例》課件
- 2025年四川省新高考八省適應(yīng)性聯(lián)考模擬演練(二)地理試卷(含答案詳解)
- 【經(jīng)典文獻(xiàn)】《矛盾論》全文
- Vue3系統(tǒng)入門與項(xiàng)目實(shí)戰(zhàn)
- 2024年寧夏回族自治區(qū)中考英語試題含解析
- 安全安全技術(shù)交底模板
- 房屋建筑工程投標(biāo)方案(技術(shù)方案)
- 部編版一年級(jí)語文下冊(cè)語文園地五《單元拓展-字族文》教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論