版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
“十二五”職業(yè)教育國家規(guī)劃教材單片機原理與接口技術(shù)(第五版)DANPIANJIYUANLIYUJIEKOUJISHU單片機系統(tǒng)擴展大連理工大學(xué)出版社李明畢萬新主編“十二五”職業(yè)教育國家規(guī)劃教材單片機原理與接口技術(shù)(第五版項目規(guī)劃12認(rèn)識單片機的三總線345利用三總線擴展程序存儲器利用三總線擴展數(shù)據(jù)存儲器簡單并行I/O接口的擴展6可編程并行I/O口的擴展首前后項目規(guī)劃12認(rèn)識單片機的三總線345利用三總線擴展程序存儲器點陣式廣告屏的制作調(diào)試和改進7910利用其他串行總線擴展單片機點陣式LED廣告屏的電路設(shè)計點陣式廣告屏的程序設(shè)計8首前后點陣式廣告屏的制作調(diào)試和改進7910利用其他串行總線擴展單片利用單片機控制點陣式廣告屏。顯示數(shù)字、字符和漢字,可以根據(jù)需要改變顯示內(nèi)容。項目規(guī)劃利用單片機控制點陣式廣告屏。顯示數(shù)字、字符和漢字,可以根項目規(guī)劃實施方案利用單片機的三總線對單片機擴展存儲器和并行口,驅(qū)動LED點陣發(fā)光以顯示各種字符和圖形。還要利用串行口與PC機(上位機)聯(lián)系,以便改變顯示內(nèi)容。項目規(guī)劃實施方案利用單片機的三總線對單片機擴展存儲器和并1.三總線的形成,擴展方法,具體擴展電路2.LED點陣以及驅(qū)動3.系統(tǒng)其它擴展方法及應(yīng)用舉例項目規(guī)劃1.三總線的形成,擴展方法,具體擴展電路項目規(guī)劃
1.使用軟件設(shè)計電路圖、編寫并調(diào)試程序2.使用工具制作電路板并測試其正確性3.軟硬件聯(lián)調(diào),完成要求功能項目規(guī)劃1.使用軟件設(shè)計電路圖、編寫并調(diào)試程序項目規(guī)劃說明靜態(tài)文字和圖形顯示(或緩慢變化)。不涉及視頻和彩色顯示。參考樣本:光盤仿真文件:點陣16X16X3.DSN項目規(guī)劃首前后說明靜態(tài)文字和圖形顯示(或緩慢變化)。不涉及視頻和彩色顯
看了圖片,對LED點陣式顯示屏有了回憶吧,幾乎到處都是。他的內(nèi)部什么樣子?工作原理如何?我能制作出這種東西嗎?相信完成本項目以后就會有明確答案。其實,現(xiàn)在就可以告訴你,LED屏內(nèi)部控制器就是單片機。只不過,需要擴展大量的I/O接口。項目規(guī)劃首前后看了圖片,對LED點陣式顯示屏有了回憶吧,幾乎到處都是。項目規(guī)劃單片機總是需要和外部設(shè)備配合來完成各種任務(wù),單片機和各種外設(shè)之間的電路,就稱之為接口電路。本書名《單片機原理與接口技術(shù)》,就是要在介紹單片機之后,要進入接口技術(shù)的廣闊天地。要不然,學(xué)了單片機也沒什么用。以前的項目多少用了一點接口技術(shù)的知識,現(xiàn)在開始,就要化主要精力來研究接口技術(shù)啦!首先介紹三總線,利用三總線擴展各種并行接口的器件,這時就可以看懂前面的電路圖了。還要介紹一些串行接口的器件及其與51單片機的接口方法,然后就可以設(shè)計我們自己的LED屏控制器了。首前后項目規(guī)劃單片機總是需要和外部設(shè)備配合來完成各種任務(wù),單片機和認(rèn)識單片機的三總線任務(wù)6.1
認(rèn)識單片機的三總線任務(wù)6.1單片機應(yīng)用范圍極其廣泛,需求五花八門。應(yīng)對的方法,除了選用和研制新的單片機,就是對現(xiàn)有的單片機進行擴展。MCS-51系列單片機的擴展主要提供了傳統(tǒng)的三總線并行擴展的能力,此外還有串行口也可用來擴展。首前后單片機應(yīng)用范圍極其廣泛,需求五花八門。應(yīng)對的方法總線就是連接系統(tǒng)中各擴展部件的一組公共信號線。按照功能可分為地址總線AB、數(shù)據(jù)總線DB和控制總線CB。整個擴展系統(tǒng)以單片機為核心,通過總線把各擴展部件連接起來,各擴展部件“掛”在總線之上。擴展內(nèi)容包括ROM、RAM、和I/O接口電路等。因為擴展是在單片機芯片之外進行的,通常稱擴展的ROM為外部ROM,稱擴展的RAM為外部RAM。必須指出:MCS-51系列單片機外部擴展I/O接口時,其地址是與外部RAM統(tǒng)一編址的。換句話說,外部擴展的I/O接口要占用外部RAM的地址。典型的單片機擴展系統(tǒng)結(jié)構(gòu)見圖6-3。●認(rèn)識單片機的三總線6.1.1MCS-51系列單片機的三總線概述首前后總線就是連接系統(tǒng)中各擴展部件的一組公共信號線。典型的單片機擴展系統(tǒng)結(jié)構(gòu)圖6.1.1MCS-51系列單片機的三總線概述●認(rèn)識單片機的三總線首前后典型的單片機擴展系統(tǒng)結(jié)構(gòu)圖6.1.1MCS-51系列單片機地址總線(AddressBus,AB)地址總線用于傳送單片機送出的地址信號,以便進行存儲單元和I/O端口的選擇。地址總線是單向的,只能由單片機向外發(fā)出。地址總線的數(shù)目決定著可以直接訪問的存儲單元的數(shù)目。N位地址可以產(chǎn)生2N個連續(xù)地址編碼,可訪問2N個存儲單元。通常也說尋址范圍為2N個地址單元。MCS-51單片機有16根地址線,存儲器或I/O接口擴展最多可達(dá)64KB,即216個地址單元。6.1.1MCS-51系列單片機的三總線概述●認(rèn)識單片機的三總線地址總線(AddressBus,AB)6.1.1MCS-數(shù)據(jù)總線(DataBus,DB)數(shù)據(jù)總線用于在單片機與存儲器之間或單片機與I/O端口之間傳送數(shù)據(jù)。數(shù)據(jù)總線是雙向的,可以進行兩個方向的數(shù)據(jù)傳送。單片機系統(tǒng)數(shù)據(jù)總線的位數(shù)與單片機處理數(shù)據(jù)的字長一致。MCS-51單片機字長為8位,所以它的數(shù)據(jù)總線位數(shù)也是8位。6.1.1MCS-51系列單片機的三總線概述●認(rèn)識單片機的三總線首前后數(shù)據(jù)總線(DataBus,DB)6.1.1MCS-51系控制總線(ControlBus,CB)控制總線實際上就是一組控制信號線,包括由單片機發(fā)出的控制信號,以及從其他部件送給單片機的請求信號和狀態(tài)信號。每一條控制信號線的傳送方向經(jīng)常是單向的,是固定的,但由不同方向的控制信號線組合的控制總線則表示為雙向。總線結(jié)構(gòu)形式大大減少了單片機系統(tǒng)中傳輸線的數(shù)目,提高了系統(tǒng)的可靠性,增加了系統(tǒng)的靈活性。另外,總線結(jié)構(gòu)也使擴展易于實現(xiàn),只要符合總線規(guī)范的各功能部件都可以很方便地接入系統(tǒng),實現(xiàn)單片機的擴展。6.1.1MCS-51系列單片機的三總線概述●認(rèn)識單片機的三總線首前后控制總線(ControlBus,CB)6.1.1MCS-MCS-51系列單片機可以利用P0口、P2口和P3口的部分口線的第二功能形成三總線。如圖6-4所示。6.1.2MCS-51系列單片機的三總線形成●認(rèn)識單片機的三總線首前后MCS-51系列單片機可以利用P0口、P2MCS-51系列單片機可以利用P0口、P2口和P3口的部分口線的第二功能形成三總線。這是項目1的時候介紹三總線的圖形●認(rèn)識單片機的三總線圖1-22三總線構(gòu)成示意圖6.1.2MCS-51系列單片機的三總線形成首前后MCS-51系列單片機可以利用P0口、P2口和P3口的部分口
P0口線用作數(shù)據(jù)線/低8位地址線P0口線的第二功能具有地址線/數(shù)據(jù)線分時復(fù)用功能。在訪問片外存儲器時,自動進入第二功能,不需要進行設(shè)置。在一個片外存儲器讀寫周期中,首先P0口輸出低8位地址(A0—A7),然后以ALE為鎖存控制信號,選擇高電平或下降沿觸發(fā)的8D觸發(fā)器作地址鎖存器(通常使用鎖存器是74LS373或INTEL的8282),確保低8位地址信息在消失前被送入鎖存器暫存起來并輸出,作為地址總線的低8位(A7~A0),直到訪問周期結(jié)束。地址信號被鎖存之后,P0口轉(zhuǎn)換為數(shù)據(jù)線,以便傳輸數(shù)據(jù),直到訪問周期結(jié)束。從而實現(xiàn)了對地址和數(shù)據(jù)的分離?!裾J(rèn)識單片機的三總線6.1.2MCS-51系列單片機的三總線形成首前后P0口線用作數(shù)據(jù)線/低8位地址線●認(rèn)識單片機的三總線6.P2口線用作高8位地址線P2口線第二功能用于高8位地址線的擴展。在訪問片外存儲器時,自動進入第二功能,不需要進行設(shè)置。由于P2口的第二功能只具有地址線擴展的功能,在一個片外存儲器讀寫周期中,P2口線始終輸出地址總線的高8位,可直接與存儲器或接口芯片的地址線相連,無需鎖存。P2與P0共同提供了16根地址線,實現(xiàn)了MCS-51單片機系統(tǒng)64KB(216)的尋址范圍。表6-1所示為P2和P0口線與地址線的對應(yīng)關(guān)系?!裾J(rèn)識單片機的三總線6.1.2MCS-51系列單片機的三總線形成A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P2口線用作高8位地址線●認(rèn)識單片機的三總線6.1.2M控制信號構(gòu)成系統(tǒng)的控制總線的控制信號包括:ALE(30)是鎖存信號,用于進行P0口地址線和數(shù)據(jù)線的分離。PSEN(29)是片外程序存儲器讀選通控制信號。RD(17)、WR(16)分別是外部數(shù)據(jù)存儲器的讀、寫選通控制信號。EA(31)是程序存儲器訪問控制信號。當(dāng)它為低電平時,對程序存儲器的訪問僅限于外部存儲器;為高電平時,對程序存儲器的訪問從單片機的內(nèi)部存儲器開始,超過片內(nèi)存儲器地址時自動轉(zhuǎn)向外部存儲器?!裾J(rèn)識單片機的三總線6.1.2MCS-51系列單片機的三總線形成首前后控制信號●認(rèn)識單片機的三總線6.1.2MCS-51系列單●認(rèn)識單片機的三總線6.1.3利用三總線擴展單片機系統(tǒng)的方法用于對單片機擴展的器件一般都具有能夠與單片機相適應(yīng)的三總線接口,即數(shù)據(jù)線、地址線和控制線。一般在使用時將接口器件的三總線與單片機的三總線相連即可。在具體器件連接時,可能還需一點輔助電路來配合工作,比如譯碼器等。后續(xù)內(nèi)容會根據(jù)實際需要來介紹具體的連接方法。首前后●認(rèn)識單片機的三總線6.1.3利用三總線擴展單片機系統(tǒng)的利用三總線擴展程序存儲器(只讀存儲器)任務(wù)6.2
利用三總線擴展程序存儲器(只讀存儲器)任務(wù)6.2半導(dǎo)體存儲器可以分為只讀存儲器ROM和隨機存儲器RAM2大類。只讀存儲器內(nèi)容掉電不丟,在工作時不能改寫,在單片機中用于存儲程序和常數(shù),8051片內(nèi)就有4K字節(jié)的ROM。隨機存儲器的內(nèi)容可以在工作時隨機改寫,但是掉電就丟,8051內(nèi)部有128字節(jié)的RAM,(其他寄存器不算在內(nèi))。單片機的這些存儲器如果不夠用,就需要外部擴展。將只讀存儲芯片連接到構(gòu)造好的系統(tǒng)總線上,就完成了程序存儲器的擴展。下面以8031單片機擴展1片2764為例,說明程序存儲器擴展。任何器件在使用之前,都要對其特性了解清楚。先看看2764的特性,然后連接。半導(dǎo)體存儲器可以分為只讀存儲器ROM和隨機存儲器RAM2大●利用三總線擴展程序存儲器
6.2.1典型的只讀存儲器芯片Intel2764Intel2764是一種+5V的8K字節(jié)UVEPROM存儲器芯片(光擦除電改寫)。其中,27是系列號,64與它的存儲容量有關(guān)(64K位,8K字節(jié))。這個系列的產(chǎn)品與存儲容量的對關(guān)系如表6-2所示,此處只對Intel2764進行介紹●利用三總線擴展程序存儲器6.2.1典型的只讀存儲器芯片Intel2764是一種+5V的8K字節(jié)UVEPROM存儲器芯片(光擦除電改寫)。其中,27是系列號,64與它的存儲容量有關(guān)(64K位,8K字節(jié))。這個系列的產(chǎn)品與存儲容量的對關(guān)系如表6-2所示,此處只對Intel2764進行介紹?!窭萌偩€擴展程序存儲器
6.2.1典型的只讀存儲器芯片Intel2764首前后Intel2764是一種+5V的8K字節(jié)UVEPROM存1.引腳功能2764是28引腳的UVEPROM,存儲容量為8KB,其引腳如圖6-5所示。2764的第26腳為NC,表示不用。A0~A12是13根地址線O7~O0是2764的8條數(shù)據(jù)線,也有標(biāo)志為D7~D0的。OE是輸出允許信號,用戶控制。高電平時,使數(shù)據(jù)線處于高阻態(tài);低電平時,數(shù)據(jù)線處于讀出狀態(tài)。CE是片選信號,用于控制本芯片是否工作。高電平時,本片不工作;低電平時,選中本片工作。圖6-52764引腳圖PGM是編程脈沖輸入線。用于控制本片處于正常工作狀態(tài)還是編程狀態(tài)。高電平時,本片處于正常工作狀態(tài)。若給它輸入一個50ms的負(fù)脈沖,則它與Vpp引腳上的21V高壓配合使芯片處于編程狀態(tài)?!窭萌偩€擴展程序存儲器
6.2.1典型的只讀存儲器芯片Intel2764首前后1.引腳功能●利用三總線擴展程序存儲器6.2.1典型的只
2.工作方式2764共有五種工作方式,表6-3列出了2764的工作狀態(tài)和相應(yīng)引腳線上電平的關(guān)系?!窭萌偩€擴展程序存儲器
6.2.1典型的只讀存儲器芯片Intel2764首前后2.工作方式●利用三總線擴展程序存儲器6.2.1典型(1)8031的引腳P0.7~P0.0不經(jīng)過鎖存器與2764的數(shù)據(jù)線D7~D0相連,完成數(shù)據(jù)線擴展。(2)8031的引腳P0.7~P0.0經(jīng)過鎖存器與2764的地址線A7~A0相連,P2.4~P0.0直接與2764的地址線A12~A8相連,完成地址線擴展。(3)8031的程序存儲器訪問控制端PSEN與2764的輸出允許端OE相連完成控制線的擴展。(4)8031的引腳P2.6經(jīng)非門與2764片選端CE相連,進行芯片選擇控制。這種接法可以稱為線選法。(5)8031沒有片內(nèi)程序存儲器,對程序的訪問完全在片外進行,因此將其EA端接地。擴展后的邏輯結(jié)構(gòu)如圖6-6所示。6.2.2單片機與2764的連線●利用三總線擴展程序存儲器
首前后(1)8031的引腳P0.7~P0.0不經(jīng)過鎖存器與2764擴展后的邏輯結(jié)構(gòu)如圖6-6所示●利用三總線擴展程序存儲器
6.2.2單片機與2764的連線首前后擴展后的邏輯結(jié)構(gòu)如圖6-6所示●利用三總線擴展程序存儲根據(jù)圖6-6的電路接法,P2.7、P2.5與尋址無關(guān),均設(shè)為“1”。P2.6經(jīng)非門與片選端相連,當(dāng)它為“1”時,可使片選端有效。這種利用一根地址線與存儲器的片選端相連的方法稱為線選法。根據(jù)圖中的接線分析,此片2764地址范圍是0E000H~0FFFFH。地址范圍的分析參見表6-4。6.2.3確定存儲器的地址范圍●利用三總線擴展程序存儲器
P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0NCENA12A11A10A9A8A7A6A5A4A3A2A1A011100000000000001111111111111111表中第一行是單片機的地址信號端口引腳,其中P0的地址信號要經(jīng)過鎖存器鎖存輸出表中第二行代表單片機的地址線(三總線之一)表中第三行代表EPROM2764的引腳與單片機地址線對應(yīng)引腳相連,N代表無關(guān),不連。表中第四行代表EPROM2764工作時單片機應(yīng)該輸出電平,對應(yīng)最小地址E000H表中第五行代表EPROM2764工作時單片機應(yīng)該輸出電平,對應(yīng)最大地址FFFFH其余在最小地址與最大地址之間的地址(E001H~FFFEH),變化的只是A0~A12地址線的數(shù)值。首前后根據(jù)圖6-6的電路接法,P2.7、P2.5與尋址無關(guān),均設(shè)為在確定芯片的地址范圍時,對未使用的P2口線可以任意設(shè)置,這就出現(xiàn)了多個地址對應(yīng)同一個存儲單元的情況,稱為地址重復(fù)。比如將P2.5和P2.7設(shè)為0,則第三行的最小地址為4000H,第四行的最大地址為5FFFH,這時EPROM2764地址范圍是4000H~5FFFH。在只有一片2764的情況下,用哪個地址都是一樣的。●利用三總線擴展程序存儲器
6.2.3確定存儲器的地址范圍在確定芯片的地址范圍時,對未使用的P2口線可以任意設(shè)置,這就●利用三總線擴展程序存儲器
如果改變EPROM2764的片選信號線的接法,則需要重新分析地址范圍。比如,在圖6-6中,單片機的P2.6不經(jīng)過反相器,也就是P2.6直接連接到2764的片選信號CE端,且不用的2個引腳P2.7和P2.5都設(shè)置為0,則這個2764的地址范圍就是0000H~1FFFH。其他芯片地址范圍的確定,可以參照以上的這種分析方法。對于擴展多片程序存儲器的情況,可以考慮使用線選法或譯碼法,此處暫不介紹,因為選用一片27512就可以達(dá)到64KB,滿足一般需求。6.2.3確定存儲器的地址范圍●利用三總線擴展程序存儲器如果改變EPROM2764的片目的:擴展程序存儲器內(nèi)容:仿照圖6-6的接法,將CE直接接地,外部擴展一片EPROM2764,其地址范圍在0000-1FFFH之間,實驗查表指令的執(zhí)行。讀取2764中從地址1000H單元開始的30個字節(jié)的數(shù)據(jù),存放入片內(nèi)RAM中,從地址40H開始存放,然后轉(zhuǎn)入片外2764中地址1000H地址執(zhí)行程序。2764中程序的功能是,在P1口輸出0—F不斷變化的數(shù)據(jù),用數(shù)碼管顯示這個數(shù)據(jù)。操作步驟:利用proteus軟件設(shè)計擴展2764的電路圖。編寫程序如下:●利用三總線擴展程序存儲器
程序訪問目的:擴展程序存儲器●利用三總線擴展程序存儲器程序訪●利用三總線擴展程序存儲器
程序訪問;擴2764A.ASM,這個程序裝入AT89C51.ORG0000HMOVR7,#30MOVR0,#40HMOVA,#0MOVDPTR,#01000HLP:MOVCA,@A+DPTRMOV@R0,AINCR0INCDPTRMOVA,#0DJNZR7,LPLJMP1000HEND●利用三總線擴展程序存儲器程序訪問;擴2764A.A●利用三總線擴展程序存儲器
程序訪問;擴2764B.ASM,裝入2764;程序的功能是,;在P1口輸出0—F不斷變化的數(shù)據(jù),;用數(shù)碼管顯示這個數(shù)據(jù)。
ORG1000HMOVR2,#0MOVA,R2STAR:MOVP1,AINCR2MOVA,R2ANLA,#0FHSJMPSTAREND仿真文件:擴2764.DSN,利用此文件還可以觀察單片機的三總線時序。注意:對于具有片內(nèi)程序存儲器的單片機芯片,EA的連接因應(yīng)用的需要而定?!窭萌偩€擴展程序存儲器程序訪問;擴2764B.A利用三總線擴展數(shù)據(jù)存儲器任務(wù)6.3
利用三總線擴展數(shù)據(jù)存儲器任務(wù)6.3●利用三總線擴展數(shù)據(jù)存儲器
外部數(shù)據(jù)存儲器的擴展也可以利用MCS-51系列單片機的三總線來擴展。這里以8051擴展一片Intel6264為例來介紹擴展方法?!窭萌偩€擴展數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器的擴展也可以利用M6.3.1典型的隨機存取存儲器芯片Intel6264Intel6264是一種靜態(tài)RAM芯片。其中,62是系列號,64與它的存儲容量有關(guān),是說明其中有64K位的存儲容量。8位作為一個存儲單元(字節(jié)),共有8K字節(jié)。這個系列的產(chǎn)品有62128是16K字節(jié),62256是32K字節(jié)等。此處著重對Intel6264進行介紹?!窭萌偩€擴展數(shù)據(jù)存儲器
6.3.1典型的隨機存取存儲器芯片Intel6264In1.引腳功能6264、62128、62256都是28引腳的靜態(tài)RAM,其引腳如圖6-7所示。6.3.1典型的隨機存取存儲器芯片Intel6264●利用三總線擴展數(shù)據(jù)存儲器
首前后1.引腳功能6.3.1典型的隨機存取存儲器芯片Intel6264的存儲容量為8KB,有13根地址線A12~A0。62128的存儲容量為16KB,是6264的2倍,比6264多1條地址線,因此62128的第26腳為A13。62256的存儲量為32KB,是6264的4倍,比6264多2條地址線,因此62256的第26腳為A13、第1腳為A14。D7~D0是6264的8條數(shù)據(jù)線。OE是輸出允許信號,控制從6264中讀出數(shù)據(jù)是否送到數(shù)據(jù)線上,低電平有效。WE是寫選通信號,控制6264是否處于寫入狀態(tài),低電平寫有效。CS1和CS1是片選信號,用于控制本芯片是否工作。CS1為高電平、CS1為低電平時,選中本片工作;否則本片不工作。6.3.1典型的隨機存取存儲器芯片Intel6264●利用三總線擴展數(shù)據(jù)存儲器
首前后6264的存儲容量為8KB,有13根地址線A12~A0。622.工作方式6264共有五種工作方式,表6-5列出了6264的工作狀態(tài)和相應(yīng)引腳線上電平的關(guān)系。6.3.1典型的隨機存取存儲器芯片Intel6264●利用三總線擴展數(shù)據(jù)存儲器
首前后2.工作方式6.3.1典型的隨機存取存儲器芯片Intel下面以8051單片機擴展1片6264為例,說明數(shù)據(jù)存儲器擴展。見圖6-86.3.2數(shù)據(jù)存儲器(隨機存儲器)擴展●利用三總線擴展數(shù)據(jù)存儲器
首前后下面以8051單片機擴展1片6264為例,說明數(shù)據(jù)存儲器擴展1.邏輯連線①數(shù)據(jù)線擴展,同程序存儲器。②地址線擴展,同程序存儲器。③8051的數(shù)據(jù)存儲器讀訪問控制端RD與6264的輸出允許端OE相連,數(shù)據(jù)存儲器寫訪問控制端WR與6264寫選通信號端WE相連完成控制線的擴展。④片選信號,直接連接固定電平。2.地址范圍P2.7~P2.5與尋址無關(guān),均設(shè)為“1”。因此,此片6264的地址范圍是0E000H~0FFFFH。如果把P2.6設(shè)為1,P2.5設(shè)為0,P2.7設(shè)為0,則其地址為04000H~05FFFH。這3位還可以設(shè)為另外的值,地址就不同了。這就出現(xiàn)了重復(fù)地址,使用那一個都可以,效果相同。見圖6-86.3.2數(shù)據(jù)存儲器(隨機存儲器)擴展●利用三總線擴展數(shù)據(jù)存儲器
首前后1.邏輯連線6.3.2數(shù)據(jù)存儲器(隨機存儲器)擴展●利用目的:擴展數(shù)據(jù)存儲器內(nèi)容:單片機片外擴展一片6264,其地址范圍是:4000H--5FFFH。首先向6264的4100H開始的10個字節(jié)寫入數(shù)據(jù),;然后把寫入的數(shù)據(jù)讀出來,寫入片內(nèi)RAM10H開始的地址。此實驗也可以觀察單片機訪問片外數(shù)據(jù)存儲器的時序操作步驟:1、畫圖2、編程●利用三總線擴展數(shù)據(jù)存儲器
擴展數(shù)據(jù)存儲器6.3.2數(shù)據(jù)存儲器(隨機存儲器)擴展目的:擴展數(shù)據(jù)存儲器●利用三總線擴展數(shù)據(jù)存儲器擴展數(shù)據(jù)存儲●利用三總線擴展數(shù)據(jù)存儲器
擴展數(shù)據(jù)存儲器;擴6264.ASM,此程序裝入單片機(1)
ORG0000hMAIN:MOVA,#0A1H;準(zhǔn)備寫入的數(shù)據(jù)
MOVR7,#10;字節(jié)數(shù)
MOVDPTR,#4100H;寫入6264的地址L1:MOVX@DPTR,A;寫入數(shù)據(jù)
INCA;數(shù)據(jù)加1INCDPTR;地址加1DJNZR7,L1;循環(huán)10次6.3.2數(shù)據(jù)存儲器(隨機存儲器)擴展●利用三總線擴展數(shù)據(jù)存儲器擴展數(shù)據(jù)存儲器;擴6264.AS●利用三總線擴展數(shù)據(jù)存儲器
擴展數(shù)據(jù)存儲器;擴6264.ASM,此程序裝入單片機(2)MOVR7,#10;準(zhǔn)備讀10次
MOVR1,#10H;準(zhǔn)備保存地址
MOVDPTR,#4100H;讀6264地址L2:MOVXA,@DPTR;讀出數(shù)據(jù)
MOV@R1,A;保存
INCR1;INCDPTR;DJNZR7,L2;循環(huán)10次
SJMPMAIN;從頭開始
END參看光盤仿真文件:擴6264.DSN。也可以在偉福軟件里查看XDATA窗口和DATA窗口的內(nèi)容。6.3.2數(shù)據(jù)存儲器(隨機存儲器)擴展首前后●利用三總線擴展數(shù)據(jù)存儲器擴展數(shù)據(jù)存儲器;擴6264.ASMCS-51單片機對ROM的訪問指令是MOVC,對外部ROM的控制信號是PSEN。MCS-51單片機對外部RAM的訪問指令是MOVX,對外部RAM的控制信號是WR、RD。因為單片機的所有工作都是在控制信號的作用下完成的,不同的控制信號意味著不同的操作,所以外部ROM和外部RAM不存在“爭地址”的問題,即二者的地址范圍可以重疊。●利用三總線擴展數(shù)據(jù)存儲器
6.3.3同時擴展程序存儲器和數(shù)據(jù)存儲器注意:控制信號相同的芯片爭地址,控制信號不同的芯片不爭地址。爭地址的芯片需要進行片選控制,不爭地址的芯片可以不進行片選控制。MCS-51單片機對ROM的訪問指令是MOVC,對外部ROM目的:練習(xí)三總線使用內(nèi)容:8051單片機同時擴展一片2764和一片6264。操作步驟:1.畫出擴展的邏輯連線,如圖6-9所示。2.地址范圍分析:具體方法可以參照表6-4.(1)外部ROM和RAM之間不爭地址。(2)只有一片2764,沒有控制信號相同的同類芯片與它爭地址。2764的8條數(shù)據(jù)線連接到單片機P0口。2764存儲容量為8KB,地址線13根。地址線A0~A12連接到單片機擴展的地址線,片選直接接地,于是2764的地址范圍可以認(rèn)為是在0000H~1FFFH;如果將不用的地址線A13~A15看成111,則2764的地址范圍可以是E000H~FFFFH。控制總線只有OE,連接到單片機的PSEN?!窭萌偩€擴展數(shù)據(jù)存儲器
6.3.3同時擴展程序存儲器和數(shù)據(jù)存儲器首前后目的:練習(xí)三總線使用●利用三總線擴展數(shù)據(jù)存儲器6.3.3●利用三總線擴展數(shù)據(jù)存儲器
6.3.3同時擴展程序存儲器和數(shù)據(jù)存儲器首前后●利用三總線擴展數(shù)據(jù)存儲器6.3.3同時擴展程序存儲器和目的:練習(xí)三總線使用內(nèi)容:8051單片機同時擴展一片2764和一片6264。操作步驟:1.畫出擴展的邏輯連線,如圖6-9所示。2.地址范圍分析:具體方法可以參照表6-4.(3)只有一片6264,沒有同類芯片與它爭地址。6264有地址線13根。6264芯片按照圖中電路接法:單片機地址線A0-A12與6264地址線對應(yīng)相連。單片機地址線A13與6264的CE相連,必須低電平;單片機地址線A14與6264的CS相連,必須高電平,于是6264的地址范圍是4000H--5FFFH(或者是C000H-DFFFH)。地址總線采用了線選法。數(shù)據(jù)總線由P0口到D0--D7??刂瓶偩€有RD和WR?!窭萌偩€擴展數(shù)據(jù)存儲器
6.3.3同時擴展程序存儲器和數(shù)據(jù)存儲器首前后目的:練習(xí)三總線使用●利用三總線擴展數(shù)據(jù)存儲器6.3.3操作步驟:3.編程訪問:本程序首先向6264的4100H開始的10個字節(jié)寫入數(shù)據(jù),然后把寫入的數(shù)據(jù)讀出來,寫入片內(nèi)RAM10H開始的地址。再然后調(diào)用一段放在片外程序存儲器2764中的子程序(擴2764C.ASM),其功能是使P1.0到P1.3輸出二進制數(shù)0到F。在P1.0--P1.3接一個帶譯碼器的數(shù)碼管顯示0到F,以判斷是否執(zhí)行了子程序。這個子程序帶有返回功能,執(zhí)行完會返回主程序。主程序重新執(zhí)行一次后,又調(diào)用子程序,又可以看到數(shù)碼管從0變化到F。如此循環(huán)不已。目的是觀察單片機訪問片外存儲器的時序●利用三總線擴展數(shù)據(jù)存儲器
6.3.3同時擴展程序存儲器和數(shù)據(jù)存儲器首前后操作步驟:●利用三總線擴展數(shù)據(jù)存儲器6.3.3同時擴展程操作步驟:;擴622764.ASM,本程序裝入單片機(1)ORG0000HMAIN:MOVA,#0A1H;準(zhǔn)備寫入的數(shù)據(jù)
MOVR7,#10;字節(jié)數(shù)
MOVDPTR,#4100H;寫入6264的地址L1:MOVX@DPTR,A;寫入數(shù)據(jù)
INCA;數(shù)據(jù)加1INCDPTR;地址加1DJNZR7,L1;循環(huán)10次●利用三總線擴展數(shù)據(jù)存儲器
6.3.3同時擴展程序存儲器和數(shù)據(jù)存儲器首前后操作步驟:●利用三總線擴展數(shù)據(jù)存儲器6.3.3同時擴展程操作步驟:;擴622764.ASM,本程序裝入單片機(2)MOVR7,#10;準(zhǔn)備讀10次
MOVR1,#10H;準(zhǔn)備保存地址
MOVDPTR,#4100H;讀6264地址L2:MOVXA,@DPTR;讀出數(shù)據(jù)
MOV@R1,A;保存
INCR1;下次保存地址
INCDPTR;下次讀數(shù)地址
DJNZR7,L2;循環(huán)10次
LCALL1000H;調(diào)用2764中的子程序,P1口從0到F循環(huán)變化顯示
SJMPMAIN;從頭開始
END●利用三總線擴展數(shù)據(jù)存儲器
6.3.3同時擴展程序存儲器和數(shù)據(jù)存儲器首前后操作步驟:●利用三總線擴展數(shù)據(jù)存儲器6.3.3同時擴展程【技能訓(xùn)練6-3】同時擴展程序存儲器和數(shù)據(jù)存儲器下面的程序是存儲在2764中的子程序,;其功能是使P1.0到P1.3輸出二進制數(shù)0到F。在P1.0--P1.3接一個帶譯碼器的數(shù)碼管顯示0到F,以判斷是否執(zhí)行了子程序。;擴2764C.ASM,本程序裝入2764;可以在此期間觀察觀察單片機訪問片外程序存儲器的時序。
ORG1000H;此地址超出單片機片內(nèi)4KB范圍
MOVR2,#0;準(zhǔn)備從P1口輸出的數(shù)據(jù)
MOVA,R2;送給AccMOVR6,#16;循環(huán)16次STAR:MOVP1,A;從P1口輸出
INCR2;數(shù)據(jù)加1MOVA,R2;送給AccANLA,#0FH;高位清零
DJNZR6,STAR;判斷次數(shù),不到繼續(xù)
RET;次數(shù)到,返回
END●利用三總線擴展數(shù)據(jù)存儲器
6.3.3同時擴展程序存儲器和數(shù)據(jù)存儲器首前后【技能訓(xùn)練6-3】同時擴展程序存儲器和數(shù)據(jù)存儲器●利用三總簡單并行I/O接口的擴展任務(wù)6.4
簡單并行I/O接口的擴展任務(wù)6.4LED屏控制器的程序比較長,數(shù)據(jù)比較多,所以要擴展存儲器。除了存儲器之外,需要的I/O口也很多,所以還需要I/O口的擴展。MCS-51系列單片機共有4個8位并行的I/O口,但這些I/O口有時候不能完全提供給用戶。只有片內(nèi)資源夠用,不需要使用這4個并行口的第二功能時,才允許全部使用這4個I/O口。然而對于需要外部擴展存儲器的用戶來說,能夠使用的I/O口只有P1口和部分P3口線?;蛘咝枰褂锰貏e多的I/O口線時,都需要進行I/O口的擴展。●簡單并行I/O接口的擴展
LED屏控制器的程序比較長,數(shù)據(jù)比較多,所以要擴展存儲器所有擴展的I/O口或相當(dāng)于I/O的外設(shè)以及通過I/O口連接的外設(shè),均與片外數(shù)據(jù)存儲器統(tǒng)一編址,訪問I/O口的指令就是訪問外部數(shù)據(jù)存儲器的指令(MOVX)。對于數(shù)據(jù)存儲器來說,或者是單片機讀取存儲器的數(shù)據(jù),或者是單片機將數(shù)據(jù)寫入存儲器,而單片機與外設(shè)所能進行的無非是數(shù)據(jù)的輸入或輸出,也就是單片機與外設(shè)進行的只是數(shù)據(jù)的傳輸,所以,外設(shè)或I/O口可當(dāng)作數(shù)據(jù)存儲器一樣進行擴展?!窈唵尾⑿蠭/O接口的擴展
所有擴展的I/O口或相當(dāng)于I/O的外設(shè)以及通過I/O口連接的1.單片機I/O口擴展方法單片機應(yīng)用系統(tǒng)中,擴展并行I/O的方法主要有以下兩種:
(1)三總線擴展方法也就是利用三總線來擴展I/O口。采用總線擴展的方法是將擴展的并行I/0口芯片連接到MCS-51單片機的三總線上,也即數(shù)據(jù)總線使用P0口,地址總線使用P2和P0口,控制總線使用部分P3口。這種擴展方法基本上不影響總線上其他擴展芯片的連接,在MCS-51系列單片機應(yīng)用系統(tǒng)的I/O擴展中被廣泛采用。6.4.1I/O接口擴展概述●簡單并行I/O接口的擴展
1.單片機I/O口擴展方法6.4.1I/O接口擴展概述●1.單片機I/O口擴展方法單片機應(yīng)用系統(tǒng)中,擴展并行I/O的方法主要有以下兩種:
(2)串行口擴展方法MCS-51單片機串行口工作在方式0時,提供一種I/O擴展方法。串行口方式0是移位寄存器工作方式,可借助外接串入并出的移位寄存器擴展并行輸出口,也可通過外接并入串出的移位寄存器擴展并行輸入口。這種擴展方法不占用并行總線且可以通過擴展多個并行I/O。由于采用串行輸入輸出的方法,所以數(shù)據(jù)傳輸速度相對較慢。這在項目5中有詳細(xì)介紹。6.4.1I/O接口擴展概述●簡單并行I/O接口的擴展
1.單片機I/O口擴展方法6.4.1I/O接口擴展概述●2.并行I/O擴展常用芯片MCS-51單片機應(yīng)用系統(tǒng)中I/O擴展芯片主要有TTL/CMOS鎖存器/緩沖器芯片、通用可編程I/O接口芯片和可編程門陣列等。(1)TTL/CMOS鎖存器/緩沖器芯片:如74LS377、74LS374、74LS373、74LS273、74LS244、74LS245等;(2)通用可編程I/O接口芯片:如8255、8155、8279等;(3)可編程陣列:如GALl6V8、GAL20V8等。6.4.1I/O接口擴展概述●簡單并行I/O接口的擴展
2.并行I/O擴展常用芯片6.4.1I/O接口擴展概述●3.I/O擴展中應(yīng)注意的幾個問題(1)訪問擴展I/O的方法與訪問外部數(shù)據(jù)存儲器完全相同,使用相同的指令。所有擴展的I/O與片外數(shù)據(jù)存儲器統(tǒng)一編址,分配給I/O端口的地址不能再分配給片外數(shù)據(jù)存儲單元,且與程序存儲器無關(guān);(2)擴展多片I/O芯片或多個I/O設(shè)備時,注意總線的驅(qū)動器能力問題;(3)擴展I/O口的目的是為了單片機與外部設(shè)備進行信息交換而設(shè)置的一個輸入輸出通道,I/O口最終與外設(shè)相連,I/O擴展時必須考慮與之相連的外設(shè)硬件特性,如驅(qū)動器功率、電平、干擾抑制及隔離等;(4)在軟件設(shè)計時,I/O口對應(yīng)初始狀態(tài)設(shè)置、工作方式選擇要與外接設(shè)備相匹配。6.4.1I/O接口擴展概述●簡單并行I/O接口的擴展
3.I/O擴展中應(yīng)注意的幾個問題6.4.1I/O接口擴展概采用TTL或CMOS電路的鎖存器、緩沖器、三態(tài)門通過P0口可構(gòu)成各種類型的輸入輸出口。這類I/O接口具有電路簡單,成本低,配置靈活方便等特點,在單片機應(yīng)用系統(tǒng)中被廣泛地應(yīng)用。1.擴展并行輸出口通過P0口擴展輸出口時,鎖存器的端口地址被視做外部RAM的地址單元,輸出控制信號為WR,使用MOVX@DPTR,A指令輸出數(shù)據(jù)。為防止單片機在對外部RAM及其他外圍設(shè)備輸出數(shù)據(jù)時對它的影響,應(yīng)選擇帶有使能控制的鎖存器。6.4.2擴展簡單并行接口●簡單并行I/O接口的擴展
采用TTL或CMOS電路的鎖存器、緩沖器、三態(tài)門通過P01.擴展并行輸出口(1)用74LS374擴展并行輸出口首先弄清芯片的特性。74LS374是帶有輸出允許端的8D鎖存器,有8個輸入端口、8個輸出端口、1個時鐘輸入端CLK(上升沿有效)和1個輸出允許控制端OE。其功能如表6-6所示,在OE=0時,通過CLK端上升沿信號將數(shù)據(jù)從輸入端D打入鎖存器,Q端保持D端的8位數(shù)據(jù)。應(yīng)注意74LS374具有三態(tài)輸出,當(dāng)控制端OE為高電平時,輸出為高阻態(tài),將失去鎖存器中緩存的數(shù)據(jù)。所以在與單片機相連時,D端與P0相連,WR與CLK相連,OE輸出允許端作為片選控制與地相連,始終允許。如圖6-10所示,由于沒有使用一根地址線,則其地址為任意?!窈唵尾⑿蠭/O接口的擴展
6.4.2擴展簡單并行接口1.擴展并行輸出口●簡單并行I/O接口的擴展6.4.2擴其功能如表6-6所示,在OE=0時,通過CLK端上升沿信號將數(shù)據(jù)從輸入端D打入鎖存器,Q端保持D端的8位數(shù)據(jù)。表6-674LS374●簡單并行I/O接口的擴展
6.4.2擴展簡單并行接口輸入輸出OECLKDQLHHLLLLLXQ0HXXZ首前后其功能如表6-6所示,在OE=0時,通過CLK端上升1.擴展并行輸出口
(1)用74LS374擴展并行輸出口注意74LS374具有三態(tài)輸出,當(dāng)控制端OE為高電平時,輸出為高阻態(tài),將失去鎖存器中緩存數(shù)據(jù)。所以在與單片機相連時,D端與P0連,WR與CLK相連,OE輸出允許端作為片選控制與地相連,始終允許。
如圖6-10所示,由于沒有使用一根地址線,則其地址為任意。●簡單并行I/O接口的擴展
6.4.2擴展簡單并行接口首前后1.擴展并行輸出口●簡單并行I/O接口的擴展6.4.2擴●簡單并行I/O接口的擴展
1.擴展并行輸出口(1)用74LS374擴展并行輸出口若以圖6-10為接口電路,將片內(nèi)RAM地址為50H單元的數(shù)據(jù)通過該電路輸出,程序清單如下:MOVDPTR,#0000H;數(shù)據(jù)指針指向74LS374地址,其值任意MOVA,50H;輸出的50H單元數(shù)據(jù)送累加器AMOVX@DPTR,A;PO口將數(shù)據(jù)通過74LS377輸出74LS377也是8D邊沿觸發(fā)器,其功能與74LS374相似,但是沒有三態(tài)輸出功能,其輸出驅(qū)動能力也比74LS374差。其實,8D觸發(fā)器還有許多,實際工作可以根據(jù)需要選用最合適的產(chǎn)品作為并行口擴展器件。6.4.2擴展簡單并行接口首前后●簡單并行I/O接口的擴展1.擴展并行輸出口6.4.2擴2.擴展并行輸入口并行輸入擴展口比較簡單,只需采用8位緩沖器即可。常用的緩沖器有74LS245,其功能如表6-7所示。74LS245為雙向總線緩沖器,有一個控制端AB/BA選擇數(shù)據(jù)傳送方向,當(dāng)AB/BA=1時,從A到B,當(dāng)AB/BA=0時,數(shù)據(jù)從B到A傳送?!窈唵尾⑿蠭/O接口的擴展
6.4.2擴展簡單并行接口
輸入
輸出CEAB/BA
方向LH從A到BLL從B到AHX
高阻首前后2.擴展并行輸入口●簡單并行I/O接口的擴展6.4.2擴2.擴展并行輸入口74LS245為雙向總線緩沖器,有一個控制端AB/BA選擇數(shù)據(jù)傳送方向,當(dāng)AB/BA=1時,從A到B,當(dāng)AB/BA=0時,數(shù)據(jù)從B到A傳送。并行輸入接口與單片機連接如圖6-11示。圖中P3.7引腳RD控制74LS245的CE端,讀的時候才允許工作,否則高阻。地址任意?!窈唵尾⑿蠭/O接口的擴展
6.4.2擴展簡單并行接口首前后2.擴展并行輸入口●簡單并行I/O接口的擴展6.4.2擴2.擴展并行輸入口如圖6-11所示,擴展并行輸入口,將輸入口中的8位數(shù)據(jù)送片內(nèi)51H單元,程序清單如下:MOVDPTR,#7FFFH;數(shù)據(jù)指針指向74LS245,地址任意MOVXA,@DPTR;外部數(shù)據(jù)經(jīng)過74LS245送入累加器AMOV51H,A;數(shù)據(jù)送51H單元保存●簡單并行I/O接口的擴展
6.4.2擴展簡單并行接口2.擴展并行輸入口●簡單并行I/O接口的擴展6.4.2擴3.同時擴展輸入輸出接口將74LS374和74LS245同時連接單片機,電路如圖6-12所示●簡單并行I/O接口的擴展
6.4.2擴展簡單并行接口首前后3.同時擴展輸入輸出接口●簡單并行I/O接口的擴展6.4.3.同時擴展輸入輸出接口圖6-12的輸入輸出接口電路,這里輸入采用三態(tài)門74LS245,輸出采用8D觸發(fā)器(鎖存器)74HC374,P0口為雙向數(shù)據(jù)線,既能從74LS245輸入數(shù)據(jù),又能將數(shù)據(jù)通過74LS374輸出。輸出控制信號WR為0電平時,將P0口數(shù)據(jù)鎖存到74LS374,其輸出控制著發(fā)光二極管LED,當(dāng)某線輸出為0時,該線上的LED發(fā)光。輸入控制信號RD為0電平時,選通74LS245,將外部信息輸入到總線。與245相連的按鍵開關(guān)沒有按下時,輸入全為1;若按下某鍵則所在的線輸入為0??梢?,輸入輸出都是任意地址。但是由于分別用RD和WR信號控制,因此不會發(fā)生沖突?!窈唵尾⑿蠭/O接口的擴展
注意:系統(tǒng)中若有其它擴展的RAM或I/O口,則可用線選法或地址譯碼法將地址空間分開。6.4.2擴展簡單并行接口首前后3.同時擴展輸入輸出接口●簡單并行I/O接口的擴展3.同時擴展輸入輸出接口圖6-12的輸入輸出接口電路正如前面所提到的,擴展I/O口是和擴展外部RAM一樣,因此訪問外部I/O口就像訪問外部RAM一樣,用的是MOVX類指令。對于圖6-12,如果需要實現(xiàn)的功能是按下任意一個按鍵,對應(yīng)的LED發(fā)光,則程序如下:LOOP:MOVDPTR,#0FEFFH;數(shù)據(jù)指針指向擴展I/O地址任意
MOVXA,@DPTR;從245讀入數(shù)據(jù),檢測按鍵
MOVX@DPTR,A;向374輸出數(shù)據(jù),驅(qū)動LEDSJMPLOOP;循環(huán)
參看仿真項目:簡單I/O口擴展.DSN
●簡單并行I/O接口的擴展
6.4.2擴展簡單并行接口首前后3.同時擴展輸入輸出接口●簡單并行I/O接口的擴展6.4.項目1的節(jié)日彩燈控制器,每個輸出口線串聯(lián)了5個LED,這5個燈要亮一起亮,要滅一起滅,控制性能不理想。這里來個80路LED,每一路都單獨控制。我們經(jīng)常看到有的大型霓虹燈,有很多燈,每一只燈都是單獨控制,可以設(shè)計出非常漂亮的效果?,F(xiàn)在,我們設(shè)計一個80路的霓虹燈控制電路。用單片機來實現(xiàn)這個要求是很容易的,只要擴展10個8位并行口,控制80只燈亮滅就可以了。電路原理圖如圖6-14所示。6.4.3使用地址譯碼器擴展I/O接口●簡單并行I/O接口的擴展
首前后項目1的節(jié)日彩燈控制器,每個輸出口線串聯(lián)了5個LED●簡單并行I/O接口的擴展
6.4.3使用地址譯碼器擴展I/O接口首前后●簡單并行I/O接口的擴展6.4.3使用地址譯碼器擴展I電路中使用了地址譯碼器74154,它是個4線—16線譯碼器,輸入4位二進制數(shù),輸出的16條線中只有與二進制數(shù)對應(yīng)的一條是低電平,其余都是高電平。圖6-13是引腳排列圖,表6-8是其真值表。E1和E2是控制信號輸入端,低電平有效。當(dāng)E1E2不全低電平,輸出為全1?!襁h(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后電路中使用了地址譯碼器74154,它是個4線—16線6-8真值表●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后6-8真值表●遠(yuǎn)程控制電子鐘的設(shè)計6.4.3使用地址譯按照圖6-14中電路,所有并行口的數(shù)據(jù)線并聯(lián)在P0口上,地址線只使用了A8、A9、A10、A11,接在譯碼器的輸入端A、B、C、D,所以與其他地址線無關(guān),可以取任意值。以未用地址設(shè)為0,則有:第一個并行口的地址為0000H,第二個并行口的地址為0100H第三個并行口的地址為0200H,其余以此類推圖6-1374154的引腳圖在執(zhí)行MOVX@DPTR,A指令時,寫(WR)信號有效(低電平接在譯碼器的控制端E1)使得譯碼器工作,根據(jù)輸入的地址ABCD的值確定輸出端Y0~Y15的某個輸出低電平,控制對應(yīng)輸出并行口器件74LS374工作,將數(shù)據(jù)線送來的數(shù)據(jù)信號鎖存并輸出,控制對應(yīng)的LED亮滅?!襁h(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后按照圖6-14中電路,所有并行口的數(shù)據(jù)線并聯(lián)在P0口上,地址在只使用一個4-16位譯碼器的情況下,最多可以擴展到16個并行口,共有128路。如果使用多個4-16位譯碼器,則可以擴展很多的路數(shù)。由于地址線A0~A7沒有使用,故圖6-14中省略了地址鎖存器74LS373。如用了地址鎖存器74LS373來將地址A0~A7線引出,譯碼器74LS154的輸入信號A、B、C、D分別連接到A0~A3上,那就改變了這些擴展的并行口的地址。如果將未用地址設(shè)為0,這時第一個并行口的地址就是0000H,第二個并行口的地址就是0001H,第三個并行口的地址就是0002H,依此類推,第九個并行口的地址就是0009H,第十個并行口的地址就是000AH。這樣做的結(jié)果是多用了一個芯片74LS373,節(jié)省了單片機的P2口的4個口線,可以根據(jù)實際情況選擇一個最好的方案應(yīng)用?!襁h(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后在只使用一個4-16位譯碼器的情況下,最多可以擴展到16個并在圖6-14電路的基礎(chǔ)之上,可編寫控制程序如下:模擬霓虹燈程序本程序作為上述電路的測試程序,只有幾個簡單花樣。如果測試成功,可以編寫更多更好的花樣。●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后在圖6-14電路的基礎(chǔ)之上,可編寫控制程序如下:●遠(yuǎn)程控制在圖6-14電路的基礎(chǔ)之上,可編寫控制程序如下:模擬霓虹燈程序本程序作為上述電路的測試程序,只有幾個簡單花樣。如果測試成功,可以編寫更多更好的花樣?!襁h(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后在圖6-14電路的基礎(chǔ)之上,可編寫控制程序如下:●遠(yuǎn)程控制模擬霓虹燈程序(1)MAIN:NOPLCALLHY1;間隔亮10次
LCALLHY3;全滅
LCALLDELAY400MS;延時
LCALLHY4;全亮
LCALLDELAY400MS;延時
LCALLHY3;全滅
LCALLDELAY400MS;延時
LCALLHY4;全亮
LCALLDELAY400MSLCALLHY3;全滅
LCALLDELAY400MSLCALLHY2;從左到右亮,然后從右到左滅
LCALLHY2LJMPMAIN;無限循環(huán)●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后模擬霓虹燈程序(1)●遠(yuǎn)程控制電子鐘的設(shè)計6.4.3使用模擬霓虹燈程序(2)HY4:MOVA,#0FFH;花樣4:全亮
MOVR6,#10HY41:MOVDPTR,#0000HHY4LP:MOVX@DPTR,AINCDPHDJNZR6,HY4LPRET;-------------------------------------------------------HY3:MOVA,#00H;花樣3:全滅
MOVR6,#10HY31:MOVDPTR,#0000HHY3LP:MOVX@DPTR,AINCDPHDJNZR6,HY3LPRET●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后模擬霓虹燈程序(2)●遠(yuǎn)程控制電子鐘的設(shè)計6.4.3使用模擬霓虹燈程序(3)HY2:MOVA,#01H;花樣2:從左到右亮,然后從右到左滅
MOVR6,#10HY21:MOVDPTR,#0000HHY22:MOVR7,#8HY2LP:MOVX@DPTR,ASETBCRLCALCALLDELAY5MSDJNZR7,HY2LPINCDPHDJNZR6,HY22LCALLDELAY400MS●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后模擬霓虹燈程序(3)●遠(yuǎn)程控制電子鐘的設(shè)計6.4.3使用模擬霓虹燈程序(4);花樣2:從左到右亮,然后從右到左滅
MOVA,#01HMOVR6,#10HY21A:DECDPHHY22A:MOVR7,#8HY2LPA:MOVX@DPTR,ACLRCRRCALCALLDELAY5MSDJNZR7,HY2LPADECDPHDJNZR6,HY22ALCALLDELAY400MSRET;---------------------------------------------------------●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后模擬霓虹燈程序(4)●遠(yuǎn)程控制電子鐘的設(shè)計6.4.3使用模擬霓虹燈程序(5);--------------------------------------------------------------------HY1:MOVR6,#10;花樣1:間隔亮變換
MOVA,#55HHY11:MOVDPTR,#0000HMOVR7,#10HY1LP:MOVX@DPTR,AINCDPHDJNZR7,HY1LPLCALLDELAY400MSCPLADJNZR6,HY11RET;--------------------------------------------------------END●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后模擬霓虹燈程序(5)●遠(yuǎn)程控制電子鐘的設(shè)計6.4.3使用模擬霓虹燈程序(6);--------------------------------------------------------DELAY5MS:MOVR3,#25;延時子程序(5MS)DL5_PA:MOVR2,#100DJNZR2,$DJNZR3,DL5_PARETDELAY400MS:MOVR4,#20;延時子程序(400MS)DL4_PA:MOVR3,#100DL4_PB:MOVR2,#100DJNZR2,$DJNZR3,DL4_PBDJNZR4,DL4_PARETEND●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后模擬霓虹燈程序(6)●遠(yuǎn)程控制電子鐘的設(shè)計6.4.3使用模擬霓虹燈程序(6);--------------------------------------------------------DELAY5MS:MOVR3,#25;延時子程序(5MS)DL5_PA:MOVR2,#100DJNZR2,$DJNZR3,DL5_PARETDELAY400MS:MOVR4,#20;延時子程序(400MS)DL4_PA:MOVR3,#100DL4_PB:MOVR2,#100DJNZR2,$DJNZR3,DL4_PBDJNZR4,DL4_PARETEND●遠(yuǎn)程控制電子鐘的設(shè)計
6.4.3使用地址譯碼器擴展I/O接口首前后模擬霓虹燈程序(6)●遠(yuǎn)程控制電子鐘的設(shè)計6.4.3使用●遠(yuǎn)程控制電子鐘的仿真調(diào)試
6-4擴展10個并行口目的:使用譯碼器擴展I/O口內(nèi)容:擴展10個并行口,共80根口線,每根口線接一個LED,作為模擬霓虹燈操作步驟:1、按照圖6-14設(shè)計電路圖2、編輯并編譯通過以上程序3、仿真,體會MOVX@DPTR,A指令4、討論交流學(xué)習(xí)心得5、有問題可以使用“求助3+1”6、填寫技能訓(xùn)練記錄單7、完成老板交代的其他任務(wù)重要提示:以上設(shè)計可以參看仿真文件:擴128.DSN,請安排時間模仿此項目進行一次技能訓(xùn)練。重要提示:這個電路,將來要用到LED點陣屏控制器上去。
首前后●遠(yuǎn)程控制電子鐘的仿真調(diào)試6-4擴展10個并行口目的:使可編程并行I/O口的擴展任務(wù)6.5
可編程并行I/O口的擴展任務(wù)6.5●可編程并行I/O口的擴展
Intel公司為微處理器設(shè)計了許多接口芯片,這些大多是大規(guī)模集成電路,一般都具有可編程功能,就是在不改變硬件的情況下,可以用指令控制使其功能發(fā)生一些改變。這些器件一般在工作之前需要進行初始化,由CPU設(shè)定其工作方式。首前后●可編程并行I/O口的擴展Intel公司為微處理器設(shè)計了8155芯片除具有2個8位可編程并行I/O口PA、PB,1個6位可編程并行I/O口PC之外,片內(nèi)還有256個字節(jié)的靜態(tài)RAM,1個14位減法計數(shù)器。8155具有與MCS-51單片機接口簡單,內(nèi)部資源豐富等優(yōu)點,是單片機應(yīng)用系統(tǒng)中傳統(tǒng)芯片。6.5.1RAM/IO擴展芯片81558155的引腳如圖6-15(a)所示,邏輯框圖如圖6-15(b)所示?!窨删幊滩⑿蠭/O口的擴展
首前后8155芯片除具有2個8位可編程并行I/O口PA、P1.8155的結(jié)構(gòu)及引腳功能(2)圖6-15中涉及的引腳符號的含義和功能如下:TI:計數(shù)器計數(shù)脈沖輸入線;TO:計數(shù)器的輸出信號線,輸出波形由內(nèi)部定時工作方式?jīng)Q定;PA0~PA7:8位并行I/O口;PB0~PB7:8位并行I/O口;PC0~PC5:6位并行I/O口;AIE:地址鎖存信號輸入線,其下降沿時,鎖存AD0~AD7上的地址。當(dāng)IO/M=1時,該地址為端口地址;當(dāng)IO/M=0時,該地址為片內(nèi)RAM地址;RESET:復(fù)位輸入引腳,高電平復(fù)位。復(fù)位結(jié)束后,PA、PB、PC口的初始狀態(tài)均為輸入口;VCC:電源+5V;VSS:接地。6.5.1RAM/IO擴展芯片8155●可編程并行I/O口的擴展
首前后1.8155的結(jié)構(gòu)及引腳功能(2)6.5.1RAM/2.8155的RAM和I/O地址編碼8155的I/O端口及RAM地址在單片機應(yīng)用系統(tǒng)中與外部數(shù)據(jù)存儲器是統(tǒng)一編址的,其控制操作如表6-9所示,對應(yīng)I/O口寄存器的地址編碼如表6-10所示;6.5.1RAM/IO擴展芯片8155●可編程并行I/O口的擴展
控制信號操作CEIO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 從理論到實踐探索技術(shù)革新的實驗教學(xué)模式
- 2025年甘肅貨運從業(yè)資格證題目技巧
- 2025年貴陽道路運輸從業(yè)資格證考哪些項目
- 2025年珠海貨運資格證考試題答案
- 2025年資陽貨運資格證模擬考試題
- 辦公區(qū)域?qū)W生酒吧的消費模式與市場潛力
- 企業(yè)高管家庭的財富管理策略
- 制造業(yè)智能化升級的挑戰(zhàn)與對策分析
- 從傳統(tǒng)制造到智能化深度探索工業(yè)4.0的技術(shù)趨勢
- 兒童文學(xué)與孩子閱讀興趣的培養(yǎng)關(guān)系研究
- 【8歷期末】安徽省合肥市包河區(qū)智育聯(lián)盟校2023-2024學(xué)年八年級上學(xué)期1月期末歷史試題
- 北師版七年級數(shù)學(xué)上冊期末復(fù)習(xí)考點 清單04 基本平面圖形(12個考點梳理+題型解讀+提升訓(xùn)練)
- 儀式外包合同范例
- 物流運輸雙氧水安全應(yīng)急預(yù)案
- Pep小學(xué)英語六年級上冊教案-全冊
- 2024粵東西粵北地區(qū)教師全員輪訓(xùn)培訓(xùn)心得總結(jié)
- 服務(wù)類驗收單
- MOOC 健身健美-北京林業(yè)大學(xué) 中國大學(xué)慕課答案
- 人生悟理-透過物理看人生智慧樹知到期末考試答案2024年
- 教育信息化2.0時代教師新技能進階智慧樹知到期末考試答案2024年
- 國開2023年春《理工英語3》機考網(wǎng)考期末復(fù)習(xí)資料參考答案
評論
0/150
提交評論