單片機原理及應用(第二版) 課件 (柴鈺)第4-6章 中斷、定時與串行通信;單片機系統(tǒng)的擴展及接口技術(shù);高性能微處理器_第1頁
單片機原理及應用(第二版) 課件 (柴鈺)第4-6章 中斷、定時與串行通信;單片機系統(tǒng)的擴展及接口技術(shù);高性能微處理器_第2頁
單片機原理及應用(第二版) 課件 (柴鈺)第4-6章 中斷、定時與串行通信;單片機系統(tǒng)的擴展及接口技術(shù);高性能微處理器_第3頁
單片機原理及應用(第二版) 課件 (柴鈺)第4-6章 中斷、定時與串行通信;單片機系統(tǒng)的擴展及接口技術(shù);高性能微處理器_第4頁
單片機原理及應用(第二版) 課件 (柴鈺)第4-6章 中斷、定時與串行通信;單片機系統(tǒng)的擴展及接口技術(shù);高性能微處理器_第5頁
已閱讀5頁,還剩364頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第4章中斷、定時與串行通信4.1中斷系統(tǒng)4.2定時/計數(shù)器4.3串行通信及其接口習題4

4.1中斷系統(tǒng)

4.1.1中斷的概念中斷是指CPU對系統(tǒng)中或系統(tǒng)外發(fā)生的某個事件的一種響應過程,即CPU正在執(zhí)行程序時,系統(tǒng)發(fā)生某一事件需要迅速處理,CPU暫時停止現(xiàn)行程序的執(zhí)行,而自動轉(zhuǎn)去處理該事件;當事件處理完成后,CPU再返回到被暫停的程序斷點處,繼續(xù)執(zhí)行原來的程序,這一過程稱為中斷,如圖4.1所示。

圖4.1中斷過程

為實現(xiàn)中斷功能,單片機的中斷系統(tǒng)應解決以下幾方面的問題。

1.中斷源

所謂中斷源,是指引起CPU中斷的事件,即中斷請求信號的來源。中斷源向CPU提出的處理請求,稱為中斷請求或中斷申請。中斷請求信號的產(chǎn)生及該信號怎樣被CPU有效地識別是中斷源需要解決的問題,而且要求中斷請求信號產(chǎn)生一次,只能被CPU接收處理一次,不能一次中斷被CPU多次響應,這也就是中斷請求信號的及時撤除問題。

2.中斷響應、處理與返回

中斷源向CPU提出中斷請求,CPU暫時停止自身的事務,轉(zhuǎn)去處理事件的過程,稱為中斷響應過程。對事件的整個處理過程,稱為中斷服務或中斷處理。處理完畢,再回到原來被中止的地方,稱為中斷返回。CPU接收到中斷請求信號后,怎樣轉(zhuǎn)向該中斷源的中斷服務程序及執(zhí)行完中斷處理程序后如何正確返回被中斷的程序繼續(xù)執(zhí)行是問題的關(guān)鍵。中斷響應與返回的過程中涉及CPU響應中斷的條件、現(xiàn)場保護等問題。

3.中斷級別

通常一個中斷系統(tǒng)都有多個中斷源,經(jīng)常會出現(xiàn)兩個以上中斷源同時提出中斷請求的情況,這樣就需要設(shè)計者事先根據(jù)輕重緩急給每一個中斷源確定一個中斷級別(優(yōu)先權(quán)),當多個中斷源同時發(fā)出中斷申請時,CPU能找到優(yōu)先權(quán)級別最高的中斷源,響應它的中斷請求,在優(yōu)先權(quán)級別最高的中斷源處理完后,再響應級別較低的中斷源。當CPU響應某一中斷源的請求并進行中斷處理時,若有優(yōu)先權(quán)級別更高的中斷源發(fā)出中斷申請,則CPU要能中斷正在進行的中斷服務程序,保留這個程序的斷點和現(xiàn)場,響應高級中斷,在高級中斷處理完以后,再繼續(xù)執(zhí)行被中斷的中斷程序,這種情況稱為中斷嵌套。CPU一般都可實現(xiàn)多級中斷嵌套。

4.1.2MCS-51系列單片機的中斷系統(tǒng)

1.?MCS-51系列單片機中斷系統(tǒng)的組成

MCS-51系列單片機的中斷系統(tǒng)是8位單片機中功能較強的一種。51子系列單片機具有5個中斷源,52子系列單片機具有6個中斷源,具有兩級中斷優(yōu)先級,可實現(xiàn)兩級中斷嵌套,4個用于中斷控制的特殊功能寄存器IE、IP、TCON和SCON用來控制中斷的類型、中斷的開放/禁止和各種中斷源的優(yōu)先級別。MCS-51系列單片機中斷系統(tǒng)結(jié)構(gòu)框圖如圖4.2所示。

圖4.2MCS-51系列單片機中斷系統(tǒng)結(jié)構(gòu)框圖

1)定時/計數(shù)器控制寄存器TCON

TCON為定時/計數(shù)器T0、Tl的控制器寄存器,同時也鎖存了T0、Tl的溢出中斷請求信號標志和外部中斷請求信號標志,其各位的定義如下:

2)串行口控制寄存器SCON

SCON為串行口控制寄存器,SCON的低兩位鎖存串行口接收中斷和發(fā)送中斷標志RI和TI,其格式如下:

?TI:串行口發(fā)送中斷標志位。

?RI:串行口接收中斷標志位。

3.中斷控制

MCS-51單片機有兩個特殊功能寄存器,用于中斷系統(tǒng)的控制,分別為中斷允許寄存器IE和中斷優(yōu)先級寄存器IP。

1)中斷允許寄存器IE

IE控制CPU對中斷源的開放或屏蔽,其格式如下:

?EA:CPU總中斷開放標志位。

?ES:串行中斷允許標志位。

?ET1:定時/計數(shù)器T1溢出中斷允許標志位。

?EX1:外部中斷1中斷允許標志位。

?ET0:定時/計數(shù)器T0溢出中斷允許標志位。

?EX0:外部中斷0中斷允許標志位。

2)中斷優(yōu)先級寄存器IP

MCS-51單片機具有兩個中斷優(yōu)先級,每個中斷源可編程為高優(yōu)先級中斷或低優(yōu)先級中斷,并可實現(xiàn)二級中斷嵌套。特殊功能寄存器IP就是用來設(shè)定各中斷源優(yōu)先級別的,其格式如下:

?PS:串行口中斷優(yōu)先級控制位。

?PT1:定時/計數(shù)器T1中斷優(yōu)先級控制位。

?PX1:外部中斷1中斷優(yōu)先級控制位。

?PT0:定時/計數(shù)器T0中斷優(yōu)先級控制位。

?PX0:外部中斷0中斷優(yōu)先級控制位。

通過設(shè)置IP寄存器把各中斷源的優(yōu)先級分為高、低兩級,它們遵循兩條基本原則:

(1)低優(yōu)先級中斷可以被高優(yōu)先級中斷所中斷,反之不能。

(2)一種中斷一旦得到響應,與它同級的中斷不能再中斷。

當CPU同時收到幾個同一優(yōu)先級別的中斷請求時,哪一個的請求得到服務取決于內(nèi)部的硬件查詢順序,CPU將按自然優(yōu)先級順序確定響應哪個中斷請求。其自然優(yōu)先級由硬件形成,查詢次序如表4.1所示。

4.1.3中斷處理過程

中斷處理過程可分為三個階段:中斷響應、中斷處理和中斷返回。

1.中斷響應

1)中斷響應條件

單片機響應中斷的條件為中斷源有請求(中斷允許寄存器IE相應位置1),且CPU開中斷(即EA=1)。這樣,在每個機器周期的S5P2期間,對所有中斷源按用戶設(shè)置的優(yōu)先級和內(nèi)部規(guī)定的優(yōu)先級進行順序檢測,并可在S6期間找到所有有效的中斷請求。如有中斷請求,且滿足下列條件,則在下一個機器周期的S1期間響應中斷,否則將丟棄中斷采樣的結(jié)果:

(1)無同級或高級中斷正在處理;

(2)現(xiàn)行指令執(zhí)行到最后一個機器周期且已結(jié)束;

(3)若現(xiàn)行指令為RETI或訪問IE、IP的指令時,執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢。

2)中斷響應過程

CPU響應中斷后,首先置位相應的優(yōu)先級觸發(fā)器,然后把斷點地址壓入堆棧保護,并將響應的中斷矢量地址裝入程序計數(shù)器,轉(zhuǎn)入該中斷服務程序進行處理。各中斷源與之對應的矢量地址見表4.2。

3)中斷響應時間

所謂中斷響應時間,是指CPU檢測到中斷請求信號到轉(zhuǎn)入中斷服務程序入口所需要的機器周期數(shù)。了解中斷響應時間對設(shè)計實時測控應用系統(tǒng)有重要指導意義。

中斷響應的最長時間(在無特殊情況下)由下列情況決定:若中斷檢測時正在執(zhí)行RETI或訪問IE或IP指令的第一個機器周期,則包括檢測在內(nèi)需要兩個機器周期(以上三條指令均需兩個機器周期);若緊接著要執(zhí)行的指令恰好是執(zhí)行時間最長的乘、除法指令,則其執(zhí)行時間均為四個機器周期;再用兩個機器周期執(zhí)行一條長調(diào)用指令才轉(zhuǎn)入中斷服務程序。這樣,總共需要8個機器周期。其他情況下的中斷響應時間一般為3~8個機器周期。

2.中斷處理

CPU響應中斷結(jié)束后即轉(zhuǎn)至中斷服務程序的入口,并從中斷服務程序的第一條指令開始執(zhí)行,直到返回指令為止,這個過程稱為中斷處理或中斷服務。中斷處理包括兩部分內(nèi)容:一是保護現(xiàn)場和恢復;二是為中斷源服務。

保護現(xiàn)場是指保護PSW、工作寄存器、專用寄存器等數(shù)據(jù)。如果在中斷服務程序中要用這些寄存器,則在進入中斷服務之前應將它們的內(nèi)容保護起來,即保護現(xiàn)場。在中斷結(jié)束時,即執(zhí)行RETI指令之前,再恢復這些寄存器的內(nèi)容,即恢復現(xiàn)場。

中斷服務是針對中斷源的具體要求進行的處理。

3.中斷返回

中斷服務程序中,最后一條指令是中斷返回指令RETI,該指令的功能是結(jié)束本次中斷服務,返回到原程序。在執(zhí)行RETI指令時,將壓入堆棧的中斷點地址彈出并送回程序計數(shù)器,使程序返回到原來被中斷處繼續(xù)執(zhí)行,同時清除相應的優(yōu)先級觸發(fā)器。

4.1.4中斷請求的撤除

中斷源發(fā)出中斷請求后,CPU首先置位相應的中斷標志位,然后通過對中斷標志位的檢測決定是否響應中斷,所以撤除中斷請求就是要清除中斷標志。CPU響應某中斷請求后,在該中斷返回之前,應將其對應的中斷標志位復位,否則CPU在返回主程序后將再次響應該中斷。MCS-51單片機各個中斷源標志位的清除方法不相同。

圖4.3給出了一種常用的撤銷外部中斷請求電路。

圖4.3撤銷外部中斷請求電路

圖4.4擴展四個外部中斷源電路

4.2定時/計數(shù)器

4.2.1定時/計數(shù)器的結(jié)構(gòu)及工作原理1.定時/計數(shù)器的結(jié)構(gòu)MCS-51單片機內(nèi)部的定時/計數(shù)器邏輯結(jié)構(gòu)如圖4.5所示,它由6個特殊功能寄存器組成。其中,TMOD為定時/計數(shù)器方式控制寄存器,用來設(shè)置兩個16位定時/計數(shù)器T0和T1的工作方式;TCON為定時/計數(shù)器控制寄存器,主要用來控制定時/計數(shù)器T0和T1的啟動和停止。兩個16位的定時/計數(shù)器T0?(TH0和TL0)和T1(TH1和TL1)用于設(shè)置定時或計數(shù)。

圖4.5定時/計數(shù)器邏輯結(jié)構(gòu)框圖

2.定時/計數(shù)器的工作原理

MCS-51單片機內(nèi)部的兩個16位可編程的定時/計數(shù)器T0和T1均有定時和計數(shù)功能。T0和T1的工作方式及功能選擇、定時時間、啟動方式等均可以通過編程對相應特殊功能

寄存器TMOD和TCON進行設(shè)置來實現(xiàn),計數(shù)值也可由軟件命令設(shè)置于16位的定時/計數(shù)器(TH0、TL0或TH1、TL1)中。

4.2.2定時/計數(shù)器的工作方式寄存器及控制寄存器

1.定時/計數(shù)器方式寄存器TMOD(89H)

定時/計數(shù)器T0、T1都有四種工作方式,可通過程序?qū)MOD進行設(shè)置來選擇,其各位定義如下:

?GATE:門控位,用于控制定時/計數(shù)器的啟動是否受外部中斷請求信號的控制。

?:定時或計數(shù)功能選擇位。

?M1、M0:定時/計數(shù)器工作方式選擇位。MCS-51單片機的定時/計數(shù)器有四種工作方式,如表4.3所示。

2.定時/計數(shù)器控制寄存器TCON

TCON用于控制定時/計數(shù)器的啟、停、溢出標志和外部中斷信號觸發(fā)方式,其各位定義如下:

?TR1:定時/計數(shù)器T1的啟??刂莆?。

?TR0:定時/計數(shù)器T0的啟停控制位。

3.定時/計數(shù)器的工作方式

1)方式0

方式0為13位定時/計數(shù)器。13位計數(shù)寄存器由TH0(TH1)的高8位和TL0(TL1)的低5位構(gòu)成,TL0(TL1)中的高3位不用。T0(或T1)方式0的結(jié)構(gòu)框圖如圖4.6所示。

圖4.6T0(或T1)方式0的結(jié)構(gòu)框圖

2)方式1

方式1是16位定時/計數(shù)器,其結(jié)構(gòu)與方式0類似,唯一的區(qū)別在于計數(shù)器的位數(shù)不同。方式1的加1計數(shù)器由TH0(TH1)的8位和TL0(TL1)的8位構(gòu)成。

在方式1時,計數(shù)器的計數(shù)值由下式確定:

N?=?216-x?=?65536-x

計數(shù)范圍為1~65536。

定時器的定時時間由下式確定:

T?=?N?×?Tcy?=?(65536-x)Tcy

如果fosc=12MHz,則Tcy=1μs,定時范圍為1~65536μs。

3)方式2

方式2是能自動重裝計數(shù)初值的8位計數(shù)器。方式2中把16位的計數(shù)器拆成兩個8位計數(shù)器,低8位作計數(shù)器用,高8位用以保存計數(shù)初值。當?shù)?位計數(shù)產(chǎn)生溢出時,將溢出中斷標志位置1,同時又將保存在高8位中的計數(shù)初值重新裝入低8位計數(shù)器中,繼續(xù)計數(shù),循環(huán)不止。T0(或T1)方式2的結(jié)構(gòu)框圖如圖4.7所示。

圖4.7T0(或T1)方式2的結(jié)構(gòu)框圖

在工作方式2時,計數(shù)器的計數(shù)值由下式確定:

N?=?28-x?=?256-x

計數(shù)范圍為1~256。

定時器的定時值由下式確定:

T?=?N?×?Tcy?=?(256-x)Tcy

如果fosc=12MHz,則Tcy=1μs,定時范圍為1~256μs。

4)方式3

定時/計數(shù)器T0和T1在前三種工作方式下,其功能完全相同。但工作方式3對T0和T1是大不相同的。當T1設(shè)置為工作方式3時,它將保持初始值不變,并停止計數(shù),其狀態(tài)相當于將啟停控制位TR1設(shè)為0,因此T1不能工作在方式3下。

若將T0設(shè)為方式3,TL0和TH0被分成兩個互相獨立的8位計數(shù)器,其邏輯結(jié)構(gòu)如圖4.8所示。

圖4.8T0方式3的結(jié)構(gòu)框圖

4.2.3定時/計數(shù)器應用舉例

1.定時/計數(shù)器初始化

定時/計數(shù)器初始化的內(nèi)容包含以下幾點:

(1)確定定時/計數(shù)器的工作模式及工作方式,即給TMOD置相應的控制字。

(2)計算計數(shù)初值,送入計數(shù)器TH0、TL0或TH1、TL1中。

(3)根據(jù)使用要求確定是否需要開放中斷,若使用溢出中斷功能,則需要對中斷允許寄存器IE以及中斷優(yōu)先級寄存器IP進行設(shè)置。

(4)給定時/計數(shù)器控制寄存器TCON送入命令字,啟動定時/計數(shù)器工作。

2.定時/計數(shù)器計數(shù)初值計算

1)定時器的初值計算

當選擇定時功能時,計數(shù)器是對機器周期進行計數(shù)。設(shè)T為定時時間,x為計數(shù)器的初值,n為計數(shù)器位數(shù),單片機系統(tǒng)時鐘頻率為fosc,則計數(shù)初值可通過如下公式計算:

2)計數(shù)功能的初值計算

選擇計數(shù)功能時,計數(shù)脈沖由外部引腳引入,是對外部脈沖進行計數(shù),計數(shù)初值可由下式確定:

x?=?2n-N

式中,N為計數(shù)值,其他參數(shù)的定義同定時器初值計算公式。

3.應用舉例

例4.2用定時/計數(shù)器T1進行外部事件計數(shù),每計數(shù)1000個脈沖后,定時/計數(shù)器T1轉(zhuǎn)為定時工作方式,定時10ms后又轉(zhuǎn)為計數(shù)方式,如此循環(huán)不止。假定fosc為6MHz,用方式1編程。

解將T1在定時和計數(shù)兩種方式下輪換工作,首先讓T1工作在方式1。

T1為定時器時初值計算如下:

T1為計數(shù)器時初值計算如下:

4.3串行通信及其接口

CPU與外部的信息交換稱為通信。通信的基本方式可分為并行通信和串行通信兩種。并行通信是指構(gòu)成信息的二進制字符的各位數(shù)據(jù)同時傳送的通信方法。并行通信的主要特點是傳輸速度快,在短距離通信中占優(yōu)勢,對長距離數(shù)據(jù)傳輸來說,因為信號線太多導致線路復雜,成本高。串行通信是指構(gòu)成信息的二進制字符的各位數(shù)據(jù)一位一位順序地傳送的通信方式。串行通信線路簡單,成本低但傳輸速度慢,適用于遠距離傳輸。

4.3.1串行通信方式

1.異步通信

在異步通信中,被傳送的信息通常是一個字符代碼或一個字節(jié)數(shù)據(jù),它們都以規(guī)定的相同傳送格式(字符幀格式)一幀一幀地發(fā)送或接收。發(fā)送端和接收端各有一套彼此獨立、互不同步的通信機構(gòu),可以由各自的時鐘來控制數(shù)據(jù)的發(fā)送和接收。

一個字符在異步傳送中又稱為一幀數(shù)據(jù),字符幀也稱數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗位和停止位四部分組成,異步通信的字符幀格式如圖4.9所示。圖4.9異步通信的字符幀格式

在串行異步傳送中,通信雙方必須事先約定:

字符格式。雙方要事先約定字符的編碼形式、奇偶校驗形式及起始位和停止位的規(guī)定。例如用ASCII碼通信,有效數(shù)據(jù)為7位,加一個奇偶校驗位、一個起始位和一個停止位共10位。當然停止位也可以大于1位。

波特率。波特率就是數(shù)據(jù)的傳送速率,即每秒鐘傳送的二進制位數(shù),單位為位/秒。它與字符的傳送速率(字符/秒)之間有以下關(guān)系:

波特率?=?一個字符的二進制編碼位數(shù)?×?字符/秒

發(fā)送端與接收端的波特率必須一致。

2.同步通信

同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。這里的信息幀與異步通信中的字符幀不同,通常含有若干個數(shù)據(jù)字符,即數(shù)據(jù)塊,它們都是由同步字符、數(shù)據(jù)字符和校驗字符三部分組成的。一旦檢測到同步字符,下面就是按順序傳送的數(shù)據(jù)塊。同步通信的格式如圖4.10所示。

圖4.10同步通信的格式

3)串行通信的制式

串行通信中,信息數(shù)據(jù)在通信線路兩端的通信設(shè)備之間傳遞,按照數(shù)據(jù)傳遞方向和兩端通信設(shè)備所處的工作狀態(tài),可將串行通信分為單工、半雙工和全雙工三種工作制式,如圖4.11所示。

圖4.11串行通信數(shù)據(jù)傳送的制式

4.3.2MCS-51單片機的串行通信接口及其工作方式

1.串行口的結(jié)構(gòu)與功能

MCS-51單片機串行口內(nèi)部結(jié)構(gòu)示意圖如圖4.12所示。?MCS-51單片機串行口主要由兩個物理上獨立的串行數(shù)據(jù)緩沖寄存器SBUF、發(fā)送控制器、接收控制器、輸入移位寄存器和輸出控制門組成。兩個特殊功能寄存器SCON和PCON用來控制串行口的工作方式和波特率。發(fā)送緩沖寄存器SBUF只能寫,不能讀;接收緩沖寄存器SBUF只能讀,不能寫。兩個緩沖寄存器共用一個地址99H,可以用讀/寫指令區(qū)分。圖4.12MCS-51單片機串行口內(nèi)部結(jié)構(gòu)示意圖

2.與串行口相關(guān)的控制寄存器

MCS-51單片機中,與串行口工作相關(guān)的特殊功能寄存器有四個,分別為串行口控制寄存器SCON、電源控制寄存器PCON、中斷允許寄存器IE和中斷優(yōu)先級寄存器IP。其中PCON、IE、IP在前面章節(jié)已經(jīng)介紹過,在此只介紹SCON。

SCON用于串行口的工作方式選擇、接收和發(fā)送控制以及串行口的狀態(tài)標志,是一個可位尋址的8位特殊功能寄存器。其各位的定義如下:

?SM0、SM1:由軟件置位或清0,用于選擇串行口四種工作方式,如表4.4所示。

3.串行口工作方式

1)方式0

方式0下,串行口用作同步移位寄存器,其波特率固定為單片機振蕩頻率的1/12,串行傳送數(shù)據(jù)8位為一幀,由RXD(P3.0)引腳發(fā)送或接收,低位在前,高位在后。TXD(P3.1)引腳輸出同步移位脈沖信號,可以作為外部擴展的移位寄存器的移位時鐘,因而串行口方式0常用于擴展外部并行I/O口。

2)方式1

在方式1下,串行口為10位通用異步通信接口。一幀信息包括1位起始位(0)、8位數(shù)據(jù)位(低位在前)和l位停止位(1)。TXD是發(fā)送端,RXD是接收端。其傳送波特率可變。

3)方式2與方式3

方式2、方式3都是11位異步通信接口,發(fā)送或接收的一幀信息由11位組成,其中1位起始位、9位數(shù)據(jù)位(低位在前)和1位停止位。方式2與方式3僅波特率不同,方式2的波特率為fosc/32(SMOD=1時)或fosc/64(SMOD=0時),而方式3的波特率由定時/計數(shù)器T1及SMOD決定。

4.波特率設(shè)置

串行口的四種工作方式對應著三種波特率模式。

對于方式0,波特率是固定的,為fosc12。

對于方式2,波特率由振蕩頻率fosc和SMOD(PCON.7)所決定,其對應公式為

當SMOD=0時,波特率為fosc/64;當SMOD=1時,波特率為fosc/32。

對于方式1和方式3,波特率由定時/計數(shù)器T1的溢出率和SMOD決定,即由下式確定:

其中,溢出率取決于計數(shù)速率和定時器的初值。當利用TI作波特率發(fā)生器時,通常選用方式2,即8位自動重裝初值模式,其中TL1作計數(shù)器,TH1存放自動重裝的定時初值。因此,對T1初始化時,寫入方式控制字TMOD=00100000B。

這樣每過“256-x”個機器周期,定時器T1就會產(chǎn)生一次溢出,溢出周期為

溢出率為溢出周期的倒數(shù),因此,波特率的公式還可寫成:

實際應用時,總是先確定波特率,再計算定時器T1的定時初值。根據(jù)上述波特率的公式,得出計算定時器方式2的初值x的公式為

4.3.3串行通信應用舉例

1.利用串行口擴展并行I/O接口

當串行口工作于方式0時,是移位寄存器方式,此時可以利用串行口外接移位寄存器將串行口擴展為并行口。

例4.3利用串行口方式0擴展I/O接口,接8個共陰極數(shù)碼管,使片內(nèi)RAM的30H~37H單元的內(nèi)容依次顯示在8個數(shù)碼管上。

解串行口工作在方式0,在TXD和RXD引腳連接串入并出的移位寄存器74LS164即可實現(xiàn)題目要求,利用串行口擴展并行I/O口電路圖如圖4.13所示。圖4.13利用串行口擴展并行I/O口電路圖

2.用串行口作異步通信

串行口工作方式1、2、3都是異步通信,它們之間的區(qū)別在于字符幀格式和通信波特率不同。雙機異步通信的連接線路圖如圖4.14所示。圖4.14雙機異步通信的連接線路圖

例4.4甲乙兩機按工作方式1進行串行通信,甲乙雙方的fosc=11.059MHz,波特率取2400,甲機將片內(nèi)RAM的30H到3FH的內(nèi)容向乙機發(fā)送,先發(fā)送數(shù)據(jù)塊長度,再發(fā)送數(shù)據(jù)。甲機數(shù)據(jù)全部發(fā)送完向乙機發(fā)送一個累加校驗和。乙機接收數(shù)據(jù)進行累加和校驗,若與甲機發(fā)送的一致,則發(fā)送數(shù)據(jù)AAH,表示接收正確;若不一致,則發(fā)送數(shù)據(jù)BBH,甲機接收到BBH后,重發(fā)數(shù)據(jù)。編寫程序。

解當fosc=11.0592MHz,波特率取2400,取SMOD為0,定時/計數(shù)器T1工作于方式2時,計數(shù)初值為0F4H。設(shè)R6作為數(shù)據(jù)長度計算器,R5為累加和寄存器。乙機接收的數(shù)據(jù)存放于片內(nèi)RAM的30H開始的單元。

3.多機通信

MCS-51的方式2和方式3有一個專門的應用領(lǐng)域,即多處理機通信,它可以方便地應用于主從式系統(tǒng)。這種系統(tǒng)采用一臺主機和多臺從機,主機和各從機可實現(xiàn)全雙工通信,其中主機發(fā)送的信息可被各從機接收,而各從機發(fā)送的信息只能由主機接收,從機與從機之間不能互相直接通信。圖4.15給出了多機通信連接圖。

圖4.15多機通信連接圖

主、從多機通信的過程如下:

(1)使所有的從機的SM2位置1,以便接收主機發(fā)來的地址。

(2)主機發(fā)出一幀地址信息,其中包括8位需要與之通信的從機地址,第9位為1。

(3)所有從機接收到地址幀后,各自將所接收到的地址與本機地址相比較,對于地址相同的從機,使SM2位清0以接收主機隨后發(fā)來的所有信息;對于地址不符合的從機,仍保持SM2=1的狀態(tài),對主機隨后發(fā)來的數(shù)據(jù)不予理睬,直至發(fā)送新的地址幀。

(4)主機給已被尋址的從機發(fā)送控制指令和數(shù)據(jù)(數(shù)據(jù)幀的第9位為0)。

習題4

1.什么是中斷?中斷有什么特點?2.MCS-51單片機有哪幾個中斷源?如何設(shè)定它們的優(yōu)先級?3.中斷響應有什么條件?4.敘述CPU響應中斷的過程。5.外部中斷有哪兩種觸發(fā)方式?對觸發(fā)脈沖或電平有什么要求?如何選擇和設(shè)定?6.MCS-51定時/計數(shù)器的定時功能和計數(shù)功能有什么不同?分別應用在什么場合?

7.MCS-51單片機的定時/計數(shù)器是增1計數(shù)器還是減1計數(shù)器?增1和減1計數(shù)器在計數(shù)和計算計數(shù)初值時有什么不同?

8.簡述MCS-51單片機定時/計數(shù)器四種工作方式的特點,如何選擇和設(shè)定之?

9.當定時/計數(shù)器工作于方式1下,晶振頻率為6MHz時,請計算最短定時時間和最長定時時間。

10.使用定時器T0以工作方式2產(chǎn)生100s定時,在P1.0輸出周期為200s的連續(xù)正方波脈沖。已知晶振頻率fosc=6MHz。

11.用定時器T1以工作方式2實現(xiàn)計數(shù),每計100次進行累加器加1操作。

12.MCS-51單片機通信有哪幾種方式?各種通信方式有什么異同?

13.什么是串行異步通信?有哪幾種幀格式?

14.定時器T1作串行口波特率發(fā)生器時,為什么采用方式2?

15.MCS-51型單片機串行口有哪幾種工作方式?簡述各種工作方式的特點。

16.利用串行口設(shè)計四位靜態(tài)LED顯示,畫出電路圖并編寫程序,要求四位LED每隔1s交替顯示“1234”和“5678”。

17.設(shè)計并編程,完成單片機的雙機通信程序,將甲機片外RAM的1000H~100FH單元中的數(shù)據(jù)塊通過串行口傳送到乙機的20H~2FH單元內(nèi)。第5章單片機系統(tǒng)的擴展

及接口技術(shù)5.1系統(tǒng)擴展概述5.2存儲器的擴展5.3I/O接口技術(shù)概述5.4可編程并行I/O接口芯片8255A5.5A/D轉(zhuǎn)換器接口5.6D/A轉(zhuǎn)換器接口5.7應用舉例習題5

5.1系統(tǒng)擴展概述5.1.1最小應用系統(tǒng)單片機系統(tǒng)的擴展是以最小系統(tǒng)為基礎(chǔ)的,故應首先熟悉最小系統(tǒng)的結(jié)構(gòu)。所謂最小系統(tǒng),也稱為最小應用系統(tǒng),是指一個真正可用的單片機最小配置系統(tǒng)。實際上,內(nèi)部帶有程序存儲器的AT89C51或AT89S51等單片機本身就是一個最小應用系統(tǒng),許多實際應用系統(tǒng)就是用這種成本低和體積小的單片機結(jié)構(gòu)實現(xiàn)高性能控制的。對于內(nèi)部無程序存儲器的芯片來說,則要用外擴程序存儲器的方法才能構(gòu)成一個最小應用系統(tǒng)。

圖5.1單片機最小應用系統(tǒng)

該系統(tǒng)的特點如下:

(1)系統(tǒng)有大量的I/O線可供用戶使用:P0、P1、P2、P3四個口都可以作為I/O口使用。

(2)內(nèi)部存儲器的容量有限,只有128B的RAM和4KB的程序存儲器。

(3)應用系統(tǒng)的開發(fā)具有特殊性,由于應用系統(tǒng)的P0口、P2口在開發(fā)時需要作為數(shù)據(jù)和地址總線,因此這兩個口上的硬件調(diào)試只能用模擬的方法進行。

5.1.2系統(tǒng)擴展的內(nèi)容與方法

1.單片機的三總線結(jié)構(gòu)

當單片機最小系統(tǒng)不能滿足系統(tǒng)功能的要求時,就需要進行擴展。為了使單片機能方便地與各種擴展芯片連接,常將單片機的外部連線轉(zhuǎn)換為一般的微型計算機三總線結(jié)構(gòu)形式。對于AT89S51單片機,其三總線結(jié)構(gòu)按照下列方式構(gòu)成。

圖5.2為AT89S51單片機的三總線結(jié)構(gòu)框圖。這樣一來,擴展芯片與主機的連接方法就同一般三總線結(jié)構(gòu)的微型計算機一樣了。對于MCS-51系列及其兼容單片機而言,各大公司為其生產(chǎn)了大量的配套外圍芯片,使其系統(tǒng)的擴展相當方便。

圖5.2AT89S51單片機的三總線結(jié)構(gòu)框圖

2.系統(tǒng)擴展的內(nèi)容與方法

系統(tǒng)擴展一般有以下幾方面的內(nèi)容:

(1)外部程序存儲器的擴展。

(2)外部數(shù)據(jù)存儲器的擴展。

(3)輸入/輸出接口的擴展。

(4)管理功能器件(如定時/計數(shù)器、鍵盤/顯示器、中斷優(yōu)先級編碼器等)的擴展。

單片機系統(tǒng)通??墒褂孟铝衅骷M行擴展。

(1)使用TTL中、小規(guī)模集成電路進行擴展。

(2)采用IntelMCS-80/85微處理器外圍芯片來擴展。

(3)采用為MCS-48系列單片機設(shè)計的一些外圍芯片來擴展。

(4)采用與MCS-80/85外圍芯片兼容的其他一些通用標準芯片來擴展。

5.1.3常用的擴展器件簡介

1.8D鎖存器74LS373

74LS373是一種帶三態(tài)門的8D鎖存器,采用20腳DIP封裝,其引腳排列如圖5.3所示。

圖5.374LS373的引腳排列圖

2.總線驅(qū)動器74LS244、74LS245

總線驅(qū)動器74LS244和74LS245常用作三態(tài)數(shù)據(jù)緩沖器,其引腳排列如圖5.4所示。

圖5.4總線驅(qū)動器的引腳排列圖

3.3-8譯碼器74LS138

譯碼電路通常采用譯碼芯片,如74LS139(雙2-4譯碼器)、74LS138(3-8譯碼器)及74LS154(4-16譯碼器)等,其中以74LS138最為常用。74LS138的引腳排列如圖5.5所示。圖5.574LS138的引腳排列圖

5.2存儲器的擴展

5.2.1存儲器擴展概述MCS-51及其兼容單片機的地址總線寬度為16位,因此最大可尋址的外部存儲器空間為64KB,地址范圍為0000H~0FFFFH。AT89S51單片機內(nèi)部具有4KB程序存儲器,當程序大小超過4KB時,就需要進行程序存儲器的擴展。另外,其片內(nèi)數(shù)據(jù)存儲器空間只有128B,如果片內(nèi)的數(shù)據(jù)存儲器不夠用,則需進行數(shù)據(jù)存儲器的擴展。

存儲器芯片的選擇有兩種方法:線選法和譯碼法。

1.線選法

所謂線選法,就是直接以系統(tǒng)的地址線作為存儲器芯片的片選信號,為此只需把用到的地址線與存儲器芯片的片選端直接相連即可。線選法編址的優(yōu)點是簡單明了,不需要另外增加譯碼電路,成本低。但其缺點是浪費了大量的存儲空間,因此只適用于存儲容量不需要很大的小規(guī)模單片機系統(tǒng)。

2.譯碼法

所謂譯碼法,就是使用地址譯碼器對系統(tǒng)的片外地址進行譯碼,以其譯碼輸出作為存儲器芯片的片選信號。這種方法能有效地利用存儲空間,適用于大容量多芯片存儲器的

擴展。

譯碼法又有兩種,即完全譯碼法和部分譯碼法。

(1)完全譯碼。地址譯碼器使用了全部地址線,地址與存儲單元一一對應,一個存儲單元只占用一個地址。

(2)部分譯碼。地址譯碼器僅使用了部分地址線,地址與存儲單元不是一一對應的,而是一個存儲單元占用多個地址。如未使用的地址線數(shù)為n,則一個存儲單元將占用2n個

地址。

在設(shè)計存儲器擴展連接或分析擴展連接電路以確定存儲器芯片的地址范圍時,常采用地址譯碼關(guān)系圖,即一種用簡單的符號來表示全部地址譯碼關(guān)系的示意圖,如圖5.6所示。假定某存儲器芯片進行擴展連接時具有如圖5.6所示的譯碼地址線狀態(tài),我們以此為例來分析其擴展的地址范圍。圖5.6地址譯碼關(guān)系圖

3.擴展存儲器所需芯片數(shù)目的確定

若所選存儲器芯片字長與單片機字長一致,則只需擴展容量。所需芯片數(shù)目按下式確定:

若所選存儲器芯片字長與單片機字長不一致,則不僅需進行容量擴展,還需進行字長擴展。所需芯片數(shù)目按下式確定:

5.2.2程序存儲器的擴展

在單片機應用系統(tǒng)的擴展中,經(jīng)常要進行ROM的擴展。其擴展方法較為簡單,這是由單片機優(yōu)良的擴展性能決定的。單片機的地址總線為16位,擴展的片外ROM最大容量為64KB,地址為0000H~0FFFFH。擴展的片外RAM的最大容量也為64KB,地址也為0000H~0FFFFH。

在單片機應用系統(tǒng)中,片外ROM和RAM共享數(shù)據(jù)總線和地址總線。片外ROM的操作時序如圖5.7所示。圖5.7片外ROM的操作時序

單片機系統(tǒng)片外ROM擴展通常使用EPROM芯片。常用的EPROM芯片有2732、2764、27128、27256、27512等。它們的容量和引腳都有所區(qū)別,但用法類似。這幾種EPROM芯片的引腳定義如圖5.8所示。

圖5.8幾種EPROM芯片的引腳定義

例5.1要求用2764芯片來擴展AT89S51的片外程序存儲器空間,采用完全譯碼法,分配的地址范圍為0000H~3FFFH。

解本例采用完全譯碼法,即所有地址線全部連接,每個單元只占用一個地址。

①確定片數(shù)。題目要求的地址范圍為16KB,而一片2764的地址容量為8KB,顯然需要兩片2764。

也可按照5.2.1節(jié)所述的公式計算:

②分配地址范圍。根據(jù)①的分析,兩片2764應平均分擔16KB的地址,每片8KB,故第1片2764所占用的地址范圍為0000H~1FFFH;第2片2764所占用的地址范圍為2000H~3FFFH。

③畫出地址譯碼關(guān)系圖。

第1片:

第2片:

圖中打“×”部分為片內(nèi)譯碼(與單片機地址線對應相連)。對于2764來說有13位,其地址變化范圍為從全“0”變到全“1”,其余部分為片外譯碼(由單片機剩余的高位地址線與譯碼器輸入相連)。

④設(shè)計片外譯碼電路。

⑤畫出存儲器擴展連接圖(采用地址譯碼器的擴展存儲器如圖5.9所示)。

圖5.9中,74LS138只用了兩個譯碼輸出端,未用的輸出端可以保留,以便于今后系統(tǒng)升級使用。

圖5.9采用地址譯碼器的擴展存儲器連接圖

5.2.3數(shù)據(jù)存儲器的擴展

CPU對擴展的片外RAM進行讀和寫的操作時序如圖5.10和圖5.11所示。圖5.10片外RAM讀時序圖5.11片外RAM寫時序

圖5.12幾種RAM芯片的引腳定義

用6264擴展8KB的RAM的電路圖如圖5.13所示。圖5.136264的擴展電路

5.3I/O接口技術(shù)概述

5.3.1I/O接口電路的作用一個完整的計算機系統(tǒng)除了CPU、存儲器外,還必須有外部設(shè)備。計算機系統(tǒng)中共有兩類數(shù)據(jù)傳送操作:一類是CPU和存儲器之間的數(shù)據(jù)讀/寫操作;另一類則是CPU和外部設(shè)備之間的數(shù)據(jù)輸入/輸出(I/O)操作。CPU和存儲器之間的數(shù)據(jù)讀/寫操作在上文中已述及,這里不再贅述。此處討論CPU和外部設(shè)備之間的I/O操作。

I/O接口的功能主要有以下幾點。

1.對單片機輸出的數(shù)據(jù)鎖存

就對數(shù)據(jù)的處理速度來講,單片機往往要比I/O設(shè)備快得多。

2.對輸入設(shè)備的三態(tài)緩沖

單片機系統(tǒng)的數(shù)據(jù)總線是雙向總線,是所有I/O設(shè)備分時復用的。

3.信號轉(zhuǎn)換

由于I/O設(shè)備的多樣性,必須利用I/O接口實現(xiàn)單片機與I/O設(shè)備間信號類型(模擬或數(shù)字、電流或電壓)、信號電平(高或低、正或負)、信號格式(并行或串行)等的轉(zhuǎn)換。

4.時序協(xié)調(diào)

單片機輸入數(shù)據(jù)時,只有在確知輸入設(shè)備已向I/O接口提供了有效的數(shù)據(jù)后,才能進行讀操作。

5.3.2接口與端口

“接口”的英文是“Interface”,具有界面、相互聯(lián)系等含義。接口這個術(shù)語在計算機領(lǐng)域中應用十分廣泛。本章所述的接口則特指計算機與外設(shè)之間在數(shù)據(jù)傳送方面的聯(lián)系。其功能主要通過電路來實現(xiàn),因此也稱為接口電路,簡稱接口。

了實現(xiàn)接口電路在數(shù)據(jù)I/O傳送中的界面功能,在接口電路中應該包含數(shù)據(jù)寄存器、狀態(tài)寄存器和命令寄存器,以保存輸入/輸出數(shù)據(jù)、狀態(tài)信息和來自CPU的有關(guān)數(shù)據(jù)傳送的控制命令。由于在數(shù)據(jù)的I/O傳送中,CPU需要對這些寄存器進行讀/寫操作,因此這些寄存器都是可讀/寫的編址寄存器,對它們像存儲單元一樣進行編址。我們通常把接口電路中這些已編址并能進行讀或?qū)懖僮鞯募拇嫫鞣Q為端口(Port),簡稱口。

5.3.3I/O的編址方式

1.獨立編址方式

所謂獨立編址,就是把I/O和存儲器分開進行編址。

獨立編址方式的優(yōu)點是不占用存儲器的地址空間,不會減少內(nèi)存的實際容量;

缺點是需用專門的I/O指令和控制信號,從而增加了系統(tǒng)的軟、硬件復雜性。

2.統(tǒng)一編址方式

統(tǒng)一編址就是把系統(tǒng)中的I/O和存儲器統(tǒng)一進行編址。在這種編址方式中,把端口當作存儲單元來對待,也就是讓端口占用存儲器單元地址。這種編址又稱為存儲器映像(MemoryMapped)編址方式。采用這種編址方式的計算機只有一個統(tǒng)一的地址空間,這個空間既供存儲器編址使用,也供I/O編址使用。

統(tǒng)一編址方式的優(yōu)點是不需要專門的I/O指令,可直接使用存儲器指令進行I/O操作,不但簡單方便、功能強,而且I/O地址范圍不受限制。

其缺點是端口地址占用了一部分存儲器地址空間,使存儲器的有效容量減少。另外,16位的端口地址會使地址譯碼變得復雜,尋址指令長且執(zhí)行速度慢。

5.3.4I/O的傳送方式

1.無條件傳送方式

無條件傳送也稱為同步程序傳送,類似于CPU和存儲器之間的數(shù)據(jù)傳送。無條件傳送方式適用于以下兩類外設(shè)的輸入/輸出:

(1)外設(shè)的工作速度非???,足以和CPU同步工作。

(2)具有不變的或變化緩慢的數(shù)據(jù)信號的外設(shè)。

2.查詢傳送方式

查詢傳送又稱為條件傳送,即數(shù)據(jù)的傳送是有條件的。單片機在執(zhí)行輸入/輸出指令前,首先要檢測I/O接口的狀態(tài)及端口的狀態(tài),以了解外設(shè)是否已為數(shù)據(jù)輸入/輸出做好了準備。只有在確認外設(shè)已“準備就緒”的情況下,CPU才能執(zhí)行數(shù)據(jù)輸入/輸出操作。通常把通過程序?qū)ν庠O(shè)狀態(tài)的檢測稱之為“查詢”,所以這種方式又稱為程序查詢方式。查詢傳送方式與前述無條件的同步傳送不同,是有條件的異步傳送。

3.中斷傳送方式

由于在查詢傳送方式中,CPU主動要求傳送數(shù)據(jù),而它又不能控制外設(shè)的工作速度,因此只能用等待的方法來解決CPU和外設(shè)工作速度的匹配問題。而在一般的控制系統(tǒng)中,往往有大量的I/O設(shè)備,有些I/O設(shè)備還要求單片機為它們進行實時服務。如果采用查詢傳送方式,除浪費等待時間外,還很難及時地響應I/O設(shè)備的請求。這時,可以采用中斷傳送方式。

4.直接存儲器存取(DMA)方式

利用中斷傳送方式,雖然可以提高單片機的工作效率,但它仍需由單片機通過執(zhí)行程序來傳送數(shù)據(jù),并在處理中斷時,還要進行“保護現(xiàn)場”和“恢復現(xiàn)場”等操作,而這些操作與數(shù)據(jù)傳送沒有直接的關(guān)系,卻依然要占用一定的時間,這對于高速外設(shè)以及成組數(shù)據(jù)交換的場合還是顯得較慢。

5.4可編程并行I/O接口芯片8255A

可供單片機進行I/O擴展的接口芯片很多,但按其所能實現(xiàn)的擴展功能又可分為兩類:一類是只能實現(xiàn)簡單擴展的中、小規(guī)模集成電路芯片;另一類則是能實現(xiàn)可編程I/O擴展的可編程接口芯片。

簡單I/O擴展可利用74LS系列集成電路按照“輸出鎖存,輸入三態(tài)”的原則構(gòu)成,如5.1.3節(jié)中所述的74LS244/245可用于實現(xiàn)簡單輸入接口的擴展,利用74LS377(具有使能控制端的8D鎖存器)可實現(xiàn)簡單輸出接口的擴展。本節(jié)將重點講述能實現(xiàn)可編程I/O擴展的并行接口芯片。這些芯片功能較強,其最大的特點在于工作方式的確定和改變是用程序?qū)崿F(xiàn)的,因此稱之為可編程接口芯片。

在單片機I/O擴展中常用的可編程接口芯片有可編程通用并行接口芯片8255A、帶RAM和定時/計數(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有三個8位數(shù)據(jù)端口,即端口A、端口B和端口C。編程人員可以通過軟件將它們分別作為輸入端口或輸出端口,這三個端口在不同的工作方式下有不同的功能及特點,如表5.1所示。

(2)?A組和B組控制電路。這是兩組根據(jù)CPU的命令字控制8255A工作方式的電路。它們的控制寄存器先接收CPU送出的命令字,然后根據(jù)命令字分別決定兩組的工作方式,也可根據(jù)CPU的命令字對端口C的每一位實現(xiàn)按位“復位”或“置位”。其中:

?A組控制電路控制端口A和端口C的上半部(PC7~PC4)。

?B組控制電路控制端口B和端口C的下半部(PC3~PC0)。

(3)數(shù)據(jù)總線緩沖器。這是一個三態(tài)雙向的8位數(shù)據(jù)緩沖器,可直接與系統(tǒng)的數(shù)據(jù)總線相連,以實現(xiàn)CPU和8255A之間的數(shù)據(jù)、控制字和狀態(tài)信息等的傳送。

(4)讀/寫控制邏輯。讀/寫控制邏輯電路負責管理8255A的數(shù)據(jù)傳輸過程。

2.8255A的芯片引腳

8255A的引腳圖如圖5.15所示。除電源(+5V)和地外,其他信號可以分為兩組:

(1)與外設(shè)相連接的引腳。

?PA7~PA0:A口數(shù)據(jù)線。

?PB7~PB0:B口數(shù)據(jù)線。

?PC7~PC0:C口數(shù)據(jù)線。

5.4.28255A的工作方式

1.方式0(基本輸入/輸出方式)

這種工作方式不需要任何選通信號,A口、B口及C口的高4位和低4位都可以設(shè)定為輸入或輸出。作為輸出口時,輸出的數(shù)據(jù)均被鎖存;作為輸入口時,A口的數(shù)據(jù)能鎖存,B口和C口的數(shù)據(jù)不能鎖存。

2.方式1(選通輸入/輸出方式)

在這種工作方式下,A口可由編程設(shè)定為輸入口或輸出口,C口的三位用來作為輸入/輸出操作的控制和同步信號;B口同樣可由編程設(shè)定為輸入口或輸出口,C口的另三位用來作為輸入/輸出操作的控制和同步信號。在方式1下,A口和B口的輸入/輸出數(shù)據(jù)都能被鎖存。

為了便于闡述問題,我們以A口、B口均為輸入或均為輸出加以說明。

1)方式1下A口、B口均為輸入

在方式1下,A口和B口均工作在輸入狀態(tài)時,需利用C口的6條線作為控制和狀態(tài)信號線,方式1下的信號定義如圖5.16(a)所示。

圖5.16方式1下的信號定義

圖5.17方式1下的輸入時序

2)方式1下A口、B口均為輸出

與輸入時一樣,也要利用C口的6根信號線,其定義如圖5.16(b)所示。用于輸出的聯(lián)絡信號有:

圖5.18方式1下的輸出時序

3.方式2(雙向數(shù)據(jù)傳送方式)

8255A只有A口具有這種雙向輸入/輸出工作方式,實際上是在方式1下A口輸入/輸出的結(jié)合。在這種方式下,A口為8位雙向傳輸口,C口的PC7~PC3用來作為輸入/輸出的同步控制信號。當A口工作于方式2下時,B口和PC2~PC0只能編程為方式0或者方式1工作,而C口剩下的3條線可作為輸入或輸出線使用或用作B口在方式1下工作時的控制線。

當A口工作于方式2時,方式2下的信號定義如圖5.19所示(其中的控制信號與前述相同)。圖5.19方式2下的信號定義

在方式2下,其輸入/輸出的操作時序如圖5.20所示。圖5.20方式2下的時序

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)絡線使用的C口各位的功能。

(4)最高位(D7)是標志位,其值固定為1,用于表明本字節(jié)是方式控制字。

2.C口置位/復位控制字

在一些應用情況下,C口用來定義控制信號和狀態(tài)信號,因此C口的每一位都可以進行置位或復位。對C口各位的置位或復位是由置位/復位控制字進行控制的。C口置位/復位控制字如圖5.22所示。圖5.22C口置位/復位控制字

3.8255A的初始化編程

對任何可編程的接口芯片,在使用前都必須對其進行初始化。8255A的初始化就是向控制字寄存器寫入工作方式控制字和C口置位/復位控制字。這兩個控制字可按同一個地址寫入且不受先后順序限制。由于兩個控制字標志位的狀態(tài)不同,因此8255A能加以區(qū)分。

5.4.48255A與系統(tǒng)的連接方法

由于8255A是Intel公司專為其主機配套設(shè)計制造的標準化外圍接口芯片,因此,它與MCS-51及其兼容單片機的連接比較簡單方便。

單片機擴展的I/O接口均與片外RAM統(tǒng)一編址。由于單片機系統(tǒng)片外RAM的實際容量一般均不太大,遠遠達不到64KB的范圍,因此I/O接口芯片大多采用部分譯碼法或線選法。這種方法雖然要浪費大量的地址號,但譯碼電路比較簡單。8255A與單片機的連接如圖5.23所示。圖5.238255A與單片機的連接

5.5A/D轉(zhuǎn)換器接口

5.5.1A/D轉(zhuǎn)換器概述A/D轉(zhuǎn)換器用以實現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換。在設(shè)計A/D轉(zhuǎn)換器與單片機接口之前,往往要根據(jù)A/D轉(zhuǎn)換器的原理及技術(shù)指標選擇A/D轉(zhuǎn)換器。常用的A/D轉(zhuǎn)換器按轉(zhuǎn)換原理有計數(shù)式、雙積分式、逐次逼近式及并行式等。

例如,當滿量程電壓為5V時,采用10位A/D轉(zhuǎn)換器的量化間隔、絕對量化誤差、相對量化誤差分別為

5.5.2ADC0809及其與系統(tǒng)的連接

A/D轉(zhuǎn)換器(ADC)與單片機接口具有硬、軟件相依性。一般來說,A/D轉(zhuǎn)換器與單片機的接口主要考慮的是數(shù)字量輸出線的連接、ADC啟動方式、轉(zhuǎn)換結(jié)束信號處理方法以及時鐘的連接等。

A/D轉(zhuǎn)換器數(shù)字量輸出線與單片機的連接方法與其內(nèi)部結(jié)構(gòu)有關(guān)。對于內(nèi)部帶有三態(tài)鎖存數(shù)據(jù)輸出緩沖器的ADC(如ADC0809、AD574等),可直接與單片機相連。對于內(nèi)部不帶鎖存器的ADC,一般通過鎖存器或并行I/O接口與單片機相連。

A/D轉(zhuǎn)換器的另一個重要連接信號是時鐘,其頻率是決定芯片轉(zhuǎn)換速度的基準。整個A/D轉(zhuǎn)換過程都是在時鐘的作用下完成的。A/D轉(zhuǎn)換時鐘的提供方法有兩種:一種是由芯片內(nèi)部提供(如AD574),一般不允許外加電路;另一種是由外部提供,有的用單獨的振蕩電路產(chǎn)生,更多的則把單片機輸出時鐘經(jīng)分頻后,送到A/D轉(zhuǎn)換器的相應時鐘端。這里只介紹ADC0809與單片機的接口方法。

1.ADC0809芯片簡介

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個模擬量,允許8路模擬量分時輸入,并共用一個A/D轉(zhuǎn)換器進行轉(zhuǎn)換。地址鎖存與譯碼電路完成對A、B、C三個地址位進行鎖存和譯碼的功能,其譯碼輸出用于通道選擇,如表5.3所示。8位A/D轉(zhuǎn)換器為逐次逼近式,由控制與時序電路、逐次逼近寄存器、樹狀開關(guān)及256個電阻梯形網(wǎng)絡等組成。三態(tài)輸出鎖存器用于存放和輸出轉(zhuǎn)換得到的數(shù)字量。

ADC0809芯片為28引腳雙列直插式封裝,其引腳簡介如下:

?IN7~IN0:模擬量輸入通道。ADC0809對輸入模擬量的主要要求有:信號單極性、電壓范圍為0~5V。如輸入信號幅度過小還需進行放大。另外,輸入模擬量在A/D轉(zhuǎn)換過程中其值不應變化,如輸入模擬量變化速度較快,則在輸入前應增加采樣保持器電路。

?ADDA、ADDB、ADDC:模擬通道地址線。這三根線用于對模擬通道進行選擇,如表5.3所示。ADDA為低地址,ADDC為高地址。

?

ALE:地址鎖存信號。對應于ALE上跳沿時,ADDA、ADDB、ADDC地址狀態(tài)送入地址鎖存器中。

?START:轉(zhuǎn)換啟動信號。在START信號上跳沿時,所有內(nèi)部寄存器清0;在START下跳沿時,開始進行A/D轉(zhuǎn)換。在A/D轉(zhuǎn)換期間,START信號應保持低電平。

?D7~D0:數(shù)據(jù)輸出線。該數(shù)據(jù)輸出線為三態(tài)緩沖形式,可以與單片機的數(shù)據(jù)總線直接相連。

?OE:輸出允許信號。它用于控制三態(tài)輸出鎖存器向單片機輸出轉(zhuǎn)換后的數(shù)據(jù)。OE=0時輸出數(shù)據(jù)線呈高阻狀態(tài);OE=1時允許輸出。

?CLK:時鐘信號。ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號由外界提供,通常使用500kHz的時鐘信號。

?EOC:轉(zhuǎn)換結(jié)束狀態(tài)信號。當EOC=0時,表示正在進行轉(zhuǎn)換;當EOC=1時,表示轉(zhuǎn)換結(jié)束。實際使用中,該信號既可作為查詢的狀態(tài)標志,也可作為中斷請求信號。

?VCC:+5V電源。

?VREF:參考電壓。參考電壓作為逐次逼近的基準,并用來與輸入的模擬信號進行比較。其典型值為+5V(VREF(+)=+5V、VREF(-)=0V)。

2.ADC0809與單片機的接口

電路的連接主要考慮兩個問題:一是8路模擬信號的通道選擇;二是A/D轉(zhuǎn)換完成后轉(zhuǎn)換數(shù)據(jù)的傳送。典型的ADC0809與單片機的連接如圖5.25所示。

圖5.25ADC0809與單片機的連接

1)?8路模擬通道的選擇

圖5.25中,ADC0809的轉(zhuǎn)換時鐘由單片機的ALE提供。因ADC0809的典型轉(zhuǎn)換頻率在640kHz以下,ALE信號頻率與晶振頻率有關(guān),如果晶振頻率為12MHz,則ALE的頻率為2MHz,所以ADC0809的時鐘端CLK與單片機的ALE相連時,要考慮分頻。

從圖5.25中可以看到,ALE信號與START(ST)信號連在一起,這樣連接可以在信號的前沿寫入地址信號,在其后沿便啟動轉(zhuǎn)換。ADC0809相關(guān)信號時序如圖5.26所示。圖5.26ADC0809相關(guān)信號時序

2)轉(zhuǎn)換數(shù)據(jù)的傳送

A/D轉(zhuǎn)換后得到的數(shù)據(jù)為數(shù)字量,這些數(shù)據(jù)應傳送給單片機進行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認A/D轉(zhuǎn)換的完成,因為只有確認數(shù)據(jù)轉(zhuǎn)換完成后,才能進行傳送。通常可采用下述三種方式。

(1)定時傳送方式。

(2)查詢方式。

(3)中斷方式。

這里需要說明的是,ADC0809的三個地址端ADDA、ADDB、ADDC既可以如前所述與地址線相連,也可與數(shù)據(jù)線相連,例如與D0~D2相連,ADC0809與系統(tǒng)的另一種連接方法如圖5.27所示。這時啟動A/D轉(zhuǎn)換的指令與上述類似,只不過A的內(nèi)容不能為任意值,而必須和所選輸入通道號IN0~IN7相一致。

圖5.27ADC0809與系統(tǒng)的另一種連接方法

5.6D/A轉(zhuǎn)換器接口

5.6.1D/A轉(zhuǎn)換器的技術(shù)指標D/A轉(zhuǎn)換器(DAC)是單片機應用系統(tǒng)與外部模擬對象之間的一種重要控制接口。單片機輸出的數(shù)字信號必須經(jīng)D/A轉(zhuǎn)換器,變換為模擬信號后,才能對控制對象進行控制。這就涉及D/A轉(zhuǎn)換接口的問題。

1.分辨率

分辨率是指輸入數(shù)字量的最低有效位(LSB)發(fā)生變化時,所對應的輸出模擬量(常為電壓)的變化量。分辨率是D/A轉(zhuǎn)換器對輸入量變化敏感程度的描述,與輸入數(shù)字量的位數(shù)有關(guān)。對于線性D/A轉(zhuǎn)換器來說,如果其輸入數(shù)字量的位數(shù)為n,則其分辨率Δ可表示為

2.線性度

線性度(也稱非線性誤差)是實際轉(zhuǎn)換特性曲線與理想的直線特性之間的最大偏差。通常以相對于滿刻度的百分數(shù)來表示。如某D/A轉(zhuǎn)換器的線性度為±1%,說明其實際輸出值與理論值之差在滿刻度的±1%以內(nèi)。

3.絕對精度與相對精度

絕對精度(簡稱精度)是指在整個刻度范圍內(nèi),任一輸入數(shù)碼所對應的模擬量實際的輸出值與理論值之間的最大誤差。絕對精度是由DAC的增益誤差(當輸入數(shù)碼為全1時,實際輸出值與理想輸出值之差)、零點誤差(數(shù)碼輸入為全0時DAC的非零輸出值)、非線性誤差和噪聲等引起的。絕對精度(即最大誤差)應小于1個LSB。

4.建立時間

建立時間是指輸入的數(shù)字量發(fā)生滿刻度變化時,輸出模擬信號達到滿刻度值的±1/2個LSB所需的時間。這是描述DAC轉(zhuǎn)換速率的一個動態(tài)指標。電流輸出型DAC的建立時間短,電壓輸出型DAC的建立時間主要決定于運算放大器的響應時間。根據(jù)建立時間的長短,可以將DAC分成超高速(小于1μs)、高速(10~1μs)、中速(100~10μs)和低速(大于等于100μs)等。

5.6.2DAC0832及其與系統(tǒng)的連接

1.DAC0832芯片簡介

DAC0832是一個典型的8位D/A轉(zhuǎn)換器,采用單電源供電,電源電壓在+5~+15V范圍內(nèi)均可正常工作?;鶞孰妷旱姆秶鸀椤?0V。電流輸出時其電流建立時間約為1μs,當需要轉(zhuǎn)換為電壓輸出時,可外接運算放大器。CMOS工藝為低功耗設(shè)計,功耗約為20mW。

DAC0832由一個8位輸入寄存器、一個8位DAC寄存器和一個8位D/A轉(zhuǎn)換器及邏輯控制電路組成。DAC0832內(nèi)部結(jié)構(gòu)框圖如圖5.28所示。

圖5.28DAC0832內(nèi)部結(jié)構(gòu)框圖

DAC0832為電流輸出形式,其兩個輸出端電流的關(guān)系為

IOUT1?+?IOUT2?=?常數(shù)

為了得到電壓輸出,可在電流輸出端接一個運算放大器,如圖5.29所示。在DAC0832內(nèi)部已有反饋電阻RFB,其阻值為15kΩ。若需加大阻值,則可外接反饋電阻。

DAC0832為20腳雙列直插封裝,其引腳排列如圖5.30所示。

圖5.29DAC0832電壓輸出電路圖5.30DAC0832引腳排列

2.DAC0832與單片機的接口

DAC0832可以通過三種方式與單片機相連,即直通方式、單緩沖方式及雙緩沖方式。

1)直通方式

2)單緩沖方式

所謂單緩沖方式,就是使DAC0832的兩個寄存器中有一個處于直通方式,而另一個處于受控的鎖存方式,當然也可以使兩個寄存器同時選通及鎖存。因此,單緩沖方式有三種不同的連接方法,DAC0832的三種單緩沖連接方法如圖5.31所示。圖5.31DAC0832的三種單緩沖連接方法

3)雙緩沖方式

所謂雙緩沖方式,就是把DAC0832的兩個鎖存器都接成受控鎖存方式。由于芯片中有兩個數(shù)據(jù)寄存器,這樣就可以將8位輸入數(shù)據(jù)先保存在“輸入寄存器”中,當需要D/A轉(zhuǎn)換時,再將此數(shù)據(jù)從輸入寄存器送至“DAC寄存器”中鎖存,并進行D/A轉(zhuǎn)換輸出。采用這種方式,可以克服在輸入數(shù)據(jù)更新期間輸出模擬量隨之出現(xiàn)的不穩(wěn)定。這時,可以在上一次模擬量輸出的同時,將下一次要轉(zhuǎn)換的數(shù)據(jù)事先存入“輸入寄存器”中,一方面克服了不穩(wěn)定現(xiàn)象,另一方面提高了數(shù)據(jù)的轉(zhuǎn)換速度。用這種方式還可以同時更新多個D/A轉(zhuǎn)換器的輸出。DAC0832的雙緩沖連接方式如圖5.32所示,圖中給出了采用線選法,利用兩位地址碼進行兩次輸出操作完成數(shù)據(jù)的傳送及轉(zhuǎn)換的雙緩沖方式。

圖5.32DAC0832的雙緩沖連接方式

由于兩個鎖存器分別占據(jù)兩個地址,因此在程序中需要使用兩條傳送指令,才能完成一個數(shù)字量的模擬轉(zhuǎn)換。假設(shè)輸入寄存器地址為0FEFFH,DAC寄存器地址為0FDFFH,則完成一次D/A轉(zhuǎn)換的程序段可如下編制:

5.7應用舉例5.7.18255A應用舉例8255A在單片機控制系統(tǒng)中得到了廣泛的應用,現(xiàn)舉例加以說明。

例5.2要求通過8255A的PC5端向外輸出一個正脈沖信號,已知8255A的C口和控制口的地址分別為0002H和0003H。解若要從PC5端輸出一個正脈沖信號,可通過對PC5位的置位和復位控制來實現(xiàn)。由于每送一個控制字,只能對一位作一次置位或復位操作,因而產(chǎn)生一個正脈沖要對PC5位先送置位控制字,經(jīng)過一定延時后(延時時間視脈寬而定),再送復位控制字即能實現(xiàn)。

例5.3完成8255A作為連接打印機的接口電路的程序編制。

解8255A連接打印機的接口電路如圖5.33所示。圖5.338255A連接打印機的接口電路

5.7.2A/D應用舉例

例5.4設(shè)有一個8路模擬量輸入的巡回檢測系統(tǒng),使用中斷方式采集數(shù)據(jù),每次中斷依次采集8路輸入,并將轉(zhuǎn)換結(jié)果對應存放在外部RAM的30H~37H單元中。采集完一遍以后即停止采集。

解硬件電路可采用前述圖5.25,其數(shù)據(jù)采樣的初始化程序和中斷服務程序如下。

5.7.3D/A應用舉例

D/A轉(zhuǎn)換器可以應用在許多場合,例如控制伺服電機或其他執(zhí)行機構(gòu),也可以很方便地產(chǎn)生各種輸出波形,如矩形波、三角波、階梯波、鋸齒波、梯形波、正弦波及余弦波等。這里介紹利用D/A轉(zhuǎn)換器來產(chǎn)生波形的方法。

例5.5產(chǎn)生階梯波。

解階梯波是在一定的時間范圍內(nèi)每隔一段時間,輸出幅度遞增一個恒定值的波形。如每隔1ms輸出幅度增長一個定值,經(jīng)10ms后重新循環(huán)。用DAC0832在單緩沖方式下可以輸出這樣的波形(單緩沖方式的連接方法可參考前述圖5.31),這里假定DAC0832地址為7FFFH。系統(tǒng)中所需的1ms延時可以通過延時程序獲得,也可以通過單片機內(nèi)的定時器來定時。

例5.6同步波形輸出——同時輸出X和Y波形到示波器。

解在應用系統(tǒng)中,如果需要同時輸出幾路模擬信號,這時D/A轉(zhuǎn)換器就必須采用雙緩沖工作方式,兩路DAC0832與單片機的接口電路如圖5.34所示。

圖5.34兩路DAC0832與單片機的接口電路

上述例子僅說明了單片機如何通過D/A轉(zhuǎn)換器產(chǎn)生模擬波形。用這種方法產(chǎn)生信號波形時,由于受單片機本身工作速度的限制(12MHz晶振頻率時,機器周期為1μs),輸出頻率不可能太高。另一方面,為了有一定的顯示質(zhì)量,在信號的一個周期內(nèi)取樣點也不可能太少,這就進一步限制了信號的頻率。但是,用單片機產(chǎn)生波形比較靈活,特別是可以產(chǎn)生各種不規(guī)則的波形,因此在一些要求不高的場合還存在著一定的應用。

5.7.4集成溫度傳感器及其應用舉例

1.DS18B20簡介

DS18B20是美國Dallas公司生產(chǎn)的最新的單線數(shù)字溫度傳感器,支持“1-Wire”接口。1-Wire是一種簡單的信號交換方式,它是指在主機與外圍器件之間通過一條線路進行雙向通信。多個1-Wire總線器件可以直接掛接在一條總線上,使用戶可輕松地組建傳感器網(wǎng)絡?,F(xiàn)場溫度直接以1-Wire的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量。

1)?DS18B20的主要特性

DS18B20的主要特性如下所述:

(1)單線接口,即僅需一根接口線與單片機連接。

(2)每個器件的內(nèi)部存儲器中存儲有該器件唯一的64位序列號。

(3)無需外圍元件即可實現(xiàn)溫度測量。

(4)可通過數(shù)據(jù)線供電,工作電壓范圍為3.0~5.5V。

(5)測溫范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi)精度為±0.5℃。

(6)用戶可以選擇9~12位的分辨率,其中9位分辨率轉(zhuǎn)換時間為93.75ms,12位分辨率轉(zhuǎn)換時間為750ms。

(7)用戶可自行設(shè)定溫度報警的上、下限,其值在斷電后仍可保存,利用報警搜索命令可識別超限報警的器件。

2)?DS18B20的引腳及功能

DS18B20的引腳排列如圖5.35所示,各引腳功能如下:

?GND:地。

?DQ:數(shù)據(jù)輸入/輸出引腳,為開漏單總線接口引腳,當被用在寄生電源下時,也可以向器件提供電源。

?VDD:可選擇的電源引腳。當工作于寄生電源時,此引腳必須接地。圖5.35DS18B20的引腳排列

3)?DS18B20的工作原理

DS18B20的內(nèi)部結(jié)構(gòu)框圖如圖5.36所示。圖5.36DS18B20的內(nèi)部結(jié)構(gòu)框圖

DS18B20高速緩沖寄存器包含了9個連續(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個字節(jié)的內(nèi)容在每次上電復位時被刷新;第6、7、8字節(jié)用于內(nèi)部計算;第9字節(jié)是冗余校驗字節(jié)。

圖5.37DS18B20內(nèi)部E2PROM與高速寄存器的映射關(guān)系

配置寄存器的結(jié)構(gòu)框圖如圖5.38所示。低5位固定為1,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是測試模式,該位出廠時被設(shè)置為0,用戶一般不要去改動。R1和R0用來設(shè)置分辨率,如表5.4所示。圖5.38配置寄存器的結(jié)構(gòu)框圖

DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)換為例:用16位符號擴展的二進制補碼形式提供,以0.0625℃/LSB形式表達,DS18B20溫度傳感器的數(shù)據(jù)格式如圖5.39所示。圖5.39DS18B20溫度傳感器的數(shù)據(jù)格式

2.DS18B20的應用示例

DS18B20的1-Wire總線可以很方便地與單片機進行連接,只需將其DQ端與單片機的一條I/O線相接即可,且多個DS18B20可以同時掛接在同一根總線上,多個DS18B20與單片機的連接如圖5.40所示。

圖5.40多個DS18B20與單片機的連接

三片DS18B20都接到單片機的一個I/O口時,注意上拉電阻不能太大,否則DS18B20可能工作不正常。當DS18B20工作于寄生供電方式時,為保證提供足夠的工作電流,可用一個MOSFET管來完成對總線的上拉,DS18B20溫度轉(zhuǎn)換期間的強上拉供電如圖5.41所示。圖5.41DS18B20溫度轉(zhuǎn)換期間的強上拉供電

5.7.5液晶顯示模塊及其應用舉例

液晶顯示器(LCD)是近年來飛速發(fā)展的一種顯示器件。LCD通常都是作為一個整體模塊用于設(shè)備中的,這是因為液晶器件的特殊性以及連接和裝配需要專用的工具,且操作技術(shù)的難度較大等原因。生產(chǎn)廠家將液晶顯示屏幕、連接件、驅(qū)動電路的PCB電路板、背光燈(視型號而定)等元器件封裝在一起,只留有背光燈插頭(視型號而定)和驅(qū)動信號輸入插座,這種組件被稱為液晶顯示模塊。

1.LCD1602簡介

LCD1602是一種字符式液晶顯示模塊,它可以顯示兩行,每行16個字符,相當于32個LED數(shù)碼管,而且比數(shù)碼管顯示的信息還要豐富。LCD1602采用單一?+5V電源供電,外圍電路配置簡單,價格便宜,具有較高的性價比。LCD1602的引腳排列如圖5.42所示圖5.42LCD1602的引腳排列

LCD1602有11個控制指令,其功能如表5.5所示。

其中,常用的命令格式及其功能簡介如下。

(3)光標、畫面位移:

(4)功能設(shè)置:

2.LCD1602應用示例

LCD1602與單片機連接的典型電路如圖5.43所示。圖5.43LCD1602與單片機連接的典型電路

習題5

1.什么是單片機最小應用系統(tǒng)?2.MCS-51系列單片機如何訪問外部ROM及外部RAM?3.試說明存儲器的容量與芯片的地址線和數(shù)據(jù)線之間的關(guān)系。4.當單片機應用系統(tǒng)中數(shù)據(jù)存儲器RAM地址和程序存儲器EPROM地址重疊時,是否會發(fā)生數(shù)據(jù)沖突?為什么?5.在AT89S51單片機應用系統(tǒng)中,P0口和P2口是否可以直接作為輸入/輸出而連接開關(guān)、指示燈等外圍設(shè)備?為什么?

6.試用Intel2764(8K×8bit)和6116(2K×8bit)為AT89S51單片機設(shè)計一個外部存儲器系統(tǒng),它具有8KB的程序存儲器(地址為0000H~1FFFH)和8KB的數(shù)據(jù)存儲器(地址為0000H~1FFFH)。畫出該存儲器系統(tǒng)的硬件連接圖。

7.采用線選法在AT89S51單片機上擴展兩片2764EPROM芯片,試連接三總線及根據(jù)連線確定兩芯片的地址空間。

8.采用線選法在AT89S51單片機上擴展兩片6264RAM芯片,試連接三總線及根據(jù)連線確定兩芯片的地址空間。

9.數(shù)據(jù)存儲器的擴展與程序存儲器的擴展有哪些主要區(qū)別?

10.I/O編址方式有哪幾種?各有什么優(yōu)缺點?

11.I/O接口和I/O端口有什么區(qū)別?I/O接口的功能是什么?

12.I/O數(shù)據(jù)傳送有哪幾種傳送方式?分別在哪些場合下使用?

13.簡要說明單片機I/O口擴展的特點及應注意的事項。

14.8255A共有幾種工作方式?怎樣進行選擇?各種方式分別適用于什么場合?

15.8255A的方式控制字和C口按位置位/復位控制字都可以寫入8255A的同一控制寄存器。請問8255A是如何區(qū)分這兩個控制字的?

16.試編程對8255A進行初始化。設(shè)A口為選通輸出,B口為基本輸入,C口作為控制聯(lián)絡口,并啟動定時/計數(shù)器按方式1工作,定時時間為10ms,定時器計數(shù)脈沖頻率為單片機時鐘頻率的24分頻,fosc=12MHz。

17.現(xiàn)用AT89S51單片機擴展一片8255A,若把8255A的B口用做輸入,B口的每一位接一個開關(guān),A口用作輸出,A口每一位接一個發(fā)光二極管,請畫出電路原理圖,并編寫出B口某一位接高電平時,A口相應位發(fā)光二極管被點亮的程序。

18.單片機系統(tǒng)硬件連接如圖5.44所示,系統(tǒng)采用12MHz的晶體振蕩器,擴展了一片數(shù)據(jù)存儲器6264和一片8255A,并通過8255A的PA端口驅(qū)動8個發(fā)光二極管,各發(fā)光二極管的陰極一起連接到地(GND)。要求:

(1)寫出數(shù)據(jù)存儲器6264的地址范圍。

(2)寫出8255A各端口地址。

(3)編程實現(xiàn)連接在8255A的PA端口上的發(fā)光二極管循環(huán)閃亮的控制程序。要求循環(huán)閃亮的時間間隔為50ms,采用定時中斷的方式來實現(xiàn)。

圖5.44第18題圖

19.用8255A擴展電路設(shè)計四路搶答器。要求A口輸入四路搶答信號,B口輸出四路搶答指示(用LED發(fā)光二極管)和聲音提示。

20.編寫程序,采用8255A的C口按位置位/復位控制字,將PC7置0,PC4置1(已知8255A各端口的地址為7FFCH~7FFFH)。

21.在一個AT89S51應用系統(tǒng)

溫馨提示

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

評論

0/150

提交評論