<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測試測量 > 正文

    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展

    發(fā)布時間:2021-02-20 責(zé)任編輯:wenwei

    【導(dǎo)讀】分析了MCS單片機(jī)" title="51單片機(jī)" target="_blank">51單片機(jī)訪問外部存儲器指令MOVX的執(zhí)行過程,介紹了51系列單片機(jī)使用的四要素;分析了51單片機(jī)在外部擴(kuò)展、總線時序、地址譯碼方法重點(diǎn)以及對超過64 KB地址空間訪問的方法。并以實(shí)驗(yàn)室研制的MCS51單片機(jī)實(shí)驗(yàn)儀為例,分析了外部空間開展的重要性、方法和原理,給出了單片機(jī)系統(tǒng)擴(kuò)展框圖和地址譯碼表。
     
    AT89C51單片機(jī)是ATMEL公司設(shè)計生產(chǎn)的與MCS51內(nèi)核兼容的51系列單片機(jī)之一,該系列單片機(jī)以其優(yōu)越的性能和成熟的技術(shù)在控制和自動化應(yīng)用領(lǐng)域占有著較大的市場;除此以外,51單片機(jī)有著計算機(jī)系統(tǒng)中經(jīng)典的總線結(jié)構(gòu),即:數(shù)據(jù)總線、地址總線和控制總線。
     
    在實(shí)際應(yīng)用中,單片機(jī)的4個端口中,P0口通常是作為地址/數(shù)據(jù)總線復(fù)用;P2口作為高8位地址總線,高8位地址線在有多余I/O的情況下,配合外部的組合邏輯電路一起構(gòu)成外部總線譯碼使用;P3口通常作為第二功能使用,則提供給用戶使用的I/O僅僅是P1口。在多數(shù)應(yīng)用場合下是不能滿足要求的,因此51單片機(jī)系統(tǒng)就或多或少地需要進(jìn)行系統(tǒng)擴(kuò)展。另外,由于其內(nèi)部的RAM只有128 B,在使用C語言進(jìn)行程序設(shè)計時顯得比較不足,必要時需進(jìn)行外部RAM擴(kuò)展,方法與擴(kuò)展外部I/O相同。實(shí)際應(yīng)用中,使用總線方法可以較容易地實(shí)現(xiàn)51單片機(jī)外部的I/O、RAM、LCD、ADC、DAC等等外設(shè)的操作,以彌補(bǔ)51單片機(jī)片內(nèi)外設(shè)的不足。
     
    1 MCS51單片機(jī)系統(tǒng)的四要素
     
    1.1 51單片機(jī)系統(tǒng)的啟動
     
    MCS51單片機(jī)上電正常工作,需具備以下四點(diǎn):
     
    (1)電源。AT89S51系列單片機(jī)的第40引腳為VCC,外加電壓5 V工作電壓,另外,單片機(jī)的第20引腳是GND,須連接到系統(tǒng)的地。
     
    (2)復(fù)位電路。任何處理器都需要在上電時進(jìn)行自身的復(fù)位,51單片機(jī)也不例外,上電復(fù)位電路是較為簡單可靠的電路之一,不可缺少。復(fù)位電路如圖1所示,該圖為帶上電復(fù)位及手動復(fù)位兩種結(jié)合,二極管D1在系統(tǒng)瞬間掉電能幫助系統(tǒng)快速放電,使系統(tǒng)重新復(fù)位,以提高系統(tǒng)的可靠性。
     
    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展
     
    (3)振蕩電路。如圖2所示,51單片機(jī)的第18腳和第19腳為兩個外接振蕩的引腳,是內(nèi)部振蕩方式的典型電路, 外接的33 pF電容可以提高振蕩的穩(wěn)定性。
     
    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展
     
    (4)EA。AT89S51單片機(jī)內(nèi)部有4 KB的程序存儲器,不需要外部的ROM空間,如果不夠可以選擇AT89S52或其他內(nèi)部存儲器更大的單片機(jī),所以接高電平,即:不使用外部ROM,只使用內(nèi)部的存儲器。
     
    1.2 MCS51單片機(jī)系統(tǒng)的存儲器結(jié)構(gòu)
     
    MCS51單片機(jī)的存儲器分為片內(nèi)和片外兩個部分,即:內(nèi)部的ROM/RAM和外部的ROM/RAM,編寫程序時必須清楚每一個存儲單元的用途和功能,這樣才能更好地進(jìn)行系統(tǒng)存儲器資源的分配。51單片機(jī)的另一個特點(diǎn)是外部的RAM空間和I/O空間共用外部的64 KB空間,因?yàn)橥獠靠偩€的地址線為16 bit,所以能夠訪問的最大地址空間為64 KB。51單片機(jī)系統(tǒng)在進(jìn)行外部擴(kuò)展時,所有外設(shè)的地址都分布在這64 KB的地址范圍內(nèi),對于RAM來說,地址是連續(xù)的;而對于LCD、ADC等等部件,地址是不連續(xù)的。
     
    1.3 51單片機(jī)的中斷系統(tǒng)
     
    AT89S51單片機(jī)為用戶提供了可屏蔽中斷源有5個,分別是:外部中斷0(入口地址為:0003H)、外部中斷1(入口地址為:000BH)、定時器0(入口地址為:0013H)、定時器1(入口地址為:001BH)和串行中斷(入口地址為:0023H);不可屏蔽中斷為復(fù)位(入口地址為:0000H)。51系列單片機(jī)的其他型號所提供的中斷個數(shù)不盡相同,所有的單片機(jī)都包括上述這6個最基本的中斷源,不同公司生產(chǎn)的51內(nèi)核單片機(jī)中斷源上有略微的區(qū)別。
     
    1.4 51單片機(jī)的總線結(jié)構(gòu)
     
    由于51單片機(jī)真正可以作為雙向I/O口應(yīng)用的只有P1口,假設(shè)系統(tǒng)需要擴(kuò)展外部的鍵盤,I/O就所剩無幾了。因此,MCS51單片機(jī)應(yīng)用系統(tǒng)設(shè)計都不可避免地需要進(jìn)行系統(tǒng)的擴(kuò)展,而I/O的擴(kuò)展則是與系統(tǒng)總線緊密結(jié)合的。由于MCS51單片機(jī)的外部RAM和I/O口是統(tǒng)一編址的,因此,可以把單片機(jī)外部64 KB RAM空間的一部分作為擴(kuò)展外圍I/O口的地址空間。這樣,單片機(jī)系統(tǒng)就可以把額外的RAM空間用來進(jìn)行I/O空間的擴(kuò)展,使用總線方式對外設(shè)進(jìn)行訪問[1]。
     
    本文重點(diǎn)之一是介紹采用具有三態(tài)緩沖的74HC244芯片和輸出帶鎖存的74HC573芯片來擴(kuò)展一個4×4的小鍵盤,緩沖器和鎖存器分別占用外部I/O空間中的兩個地址。而無論是訪問外部的RAM空間還是I/O空間,在進(jìn)行匯編語言編程時都是通過MOVX指令來實(shí)現(xiàn)讀寫的。在使用C語音進(jìn)行單片機(jī)程序設(shè)計時,雖然語言改變了,但是C語言程序反匯編后,訪問外部仍然使用的是MOVX指令。因此,分析過程及使用中,都是以匯編語言為例進(jìn)行擴(kuò)展設(shè)計的。
     
    2 MOVX指令的執(zhí)行過程
     
    MOVX指令是51單片機(jī)訪問片外外設(shè)的唯一指令,與外部RAM或I/O空間進(jìn)行數(shù)據(jù)的讀寫或者ADC和DAC等都需要使用這條指令。MCS51單片機(jī)外部RAM的地址空間為64 KB,地址總線為16 bit,訪問外設(shè)可執(zhí)行4條匯編指令:(1)MOVX A,@DPTR;(2)MOVX @DPTR, A;(3)MOVX A, @RI; (4)MOVX @RI, A。其中DPTR為16 bit地址寄存器,地址高8 bit存于DPH,地址低8 bit存于DPL,Ri(i=0,1)是8 bit寄存器,作為地址指針時僅存低8 bit地址。
     
    MCS51執(zhí)行上述指令時分為兩個階段:首先,是從程序存儲器中取出指令代碼,并進(jìn)行譯碼;然后,執(zhí)行對外設(shè)數(shù)據(jù)的讀寫操作。在這兩個階段中,P0口在指令執(zhí)行過程中是分時復(fù)用口,指令前半個周期,低8 bit地址由地址鎖存允許信號ALE控制一個8 bit的鎖存器輸出,接著輸出8 bit數(shù)據(jù)至外部數(shù)據(jù)總線,P2口在此過程中一直輸出高8 bit地址。
     
    由上所述,假設(shè)使用R0和R1對外設(shè)的進(jìn)行間接尋址方式的訪問,那么可看作是一種頁面尋址,將外部的64 KB空間分成了256頁,每一頁有256 B地址。寄存器P2的當(dāng)前值決定了當(dāng)前的頁地址。MCS51單片機(jī)在復(fù)位時,P2端口寄存器數(shù)值為FFH,若程序運(yùn)行中沒有改變P2中的值,則R0和R1只能對FF00H~FFFFH范圍的外部的間接尋址,即對第255個頁面進(jìn)行訪問。往外部空間寫1 B時序圖如圖3所示。
     
    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展
     
    因此,使用DPTR作為數(shù)據(jù)指針或者是RI,都可以實(shí)現(xiàn)對外部64 KB空間的訪問。而指令都是使用MOVX,可見MCS51單片機(jī)系統(tǒng)中,MOVX指令有著非常重要的作用。
     
    3 時序分析及系統(tǒng)擴(kuò)展
     
    MCS51單片機(jī)的外部總線時序擴(kuò)展主要包括外部的譯碼電路、鎖存電路等組合邏輯電路,形成整個系統(tǒng)的外部總線,即:數(shù)據(jù)總線、地址總線、控制總線。
     
    譯碼電路采用常用的74系列3/8線譯碼器74LS138,該芯片的A、B、C分別接地址的最高3位,即A13、A14、A15,譯碼電路如圖4所示;138的使能端E3接高電平,E1和E2接的是EN_138,該信號是由單片機(jī)系統(tǒng)的讀寫信號經(jīng)過組合得來的,當(dāng)系統(tǒng)對外部的總線進(jìn)行讀寫時,讀/寫信號其中一個為低電平,使得EN_138控制信號輸出為一個低電平脈沖信號,此時,3/8線譯碼器的輸出Y0~Y7其中一個也會輸出一個低電平脈沖,用此脈沖就可以有效地對外部設(shè)備進(jìn)行片選。邏輯電路如圖5所示。
     
    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展
     
    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展
     
    通過這樣的組合后就可以在總線上數(shù)據(jù)有效的時間內(nèi),通過74LS138的Y0~Y7控制外設(shè)的片選,實(shí)現(xiàn)有效的數(shù)據(jù)讀寫。尤其是在擴(kuò)展外部I/O口使用的74系列的邏輯電路芯片時,這個方法尤為重要,因?yàn)檫@類芯片沒有外部的讀/寫信號,只能通過單片機(jī)外部的組合邏輯電路輸出一個讀/寫信號寬度的脈沖用以控制此類I/O芯片。若外設(shè)信號控制信號為低電平脈沖,則剛好與3/8線譯碼器的輸出匹配,此時直接相連即可;若外設(shè)控制信號需要的是高脈沖信號,則必須在3/8線譯碼器的輸出外面再加一級反相器電路,常用的反相器為74LS04。
     
    以寫數(shù)據(jù)往外設(shè)為例,得到的時序流程如圖6所示。讀數(shù)據(jù)的時序與寫數(shù)據(jù)一致,只是將寫信號換成讀信號。
     
    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展
     
    4 I/O擴(kuò)展實(shí)例
     
    4.1 行列鍵盤擴(kuò)展
     
    如前所述,51單片機(jī)供用戶使用的I/O只有P1端口的8個引腳,遠(yuǎn)不能滿足系統(tǒng)的需求,這樣就必須通過總線的方法進(jìn)行外部I/O擴(kuò)展。在這里需要注意的是,51單片機(jī)系統(tǒng)外部I/O空間是和外部的RAM空間共用外部64 KB空間的。使用74LS573和74LS244分別進(jìn)行行列的擴(kuò)展,其中573鎖存行信號,244讀回數(shù)據(jù),擴(kuò)展了端口,實(shí)現(xiàn)了4×4的矩陣式行列掃描鍵盤,如圖7所示。在此程序略,主要介紹擴(kuò)展的方法。
     
    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展
     
    圖8所示為4×4矩陣鍵盤連接圖。
     
    由MOVX指令深入分析51單片機(jī)總線時序及擴(kuò)展
     
    4.2 大于64 KB空間的擴(kuò)展
     
    MCS51單片機(jī)是8位的微控制器,外部地址總線共16 bit地址,能訪問的空間共為64 KB,但是如果系統(tǒng)中所有的外設(shè)加起來需要的地址空間超過64 KB時(如128 KB、256 KB的RAM或者需要更多的I/O空間等情況出現(xiàn))就需要使用P1口或者是P3口不使用的I/O口進(jìn)行線選法譯碼或者譯碼法進(jìn)行額外的擴(kuò)展來實(shí)現(xiàn)。
     
    這種情況在單片機(jī)系統(tǒng)中經(jīng)常會遇到,本文中介紹一種基于分頁原理的擴(kuò)展方法。51單片機(jī)系統(tǒng)雖然只有16條地址總線,在系統(tǒng)需要較大的RAM或I/O空間時,可以將系統(tǒng)中空余的I/O口作為額外的外部地址使用,例如:使用P1.0時進(jìn)行線選法譯碼時,就可以擴(kuò)展外部的128 KB空間。當(dāng)P1.0為低電平時,選擇第1個64 KB空間;當(dāng)P1.0為高電平時, 選擇第2個64 KB空間。
     
    以此類推,假設(shè)有更多的空間需求時,還可使用專用譯碼器進(jìn)行譯碼,來進(jìn)行更多的選擇
     
     
    免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理。
     
    推薦閱讀:
     
    斷路器三相不一致保護(hù)新型控制回路與檢測裝置改進(jìn)
    在DAQ應(yīng)用中使用非隔離DC/DC電源降壓模塊的優(yōu)勢
    如何輕松改善均方根射頻功率檢波器的測量精度?
    電磁式電流互感器磁飽的相關(guān)問題
    VIAVI最新調(diào)研顯示:虛擬化、自動化和網(wǎng)絡(luò)切片持續(xù)提升運(yùn)營商對網(wǎng)絡(luò)測試的關(guān)注
    要采購鍵盤么,點(diǎn)這里了解一下價格!
    特別推薦
    技術(shù)文章更多>>
    技術(shù)白皮書下載更多>>
    熱門搜索
    ?

    關(guān)閉

    ?

    關(guān)閉

    人妻少妇看A偷人无码电影| 黑人无码精品又粗又大又长| 国产午夜无码专区喷水| 中文字幕在线免费看线人| 大学生无码视频在线观看| 人妻少妇AV无码一区二区| 人妻精品久久久久中文字幕一冢本 | 中文字幕无码一区二区免费| 99久久国产热无码精品免费久久久久 | 无码日韩精品一区二区免费暖暖| 最近2018中文字幕在线高清下载| 人妻丰满?V无码久久不卡| 精品无码AV无码免费专区| 中出人妻中文字幕无码| 久久中文字幕视频、最近更新| 中文字幕一区二区人妻性色| 国产精品一区二区久久精品无码| 精品亚洲A∨无码一区二区三区| 日韩精品无码免费专区午夜 | 人妻少妇精品中文字幕av蜜桃| 亚洲成?v人片天堂网无码| 精品久久久久久无码人妻热| AV无码久久久久不卡蜜桃| 久久国产精品无码HDAV| 日韩精品人妻系列无码专区| 无码少妇一区二区三区| 亚洲AV无码乱码在线观看富二代| 精品国产V无码大片在线看| 中文无码精品一区二区三区| 天堂√最新版中文在线天堂| 色欲狠狠躁天天躁无码中文字幕| 永久免费无码日韩视频| 人妻中文无码久热丝袜| 亚洲AV永久无码精品一区二区 | 成人无码一区二区三区| 国产精品无码成人午夜电影| 黄桃AV无码免费一区二区三区 | mm1313亚洲国产精品无码试看| 国产成人精品无码片区在线观看| 国产成人精品无码一区二区| 黑人无码精品又粗又大又长 |