《計算機原理實驗》教學(xué)大綱算術(shù)邏輯運算實驗.doc
-
資源ID:8799298
資源大?。?span id="9ui9te6" class="font-tahoma">4.69MB
全文頁數(shù):29頁
- 資源格式: DOC
下載積分:9.9積分
快捷下載
會員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。
|
《計算機原理實驗》教學(xué)大綱算術(shù)邏輯運算實驗.doc
實驗二 算術(shù)邏輯運算實驗(4 課時)實驗?zāi)康牧私膺\算器的組成結(jié)構(gòu)掌握運算器的工作原理學(xué)習(xí)運算器的設(shè)計方法掌握簡單運算器的數(shù)據(jù)傳送通路驗證運算功能發(fā)生器74LS181的組合功能實驗設(shè)備TDN-CM+或TDN-CM+教學(xué)實驗系統(tǒng)一套實驗原理實驗中所用的運算器數(shù)據(jù)通路圖如圖2-1所示。圖中所示的是由兩片74LS181以并/串形式構(gòu)成的8位字長的ALU。右方為低4位運算芯片,左方為高4位運算芯片。低位芯片的進位輸出端Cn+4與高位芯片輸入端Cn相連,使低4位運算產(chǎn)生的進位送進高4位運算中。低位芯片的進位輸入端Cn可與外來進位相連,高位芯片的進位輸出端引至外部。兩個芯片的控制端S0-S3和M各自相連,其控制電平按表2-1所示。為進行雙操作數(shù)運算,運算器的兩個數(shù)據(jù)輸入端分別由兩個數(shù)據(jù)暫存器DR1,DR2來鎖存數(shù)據(jù)。要將內(nèi)總線上的數(shù)據(jù)鎖存到DR1,DR2中,則鎖存器的控制端LDDR1,LDDR2須為高電平。當(dāng)T4脈沖來到的時候,總線上的數(shù)據(jù)就被鎖存進DR1或DR2中了。為控制運算器向內(nèi)總線上輸出運算結(jié)果,在其輸出端連接了一個三態(tài)門。若要將運算結(jié)果輸出到總線上,則要將三態(tài)門74LS245的控制端ALU-B置低電平。否則輸出高阻狀態(tài)。數(shù)據(jù)輸入單元(實驗板上印有INPUT DEVICE)用以給出參與運算的數(shù)據(jù)。其中,輸入開關(guān)經(jīng)過一個三態(tài)門和內(nèi)總線相連,該三態(tài)門的控制信號為SW-B,取低電平時,開關(guān)上的數(shù)據(jù)則通過三態(tài)門而送入內(nèi)總線中。總線數(shù)據(jù)顯示燈(在BUS UNIT單元中)已與內(nèi)總線相連,用來顯示內(nèi)總線上的數(shù)據(jù)??刂菩盘栔谐齌4為脈沖信號,其他均為電平信號。圖中已將用戶需要連接的控制信號用圓圈標(biāo)明。由于實驗電路中的時序信號已連至W/R UNIT的相應(yīng)時序信號引出端,因此,在進行實驗時,只需將W/R UNIT的T4接至STATE UNIT的微動開關(guān)KK2的輸出端,按動微動開關(guān),即可獲得實驗所需的單脈沖,而S3,S2,S1,S0,Cn,M,LDDR1,LDDR2,ALU-B,SW-B各電平控制信號用SWITCH UNIT 中的二進制數(shù)據(jù)開關(guān)來模擬,其中Cn,ALU-B,SW-B為低電平有效,LDDR1,LDDR2為高電平有效。對于單總線數(shù)據(jù)通路,做實驗時要分時控制總線,即當(dāng)向DR1,DR2工作暫存器打入數(shù)據(jù)時,數(shù)據(jù)開關(guān)三態(tài)門打開,這時應(yīng)保證運算器輸出三態(tài)門關(guān)閉;同樣,當(dāng)運算器輸出結(jié)果至總線時應(yīng)保證數(shù)據(jù)輸入三態(tài)門關(guān)閉。實驗步驟1. 按圖2-2連接實驗電路并檢查無誤。圖中將用戶需要連接的信號線用小圓圈標(biāo)明。圖2-22. 開電源開關(guān)3. 用輸入開關(guān)向暫存器DR1置數(shù)a) 波動輸入開關(guān)形成二進制數(shù)01100101(或其他數(shù)值)。(數(shù)據(jù)顯示燈亮為0,滅為1)。b) 使SWITCH UNIT單元中的開關(guān)SW-B=0(打開數(shù)據(jù)輸入三態(tài)門)、ALU-B=1(關(guān)閉ALU輸出三態(tài)門)、LDDR1=1,LDDR2=0c) 按動微動開關(guān)KK2,則將二進制數(shù)01100101置入DR1中。4. 用輸入開關(guān)向暫存器DR2置數(shù)a) 波動輸入開關(guān)形成二進制數(shù)10100111(或其他數(shù)值)(數(shù)據(jù)顯示燈亮為0,滅為1)。b) SW-B=0,ALU-B=1保持不變,改變LDDR1,LDDR2,使LDDR1=0,LDDR2=1c) 按動微動開關(guān)KK2,則將二進制數(shù)10100111置入DR2中5. 檢驗DR1,DR2中存的數(shù)是否正確a) 關(guān)閉數(shù)據(jù)輸入三態(tài)門(SW-B=1),打開ALU輸出三態(tài)門(ALU-B=0),并使LDDR1=0,LDDR2=0,關(guān)閉寄存器。b) 置S3,S2,S1,S0,M為11111,總線顯示燈則顯示DR1中的數(shù)c) 置S3,S2,S1,S0,M為10101,總線顯示燈則顯示DR2中的數(shù)6. 改變運算器的功能設(shè)置,觀察運算器的輸出a) SW-B=1,ALU-B=0保持不變b) 按表2-2置S3,S2,S1,S0,M,Cn的數(shù)值,并觀察總線顯示燈顯示的結(jié)果。例如置S3,S2,S1,S0,M,Cn的數(shù)值為100101,運算器做加法運算,S3,S2,S1,S0,M,Cn的數(shù)值為011000,運算器做減法運算。7. 驗證74LS181的算術(shù)運算和邏輯運算功能(采用正邏輯)在給定DR1=65,DR2=A7的情況下,改變運算器的功能設(shè)置,觀察運算器的輸出,填入表2-1,并和理論分析進行比較、驗證。表2-1DR1DR2S3 S2 S1 S0M=0 (算術(shù)運算)M=1(邏輯運算)Cn1無進位Cn0有進位65A70 0 0 0F65F66F9A65A70 0 0 1FE7FE8F1865A70 0 1 0F7DF7EF820 0 1 1F FF0 1 0 0FFF0 1 0 1FFF0 1 1 0FFF0 1 1 1FFF1 0 0 0FFF1 0 0 1FFF1 0 1 0FFF1 0 1 1FFF1 1 0 0FFF1 1 0 1FFF1 1 1 0FFF1 1 1 1FFF實驗三 進位控制實驗(3課時)實驗?zāi)康牧私鈳нM位控制的運算器的組成結(jié)構(gòu)驗證帶進位控制的算術(shù)運算功能發(fā)生器的功能按指定數(shù)據(jù)完成集中指定的算術(shù)運算實驗設(shè)備TDN-CM+或TDN-CM+教學(xué)實驗系統(tǒng)一套實驗原理 圖3-1 進位控制運算器的實驗原理如圖3-1所示,在實驗2的基礎(chǔ)上增加進位控制部分。運算器最高位進位輸出Cn+4連接到一個鎖存器(用74LS74實現(xiàn))的輸入端D,其寫入由T4和AR信號控制。鎖存器控制端的控制信號AR必須置為低電平,T4是脈沖信號,實驗時將T4連至STATE UNIT的微動開關(guān)KK2上。當(dāng)T4脈沖來到時,進位結(jié)果就被鎖存到鎖存器中了,發(fā)光二極管這是顯示為“滅”。同時也將本次的進位輸出結(jié)果帶進了下次的運算中,作為下次運算的進位輸入。實驗步驟1. 按圖3-2連接實驗線路,仔細(xì)檢查無誤。圖3-22. 打開電源開關(guān)3. 用輸入開關(guān)向暫存器DR1和DR2置數(shù),方法實驗2.4. 關(guān)閉數(shù)據(jù)輸入三態(tài)門(SW-B=1),打開ALU輸出三態(tài)門(ALU-B=0),并使LDDR1=0,LDDR2=0,關(guān)閉寄存器打入控制門5. 對進位標(biāo)志清零實驗板上SWITCH UNIT單元中的CLR開關(guān)為標(biāo)志CY,ZI的清零開關(guān),它為零時是清零狀態(tài),所以將此開關(guān)做1->0->1操作,即可使標(biāo)志位清零。注意,進位標(biāo)志指示燈CY亮?xí)r表示進位標(biāo)志為0,無進位。標(biāo)志指示燈CY滅時表示進位為“1”,有進位。6. 驗證帶進位運算及進位鎖存功能使Cn=1,AR=0,進行帶進位算術(shù)運算。例如做加法運算,使ALU-B=0,S3,S2,S1,S0,M狀態(tài)為10010,此時數(shù)據(jù)總線上顯示的數(shù)據(jù)為DR1加DR2加當(dāng)前進位標(biāo)志的和。但這時的進位狀態(tài)還沒有打入進位鎖存器中,它是要靠T4節(jié)拍脈沖來打入的。這個結(jié)果是否有進位產(chǎn)生,則要按動微動開關(guān)KK2,若進位指示燈亮,則無進位,反之則有進位。因做加法運算時數(shù)據(jù)總線一直顯示的數(shù)據(jù)為DR1+DR2+CY,所以當(dāng)有進位輸入到進位鎖存器后,總線顯示的數(shù)據(jù)將為加上當(dāng)前進位鎖存器中鎖存的進位位的結(jié)果。實驗四 移位運算實驗(2 課時)實驗?zāi)康牧私庖莆话l(fā)生器74LS299的功能驗證移位控制電路的組合功能實驗設(shè)備TDN-CM+或TDN-CM+教學(xué)實驗系統(tǒng)一套實驗原理圖4-1 移位運算實驗原理圖圖4-1所示為移位控制電路。其中使用了一片74LS299作為移位發(fā)生器,其8位輸入/輸出端可連接至內(nèi)部總線。74LS299移位器的片選控制信號為299-B,在低電平時有效。T4為其控制脈沖信號,由W/R UNIT單元中得T4接至STATE UNIT單元中的單脈沖發(fā)生器KK2上產(chǎn)生,S0、S1、M,作為移位控制信號,此移位控制邏輯功能如表4-1所示。299-BS1S0M功能000任意保持0100循環(huán)右移0101帶進位循環(huán)右移0010循環(huán)左移0011帶進位循環(huán)左移任意11任意裝數(shù)表4.1 移位控制電路功能表 實驗步驟1. 按圖4-2連接實驗線路,仔細(xì)檢查無誤。圖4-2 移位運算實驗電路接線圖2. 打開電源開關(guān)。3. 向移位寄存器置數(shù)。a) 撥動輸入開關(guān)形成二進制數(shù)01101011(或其它數(shù)值)。b) 使SWITCH UNIT 單元中的開關(guān)SW-B=0,打開數(shù)據(jù)輸入三態(tài)門。c) 使S0=1、S1=1,并撥動微動開關(guān)KK2,則將01101011置入了移位寄存器。d) 使SW-B=1,關(guān)閉數(shù)據(jù)輸入三態(tài)門。4. 移位運算操作。參照表4.1中的內(nèi)容,先將S1、S0置為0、0,檢查移位寄存器單元裝入的數(shù)是否正確,然后通過改變S0、S1、M、299-B的狀態(tài),并按動微動開關(guān)KK2,觀察移位結(jié)果。實驗五 存儲系統(tǒng)實驗(5課時)實驗?zāi)康恼莆侦o態(tài)隨機存儲器RAM工作特性及數(shù)據(jù)的讀寫方法實驗設(shè)備TDN-CM+或TDN-CM+教學(xué)實驗系統(tǒng)一套實驗原理圖5-1 存儲器實驗原理圖實驗所用的半導(dǎo)體靜態(tài)存儲器電路原理如圖5-1所示,實驗中的靜態(tài)存儲器由一片6116(2K*8)構(gòu)成,其數(shù)據(jù)線接至數(shù)據(jù)總線,地址線由地址鎖存器(74LS273)給出。地址燈AD0-AD7與地址線相連,顯示地址線內(nèi)容。數(shù)據(jù)開關(guān)經(jīng)一個三態(tài)門(74LS245)連至數(shù)據(jù)總線,分時給出地址和數(shù)據(jù)。 因地址寄存器為8位,所以接入6116的地址為A7-A0,而高三位A8-A10接地,所以其實際容量為256字節(jié)。6116有三條控制線:CE(片選線)、OE(讀線)、WE(寫線)。當(dāng)片選有效(CE=0)時,OE=0時進行讀操作,WE=0時進行寫操作。本實驗中將OE常接地,在此情況下,當(dāng)CE=0、WE=0時進行讀操作。CE=0、WE=1時進行寫操作,其寫時間與T3脈沖寬度一致。 實驗時,將T3脈沖接至實驗板上時序電路模塊的TS3響應(yīng)插孔中,其脈沖寬度可調(diào),其他電平控制信號由SWITCH UNIT單元的二進制開關(guān)模擬,其中SW-B為低電平有效,LDAR為高電平有效。實驗步驟1. 形成時鐘脈沖信號T3,具體接線方法和操作步驟如下:a) 接通電源,用示波器接入方波信號源的輸出插孔H23,調(diào)節(jié)電位器W1及W2,使H23端輸出實驗所期望的頻率及占空比的方波。b) 將時序電路模塊(STATE UNIT)單元中的和信號源單元(SIGNAL UNIT)中的H23排針相連。c) 在時序電路模塊中有兩個二進制開關(guān)STOP和STEP。將STOP開關(guān)置為RUN狀態(tài)、STEP開關(guān)置為EXEC狀態(tài)時,按動微動開關(guān)START,則TS3端即輸出為連續(xù)的方波信號,此時調(diào)節(jié)電位器W1,用示波器觀察,使T3輸出實驗要求的脈沖信號。當(dāng)STOP開關(guān)置為RUN狀態(tài)、STEP開關(guān)置為STEP狀態(tài)時,每按動一次微動開關(guān)START,則T3輸出一個單脈沖,其脈沖寬度與連續(xù)方式相同。若用PC聯(lián)機軟件中的示波器功能也能看到波形,可以代替真實示波器。2. 按圖5-2連接實驗線路,仔細(xì)查線無誤后接通電源。由于存儲器模塊內(nèi)部的連線已經(jīng)接好,因此只需完成實驗電路的形成、控制信號模擬開關(guān)、時鐘脈沖信號T3與存儲模塊的外部連接。圖5-2 實驗接線圖3. 寫存儲器給存儲器的00、01、02、03、04地址單元分別寫入數(shù)據(jù)11、12、13、14、15。由上面的存儲器實驗原理圖看出,由于數(shù)據(jù)和地址全由一個數(shù)據(jù)開關(guān)來給出,這就要分時進行地址和數(shù)據(jù)的傳輸。下面的寫存儲器要分兩個步驟,第一步寫地址,先關(guān)掉存儲器的片選(CE=1),打開地址鎖存器門控信號(LDAR=1),打開數(shù)據(jù)開關(guān)三態(tài)門(SW-B=0),由開關(guān)給出要寫存儲單元的地址,按動START產(chǎn)生T3脈沖,將地址打入到地址鎖存器;第二步寫數(shù)據(jù),關(guān)掉地址鎖存器門控信號(LDAR=0),打開存儲器片選,使處于寫狀態(tài)(CE=0,WE=1),由開關(guān)給出此單元要寫入的數(shù)據(jù),按動START產(chǎn)生T3脈沖將數(shù)據(jù)寫入到當(dāng)前的地址單元中。寫其他單元依次循環(huán)上述步驟。寫存儲器流程如下:(以向00號單元寫入11為例)4. 讀存儲器依次讀出第00、01、02、03、04號單元的內(nèi)容,觀察上述各單元的內(nèi)容是否與前面寫入的一致。同寫操作類似,讀每個單元也需要兩步,第一步寫地址,先關(guān)掉存儲器的片選(CE=1),打開地址鎖存器門控信號(LDAR=1),打開數(shù)據(jù)開關(guān)三態(tài)門(SW-B=0),由開關(guān)給出要寫存儲單元的地址,按動START產(chǎn)生T3脈沖將地址打入到地址鎖存器;第二步讀存儲器,關(guān)掉地址鎖存器門控信號(LDAR=0),關(guān)掉數(shù)據(jù)開關(guān)三態(tài)門(SW-B=1),使片選存儲器處于讀狀態(tài)(CE=0,WE=0),此時數(shù)據(jù)總線上顯示的數(shù)據(jù)即為從存儲器當(dāng)前地址中讀出的數(shù)據(jù)內(nèi)容。讀其它單元依次循環(huán)上述步驟。讀存儲器操作流程如下:(以從00號單元讀出11數(shù)據(jù)為例)實驗六 系統(tǒng)總線控制實驗(4課時)實驗?zāi)康睦斫饪偩€的概念及其特性 掌握總線傳輸控制特性實驗設(shè)備TDN-CM+或TDN-CM+教學(xué)實驗系統(tǒng)一套實驗原理 實驗所用總線傳輸實驗框圖如圖6-1所示,它將集中不同的設(shè)備掛至總線上,有存儲器、輸入設(shè)備、輸出設(shè)備、寄存器。這些設(shè)備都需要有三態(tài)輸出控制,按照傳輸要求恰當(dāng)有序的控制它們,就可實現(xiàn)總線信息傳輸。圖6. 1 總線傳輸實驗框圖 實驗要求: 根據(jù)掛在總線上的幾個基本部件,設(shè)計一個簡單的流程:a) 輸入設(shè)備將一個數(shù)打入R0寄存器;b) 輸入設(shè)備將另一個數(shù)打入地址寄存器;c) 將R0寄存器中的數(shù)寫入到當(dāng)前地址的存儲器中;d) 將當(dāng)前地址的存儲器中的數(shù)用LED數(shù)碼管顯示實驗步驟1. 按照圖6-2實驗接線圖進行連線。2. 具體操作步驟圖示如下:初始狀態(tài)應(yīng)設(shè)為:首先應(yīng)關(guān)閉所有三態(tài)門(SW-B=1,CS=1,R0-B=1,LED-B=1),并將關(guān)聯(lián)的信號置為:LDAR=0,LDR0=0,W/R(RAM)=1,W/R(LED)=1。然后參照如下操作流程,先給數(shù)據(jù)開關(guān)置數(shù),打開數(shù)據(jù)輸出三態(tài)門,撥動LDR0控制信號做0->1->0動作,使產(chǎn)生一個上升沿將數(shù)據(jù)打入到R0中;然后繼續(xù)給數(shù)據(jù)開關(guān)置數(shù),撥動LDAR控制信號做0->1->0動作,使產(chǎn)生一個上升沿將數(shù)據(jù)打入到AR中;關(guān)閉數(shù)據(jù)開關(guān)三態(tài)門,打開R0寄存器輸出控制,使存儲器處于寫狀態(tài)(W/R=0,CS=0)將R0中的數(shù)據(jù)寫到存儲器中;關(guān)閉存儲器片選,關(guān)閉R0寄存器輸出,使存儲器處于讀狀態(tài)(W/R=1,CS=0),打開LED片選,撥動LED的W/R控制信號做1->0->1動作,使產(chǎn)生一個下降沿將數(shù)據(jù)打入到LED中。圖6. 2 實驗接線圖圖6. 3 實驗步驟圖實驗七 微控制器的組成與設(shè)計實驗(6課時)實驗?zāi)康?掌握時序產(chǎn)生器的組成原理 掌握微程序控制器的組成原理 掌握微程序的編制、寫入,觀察微程序的運行實驗設(shè)備TDN-CM+或TDN-CM+教學(xué)實驗系統(tǒng)一套實驗原理 微程序控制器的基本任務(wù)是完成當(dāng)前指令的翻譯和執(zhí)行,即將當(dāng)前指令的功能轉(zhuǎn)換成可以控制硬件邏輯部件工作的微命令序列,完成數(shù)據(jù)傳送和各種處理操作。它的執(zhí)行方法就是將控制各部件動作的微命令的集合進行編碼,即將微命令的集合仿照機器指令一樣,用數(shù)字代碼的形式表示,這種表示成為微指令。這樣就可以用一個微指令序列表示一條機器指令,這種微指令序列稱為微程序。微程序存儲在一種專用的存儲器中,稱為控制存儲器。實驗所用的時序電路原理如圖7-1所示,可產(chǎn)生4個等間隔的時序信號TS1-TS4,其中為時序信號,由實驗臺右上方的方波信號源提供,可產(chǎn)生頻率及脈寬可調(diào)的方波信號。學(xué)生可根據(jù)實驗自行選擇方波信號的頻率及脈寬。為了便于控制程序的運行,時序電路發(fā)生器也設(shè)置了一個啟??刂朴|發(fā)器Cr,是TS1-TS4信號輸出可控。圖中STEP(單步)、STOP(停機)分別是來自實驗板上方中部的兩個二進制開關(guān)STEP、STOP的模擬信號。START鍵是來自實驗板上方中不一個微動開關(guān)START的按鍵信號。當(dāng)STEP開關(guān)為0時(EXEC),一旦按下啟動鍵,運行觸發(fā)器Cr一直處于“1”狀態(tài),因此時序信號TS1-TS4將周而復(fù)始地發(fā)送出去。當(dāng)STEP為1(STEP)時,一旦按下啟動鍵,機器便處于單步運行狀態(tài),即此時只發(fā)送一個CPU周期的時序信號就停機。利用單步方式,每次只讀一條微指令,可以觀察微指令的代碼與當(dāng)前微指令的執(zhí)行結(jié)果。另外,當(dāng)機器連續(xù)運行時,如果STOP開關(guān)置“1”(STOP),也會使機器停機。 由于時序電路的內(nèi)部線路已經(jīng)連好,所以只需將時序電路與方波信號源連接(即將時序電路的時鐘脈沖輸入端接至方波信號發(fā)生器輸出端H23),時序電路的CLR已接至實驗板左下方的CLR模擬開關(guān)上。 微程序控制電路與微指令格式a) 微程序控制電路微程序控制器的組成如圖7-2,其中控制存儲器采用3片2816的EEPROM,具有掉電保護功能,微命令寄存器18位,用兩片8D觸發(fā)器(273)和一片4D(175)觸發(fā)器組成。微地址寄存器6位,用三片正沿觸發(fā)器的雙D觸發(fā)器(74)組成,它們帶有清“0”端和預(yù)置端。在不判別測試的情況下,T2時刻打入微地址寄存器的內(nèi)容即為下一條微指令地址。當(dāng)T4時刻進行測試判別時,轉(zhuǎn)移邏輯滿足條件后輸出的負(fù)脈沖通過強置端將某一觸發(fā)器置為“1”狀態(tài),完成地址修改。在該實驗電路中設(shè)有一個編程開關(guān)(位于實驗板右上方),它具有三種狀態(tài):PROM(編程)、READ(校驗)、RUN(運行)。當(dāng)處于編程狀態(tài)時,學(xué)生可根據(jù)微地址和微指令格式將微指令二進制代碼寫入到控制存儲器2816中。當(dāng)處于校驗狀態(tài)時,可以對寫入控制存儲器中的二進制代碼進行驗證,從而可以判斷寫入的二進制代碼是否正確。當(dāng)處于運行狀態(tài)時,只要給出微程序的入口微地址,則可根據(jù)微程序流程圖自動執(zhí)行微程序。圖中微地址寄存器輸出端增加了一組三態(tài)門,目的是隔離觸發(fā)器的輸出,增加抗干擾能力,并用來驅(qū)動微地址顯示燈。b) 微指令格式微指令字長24位,其控制位順序如表7-1。其中UA5-UA0為6位的后續(xù)微地址,A、B、C為三個譯碼字段,分別由三個控制位譯碼出多位。表6-1 微指令格式24232221201918171615 14 1312 11 109 8 7654321S3S2S1S0MCnWEA9A8ABCA5A4A3A2A1A0A字段B字段C字段151413選擇121110選擇987選擇000000000001LDRi001RSB001P(1)010LDDR1010RDB010P(2)011LDDR2011RIB011P(3)100LDIR100299B100P(4)101LOAD101ALUB101AR110LDAR110PCB110LDPCB字段中的RS-B、RD-B、R1-B分別為源寄存器選通信號、目的寄存器選通信號及變址寄存器選通信號,其功能是根據(jù)機器指令來進行三個工作寄存器R0、R1及R2的選通譯碼,其原理如圖7-3,圖中10-14為指令寄存器的0-4位,LDRi為打入工作寄存器信號的譯碼器使能控制位。圖7-3 寄存器譯碼C字段中的P(1) P(4) 是四個測試位,其功能是根據(jù)機器指令及相應(yīng)微代碼進行譯碼,使微程序轉(zhuǎn)入相應(yīng)的微地址入口,從而實現(xiàn)微程序的順序、分支、循環(huán)運行,其原理如圖7-4所示,圖中17-12為指令寄存器的7-2位輸出,SE5-SE1為微控器單元微地址鎖存器的強置端輸出。AR為算術(shù)運算是否影響進位及判零標(biāo)志控制位,其為零有效。圖7-4 指令譯碼 實驗步驟(1)本實驗采用五條機器指令:IN(輸入)、ADD(二進制加法)、STA(存數(shù))、OUT(輸出)、JMP(無條件轉(zhuǎn)移),其指令格式如下(前4位為操作碼): 其中IN為單字長(8位),其余為雙字長指令,為addr對應(yīng)的二進制地址碼。 為了向RAM中裝入程序和數(shù)據(jù),檢查寫入是否正確,并能啟動程序執(zhí)行,還必須設(shè)計三個控制臺操作微程序。 存儲器讀操作(KRD):撥動總清開關(guān)CLR后,控制臺開關(guān)SWB、SWA為00時,按START微動開關(guān),可對RAM連續(xù)手動讀操作。 存儲器寫操作(KWE):撥動總清開關(guān)CLR后,控制臺開關(guān)SWB、SWA置為01時,按START微動開關(guān)可對RAM進行連續(xù)手動寫入。 啟動程序:撥動總清開關(guān)CLR后,控制臺開關(guān)SWB、SWA置為11時,按START微動開關(guān),即可轉(zhuǎn)入到第01號取指微指令,啟動程序運行。 上述三條控制臺指令用兩個開關(guān)SWB、SWA的狀態(tài)來設(shè)置,其定義如下:圖7-5為所設(shè)計的幾條機器指令對應(yīng)的參考微程序流程圖,將全部微程序按微指令格式變成二進制代碼,可得到表7-2的二進制代碼表。圖7-5中一個舉行方框表示一條微指令,方框中的內(nèi)容為該指令執(zhí)行的微操作,右上角的數(shù)字是該條指令的微地址,為表示方便,所有微地址使用八進制表示。向下的箭頭指出了下一條要執(zhí)行的指令。P(1)-P(4)為測試字,根據(jù)條件使微程序產(chǎn)生分支。表7-2 二進制微代碼表微地址S3 S2 S1 S0 M CN WE A9 A8ABCA5A00 00 0 0 0 0 0 0 1 10 0 00 0 01 0 00 1 0 0 0 00 10 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 0 1 00 20 0 0 0 0 0 0 0 11 0 00 0 00 0 10 0 1 0 0 00 30 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 0 1 0 00 40 0 0 0 0 0 0 0 10 1 10 0 00 0 00 0 0 1 0 10 50 0 0 0 0 0 0 1 10 1 00 0 10 0 00 0 0 1 1 00 61 0 0 1 0 1 0 1 10 0 11 0 10 0 00 0 0 0 0 10 70 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 1 1 0 11 00 0 0 0 0 0 0 0 00 0 1 0 0 00 0 00 0 0 0 0 11 10 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 0 1 11 20 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 1 1 11 30 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 1 1 1 01 40 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 1 1 01 50 0 0 0 0 0 1 0 10 0 00 0 10 0 00 0 0 0 0 11 60 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 1 1 1 11 70 0 0 0 0 0 0 0 10 1 00 0 00 0 00 1 0 1 0 12 00 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 0 1 02 10 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 1 0 02 20 0 0 0 0 0 0 0 10 1 00 0 00 0 00 1 0 1 1 12 30 0 0 0 0 0 0 1 10 0 00 0 00 0 00 0 0 0 0 12 40 0 0 0 0 0 0 0 00 1 00 0 00 0 00 1 1 0 0 02 50 0 0 0 0 1 1 1 00 0 01 0 10 0 00 0 0 0 0 12 60 0 0 0 0 0 0 0 11 0 10 0 01 1 00 0 0 0 0 12 70 0 0 0 0 1 1 1 00 0 01 0 1 0 0 00 1 0 0 0 03 00 0 0 0 0 1 1 0 10 0 01 0 1 0 0 00 1 0 0 0 1(2)按圖7-6連接實驗線路,仔細(xì)查線無誤后接通電源。圖7-6 微控器實驗接線圖(3)觀測時序信號用雙蹤示波器(或用聯(lián)機軟件的PC示波器功能)觀察方波信號源的輸出端H23,調(diào)節(jié)電位器W1,使輸出波形的頻率最慢。將時序電路中的STOP開關(guān)置為RUN,STEP開關(guān)置為EXEC。按動START按鍵,測量TS1、TS2、TS3、TS4各點的波形,比較它們的相互關(guān)系,畫出其波形,并標(biāo)注測量所得的脈沖寬度,見圖7-7。圖7-7 時序狀態(tài)圖(4)觀察微程序控制器的工作原理a)編程 1)將編程開關(guān)置為PROM(編程)狀態(tài)。 2)將實驗板上STATE UNIT中的STEP置為STEP,STOP置為RUN狀態(tài)。 3)用二進制模擬開關(guān)置微地址MA5-MA0。4)在MK24-MK1開關(guān)上置微代碼,24位開關(guān)對應(yīng)24位顯示燈,開關(guān)量為0時燈滅,開關(guān)量為1時燈滅。5)啟動時序電路(按動啟動按鈕START),即將微代碼寫入到EEPROM2816的相應(yīng)地址對應(yīng)的單元中。6)重復(fù)3)-5)步驟,將表5-2的微代碼寫入2816。b)校驗1)將編程開關(guān)置為READ(校驗)狀態(tài)。2)將實驗板的STEP開關(guān)置為STEP狀態(tài)。STOP開關(guān)置為RUN狀態(tài)。3)用二進制開關(guān)置好微地址MA5-MA0。4)按動START鍵,啟動時序電路,讀出微代碼。觀察顯示燈MD24-MD1的狀態(tài)(燈亮為0,燈滅為1),檢查讀出的微代碼是否與寫入的相同。如果不同,則將開關(guān)置于PROM編程狀態(tài),重新執(zhí)行a)編程步驟即可。c)單步運行1)將編程開關(guān)置于RUN(運行)狀態(tài)。2)實驗板的STEP及STOP開關(guān)保持原狀。3)操作CLR開關(guān)(撥動開關(guān)在實驗板右下角)使CLR信號1->0->1,微地址寄存器MA5-MA0清零,從而明確本機的運行入口微地址為000000(二進制)。4)按動START鍵,啟動時序電路,則每按動一次啟動鍵,讀出一條微指令后停機,此時實驗臺上的微地址顯示燈和微命令顯示燈將顯示所讀出的一條指令。 注意:在當(dāng)前條件下,可將MICRO-CONTROLLER單元的SE6-SE1接至SWITCH UNIT中的S3-Cn對應(yīng)二進制開關(guān)上,可通過強置端SE1-SE6人為設(shè)置分支地址。首先將SE1-SE6對應(yīng)二進制開關(guān)置為1,當(dāng)需要人為設(shè)置分支地址時,將某個或幾個二進制開關(guān)置0,相應(yīng)的微地址位即被強置為1,從而改變下一條微指令的地址。(二進制開關(guān)置為0,相應(yīng)的微地址位將被強置為0)d)連續(xù)運行 1)將編程開關(guān)置為RUN(運行)狀態(tài)。2)將實驗板的單步開關(guān)STEP置為EXEC狀態(tài)。3)使CLR從1->0->1,此時微地址寄存器清“0”,從而給出取指微指令的入口地址為000000(二進制)。4)啟動時序電路,則可連續(xù)讀出微指令。實驗八 基本模型機的設(shè)計與實現(xiàn)(4課時)實驗?zāi)康脑谡莆詹考卧娐穼嶒灥幕A(chǔ)上,進一步將其組成系統(tǒng)構(gòu)造一臺基本模型計算機為其定義五條機器指令,并編寫相應(yīng)的微程序,具體上機調(diào)試掌握整機概念實驗設(shè)備TDN-CM+或TDN-CM+教學(xué)實驗系統(tǒng)一套 PC微機一臺實驗原理 部件實驗過程中,各部件單元的控制信號是認(rèn)為模擬產(chǎn)生的,而本次試驗將在微程序控制下自動產(chǎn)生各部件單元控制信號,實現(xiàn)特定指令的功能。這里,計算機數(shù)據(jù)通路的控制將由微程序控制器來完成,CPU從內(nèi)存中取出一條機器指令到指令執(zhí)行結(jié)束的一個指令周期全部由微指令組成的序列來完成,及一條機器指令對應(yīng)一段微程序。本實驗采用五條機器指令:IN(輸入)、ADD(二進制加法)、STA(存數(shù))、OUT(輸出)、JMP(無條件轉(zhuǎn)移),其指令格式如下(前4位為操作碼): 其中IN為單字長(8位),其余為雙字長指令,為addr對應(yīng)的二進制地址碼。 為了向RAM中裝入程序和數(shù)據(jù),檢查寫入是否正確,并能啟動程序執(zhí)行,還必須設(shè)計三個控制臺操作微程序。 存儲器讀操作(KRD):撥動總清開關(guān)CLR后,控制臺開關(guān)SWB、SWA為00時,按START微動開關(guān),可對RAM連續(xù)手動讀操作。 存儲器寫操作(KWE):撥動總清開關(guān)CLR后,控制臺開關(guān)SWB、SWA置為01時,按START微動開關(guān)可對RAM進行連續(xù)手動寫入。 啟動程序:撥動總清開關(guān)CLR后,控制臺開關(guān)SWB、SWA置為11時,按START微動開關(guān),即可轉(zhuǎn)入到第01號取指微指令,啟動程序運行。 上述三條控制臺指令用兩個開關(guān)SWB、SWA的狀態(tài)來設(shè)置,其定義如下: 根據(jù)以上要求設(shè)計數(shù)據(jù)通路框圖,如圖8-1,微代碼定義如表8-1所示。 系統(tǒng)涉及到的微程序流程圖見圖8-2,這里取指是公用微指令,為了能確定不同機器指令有各自不同的微程序轉(zhuǎn)向,我們在這里以指令寄存器的前4位(IR7-IR4)作為測試條件,引入了P(1)指令測試字段,如此,對于5條機器指令,就可以有5路P(1)測試分支,對于每一指令分別予以微程序解釋。 控制臺操作為P(4)測試,它以控制臺開關(guān)SWB、SWA作為測試條件,出現(xiàn)了3路分支,占用3個固定微地址單元。當(dāng)分支微地址單元固定后,剩下的其它地方就可以一條微指令占用控存一個微地址單元隨意填寫。注意:微程序流程圖上的單元地址為八進制。 當(dāng)全部微程序設(shè)計完畢后,應(yīng)將每條微指令代碼化,表8-2即為將圖8-2的微程序流程圖按微指令格式轉(zhuǎn)化而成的“二進制微代碼表”。下面介紹指令寄存器(IR):指令寄存器用來保存當(dāng)前正在執(zhí)行的一條指令。當(dāng)執(zhí)行一條指令時,先把它從內(nèi)存取到指令寄存器中,然后對其進行譯碼、執(zhí)行。指令劃分為操作碼和地址碼字段,由二進制數(shù)構(gòu)成,為了執(zhí)行任何給定的指令,必須對操作碼進行測試【P(1)】,通過節(jié)拍脈沖T4的控制以便識別所要求的操作?!爸噶钭g碼器”(實驗板上標(biāo)有“INS DECODE”的芯片)根據(jù)指令中的操作碼譯碼強置微控器單元的微地址,使下一條微指令指向相應(yīng)的微程序首地址。本系統(tǒng)有兩種外部I/O設(shè)備,一種是二進制代碼開關(guān),它作為輸入設(shè)備(INPUT DEVICE);另一種是數(shù)碼塊,它作為輸出設(shè)備(OUTPUT DEVICE)。例如:輸入時,二進制開關(guān)數(shù)據(jù)直接經(jīng)過三態(tài)門送到總線上,只要開關(guān)狀態(tài)不變,輸入的信息也不便。輸出時,將輸出數(shù)據(jù)送到數(shù)據(jù)總線上,當(dāng)寫信號(W/R)有效時,將數(shù)據(jù)打入輸出鎖存器,驅(qū)動數(shù)碼塊顯示。本實驗設(shè)計及其指令程序如下:實驗步驟(1) 按圖8-3連接實驗線路。(2) 寫程序 方法一:手動寫入A) 先將及其指令對應(yīng)的微代碼正確寫入2816中,由于在實驗五微程序控制實驗中已將微代碼寫入EEPROM芯片中,對照表8-2校驗正確后就可使用。B) 使用控制臺KWE和KRD微程序進行機器指令程序的裝入和檢查。a) 使編程開關(guān)處于RUN,STEP為“STEP”狀態(tài),STOP為“RUN”狀態(tài)。b) 撥動總清開關(guān)CLR(1->0->1),微地址寄存器清零,程序計數(shù)器清零。然后使控制臺SWB、SWA開關(guān)置為01,按動一次啟動開關(guān)START,微地址顯示燈顯示010001,再按動一次START,微地址燈顯示010100,此時數(shù)據(jù)開關(guān)的內(nèi)容置為要寫入的機器指令,安東路iangciSTART鍵后,即完成該條指令的寫入。若仔細(xì)閱讀KWE的流程,就不難發(fā)現(xiàn),機器指令的首地址總清后為零,以后每個循環(huán)PC會自動加1,所以,每次按動START,只有在微地址燈顯示010100時,才設(shè)置內(nèi)容,知道所有機器指令寫完。c) 寫完程序后須進行校驗。撥動總清開關(guān)CLR(1->0->1)后,微地址清零。PC計數(shù)器清零,然后使控制臺開關(guān)SWB、SWA為00,按動啟動START,微地址燈將顯示010000,再按START,微地址燈顯示為010010,第三次按START,微地址燈顯示為010111,再按START后,此時輸出單元的數(shù)碼管顯示為該首地址中的內(nèi)容。不斷按動START,以后每個循環(huán)PC會自動加1,可檢查后續(xù)單元內(nèi)容。每次在微地址燈顯示為010000時,是將當(dāng)前地址中的機器指令寫入到輸出設(shè)備中顯示。 方法二:聯(lián)機讀/寫程序 按照規(guī)定格式,將機器指令及表8-2微指令二進制表編輯成十六進制的如下格式文件。微指令格式中的微指令代碼為將表8-2中的24位微代碼從左到右分成3個8位,將此三個8位二進制代碼化為相應(yīng)的十六進制數(shù)即可。 用聯(lián)機軟件的“轉(zhuǎn)儲-裝載”功能將該格式文件裝載入實驗系統(tǒng)即可。(3) 運行程序A) 單步運行程序a) 使編程開關(guān)處于RUN狀態(tài),STEP為STEP狀態(tài),STOP為RUN狀態(tài)。b) 撥動總清開關(guān)CLR(0->1),微地址清零,程序計數(shù)器清零。程序首地址為00H。c) 單步運行一條微指令,每按動一次START鍵,即單步運行一條微指令。對照微程序流程圖,觀察微地址顯示燈是否和流程一致。d) 當(dāng)運行結(jié)束后,可檢查存數(shù)單元(0BH)中的結(jié)果是否和理論值一致。B) 連續(xù)運行程序a) 使STATE UNIT中的STEP開關(guān)置為EXEC狀態(tài)。STOP開關(guān)置為RUN狀態(tài)。b) 撥動CLR開關(guān),清微地址及程序計數(shù)器,然后按動START,系統(tǒng)連續(xù)運行程序,稍后將STOP撥至“STOP”時,系統(tǒng)停機。c) 停機后,可檢查存數(shù)單元(0BH)結(jié)果是否正確。C) 若聯(lián)機運行程序時,進入DEBUG調(diào)試界面,總清開關(guān)CLR(0->1)清零后,程序首地址為00H,按相應(yīng)功能鍵即可聯(lián)機運行、調(diào)試程序。(軟件使用說明請看用戶手冊)