單片機(jī)原理及應(yīng)用第06章_第1頁
單片機(jī)原理及應(yīng)用第06章_第2頁
單片機(jī)原理及應(yīng)用第06章_第3頁
單片機(jī)原理及應(yīng)用第06章_第4頁
單片機(jī)原理及應(yīng)用第06章_第5頁
已閱讀5頁,還剩257頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六章MCS-51系列單片機(jī)接口技術(shù) 8/24/20221程序存儲(chǔ)器擴(kuò)展數(shù)據(jù)存儲(chǔ)器擴(kuò)展輸入/輸出口擴(kuò)展A/D和D/A接口 本章內(nèi)容8/24/20222學(xué)習(xí)目的學(xué)會(huì)利用現(xiàn)有的芯片擴(kuò)展存儲(chǔ)器學(xué)會(huì)利用現(xiàn)有的芯片擴(kuò)展輸入/輸出口學(xué)會(huì)常用A/D和D/A芯片的接口8/24/20223問題的提出在單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)中,往往出現(xiàn)RAM, ROM或者I/O口不夠的情況,怎么辦?ROM的擴(kuò)展 RAM的擴(kuò)展并行I/O口的擴(kuò)展8/24/202246.1 外部總線的擴(kuò)展 對(duì)于復(fù)雜的場(chǎng)合,MCS-51系列單片機(jī)硬件資源不夠使用時(shí)則需要進(jìn)行系統(tǒng)擴(kuò)展包括存儲(chǔ)器擴(kuò)展和輸入/輸出擴(kuò)展。進(jìn)行系統(tǒng)擴(kuò)展時(shí)三總線結(jié)構(gòu)如下圖所示: 地

2、址 鎖 存 器888A15-A8A7A0D7D0地址總線數(shù)據(jù)總線控制總線 (1) 系統(tǒng)的擴(kuò)展一般有以下幾方面的內(nèi)容: 外部程序存儲(chǔ)器的擴(kuò)展。 外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。 輸入/輸出接口的擴(kuò)展。 管理功能器件的擴(kuò)展(如定時(shí)器/計(jì)數(shù)器、鍵盤/顯示器、中斷優(yōu)先級(jí)編碼器等)。 一、 系統(tǒng)擴(kuò)展的內(nèi)容與方法 (2) 系統(tǒng)擴(kuò)展的基本方法:P0口具有分時(shí)傳送低8位地址和8位數(shù)據(jù)信息的復(fù)用功能。通過ALE信號(hào)與地址鎖存器配合使用,從而使得地址信息和數(shù)據(jù)信息區(qū)分開。一般來講,所有與計(jì)算機(jī)擴(kuò)展連接芯片的外部引腳線都可以歸屬為三總線結(jié)構(gòu)。擴(kuò)展連接的一般方法實(shí)際上是三總線對(duì)接。要保證單片機(jī)和擴(kuò)展芯片協(xié)調(diào)一致地工作,即要共同

3、滿足其工作時(shí)序。二. 驅(qū)動(dòng)芯片 擴(kuò)展芯片都通過三總線與單片機(jī)連結(jié),而單片機(jī)三總線驅(qū)動(dòng)能力有限,須增加驅(qū)動(dòng)器。 常用總線驅(qū)動(dòng)器如下圖所示:?jiǎn)蜗蝌?qū)動(dòng)器74LS244單向驅(qū)動(dòng)器74LS244(DIP20)1、含有兩組8個(gè)三態(tài)驅(qū)動(dòng)器,2、由G1 、G2控制(低電平有效),方向AY。雙向驅(qū)動(dòng)器74LS245DIR=0G0 DIR1 方向?yàn)锳B(輸出)G0 DIR0 方向?yàn)锽 A(輸入)雙向驅(qū)動(dòng)器74LS245(DIP20)1、含有16個(gè)三態(tài)驅(qū)動(dòng)器。2、每個(gè)方向8個(gè),由G端控制。3、DIR控制驅(qū)動(dòng)方向。單向驅(qū)動(dòng)器74LS244作地址總線驅(qū)動(dòng)器 雙向驅(qū)動(dòng)器74LS245作數(shù)據(jù)總線驅(qū)動(dòng)器使用:6.2 程序存儲(chǔ)

4、器的擴(kuò)展一.程序存儲(chǔ)器的擴(kuò)展方法及時(shí)序 MCS-51系列單片機(jī)擴(kuò)展外部程序存儲(chǔ)器的硬件電路如下圖所示 MCS-51系列單片機(jī)訪問外部程序存儲(chǔ)器時(shí),使用的控制線為ALE(低8位地址鎖存控制)和PSEN(外部程序存儲(chǔ)器“讀取”控制)。時(shí)序圖如下圖所示。送地址取出指令 當(dāng)ALE上升為高電平后,P2口輸出高8位地址信息A8A15,P0口輸出低8位地址信息A0A7,利用在ALE的下降沿將P0口輸出的低8位地址信息鎖存到地址鎖存器,接著P0口由輸出方式變?yōu)檩斎敕绞?。緊接著PSEN變?yōu)榈碗娖?,使及程序存?chǔ)器OE端變?yōu)榈碗娖接行?,程序存?chǔ)器輸出存放在由16位地址信息所確定的存儲(chǔ)單元內(nèi)的指令代碼信息至P0口上,

5、供CPU讀取. 從圖上可看出在訪問外部程序存儲(chǔ)器一個(gè)機(jī)器周期內(nèi),ALE上出現(xiàn)兩個(gè)正脈中,PSEN出現(xiàn)兩個(gè)負(fù)脈沖,說明一個(gè)機(jī)器周期內(nèi)CPU可以兩次訪問外部程序存儲(chǔ)器。正因?yàn)榇?,MCS-51系列單片機(jī)的指令系統(tǒng)含有許多的雙字節(jié)單周期指令,這使得CPU執(zhí)行程序的速度大大提高。二.地址鎖存器 最小系統(tǒng)常用到74LS373作鎖存器。74LS273、74HC573、Intel8282芯片也可用作地址鎖存器,但74LS373使用最多,74LS573制作印刷板方便,它們都是DIP20封裝1、引腳圖如下圖所示:2、8D鎖存器74LS373 74LS373結(jié)構(gòu)示意圖 74LS373用作地址鎖存器 3、具體使用連接

6、圖如下圖所示:1.EPROM芯片介紹 紫外線擦除電可編程EPROM可作為外部存儲(chǔ)器,如2764(8K8位)、27128(16K8位)、27256(32K8位)和27512(64K8位)等,可通過編程器將應(yīng)用軟件對(duì)應(yīng)的機(jī)器代碼固化到芯片中,編程電壓一般為12.5V、21V、25V等。它們引腳圖如下圖所示。 三. EPROM芯片接口 以上四種型號(hào)EPROM芯片都為28腳雙列直插封裝(DIP28),單一的+5V工作電源。各引腳的功能如下: A0A15為16根地址線;O0O7為數(shù)據(jù)輸出線;CE為片選信號(hào);OE為數(shù)據(jù)輸出允許信號(hào);PGM為編程脈沖輸入端;VPP為編程電源;VCC為主電源;GND為主電源地

7、。 但它們的應(yīng)用參數(shù)不同,如下表所示,使用時(shí)應(yīng)注意這些參數(shù)。不同型號(hào)EPROM芯片應(yīng)用參數(shù)型 號(hào)工作電流(mA)維持電流(mA)讀取時(shí)間(ns)276475352502712810040250272561004025027512125402508/24/2022272. 具體應(yīng)用 (1)使用單片EPROM擴(kuò)展外部程序存儲(chǔ)器在8031單片機(jī)上擴(kuò)展4KB EPROM?引入:思考:4KBEPROM芯片地址范圍是多少?需要多注根地址線?8/24/202228在8031單片機(jī)上擴(kuò)展4KB EPROM.D7 Q7 373D0 Q0 G控制線A11A8A7A0 2732O7O0OE CEP2.3P2.0P0

8、.7 8031 P0.0ALEPSEN12根地址線8根數(shù)據(jù)線8/24/202229一片27128EPROM和地址鎖存器74LS373構(gòu)成MCS-51系列單片機(jī)中8031外部程存儲(chǔ)器的硬件應(yīng)如何連接?練一練:提示:27128EPROM芯片地址范圍為00003FFFH(16KB)。 8/24/202230 在上圖中,將27128中的26腳去掉(不連)則變?yōu)閱纹?764擴(kuò)展電路;將27128中的27腳連至8031中P2.6,則變?yōu)閱纹?7256擴(kuò)展電路;將27128中27腳連至8031中P2.6,同時(shí)將27128中1腳連至8031中P2.7,則變?yōu)閱纹?7512擴(kuò)展電路。根據(jù)不同容量的EPROM芯片

9、,很容易寫出各自的地址范圍。 注意(2)使用多片EPROM擴(kuò)展外部程序存儲(chǔ)器 單片存儲(chǔ)器芯片的容量是有限的,整個(gè)MCS-51系列單片機(jī)應(yīng)用系統(tǒng)存儲(chǔ)器是由若干芯片組成,應(yīng)考慮到:每片存儲(chǔ)器芯片的地址分配存儲(chǔ)器芯片的選擇(片選) 單片機(jī)對(duì)存儲(chǔ)器操作時(shí),先進(jìn)行片選,再?gòu)倪x中的芯片中根據(jù)地址譯碼器選擇存儲(chǔ)單元進(jìn)行數(shù)據(jù)的存取。存儲(chǔ)器空間的劃分和地址編碼是靠地址線來實(shí)現(xiàn)的。對(duì)于多片存儲(chǔ)器芯片構(gòu)成的存儲(chǔ)器,其地址編碼原則是:低位片內(nèi)選址高位選擇存儲(chǔ)器芯片(片選) 一般情況下,單片機(jī)能提供的地址總線根數(shù)大于存儲(chǔ)器芯片地址線根數(shù)。如對(duì)于多片2764與8031相連的存儲(chǔ)器,地址線A0A12作為2764的片內(nèi)選址,

10、而A13A15作為選擇不同的2764。片選信號(hào)產(chǎn)生的方法有:線選法和譯碼法。譯碼法包含全譯碼和局部譯碼法。 單片機(jī)用于“選片”的高位地址線(即存儲(chǔ)器芯片未用完的地址線)若一根連接一片存儲(chǔ)器芯片的片選端,這樣每一條高位地址線可選中兩片存儲(chǔ)器芯片,這種方法稱之為線選法,其特點(diǎn)是譯碼電路簡(jiǎn)單、有地址重疊區(qū)。利用兩片2764擴(kuò)展16KB程序存儲(chǔ)器(線選法)如下圖所示:A、線選法 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A01#2764始地址 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 0000H末地址 0 1, 1 1 1 1, 1 1 1 1,

11、 1 1 1 1 1FFFH2#2764始地址 1 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 2000H末地址 1 1, 1 1 1 1, 1 1 1 1, 1 1 1 1 3FFFH注意 . 可取0或取1,有地址重疊,這里取0; . P2.5作為線選法中片選信號(hào)線,也可使用 P2.6或P2.7作為片選信號(hào)線。 單片機(jī)用于“選片”的高位地址線(即存儲(chǔ)器芯片未用完的地址線)全部用譯碼器或門電路進(jìn)行譯碼,再把譯碼器輸出的信號(hào)和存儲(chǔ)器芯片的片選信號(hào)端相連 ,稱為全譯碼法,其特點(diǎn)是譯碼電路復(fù)雜,每片存儲(chǔ)器芯片地址是唯一確定的,不存在地址重疊 利用兩片2764擴(kuò)展16KB程序存儲(chǔ)器(全譯

12、碼法)如下圖所示:B、全譯碼法 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A01#2764始地址 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 0000H末地址 0 0 0 1, 1 1 1 1, 1 1 1 1, 1 1 1 1 1FFFH2#2764始地址 0 0 1 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 2000H末地址 0 0 1 1, 1 1 1 1, 1 1 1 1, 1 1 1 1 3FFFH 單片機(jī)用于“選片”的高位地址線(即存儲(chǔ)器芯片未用完的地址線)某幾根用譯碼器或門電路進(jìn)行譯碼,再把譯碼器輸出的

13、信號(hào)和存儲(chǔ)器芯片的片選信號(hào)端相連 ,稱為局部譯碼法 ,其特點(diǎn)是譯碼電路較為復(fù)雜,每片存儲(chǔ)器芯片地址區(qū)間不唯一,有地址重疊。 關(guān)于部分譯碼法例題見后一節(jié)內(nèi)容。C、局部譯碼法(部分譯碼法)四.E2PROM芯片接口 電擦除可編程只讀存儲(chǔ)器E2PROM是近年來開始被廣泛應(yīng)用的一種只讀存儲(chǔ)器。其主要特點(diǎn)是能在計(jì)算機(jī)應(yīng)用系統(tǒng)中進(jìn)行在線修改,并能在斷電情況下,保存修改結(jié)果而不需加保護(hù)電源,已廣泛應(yīng)用于智能儀表、控制系統(tǒng)、開發(fā)系統(tǒng)中。常見的E2PROM芯片有2817A和2864A,它們引腳圖如下圖所見。1. E2PROM芯片介紹 Intel-2864A是8KB電擦除可編程只讀存儲(chǔ)器,28引腳采用雙列直插式封裝

14、,單一+5V工作電源,最大工作電流為160mA,最大維持電流60mA,典型讀出時(shí)間250ns,其中28引腳功能為: A0A12:地址總線;I/O0I/O7:數(shù)據(jù)總線;CE:片選線;OE:輸出使能;WE :寫控制線;NC:無用。2. 具體應(yīng)用 一片2864E2PROM和地址鎖存器74LS373構(gòu)成MCS-51系列單片機(jī)中8031外部程存儲(chǔ)器的硬件連接結(jié)圖如下圖所示(線選法)。設(shè)無關(guān)地址線取0,則2864E2PROM芯片地址范圍為00001FFFH(8KB)。 使用單片E2PROM擴(kuò)展外部程序存儲(chǔ)器6.3 外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展一.外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展方法及時(shí)序 MCS-51系列單片機(jī)擴(kuò)展外部數(shù)據(jù)存

15、儲(chǔ)器的硬件電路如下圖所示 對(duì)數(shù)據(jù)存儲(chǔ)器操作時(shí),只使用WR、RD控制線PSEN而不用。程序數(shù)據(jù)存儲(chǔ)器地址與程序存儲(chǔ)器地址可以重疊,都為0000HFFFFH。但在應(yīng)用系統(tǒng)中I/O端口及外圍設(shè)備與數(shù)據(jù)存儲(chǔ)器是統(tǒng)一編址。時(shí)序圖如下圖所示。 當(dāng)MCS-51系列單片機(jī)對(duì)外部數(shù)據(jù)存儲(chǔ)器進(jìn)行讀或?qū)懖僮鲿r(shí),P2口輸出外部RAM高8位地址信息。P0口分時(shí)傳送外部RAM低8位地址信息和8位的數(shù)據(jù)信息,當(dāng)ALE控制信號(hào)由低變高后,P0口送出低8位地址信息然后利用ALE控制信號(hào)由高變低的下降沿將低8位地址信息鎖存至外部地址鎖存器,最后P0口變?yōu)檩斎牖蜉敵觯浜蟇R或RD控制線的有效狀態(tài),CPU完成對(duì)選通的外部RAM進(jìn)行

16、寫或讀操作。二.靜態(tài)RAM芯片接口 常用著MCS-51系列單片機(jī)外部數(shù)據(jù)存儲(chǔ)器擴(kuò)展的靜態(tài)RAM芯片有6116(2K8位)6264(8 K8位)、62128(16K8位)62256(32K8位)、62512(64K8位)等。小容量的靜態(tài)RAM芯片已經(jīng)停產(chǎn),僅介紹6264、62128、62256、62512, 。它們引腳圖如下圖所示。 1. 靜態(tài)RAM芯片介紹 以上靜態(tài)RAM芯片都為28腳或32腳雙列直插封裝,采用CMOS工藝制造,單一的+5V工作電源。各引腳的功能如下: A0A15為16根地址線;I/O0I/O7為數(shù)據(jù)輸出線;CE為片選信號(hào);WE為寫允許線;OE為數(shù)據(jù)輸出允許信號(hào);VCC為主電源

17、;GND為主電源地。 但它們的應(yīng)用參數(shù)不同,如下表所示,使用時(shí)應(yīng)注意這些參數(shù)。2. 具體應(yīng)用 一片62128靜態(tài)RAM擴(kuò)展8031應(yīng)用系統(tǒng)16K數(shù)據(jù)存儲(chǔ)器硬件連結(jié)圖如下圖所示。若無關(guān)的地址線取1,則62128對(duì)應(yīng)的地址范圍為4000H7FFFH。若無關(guān)地址線取0,則62128的地址范圍為0000H3FFFH,地址不唯一。 (1)使用單片靜態(tài)RAM擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器(線選法)(2)多片靜態(tài)RAM擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器(局部譯碼法) 兩片6264靜態(tài)RAM與8031接口硬件圖如下圖所示: A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A01#6264始地址 0 0 0,

18、 0 0 0 0, 0 0 0 0, 0 0 0 0 0000H末地址 0 0 1, 1 1 1 1, 1 1 1 1, 1 1 1 1 1FFFH2#6264始地址 0 1 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 2000H末地址 0 1 1, 1 1 1 1, 1 1 1 1, 1 1 1 1 3FFFH注意1. 可取0或取1,這里取0,A15未參加譯碼;2. 隨著單片RAM容量增多,多片RAM擴(kuò)展很少 使用三.兼有EPROM和RAM存儲(chǔ)器的接口 在MCS-51系列單片機(jī)應(yīng)用系統(tǒng)中,一個(gè)比較復(fù)雜的應(yīng)用系統(tǒng),當(dāng)然有可能既要擴(kuò)展外部的程序存儲(chǔ)器(采用片內(nèi)不含程序存儲(chǔ)器的機(jī)型,

19、如8031、8032等),又要擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器。用一片27128和一片62128實(shí)現(xiàn)8031外部程序存儲(chǔ)器16K和外部數(shù)據(jù)存儲(chǔ)器16K的擴(kuò)展接口電路如圖下圖所示,片選信號(hào)產(chǎn)生的方法采用線選法。 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A027128始地址 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 0000H末地址 0 0 1, 1 1 1 1, 1 1 1 1, 1 1 1 1 3FFFH62128始地址 1 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 4000H末地址 1 1 1, 1 1 1 1, 1 1 1

20、 1, 1 1 1 1 7FFFH四.數(shù)據(jù)存儲(chǔ)器的掉電保護(hù) 數(shù)據(jù)存儲(chǔ)器RAM一旦電源去掉,內(nèi)部所有的信息都被破壞。某些單片機(jī)應(yīng)用系統(tǒng)要求在掉電時(shí)不丟失RAM內(nèi)的內(nèi)容,必須加掉電保護(hù)功能??刹捎脙煞N方法,一種是加裝不間斷電源UPS,另一種只在全部或部分?jǐn)?shù)據(jù)存儲(chǔ)單元加備用電源(通常采用電池),要求具備有掉電保護(hù)功能的單片機(jī)應(yīng)用系統(tǒng)一般采用CHMOS單片機(jī)和CMOS結(jié)構(gòu)的RAM。1.簡(jiǎn)單的掉電保護(hù)電路2.實(shí)用的掉電保護(hù)電路 簡(jiǎn)單掉電保護(hù)電路,在電源掉電和重新上電頻率較高時(shí),由于電源切換,可能使RAM瞬間處于讀/寫狀態(tài),使原來存放在RAM中的內(nèi)容遭到破壞,可能起不到可靠掉電保護(hù)作用。 有一些CMOSR

21、AM芯片有專門用于掉電保護(hù)的引腳,如6264、62512芯片上的CE2引腳。正常工作時(shí),須將CE2=1,當(dāng)CE2引腳拉至小于或等于0.2V時(shí),RAM進(jìn)入保護(hù)狀態(tài)。利用該引腳實(shí)現(xiàn)掉電保護(hù)。電路如下圖所示,這種電路可靠、實(shí)用。 電源掉電時(shí),Vcc開始下降,當(dāng)降至滿足下列條件時(shí)R4*Vcc/(R4+R3)/(R5+R6)3.5V(即Vcc下降至4.7V時(shí)),U2輸出低電平,又因U3輸出低電平,使得U4輸出高電平,從而U5輸出為高電平,U6輸出(即CE2)為低電平(0.2V),RAM進(jìn)入數(shù)保據(jù)持狀態(tài),當(dāng)Vcc繼續(xù)下降,降至小于電池電壓時(shí),D2截止,D1導(dǎo)通,此時(shí)由電池給RAM供電。重新上電時(shí),Vcc由

22、0V躍變至+5V,U2的輸出會(huì)出現(xiàn)瞬間干擾脈沖,由于U3與U4之間采用了積分電路,具有延時(shí)功能,CE2并不立即升為高電平。因而抑制了U2的干擾脈沖,當(dāng)積分延時(shí)結(jié)束,電源已穩(wěn)定在+5V。CE2為高電平回到正常工作狀態(tài)。 6.4 并行輸入輸出口的擴(kuò)展 MCS-51系列單片機(jī),若輸入/輸出端口不夠使用,則須擴(kuò)展。 當(dāng)單片機(jī)擴(kuò)展I/O接口較多時(shí),便于單片機(jī)管理,象對(duì)存儲(chǔ)單元一樣,對(duì)多個(gè)I/O接口進(jìn)行統(tǒng)一編號(hào),這種對(duì)I/O接口的編號(hào)稱之為I/O端口編址。 A.采用了專用I/O指令,使及編寫程序時(shí) 易于區(qū)分,程序可讀性強(qiáng)。 B.專用I/O指令執(zhí)行時(shí)間短。 C.輸入輸出時(shí)容易安排應(yīng)答信號(hào),硬件設(shè) 計(jì)簡(jiǎn)單。優(yōu)

23、點(diǎn) A.專用I/O指令有限,編程不方便。 B. CPU中必須采用專用的I/O周期。缺點(diǎn)I/O端口地址和存儲(chǔ)器統(tǒng)一編址方式 這種編址方式適用于不帶IO/M引腳的CPU系統(tǒng)中.把所有的I/O接口都當(dāng)作存儲(chǔ)單元對(duì)待.對(duì)某一外部設(shè)備輸入輸出操作,就象對(duì)存儲(chǔ)器中某一個(gè)存儲(chǔ)單元操作一樣,所有訪問存儲(chǔ)單元指令均適用于對(duì)I/O端口的操作,指令系統(tǒng)不含專用的I/O指令. A.編程方便。所有用于訪問存儲(chǔ)單元的 指令都可應(yīng)用I/O端口操作。 B. CPU中不用專設(shè)I/O指令和周期,簡(jiǎn) 化CPU本身的控制邏輯。 優(yōu)點(diǎn) A.I/O端口地址占用了一部分存儲(chǔ)空間地址。 B.程序較難區(qū)分是對(duì)I/O端口操作還是對(duì)存 儲(chǔ)器操作,

24、程序可讀性差。 缺點(diǎn)二.用TTL芯片擴(kuò)展I/O接口 74LS377為帶有輸入允許端的8D觸發(fā)器,具有鎖存功能,采用雙列直插式20引腳封裝,引腳圖見下圖。利用74LS377與8031接口構(gòu)成兩個(gè)8位并行輸出口電路如下圖所示。 1.用74LS377擴(kuò)展8位并行輸出口 2.用74LS244擴(kuò)展8位并行輸入口 當(dāng)輸入數(shù)據(jù)為常態(tài),這要求接口芯片具有三態(tài)緩沖功能,74LS244具有三態(tài)緩沖功能,關(guān)于74LS244芯片前面已作了詳細(xì)介紹。利用74LS244與8031接口構(gòu)成兩個(gè)8位并行輸入接口電路如下圖所示。 3.用74LS373擴(kuò)展8位并行輸入口 當(dāng)輸入數(shù)據(jù)為暫態(tài),這要求接口芯片具有鎖存選通功能,74LS

25、373具有鎖存選通功能,關(guān)于74LS373芯片前面已作了詳細(xì)介紹。利用74LS373與8031接口構(gòu)成一個(gè)8位并行輸入接口電路如下圖所示。 4.兼有74LS377、74LS373、74LS244芯片的I/O接口 在MCS-51系列單片機(jī)復(fù)雜的應(yīng)用系統(tǒng)中有可能既要擴(kuò)展并行輸出口又要擴(kuò)展并行輸入口,用兩片74LS377、一片74LS244、一片74LS373芯片來實(shí)現(xiàn)8031單片機(jī)擴(kuò)展兩個(gè)并行的輸出口和兩個(gè)并行的輸入口的接口電路如圖如下圖所示。(局部譯碼法 ) 設(shè)無關(guān)地址線取1,則各芯片對(duì)應(yīng)的I/O端口地址為: A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A01#

26、74LS377 0 1 1 1, 0 0 1 1, 1 1 1 1, 1 1 1 1 7300H2#74LS377 0 1 0 1, 0 0 1 1, 1 1 1 1, 1 1 1 1 53FFH74LS244 0 0 1 1, 0 0 1 1, 1 1 1 1, 1 1 1 1 3300H74LS373 0 0 0 1, 0 0 1 1, 1 1 1 1, 1 1 1 1 13FFH 若將片內(nèi)RAM20H單元內(nèi)容送至1#74LS377輸出,片內(nèi)RAM21H單元內(nèi)容送至2#74LS377輸出,從74LS244輸入數(shù)據(jù),存入片內(nèi)RAM22H單元中,從74LS373輸入數(shù)據(jù)存入片內(nèi)RAM23H單元

27、中,對(duì)應(yīng)的程序段為MOV DPTR,#73FFH ;指向1#74LS377MOVX A,20H ;片內(nèi)RAM20H單元內(nèi)容AMOVX DPTR,A ;A內(nèi)容送1#74LS377輸出MOV DPTR,#53FFH ;指向2#74LS377MOV A,21H ;片內(nèi)RAM21H單元內(nèi)容AMOVX DPTR,A ;A內(nèi)容送2#74LS377輸出MOV DPTR,#33FFH ;指向74LS244MOVX A ,DPTR ;74LS244輸入AMOV 22H ,A ;A內(nèi)容存片內(nèi)RAM22H單元在INT0中斷服務(wù)子程序中執(zhí)行MOV DPTR,#13FFH ;指向74LS373MOVX A ,DPTR

28、;74LS373輸入AMOV 23H ,A ;A內(nèi)容存片內(nèi)RAM23H單元 三.用可編程芯片擴(kuò)展并行I/O接口 Intel公司常用的外圍芯片都可以直接與MCS-51系列單片機(jī)進(jìn)行接口 。常用外圍芯片如下表所示:芯 片 信 號(hào)所 含 功 能8155/81562568位RAM可編程兩個(gè)8位I/O口可編程一個(gè)6位I/O口14位定時(shí)器82128位I/O接口8251A可編程通信接口8253可編程3個(gè)16位定時(shí)器8255A可編程3個(gè)8位I/O接口8279可編程鍵盤/顯示接口(64鍵)83552K8位ROM兩個(gè)通用8位I/O接口8755A2K8位EPROM兩個(gè)通用8位I/O接口 利用Intel-8255A和

29、Intel-8155A進(jìn)行并行I/O接口的擴(kuò)展已被廣泛使用,下面對(duì)Intel-8255A和Intel-8155A加以詳細(xì)討論。 (一).用Intel-8255A擴(kuò)展I/O接口 8255A是Intel公司生產(chǎn)的可編程并行輸入/輸出接口芯片,通過軟件編程改變其工作方式及功能,使用靈活、通用性極強(qiáng),可作為MCS-51系列單片機(jī)與多種外部設(shè)備連接的中間并行接口電路。 1. 8255A芯片介紹 a.3個(gè)8位并行I/O口,PA、PB、PC。b.共有3種工作方式,PA口功能最強(qiáng), 有三種工作方式都可以,PB口僅有兩 種工作 方式,PC口在工作方式1和方 式2配合PA口和PB口使用。 .8255A具有功能:

30、. 8255A內(nèi)部結(jié)構(gòu)8255A可編程外圍設(shè)備接口(Programmable Peripheral Interface, 簡(jiǎn)寫為PPI) ,其內(nèi)部結(jié)構(gòu)如圖所示。 8255A內(nèi)部結(jié)構(gòu)A組控制部件數(shù)據(jù)總線緩沖器讀/寫控制部件B組控制部件 RESETA0A1A組端口A8位A組A組端口C(高4位)B組端口C(低4位)8位B組端口BPA7PA0PC7PC4PC3PC0PB7PB0雙向D7D08255A包括四大部分:數(shù)據(jù)總線緩沖器、讀寫控制部件、A組和B組控制部件、端口A、B、C。(1) 并行輸入 / 輸出端口A、B、C端口A:包含一個(gè)8位數(shù)據(jù)輸出鎖存器/緩沖器和一個(gè)8位數(shù)據(jù)輸入鎖存器,輸入輸出數(shù)據(jù)均受到

31、鎖存。端口B和C: 都包含一個(gè)8位數(shù)據(jù)輸入緩沖器和一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,輸出數(shù)據(jù)能鎖存,輸入數(shù)據(jù)不鎖存。端口C:可分成兩個(gè)4位端口,分別定義為輸入或輸出端口,還可定義為控制、狀態(tài)端口,配合端口A和端口B工作。(2) A組和B組控制部件A組A口:PA0PA7C口的高4位:PC4PC7B組B口:PB0PB7C口的低4位:PC0PC3 A組,B組的控制寄存器,接收來自數(shù)據(jù)總線的控制字,并根據(jù)控制字確定各端口的工作狀態(tài)和工作方式。(3) 數(shù)據(jù)總線緩沖器三態(tài)雙向8位緩沖器,是8255A與CPU 之間的數(shù)據(jù)接口。傳送輸入數(shù)據(jù)、輸出數(shù)據(jù)、控制命令字。(4)讀/寫控制部件接收來自CPU地址總線信號(hào)

32、和控制信號(hào),并發(fā)出命令到兩個(gè)控制組 (A組和B組)。CS:片選信號(hào),接CPU高位地址的譯碼輸出WR:寫信號(hào),WR有效,CPU向8255A寫入的控制或數(shù)據(jù)信息。RD:讀信號(hào),RD有效,CPU讀8255A的數(shù)據(jù)或狀 態(tài);RESET:復(fù)位信號(hào)。RESET有效時(shí),清 8255A 所有控制寄存器內(nèi)容,并將各端口置成輸入方式。 . 8255A的引腳8255A采用40線雙列直插封裝,引腳圖如圖所示。 8255A引腳定義432140371834.27D7D0A0A1RESETVCCGND986535368255APPI數(shù)據(jù)總線控制線電源線通道A通道B通道CCPU接口外設(shè)接口.PA7PA0.PB7PB0.PC7

33、PC025141516 171312 11 10 * PA7PA0:A端口數(shù)據(jù)信號(hào)引腳* PB7PB0:B端口數(shù)據(jù)信號(hào)引腳* PC7PC0:C端口數(shù)據(jù)信號(hào)引腳* D7D0: 8255A的8位數(shù)據(jù)線* A1A0: 端口選擇信號(hào) 當(dāng)A1A0=00時(shí) 選擇端口A當(dāng)A1A0=01時(shí) 選擇端口B當(dāng)A1A0=10時(shí) 選擇端口C當(dāng)A1A0=11時(shí) 選擇控制端口8255A的讀寫操作控制 8255A共有兩個(gè)控制字:即工作方式控制字和對(duì)C口置位/復(fù)位控制字。 (1)工作方式控制字:控制字和各位的含義如圖所示。.控制命令字(控制字) D7 D6 D5 D4 D3 D2 D1 D0B組端口C(PC3PC0)1=輸入,

34、 0=輸出端口B1=輸入,0=輸出方式選擇0方式0, 1=方式1A組端口C(PC7PC4)1=輸入, 0=輸出端口A1=輸入,0=輸出方式選擇00端口A方式0, 01=端口A方式1,1=端口A方式2方式設(shè)置標(biāo)志1=有效8255A工作方式控制字格式(2) 端口C的置位/復(fù)位控制字控制字的格式如圖所示。8255A 置位/復(fù)位控制字格式D7 D6 D5 D4 D3 D2 D1 D0位的置位/復(fù)位1=置位,0=復(fù)位位 選 擇D3 D2 D1 通道C位按位置位/復(fù)位控制標(biāo)志0=有效0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC

35、61 1 1 PC7不使用設(shè)置為000關(guān)于控制字要說明幾點(diǎn):(1) 設(shè)置方式控制字時(shí),A口、B口作為整體設(shè)置,而C口要分成上、下兩部分分別設(shè)置。三個(gè)端口的工作方式由一個(gè)控制字規(guī)定。(2) C口按位置位/復(fù)位控制字不是送到C口地址,而是送到控制寄存器地址;且一個(gè)控制字只能使C口一位置位或復(fù)位。(3) 方式控制字和按位置位/復(fù)位控制字均寫入同一個(gè)控制寄存器地址,二者通過最高位D7來區(qū)別。D7=1為方式控制字,D7=0為按位置位/復(fù)位控制字。(1) 方式0 基本輸入/輸出方式方式0是一種基本輸入輸出工作方式,它的24條I/O線全部都用作傳送數(shù)據(jù),不設(shè)置應(yīng)答信號(hào)線,常用于無條件傳送,輸出有鎖存,輸入只

36、有緩沖能力而無鎖存功能。 . 工作方式方式0中,端口C被分成兩個(gè)4位端口,它們可被定義為輸入或輸出端口,CPU與3個(gè)端口之間交換數(shù)據(jù),可直接由CPU執(zhí)行IN和OUT指令來完成。(2) 工作方式1選通式輸入/輸出方式 方式1選通輸入方式1操作使端口A或端口B作為鎖存輸入設(shè)備工作。端口C也可按方式1操作使用但不是對(duì)數(shù)據(jù),而是對(duì)控制信號(hào),或當(dāng)端口A或端口B為選通輸入端口時(shí)的握手信號(hào)。下圖示出8255A方式1選通輸入時(shí)的內(nèi)部結(jié)構(gòu)圖。(a)端口A方式1輸入(b)端口B方式1輸入方式1輸入端口狀態(tài)IBF:輸入緩沖器滿信號(hào),向外設(shè)輸 出,高電平有效。STB:選通信號(hào)。由外設(shè)輸入,低電平 有效。INTR:中斷

37、請(qǐng)求信號(hào),高電平有效。INTE:中斷允許信號(hào),它是通過端口PC4 (端口A)或PC2(端口B)的位來編程 的內(nèi)部位。 方式1選通輸出當(dāng)端口A或端口B為方式1輸出時(shí),各指定PC的3條線作為8255A與外設(shè)及CPU之間應(yīng)答信號(hào)。下圖為方式1選通輸出操作的內(nèi)部結(jié)構(gòu)圖。方式1輸出端口狀態(tài)INTRAPC3PC6PC7PA70方式1輸出端口APC4,5I/OINTEA2WR方式1輸出端口BINTRBPC0PC2PC1INTEBPB70WR(a)端口A方式1輸出(b)端口B方式1輸出OBF:輸出緩沖器滿信號(hào)。向外設(shè)輸出,低電平有效。ACK: 外設(shè)應(yīng)答信號(hào)。由外設(shè)輸入, 低電平有效。INTR:中斷請(qǐng)求信號(hào)。高

38、電平有效。INTE:中斷允許信號(hào)。(3) 工作方式2雙向選通輸入/輸出方式方式2只允許A組采用,此時(shí)端口A變?yōu)殡p向,允許數(shù)據(jù)在同一組8條線上發(fā)送和接收。下圖示出方式2操作內(nèi)部結(jié)構(gòu)圖。端口A工作在方式2的端口狀態(tài)OBFA:輸出緩沖器滿信號(hào),向外設(shè)輸出,低電平有效。ACKA:應(yīng)答信號(hào),由外設(shè)輸入,低電平有效。STBA: 數(shù)據(jù)選通輸入信號(hào)。由外設(shè)輸入, 低電平有效。IBFA:輸入緩沖器滿信號(hào),向外設(shè)輸出,高電平有效。INTE:中斷允許信號(hào) (INTE1和INTE2)。高電平有效。INTRA:中斷請(qǐng)求信號(hào),高電平有效。 8255A中端口A工作方式2時(shí),允許端口B工作于方式0或方式1,完成輸入/輸出功能

39、。4種組合狀態(tài)及其工作方式控制字格式如下表。方式2的組合狀態(tài)與控制字格式2. 8255A的工作方式初始化(初始化) 根據(jù)8255A與CPU接口硬件電路圖確 定8255A四個(gè)端口地址。 根據(jù)8255A的具體應(yīng)用,確定8255A工 作方式控制字內(nèi)容。 利用輸出指令,將工作方式控制字送 至控制命令寄存器中。 3. 8255A中PC口置位/復(fù)位操作 根據(jù)8255A與CPU接口硬件電路確定 8255A四個(gè)端口的端口地址。 根據(jù)對(duì)PC口具體哪一位操作,確定 8255A的按位置位/復(fù)位控制字內(nèi)容。 利用輸出指令,將按位置位/復(fù)位控制 字送至8255A控制命令寄存器中。 4. 8255A與8031接口及應(yīng)用

40、利用8255A擴(kuò)展單片機(jī)8031的I/O口,其接口電路十分簡(jiǎn)單,如下圖所示。設(shè)無關(guān)的地址線取1,則8255A各端口地址為:PA口地址:F7FCHPB口地址:F7FDHPC口地址:F7FEH控制命令寄存器地址:F7FEH 設(shè)要求8255A三個(gè)端口都工作于方式0,且PA口輸出,PB口輸入,PC口輸出,則滿足要求工作方式控制字為10000010B=82H,將工作寄存器R0內(nèi)容從PA口輸出,從PB口輸入數(shù)據(jù)存于B中,工作寄存器R1內(nèi)容從PC口輸出,則對(duì)應(yīng)程序段為: MOV DPTR,#0F7FFH;指向控制命令寄存器端口MOV A,#82H ;工作方式控制字AMOVX DPTR,A ;控制字控制命令寄

41、存器端口;以上三條指令完成為8255A工作方式初始化MOV DPTR,#0F7FCH ;指向PA口MOV A, R0 ;R0AMOVX DPTR,A ;APA口輸出INC DPTR ;指向B口MOVX A,DPTR ;PB口AMOV B,A ;ABINC DPTR ;指向PC口MOV A,R1 ;R1AMOVX DPTR,A ;APC口輸出MOV DPTR,#0F7FFH;指向控制口端口MOV A,#09H ;控制字AMOVX DPTR,A ;控制字控制口,使PC4=1 若想PC口的PC4置1,相應(yīng)的按位置位/復(fù)位控制字為00001001B=09H,對(duì)應(yīng)的程序段為: 若想PC口的PC4清零,相

42、應(yīng)的按位置位/復(fù)位控制字為00001000B=08H,對(duì)應(yīng)的程序段為:MOV DPTR,#0F7FFHMOV A,#08HMOVX DPTR,A特別注意: 在MCS 51系列單片機(jī)應(yīng)用系統(tǒng)中,若含有Intel-8255A或Intel-8155A(后面內(nèi)容介紹)與單片機(jī)I/O口擴(kuò)展電路,由于8255A或8155A的復(fù)位時(shí)間比單片機(jī)復(fù)位時(shí)間長(zhǎng),若在應(yīng)用程序中安排單片機(jī)復(fù)位后,立即對(duì)8255A或8155A進(jìn)行I/O初始化,則因8255A或8155A仍處于復(fù)位狀態(tài)(復(fù)位未結(jié)束)而導(dǎo)致初始化失敗。解決方法是在單片機(jī)復(fù)位后先執(zhí)行別的程序或執(zhí)行一段延時(shí)程序,等待8255A或8155A復(fù)位后再進(jìn)入初始化,延時(shí)

43、時(shí)間為20100ms。內(nèi)含2568位靜態(tài)RAM兩個(gè)可編程的8位I/O口一個(gè)可編程的6I/O口一個(gè)可編程14位減法定時(shí)/計(jì)數(shù)器可產(chǎn)生中斷請(qǐng)求具有地址鎖存功能(二).用Intel-8155A(8156A)擴(kuò)展I/O接口1. 8155/8156芯片介紹功能適用范圍8155與8156區(qū)別僅在于8155片選端低 電平有效而 8156為高電平有效適應(yīng)于既要擴(kuò)展I/O口,又要擴(kuò)展少 量RAM系統(tǒng)11020403021PC3PC4定時(shí)器輸入RESETPC5定時(shí)器輸出IO/MCE(或CE)RDWRALEAD0AD7Vss . . .8155(或8156)VccPC2PC1PC0PB7PB0PA7PA0 . .

44、. . . .結(jié)構(gòu)及引腳讀信號(hào)輸入端,該引腳為低且片選端有效時(shí),芯片I/O口或RAM內(nèi)容被讀到AD總線9RD寫信號(hào)輸入端,該引腳為低且片選端有效時(shí),AD總線上數(shù)據(jù)被寫入芯片的I/O口或RAM10WR復(fù)位信號(hào)輸入端,其脈寬標(biāo)準(zhǔn)為600ns,使芯片初始化,置3個(gè)I/O接口為輸入4RESET電源的0V端(參考地)20Vss電源的5V端40Vcc引腳名稱與功能引腳號(hào)引腳符號(hào)引腳符號(hào)引腳號(hào)引腳名稱與功能PA7PA02821A口,8位I/O口,可通過向命令/狀態(tài)寄存器送命令字來選定輸入或輸出PB7PB03629B口,8位I/O口,可通過向命令/狀態(tài)寄存器送命令字來選定輸入或輸出PC5PC05、2、1、39

45、、38、37C口,6位I/O口,可通過向命令/狀態(tài)寄存器送命令字來選定輸入或輸出,或用于為A口與B口提供狀態(tài)控制信號(hào)8155中6個(gè)寄存器 8155內(nèi)有6個(gè)寄存器,都為8位 ,按口地址尋址,由AD2、AD1、AD0選擇其中的一個(gè)寄存器如下表所示:寄存器AD2AD1AD0C/S寄存器000A口寄存器001B口寄存器010C口寄存器011定時(shí)器低字節(jié)寄存器100定時(shí)器高字節(jié)寄存器101命令/狀態(tài)寄存器寫入命令字,可規(guī)定8155工作方式。格式為:0 0 空操作0 1 立即停止定時(shí)器工作1 0 定時(shí)器到定置定的計(jì)數(shù)值后停止工作D7D6選擇定時(shí)器工作方式1 1 置定時(shí)器輸出方式和初值后啟動(dòng)工作。若原已啟動(dòng)

46、則原置計(jì)數(shù)值到后按新置計(jì)數(shù)值啟動(dòng)D51,允許A口中斷;D50,禁止A口中斷D41,允許B口中斷;D40,禁止B口中斷D3D2意義見下表:I/O口或其引腳D3、D2為00D3、D2為11D3、D2為01D3、D2為10A口基本I/O基本I/O選通I/O選通I/OB口基本I/OPC5輸入輸出輸出STBBPC4BFBPC3INTRBPC2STBASTBAPC1BFABFAPC0INTRAINTRA例如 若不使用8155內(nèi)部定時(shí)器且A口基本輸入,禁止中斷,B口基本輸出,禁止中斷,C口輸出,則命令字為0EH。讀出狀態(tài)字知道A口、B口和定時(shí)器狀態(tài),格式為:D7 未用D6 定時(shí)器中斷標(biāo)志。定時(shí)計(jì)數(shù)值到后為高

47、 電平,讀狀態(tài)字或定時(shí)重啟動(dòng)為低電平D5 B口中斷允許標(biāo)志D4 B口緩沖器滿/空標(biāo)志(輸入/輸出)D3 B口中斷請(qǐng)求標(biāo)志D2D1D0功能分別與D5D4D3功能類似,僅對(duì)A 口14位減法計(jì)數(shù)器定時(shí)/計(jì)數(shù)器輸出方式和初值如下圖所示:D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0高字節(jié)寄存器低字節(jié)寄存器定時(shí)器輸出方式計(jì)數(shù)器高6位計(jì)數(shù)器低8位 定時(shí)/計(jì)數(shù)器高字節(jié)寄存器的D7D6內(nèi)容決定定時(shí)器輸出方式,如下圖所示:定時(shí)器高字節(jié)寄存器 D7、D6的值輸出方式計(jì)數(shù)值到時(shí)輸出波形00011011單個(gè)方波連續(xù)方波單個(gè)脈沖連續(xù)脈沖2. 8155A與8031接口及應(yīng)用8155擴(kuò)展I/O和片外RAM

48、如圖所示: 設(shè)無關(guān)地址線取1,則8155片內(nèi)RAM和I/O端口地址:8155A片內(nèi)RAM地址范圍為:7E00H7EFFH控制/狀態(tài)寄存器:7FF8HPA口地址:7FF9HPB口地址:7FFAH PC口地址:7FFBH 定時(shí)器低字節(jié)寄存器:7FFCH定時(shí)器高字節(jié)寄存器:7FFDH 設(shè)上圖中規(guī)定8155A各端口為基本的輸出方式,將8031片內(nèi)RAM 20H單元內(nèi)容送PA口輸出,將8031片內(nèi)RAM 30H單元內(nèi)容送至8155A片內(nèi)30H單元法,要求寫出對(duì)應(yīng)的程序段。分析:a.滿足要求命令字為:00001111B=0FHb.8155A片內(nèi)30H單元對(duì)8031而言是片外RAM, 依據(jù)上圖對(duì)應(yīng)片外RAM

49、地址為7E30H。 相應(yīng)的源程序段如下:例MOV DPTR,#7FF8H;指向C/S口MOV A,#0FH ;命令字AMOVX DPTR,A ;AC/S口;以上三條指令完成對(duì)8155A初始化。INC DPTR ;指向PA口MOV A,20H ;8031片內(nèi)RAM20H單元內(nèi)容AMOVX DPTR,A ;APA口輸出MOV DPTR,#7E30H;指向8155A片內(nèi)RAM30H單元MOV A,30H ;8031片內(nèi)RAM30H單元內(nèi)容AMOVX DPTR,A ;A8155A片內(nèi)RAM30H單元(三).用串行口擴(kuò)展并行I/O接口 MCS-51系列單片機(jī)中,串行口工作方式0是移位寄存器工作方式,可擴(kuò)

50、展并行I/O接口。數(shù)據(jù)從RXD端出入,同時(shí)移位時(shí)鐘從TXD端輸出,發(fā)送和接收的數(shù)據(jù)都是8位,低位在先。不占用片外RAM空間,又簡(jiǎn)化了硬件結(jié)構(gòu),降低成本,適應(yīng)于低速處理的外部設(shè)備與單片機(jī)進(jìn)行信息交換。 1. 用串行口擴(kuò)展并行輸出口 74LS164是一個(gè)8位串入并行移位寄存器,采用雙列直插式14引腳封裝,A、B為串入數(shù)據(jù)輸入端,QAQH為8位并出輸出端,CLR為清零端,CLK為同步移位時(shí)鐘輸入端。 特別注意 串行移位在時(shí)鐘脈沖上升沿實(shí)現(xiàn),由于74LS164無并行輸出允許端,在串行輸入過程中,使輸出端QAQH的狀態(tài)不斷變化。在應(yīng)用系統(tǒng)中,需在74LS164輸出端加三態(tài)門控制,保證所有串行輸入數(shù)據(jù)結(jié)束

51、后再輸出。 74LS164與串行口結(jié)合,擴(kuò)二個(gè)8位并行輸出口如圖將8031片內(nèi)RAM 40H-41H單元內(nèi)容經(jīng)串行口由74LS164并行輸出,則相應(yīng)的程序段為 SET P1.7 ;74LS164輸出清零 MOV A,40H ;片內(nèi)RAM 40H單元內(nèi)容A MOV SCON,#00H;串行口置工作方式0 MOV SBUF,A ;將A串行口發(fā)送,同時(shí)啟動(dòng)串行口;工作WAIT: JNB TI,WAIT ;等待第一個(gè)字節(jié)發(fā)送完 CLR TI ;清IT標(biāo)志 MOV A,41H ;將片內(nèi)RAM41H單元A MOV SBUF,A ;A送串行口發(fā)送WAIT1: JNB TI,WATI1 ;等待第二個(gè)字節(jié)發(fā)送完

52、 CLR TI ;清TI標(biāo)志本段程序執(zhí)行完,1#74LS164輸出為片內(nèi)RAM41H單元內(nèi)容,2#74LS164輸出為片內(nèi)RAM40H單元內(nèi)容,QA為一個(gè)字節(jié)高位,QH為一個(gè)字節(jié)低位。 1. 用串行口擴(kuò)展并行輸入口 74LS165是8位并行置入移位寄存器,采用雙列直插式16引腳封裝。AH為并行8位輸入端,H為高位,A為低位,QH為串行輸出端, QH為反相串行輸出端,CLK為時(shí)鐘脈沖輸入端,S/L為移位/置入控制端, SIN為串行口輸入端,用于級(jí)連,NCLK為時(shí)鐘禁止位,NCLK=0,允許時(shí)鐘輸入。 74LS165與串行口結(jié)合,擴(kuò)一個(gè)8位并行輸入口如圖設(shè)從8位擴(kuò)展并行口輸入一個(gè)字節(jié),存放在寄存器

53、B,則對(duì)應(yīng)的程序段為: CLR P1.6 ;并行置入允許,S/L=0 SETB P1.6 ;允許串行移位S/L=1 MOV SCON,#10H;允許接受工作方式0,;啟動(dòng)接受WAIT: JNB RI,WAIT ;等待接受一幀 CLR RI ;清RI標(biāo)志 MOV A,SBUF ;讀入輸入數(shù)據(jù) MOV B, A ;存于B中6.5 A/D和D/A接口技術(shù) 在應(yīng)用系統(tǒng)設(shè)計(jì),必須把外量的物理量(電量和非電量 )變成數(shù)字量以便單片機(jī)接受。同時(shí)還必須把單片機(jī)經(jīng)處理得到的數(shù)字量(控制量)轉(zhuǎn)成模擬量,用以控制、調(diào)節(jié)一些執(zhí)行機(jī)構(gòu),實(shí)現(xiàn)對(duì)被控對(duì)象的控制。將模擬量轉(zhuǎn)換成數(shù)字量的器件稱為模/數(shù)轉(zhuǎn)換器或A/D轉(zhuǎn)換器,將數(shù)

54、字量轉(zhuǎn)換成模擬量的器件稱為數(shù)/模轉(zhuǎn)換器或D/A轉(zhuǎn)換器。一種典型的MCS-51系列單片機(jī)監(jiān)控系統(tǒng)框圖如下圖 由傳感器(將電量或非電量轉(zhuǎn)換成電量裝置)、放大電路、整形濾波、采樣保持器、多路開關(guān)及A/D構(gòu)成多路模擬量輸入通道,又稱單片機(jī)監(jiān)控系統(tǒng)的前向通道。 由D/A、多路開關(guān)、保持器、隔離放大、中間變換環(huán)節(jié)及執(zhí)行機(jī)構(gòu)成多路模擬量輸出通道,又稱單片機(jī)監(jiān)控系統(tǒng)的后向通道。分辨率通常用數(shù)字量的位數(shù)表示,一般為8位、12 位、16位等。分辨率8位D/A,它表示可以對(duì)滿量程的1/28的增量作出反應(yīng)。 轉(zhuǎn)換精度指滿量程時(shí)DAC實(shí)際模擬輸出值和理論值的接近程 度。 轉(zhuǎn)換時(shí)間一般為幾十納秒幾微秒。輸出方式一般為電流

55、型輸出,也有電壓型輸出。溫度范圍指D/A器件溫度使用范圍。線性度指DAC實(shí)際轉(zhuǎn)換特性曲線和理想直線之間的最大偏移差 1. D/A轉(zhuǎn)換器性能指標(biāo)一. D/A轉(zhuǎn)換器與單片機(jī)接口技術(shù) DAC0830/ 0831/ 0832是8位的D/A轉(zhuǎn)換集成芯片,與微處理器完全兼容,它們可以完全相互代換,國(guó)內(nèi)使用最為廣泛的是DAC0832,下面詳細(xì)討論DAC0832。2. 8位D/A轉(zhuǎn)換器與8031接口 * 分辨率為8位 * 轉(zhuǎn)換時(shí)間為1us * 輸出電流線性度可在滿量程下調(diào)節(jié) * 功耗為20mw * 邏輯電平與TTL兼容 * 供電電源為單一電源,可在5-15V內(nèi) (1)DAC0832技術(shù)指標(biāo) (2)DAC083

56、2內(nèi)部框圖DAC0832共有20條引腳,雙列直插式封裝。數(shù)字量輸入線8條( DI7DI0 );控制線5條;輸出線3條;電源線4條。(3)DAC0832的引腳CSWR1AGNDDI3DI2DI1DI0VREFRFRDGNDVccILEWR2XFERDI4DI5DI6DI7IOUT2IOUT10832DAC0832 的引腳定義DI0DI7: 數(shù)字量輸入。ILE: 輸入鎖存允許。控制第一級(jí)緩沖器的鎖存控制第二級(jí)緩沖器的鎖存VREF:基準(zhǔn)電壓。AGND:模擬信號(hào)地。VCC:工作電源。DGND:數(shù)字信號(hào)地。Rfb:片內(nèi)反饋電阻。IOUT1:IOUT2:電流輸出端,IOUT1+IOUT2=C(4) DAC

57、0832與單片機(jī)的接口單片機(jī)和0832接口時(shí),有三種連接方式:直通方式單緩沖方式 用于一路模擬量輸出或多路模擬量非同步輸出的場(chǎng)合。雙緩沖方式 用于多個(gè)DAC0832 同時(shí)輸出的場(chǎng)合。單緩沖方式接口電路 將兩級(jí)寄存器的控制信號(hào)并接在一起,無關(guān)的地址線取1,則DAC0832對(duì)應(yīng)的端口地址為7FFFH 。 采用D/A轉(zhuǎn)換器可以輸出鋸齒波、矩形波、三角波、梯形波等電壓波形。 采用單緩沖方式輸出上鋸齒波的D/A轉(zhuǎn)換程序: ORG 2000HSTART:MOV DPTR,#7FFFH ;選中0832 MOV A,#00H ;D/A數(shù)據(jù)初值LOOP: MOVX DPTR,A ;轉(zhuǎn)換 ACALL DELAY2

58、ms ; 調(diào)2ms延時(shí)子程序 INC A ;修改D/A數(shù)據(jù) SJMP LOOP ;循環(huán),連續(xù)輸出A=00A=0FFH雙緩沖方式接口電路適應(yīng)于含有多路D/A轉(zhuǎn)換且要求同步輸出的單片機(jī)應(yīng)用系統(tǒng)中。第一步進(jìn)行數(shù)字量輸入鎖存,第二步為D/A轉(zhuǎn)換輸出。 無關(guān)地址線取1,則1#0832數(shù)據(jù)輸入的端口地址為BFFFH,2#0832數(shù)據(jù)輸入的端口地址為DFFFH,同時(shí)啟動(dòng)兩路D/A工作的端口地址為7FFFH。對(duì)應(yīng)的程序段為: MOV DPTR,#0BFFFH ;指向1#08032端口地址MOV A,#DATA1MOVX DPTR,A ;將DATA1送入1#0832輸入鎖存器MOV DPTR,#0DFFFH ;

59、指向2#0832端口地址MOV A,#DATA2MOVX DPTR,A ;將DATA2送入2#0832輸入鎖存器MOV DPTR,#7FFFH ;指向啟動(dòng)1#、2#0832工作端口地址MOVX DPTR,A ;同時(shí)啟動(dòng)1#、2#0832;實(shí)現(xiàn)同步輸出。 DAC1208系列D/A轉(zhuǎn)換器和DAC1210系列D/A轉(zhuǎn)換器都是12位D/A轉(zhuǎn)換器,它們都與微處理器兼容。國(guó)內(nèi)使用最廣泛的是DAC1210,下面詳細(xì)討論DAC1210。 3. 12位D/A轉(zhuǎn)換器與8031接口 * 分辨率為12位 * 轉(zhuǎn)換時(shí)間為1us * 參考電壓VREF=-10+10V * 功耗為20mw * 邏輯電平與TTL兼容 * 供電

60、電源為單一電源,可在5-15V內(nèi) (1)DAC1210技術(shù)指標(biāo) (2)DAC1210內(nèi)部框圖(3)DAC1210的引腳DI0DI11:12位數(shù)輸入端、DI11為最高位BYTE1/BYTE2:輸入數(shù)據(jù)字節(jié)順序控制端,當(dāng)該引腳為“”時(shí),同時(shí)打開位輸入鎖存器和位輸入鎖存器,將12位數(shù)據(jù)全部送到鎖存器中,當(dāng)該引腳為“0”時(shí),只將低4位數(shù)據(jù)送入4位輸入鎖存器中。其余各引腳功能與DAC0832對(duì)應(yīng)引腳一樣,參見前面內(nèi)容。 (4) DAC1210與單片機(jī)的接口 (雙極性輸出方式 ) 無關(guān)地址線取1,則DAC1210中高8位數(shù)據(jù)送至8位輸入鎖存器端口地址為BFFFH;低4位數(shù)據(jù)送至4位輸入鎖存器的端口地址為9

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論