




已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)組成原理與接口技術(shù)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告學(xué)院: 計(jì)算機(jī)科學(xué)與工程 專(zhuān)業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí): 計(jì)科二班 學(xué)號(hào): 姓名: 指導(dǎo)老師: 評(píng)分:2016年12月28日實(shí)驗(yàn)一 驗(yàn)證74LS181運(yùn)算和邏輯功能1、實(shí)驗(yàn)?zāi)康模?) 掌握算術(shù)邏輯單元(ALU)的工作原理;(2) 熟悉簡(jiǎn)單運(yùn)算器的數(shù)據(jù)傳送通路;(3) 畫(huà)出邏輯電路圖及布出美觀整齊的接線圖;(4) 驗(yàn)證4位運(yùn)算功能發(fā)生器(74LS181)組合功能。2、實(shí)驗(yàn)原理ALU能進(jìn)行多種算術(shù)運(yùn)算和邏輯運(yùn)算。4位ALU-74LS181能進(jìn)行16種算術(shù)運(yùn)算和邏輯運(yùn)算。74ls181芯片介紹:該芯片總共由22個(gè)引腳,其中包括8個(gè)數(shù)據(jù)輸入端(A0、A1、A2、A3,B0、B1、B2、B3,其中八個(gè)輸入端中A3和B3是高位),這八個(gè)都是低電平有效。還包括S0、S1、S2、S3這四個(gè)控制端,這四個(gè)控制端主要控制兩個(gè)四位輸入數(shù)據(jù)的運(yùn)算,例如加、減、與、或。CN端處理進(jìn)入芯片前進(jìn)位值,M控制芯片的運(yùn)算方式,包括算術(shù)運(yùn)算和邏輯運(yùn)算。F0、F1、F2、F3是四個(gè)二進(jìn)制輸出端,以一個(gè)四位二進(jìn)制形式輸出運(yùn)算的結(jié)果。CN4記錄運(yùn)算后的進(jìn)位。功能表如下:方式M = 1 邏輯運(yùn)算M = 0算術(shù)運(yùn)算S3 S2 S1 S0邏輯運(yùn)算CN=1 (無(wú)進(jìn)位)CN =0 (有進(jìn)位)0 0 0 0F=/AF=AF=A加10 0 0 1F=/(A + B)F=A + BF=(A + B) 加10 0 1 0F=(/A ) BF=A + /BF=( A + /B )加10 0 1 1F=0F=負(fù)1(補(bǔ)碼形式)F=00 1 0 0F=/(A B)F=A加A ( / B)F=A加A / B加10 1 0 1F=/BF=(A + B) 加A / BF=(A + B)加A / B加10 1 1 0F=A BF=A減B減1F=A減B0 1 1 1F=A/BF=A (/ B)減1F=A (/ B) 1 0 0 0F=/A +BF=A加A BF=A加A B加11 0 0 1F=/( A B)F=A加 BF=A加B加11 0 1 0F=BF=( A + /B )加A BF=( A + /B )加A B加11 0 1 1F=ABF=AB減1F=AB1 1 0 0F=1F=A加 AF=A加 A加11 1 0 1F=A + /BF=(A + B) 加 AF=(A + B) 加 A加11 1 1 0F=A + BF=(A + / B) 加 AF=(A + / B) 加 A加11 1 1 1F=AF=A 減1F=A (上表中的“/”表示求反)ALU-74LS181引腳說(shuō)明:M=1 邏輯運(yùn)算,M=0算術(shù)運(yùn)算。引 腳說(shuō) 明M 狀態(tài)控制端M=1 邏輯運(yùn)算;M=0算術(shù)運(yùn)算。S3 S3 S1 S1運(yùn)算選擇控制S3 S3 S1 S1決定電路執(zhí)行哪一種算術(shù)A3 A2 A1 A1運(yùn)算數(shù)1,引腳3為最高位B3 B2 B1 B0運(yùn)算數(shù)2,引腳3為最高位Cn 最低位進(jìn)位輸入Cn =0 有進(jìn)位;Cn =1 無(wú)進(jìn)位;Cn+4本片產(chǎn)生的進(jìn)位信號(hào)Cn+4=0 有進(jìn)位;Cn+4=1 無(wú)進(jìn)位;F3 F2 F1 F0F3 F2 F1 F0運(yùn)算結(jié)果,F(xiàn)3為最高位3、實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)電路圖:驗(yàn)證74LS181型4位ALU的邏輯算術(shù)功能S3 S2 S1 S0數(shù)據(jù)1數(shù)據(jù)2算術(shù)運(yùn)算(M=0)邏輯運(yùn)算(M=1)CN=1 (無(wú)進(jìn)位)CN =0 (有進(jìn)位)0 0 0 0AH5HF=AHF=BHF=5H0 0 0 1AH5HF=FHF=0HF=0H0 0 1 0AH5HF=AHF=BHF=5H0 0 1 1AH5HF=FHF=0HF=0H0 1 0 0FH1HF=DHF=EHF=EH0 1 0 1FH1HF=DHF=EHF=EH0 1 1 0FH1HF=DHF=EHF=EH0 1 1 1FH1HF=DHF=EHF=EH1 0 0 0FHFHF=EHF=FHF=FH1 0 0 1FHFHF=EHF=FHF=FH1 0 1 0FHFHF=EHF=FHF=FH1 0 1 1FHFHF=EHF=FHF=FH1 1 0 05H5HF=AHF=BHF=FH1 1 0 15H5HF=AHF=BHF=FH1 1 1 05H5HF=4HF=5HF=5H1 1 1 15H5HF=4HF=5HF=5H4、總結(jié)及心得體會(huì)本實(shí)驗(yàn)通過(guò)一個(gè)設(shè)計(jì)一個(gè)簡(jiǎn)單的運(yùn)算器,使我熟悉了Multisim軟件的一些基本操作方法,并掌握了一些簡(jiǎn)單的電路設(shè)計(jì)與分析的能力,并對(duì)我做下一個(gè)運(yùn)算器的實(shí)驗(yàn)有一定的幫助。因?yàn)槭侵皩?shí)驗(yàn)課做過(guò)的實(shí)驗(yàn),再次做起來(lái)過(guò)程比較流暢,沒(méi)有遇到什么大的問(wèn)題,實(shí)驗(yàn)的測(cè)試結(jié)果與預(yù)期的一致。該芯片總共由22個(gè)引腳,其中包括8個(gè)數(shù)據(jù)輸入端(A0、A1、A2、A3,B0、B1、B2、B3,其中八個(gè)輸入端中A3和B3是高位),這八個(gè)都是低電平有效。還包括S0、S1、S2、S3這四個(gè)控制端,這四個(gè)控制端主要控制兩個(gè)四位輸入數(shù)據(jù)的運(yùn)算,例如加、減、與、或。CN端處理進(jìn)入芯片前進(jìn)位值,M控制芯片的運(yùn)算方式,包括算術(shù)運(yùn)算和邏輯運(yùn)算。F0、F1、F2、F3是四個(gè)二進(jìn)制輸出端,以一個(gè)四位二進(jìn)制形式輸出運(yùn)算的結(jié)果。CN4記錄運(yùn)算后的進(jìn)位。其中AEQB、P和G 這三個(gè)端口與本實(shí)驗(yàn)無(wú)關(guān),所以這里不做額外介紹。實(shí)驗(yàn)二 運(yùn)算器(2)1、實(shí)驗(yàn)?zāi)康模?) 熟練掌握算術(shù)邏輯單元(ALU)的應(yīng)用方法;(2) 進(jìn)一步熟悉簡(jiǎn)單運(yùn)算器的數(shù)據(jù)傳送原理;(3) 畫(huà)出邏輯電路圖及布出美觀整齊的接線圖;(4) 熟練掌握有關(guān)數(shù)字元件的功能和使用方法。(5) 熟練掌握子電路的創(chuàng)建及使用。2、實(shí)驗(yàn)原理本實(shí)驗(yàn)仿真單總線結(jié)構(gòu)的運(yùn)算器,原理如圖2-2所示。相應(yīng)的電路如圖2-3所示。電路圖中,上右下三方的8條線模擬8位數(shù)據(jù)總線;K8產(chǎn)生所需數(shù)據(jù);74244層次塊為三態(tài)門(mén)電路,將部件與總線連接或斷開(kāi),切記總線上只能有一個(gè)輸入;兩個(gè)74273層次塊作為暫存工作寄存器DR1和DR2;兩個(gè)74374層次塊作為通用寄存器組(鑒于電路排列情況,只畫(huà)出兩個(gè)通用寄存器GR1和GR2,如果可能的話可設(shè)計(jì)4個(gè)或8個(gè)通用寄存器);眾多的開(kāi)關(guān)作為控制電平或打入脈沖;眾多的8段代碼管顯示相應(yīng)位置的數(shù)據(jù)信息;核心為8位ALU層次塊。單總線結(jié)構(gòu)的運(yùn)算器示意圖3、實(shí)驗(yàn)內(nèi)容在Multisim畫(huà)出電路圖并仿真8BIT_ALU_BLOCK74244_BLOCK74ls273_BLOCK74374_BLOCKK8_BLOCK運(yùn)算器示意圖完成下列操作:(1) 說(shuō)明整個(gè)電路工作原理。答:同上文實(shí)驗(yàn)原理。(2) 說(shuō)明74LS244N的功能及其在電路中作用,及輸入信號(hào)G有何作用;答:74LS244為3態(tài)8位緩沖器,一般用作總線驅(qū)動(dòng)器,沒(méi)有鎖存的功能,是一個(gè)暫存器,它根據(jù)控制信號(hào)的狀態(tài),將總線上地址代碼暫存起來(lái)。在電路中在部件與總線之間起開(kāi)關(guān)作用,信號(hào)G為低電平有效。(3) 說(shuō)明74LS273N的功能及其在電路中作用,及輸入信號(hào)CLK有何作用;答:74LS273是一種帶清除功能的8D觸發(fā)器, 1D8D為數(shù)據(jù)輸入端,1Q8Q為數(shù)據(jù)輸出端,正脈沖觸發(fā),低電平清除,常用作數(shù)據(jù)鎖存器,地址鎖存器。在電路中作為數(shù)據(jù)鎖存器,輸入信號(hào)CLK上跳沿觸發(fā)工作。(4) 說(shuō)明74LS374N的功能及其在電路中作用,及輸入信號(hào)CLK和OC有何作用;答:74LS374為具有三態(tài)輸出的八D邊緣觸發(fā)器。在電路中寄存數(shù)據(jù),CLK上跳沿觸發(fā)工作,OC為低電平時(shí)連接,OC為高電平時(shí)斷開(kāi)。(5) K8產(chǎn)生任意數(shù)據(jù)存入通用寄存器GR1。答:在運(yùn)算器電路圖中將左邊的開(kāi)關(guān)全置為1,右邊X7的G信號(hào)也置為1,使所有模塊斷開(kāi)。在K8層次塊中通過(guò)調(diào)節(jié)開(kāi)關(guān)在總線上產(chǎn)生數(shù)據(jù),將與K8相連的X2的信號(hào)G置為0,使數(shù)據(jù)輸出。將寄存器GR1的OC端和CLK端置為0,再將CLK置為1,使總線上的數(shù)據(jù)存入通用寄存器GR1。(6) K8產(chǎn)生任意數(shù)據(jù)存入通用寄存器GR2。答:與(5)操作相同,將GR1的OC端和CLK端改為GR2的OC端和CLK端即可。(7) 完成GR1+GR2GR1。答:將X2的G信號(hào)置為1,將X10和X6的G信號(hào)置為0,使GR1的數(shù)據(jù)存入暫存器X6,將X3的CLK端置0再置1,使數(shù)據(jù)存入鎖存器X3存起來(lái),并將X10和X6的G信號(hào)置1。用類(lèi)似操作將GR2的數(shù)據(jù)存入鎖存器X11存起來(lái)。再將X7的G端口置0,將S0S3置為1、0、0、1,M端置為0,CN端置為1,使X3和X11里面的數(shù)據(jù)相加存入X7。將X7的G信號(hào)置為0,使數(shù)據(jù)傳入主線。將GR1的OC端置0,CLK端置0在置1,將總線上的數(shù)據(jù)傳入GR1。(8) 完成GR1-GR2GR2。答:與(7)操作基本相同,將S0S3置為1、0、0、1,M端置為0,CN端置為1改為將S0S3置為0,1,1,0,M端和CN端也置為0。(9) 完成GR1GR2GR1。答:與(7)操作基本相同,將S0S3置為1、0、0、1,M端置為0,CN端置為1改為將S0S3置為1,1,0,1,M端置為1。(10) 完成GR1GR2GR2。答:與(7)操作基本相同,將S0S3置為1、0、0、1,M端置為0,CN端置為1改為將S0S3置為0,1,1,1,M端置為1。(11) 完成GR1GR2GR1。答:與(7)操作基本相同,將S0S3置為1、0、0、1,M端置為0,CN端置為1改為將S0S3置為0,1,1,0,M端置為1。(12) GR1GR2。(“”表示邏輯非運(yùn)算)答:基本操作與上面相同,但只傳GR1的數(shù)據(jù)。將S0S3置為1、0、0、1,M端置為0,CN端置為1改為將S0S3置為0,0,0,0,M端置為1。使GR1傳入X7,將X7的G信號(hào)置為0,使數(shù)據(jù)傳入主線。將GR2的OC端置0,CLK端置0在置1,將總線上的數(shù)據(jù)傳入GR2。(13) GR2GR1。答:與(12)操作基本相同,將GR1改為GR2即可。4、總結(jié)及心得體會(huì)通過(guò)本實(shí)驗(yàn)我學(xué)會(huì)了自定義各種層次模塊,弄清楚了74LS244、74LS273、74LS374等數(shù)字元件的基本功能和使用方法。對(duì)于各種復(fù)雜的線路,能布出相對(duì)整齊地線路圖,并基本弄清楚了整個(gè)電路的工作原理。本實(shí)驗(yàn)也鍛煉了我的動(dòng)手能力,讓我學(xué)會(huì)了查資料,復(fù)習(xí)了計(jì)算機(jī)組成原理的知識(shí),提高了我的知識(shí)能力。本實(shí)驗(yàn)的實(shí)驗(yàn)過(guò)程中也出現(xiàn)了一些問(wèn)題。剛開(kāi)始對(duì)各個(gè)模塊的功能不熟悉,G信號(hào),OC端口和CLK端口也不會(huì)用,后面通過(guò)查資料和測(cè)試終于弄清楚了其工作原理。開(kāi)始測(cè)試時(shí)各個(gè)數(shù)碼管數(shù)據(jù)都亂七八糟,沒(méi)有邏輯,后面發(fā)現(xiàn)是因?yàn)槎丝谖搓P(guān)閉,總線上有多組數(shù)據(jù)導(dǎo)致。當(dāng)S0S3為1、0、0、0時(shí),進(jìn)行算術(shù)運(yùn)算結(jié)果不全為A+B,當(dāng)S0S3為1、0、0、1時(shí),進(jìn)行算術(shù)運(yùn)算結(jié)果為A+B,對(duì)于這個(gè)問(wèn)題仍有疑問(wèn)。實(shí)驗(yàn)四 查詢(xún)式輸出實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康囊笳莆詹樵?xún)式輸出的工作原理。2、實(shí)驗(yàn)原理通過(guò)查詢(xún)外設(shè)的狀態(tài)信息決定是否輸出數(shù)據(jù)。3、實(shí)驗(yàn)內(nèi)容(1)運(yùn)行“查詢(xún)式輸出裝置”,如圖2-5所示。(2)讀懂示例程序checkout.asm,以備測(cè)試?yán)蠋熢?xún)問(wèn)。(3)編輯、調(diào)試、運(yùn)行輸出程序,將自己學(xué)號(hào)輸出到實(shí)驗(yàn)臺(tái)右側(cè)數(shù)據(jù)緩沖區(qū)框中。4、實(shí)驗(yàn)結(jié)果 (1)實(shí)驗(yàn)代碼Data segmentBuffer db 1,5,0,5,0,1,0,2,0,8 port_data equ 43aH ;數(shù)據(jù)端口port_status equ 43bH ;狀態(tài)端口s db Output 10 data with demand manner. Press any key to exit.,0dh,0ah,$ ;程序功能提示Data endsCode segment Assume cs:code,ds:data ;建立段寄存器和段名之間關(guān)系,不具有賦值功能Go: mov ax,data Mov ds,ax ;這兩句的作用就是使DS的值為DATA.其中DATA為你定義的數(shù)據(jù)段,它的作用就是把數(shù)據(jù)段寄存器DS的值賦為DATA,就是讓數(shù)據(jù)段指向正確的位置. ;因?yàn)闊o(wú)法直接數(shù)據(jù)從內(nèi)存移到DS,所以需要先把數(shù)據(jù)移到AX寄存器,然后再移到Ds寄存器。 mov dx,offset s ;顯示提示,offset是取偏移地址 mov ah,9 ;調(diào)用DOS功能,顯示ds:dx處地址 int 21h LEA si,buffer ;si寄存器 MOV CX,10 ;將循環(huán)次數(shù)(數(shù)據(jù)塊長(zhǎng)度)送到CXL1: mov ah,0bh int 21h ;檢測(cè)有無(wú)按鍵,返回AL=0FFh(有按鍵)或0(無(wú)按鍵) cmp al,0FFh ;比較指令,得出各個(gè)標(biāo)志位的數(shù)據(jù) jz Exit MOV DX,port_status IN AL,DX ;讀狀態(tài)端口 TEST AL,00000001B ;TEST邏輯與運(yùn)算。如果AL右數(shù)第1位為1,jnz將會(huì)跳轉(zhuǎn)(B表示二進(jìn)制數(shù)) JNZ L1 Mov al,si ;將si所指向地址存儲(chǔ)單元中的數(shù)據(jù)送給al MOV DX,port_data OUT DX,AL ;數(shù)據(jù)輸出 INC si ;si地址加1 LOOP L1 LA: mov ah,0bh int 21h ;檢測(cè)有無(wú)按鍵,返回AL=0FFh(有按鍵)或0(無(wú)按鍵) cmp al,0 jz LAexit: Mov ah,4ch ;結(jié)束當(dāng)前正在執(zhí)行的程序,返回系統(tǒng) Int 21hCode ends End go(2)實(shí)驗(yàn)運(yùn)行結(jié)果5、總結(jié)及心得體會(huì)通過(guò)本次實(shí)驗(yàn)是我第一次接觸匯編語(yǔ)言,第一次運(yùn)用DOS操作臺(tái)。剛開(kāi)始的時(shí)候看匯編代碼是完全看不懂的,然后對(duì)匯編代碼一行一行的去百度查詢(xún)并和同學(xué)討論,對(duì)其中的各種指令、寄存器等都一個(gè)個(gè)去查資料和討論,慢慢對(duì)于匯編代碼有了一定的了解,能看懂這個(gè)程序基本的匯編代碼,也能對(duì)其進(jìn)行一些滿足自己要求的小修改。如out為數(shù)據(jù)輸出函數(shù)。CX為計(jì)數(shù)寄存器,和LOOP語(yǔ)句一起可以實(shí)現(xiàn)代碼的循環(huán),10個(gè)數(shù)的輸出就是這樣實(shí)現(xiàn)的。如JZ和JNZ的不同的判定跳轉(zhuǎn)。又如ax寄存器為累加器,所有的I/O指令都要使用ax與外設(shè)接口傳遞數(shù)據(jù),例bx、cx、dx。還有一些其它的等等。另外對(duì)于DOS操作臺(tái)的編譯、連接操作也能熟練的運(yùn)用。本次實(shí)驗(yàn)雖然相對(duì)后續(xù)實(shí)驗(yàn)比較簡(jiǎn)單,但卻為我后面的實(shí)驗(yàn)打下了很好的基礎(chǔ),在后面的實(shí)驗(yàn)中我也會(huì)努力去學(xué)習(xí)更多的關(guān)于匯編語(yǔ)言的知識(shí)。實(shí)驗(yàn)五 LED顯示實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康囊笳莆?255芯片的工作原理、初始化、編程應(yīng)用。2、實(shí)驗(yàn)原理通過(guò)三個(gè)端口共24位二進(jìn)制數(shù)據(jù)控制LED燈亮滅形成走馬燈。3、實(shí)驗(yàn)內(nèi)容(1)運(yùn)行“LED顯示實(shí)驗(yàn)臺(tái)”。(2)讀懂示例程序led1.asm及l(fā)ed2.asm,以備測(cè)試?yán)蠋熢?xún)問(wèn)。(3)編輯、調(diào)試、運(yùn)行程序,讓相鄰兩個(gè)LED順時(shí)針(學(xué)號(hào)末位奇數(shù)者)或逆時(shí)針(學(xué)號(hào)末位偶數(shù)者)方向旋轉(zhuǎn)亮起來(lái)形成走馬燈。4、實(shí)驗(yàn)結(jié)果 (1)實(shí)驗(yàn)代碼code segment assume cs:code,ds:datago: mov ax,data mov ds,ax mov dx,offset s ;顯示提示 mov ah,9 int 21h mov dx,porta+3 mov al,80h Out dx,al ;三端口均初始化為方式0輸出L0: mov si,24 mov bx,3H ;低16位初始值設(shè)為11(兩個(gè)燈亮) mov cl,0 ;高8位初始值設(shè)為0L1: mov ah,0bH Int 21h ;有無(wú)按鍵 Cmp al,0ffH Jz exit mov dx,porta ;輸出24位數(shù) mov al,bl Out dx,al Inc dx mov al,bh Out dx,al Inc dx mov al,cl Out dx,al Call delay05 ;延時(shí) SHL bx,1 ;低16位左移一位 Rcl cl,1 ;高8位左移一位 dec si jnz L1 Jmp L0 ;重新開(kāi)始Exit: mov ah,4ch Int 21hdelay05 proc near ;循環(huán)延時(shí)子程序 push cx push bx mov cx,0000Hd1: mov bx,1200hd2: dec bx jnz d2 loop d1 pop bx pop cx retdelay05 endpCode ends End go因源代碼中本來(lái)就是逆時(shí)鐘,循環(huán)控制處可不用改,只需將低16位置1改為11是開(kāi)始有兩個(gè)燈亮即可達(dá)到基本效果。(2)實(shí)驗(yàn)運(yùn)行結(jié)果5、總結(jié)及心得體會(huì)通過(guò)本實(shí)驗(yàn)我對(duì)匯編語(yǔ)言有了更進(jìn)一步的了解,對(duì)8255芯片的輸入輸出也有了一定的了解。如ax、bx、cx、dx四個(gè)寄存器都是16位的,分為高8位ah、bh、ch、dh和低8位的al、bl、cl、dl,本實(shí)驗(yàn)就是用bx寄存器的16位和cx寄存器的低8位來(lái)表示24個(gè)燈,用高低電位(即1和0)表示亮和滅。本實(shí)驗(yàn)實(shí)現(xiàn)走馬燈效果用的指令是SHL和RCL,這兩個(gè)指令都用到了CF這樣便將bx和cx兩個(gè)不同寄存器的之間的移位連接了起來(lái),實(shí)現(xiàn)了24個(gè)燈的走馬燈效果。本次實(shí)驗(yàn)中第一次見(jiàn)到延時(shí)子程序,經(jīng)過(guò)查資料和討論也有了一定的了解,通過(guò)dec指令和jnz指令循環(huán)來(lái)控制代碼的執(zhí)行次數(shù)來(lái)控制時(shí)間的多少達(dá)到延時(shí)的目的。在做這個(gè)實(shí)驗(yàn)時(shí)我們嘗試了許多不同地輸出方式,如間隔,高8位和低16位單獨(dú)輸出,一個(gè)逆時(shí)鐘,一個(gè)逆時(shí)鐘,循環(huán)次數(shù)控制只亮部分燈等等。這些雖然不是實(shí)驗(yàn)的要求,但對(duì)我理解led燈的代碼有很大的幫助,多動(dòng)手實(shí)踐才能更好地理解和編寫(xiě)代碼。實(shí)驗(yàn)七 數(shù)碼管顯示實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康囊笳莆?255芯片的工作原理、初始化、編程應(yīng)用。2、實(shí)驗(yàn)原理通過(guò)端口A和端口B的輸出實(shí)現(xiàn)數(shù)字在數(shù)碼管的顯示。3、實(shí)驗(yàn)內(nèi)容修改或自己編寫(xiě)程序?qū)⒆约簩W(xué)號(hào)分三次、間隔1秒顯示出來(lái)。4、實(shí)驗(yàn)結(jié)果 (1)實(shí)驗(yàn)代碼Data segmentPortA equ 404H ;8255的PA口地址 xz db 0f9h,92h,0c0h,92h,0c0h,0f9h,0c0h,0a4h,0c0h,80h s db Display a b c d at the same time. Press any key to exit.,0dh,0ah,$ ;程序功能提示Data endsCode segment assume cs:code,ds:dataStart:mov ax,data mov ds,ax mov dx,offset s ;顯示提示 mov ah,9 int 21h mov dx, PortA+3 mov al,80H out dx,al ;PA、PB口初始化為基本輸出方式 L0:lea si,xz L2:mov ah,08h ;置位選初值,從左邊開(kāi)始顯示 L1:push ax mov al,si ;顯示數(shù)字 mov dx,PortA out dx,al mov al,ah mov dx,PortA+1 out dx,al call de ;延時(shí) mov ah,0bh int 21h ;檢測(cè)有無(wú)按鍵,返回AL=0FFh(有按鍵)或0(無(wú)按鍵) cmp al,0FFh jz Exit inc si ;準(zhǔn)備顯示下一數(shù)字 pop ax shr ah,1 ;選擇下一數(shù)碼管 cmp si,0ah ;判斷是否顯示完10個(gè)學(xué)號(hào) jnz l3 jmp l0 L3: cmp ah,0 ;判斷是否顯示完4位,數(shù)碼管走完一輪 jnz l1 jmp l2 Exit:mov ah,4ch ;結(jié)束程序 int 21h de proc near ;循環(huán)延時(shí)子程序 push cx push mov cx,0000H d1: mov bx,9000h d2: dec bx jnz d2 loop d1 pop bx pop cx ret de endpCode endsend Start上面那個(gè)技巧性高些,但全部顯示不好弄 下面這個(gè)應(yīng)該是無(wú)技術(shù)白癡版本,但顯示好弄Data segmentPortA equ 404H ; 8255的PA口地址 xz db 0f9h,92h,0c0h,92h,0ffh,0ffh,0ffh,0ffh,0c0h,0f9h,0c0h,0a4h,0ffh,0ffh,0ffh,0ffh,0c0h,80h,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;定義09的顯示代碼s db Display 09 . Press any key to exit .,0dh,0ah,$ ;程序功能提示Data endsCode segment assume cs:code,ds:dataStart:mov ax,data mov ds,ax mov dx,offset s ;顯示提示 mov ah,9 int 21h mov dx, PortA+3 mov al,80H out dx,al ;PA、PB口初始化為基本輸出方式 L0:lea si,xz mov ah,08h L1:push ax mov al,si ;顯示數(shù)字 ;mov ah,8h ;置位選初值,四個(gè)數(shù)碼管同時(shí)顯示 mov dx,PortA out dx,al mov al,ah mov dx,PortA+1 out dx,al call de ;延時(shí) mov ah,0bh int 21h ; 檢測(cè)有無(wú)按鍵,返回AL=0FFh(有按鍵)或0(無(wú)按鍵) cmp al,0FFh jz Exit inc si ;準(zhǔn)備顯示下一數(shù)字 pop ax ror ah,1 cmp si,18h ;判斷是否顯示完 jnz l1 jmp l0 Exit:mov ah,4ch ; 結(jié)束程序 int 21h de proc near ; 循環(huán)延時(shí)子程序 push cx push bx mov cx,3000H d1: mov bx,0 d2: dec bx jnz d2 loop d1 pop bx pop cx ret de endpCode ends end Start (2)實(shí)驗(yàn)運(yùn)行結(jié)果 5、總結(jié)及心得體會(huì)通過(guò)本次實(shí)驗(yàn)我對(duì)匯編語(yǔ)言的理解更加深入,基于前幾次實(shí)驗(yàn)的基礎(chǔ),本次實(shí)驗(yàn)看懂不是非常困難,但自己?jiǎn)为?dú)修改代碼做到數(shù)碼管單獨(dú)顯示仍不簡(jiǎn)單。自己探索學(xué)會(huì)了一些基本的循環(huán)、跳轉(zhuǎn)和判斷指令的運(yùn)用,與同學(xué)積極討論,再借助smg3文件里的一些代碼做參考將程序修改成功。本次實(shí)驗(yàn)在兩個(gè)跳轉(zhuǎn)處經(jīng)常會(huì)發(fā)生矛盾,將其中一個(gè)判斷跳轉(zhuǎn)寫(xiě)為L(zhǎng)3: cmp ah,0 ;判斷是否顯示完4位,數(shù)碼管走完一輪 jnz l1 jmp l2作為另一個(gè)的跳轉(zhuǎn)條件才終于將其解決,使程序無(wú)錯(cuò)誤。只有去嘗試并犯錯(cuò)再改正錯(cuò)誤才能使自己取得最大的進(jìn)步和最牢固的記憶。 實(shí)驗(yàn)六 小鍵盤(pán)實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康囊笳莆?255芯片的工作原理、初始化、編程應(yīng)用。2、實(shí)驗(yàn)原理通過(guò)端口A的輸出和端口B的輸入實(shí)現(xiàn)按鍵的判斷。3、實(shí)驗(yàn)內(nèi)容(1)運(yùn)行“LED顯示實(shí)驗(yàn)臺(tái)”。(2)讀懂示例程序key.asm,以備測(cè)試?yán)蠋熢?xún)問(wèn)。(3)借助實(shí)驗(yàn)原理圖,說(shuō)明判斷某鍵被按下的方法。(4)解釋程序怎樣將按鍵操作轉(zhuǎn)換為DOS命令窗口顯示字符的?(5)為什么會(huì)將一個(gè)字符顯示數(shù)百次?(6)能否每次按鍵只顯示一次?(說(shuō)出設(shè)想,不一定編程實(shí)現(xiàn)) 答:(3)當(dāng)鍵被按下時(shí),某個(gè)A端口和B端口就連接起來(lái),用cx和bx兩個(gè)循環(huán)來(lái)一行一行在電路上找到這個(gè)按鍵。(4)通過(guò)disp子程序用xlat指令在table里找按鍵所代表的到偏移的地址,輸出地址里的值,顯示在DOS操作臺(tái)上。(5)因?yàn)榘存I按下去會(huì)有一定的持續(xù)時(shí)間,而cpu讀代碼的速度非???,在這段持續(xù)時(shí)間內(nèi)cpu對(duì)這段代碼運(yùn)行許多次,所以一個(gè)字符顯示數(shù)百次。(6)可以,在代碼讀按鍵后加一個(gè)延時(shí)子程序,讓按鍵在延時(shí)時(shí)間內(nèi)斷開(kāi),使cpu只讀一次代碼,即可只顯示一次字符。4、實(shí)驗(yàn)結(jié)果(1)實(shí)驗(yàn)代碼Data segmentPortA equ 408H ; 8255的PA口地址table db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,41h,42h,43h,44h,45h,46hs db Watch and test the keyboard on experiment platform. Press any key to end.,0dh,0ah,$ ;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《2025關(guān)于合作伙伴合作的合同范本》
- 眼部腫瘤護(hù)理規(guī)范與實(shí)施
- 青少年運(yùn)動(dòng)培訓(xùn)體系構(gòu)建與實(shí)施策略
- 核醫(yī)學(xué)科進(jìn)修成果匯報(bào)
- 水腫程度分級(jí)護(hù)理
- 管理制度現(xiàn)狀分析
- 人教版小學(xué)一年級(jí)語(yǔ)文第四單元試卷
- 預(yù)檢分診管理制度及流程
- 中國(guó)煙草種植區(qū)劃
- 眼瞼梅毒的臨床護(hù)理
- 如何做好醫(yī)患溝通
- 江蘇省南師附中、天一中學(xué)、海門(mén)中學(xué)、海安中學(xué)2022-2023學(xué)年高二下學(xué)期6月四校聯(lián)考化學(xué)試題
- 食品安全責(zé)任保險(xiǎn)課件
- 國(guó)開(kāi)電大《應(yīng)用寫(xiě)作(漢語(yǔ))》形考任務(wù)1-6答案
- 市政道路工程重大危險(xiǎn)源清單
- 兒童腦癱康復(fù)課件
- 施工現(xiàn)場(chǎng)建筑垃圾處置方案
- 固體料倉(cāng) (2.26)設(shè)計(jì)計(jì)算
- DB63-T 2112-2023 餐飲厲行節(jié)約實(shí)施指南
- 四年級(jí)國(guó)測(cè)模擬卷答題卡
- GB/T 29745-2013公共停車(chē)場(chǎng)(庫(kù))信息聯(lián)網(wǎng)通用技術(shù)要求
評(píng)論
0/150
提交評(píng)論