北京郵電大學.微機原理硬件實驗報告_第1頁
北京郵電大學.微機原理硬件實驗報告_第2頁
北京郵電大學.微機原理硬件實驗報告_第3頁
北京郵電大學.微機原理硬件實驗報告_第4頁
北京郵電大學.微機原理硬件實驗報告_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

...wd......wd......wd...微機原理與接口技術(shù)硬件實驗報告學院:信息與通信工程學院班級:201******學生姓名:************學號:201*******201*******班內(nèi)序號:****實驗一熟悉實驗環(huán)境及IO的使用實驗目的:1.通過實驗了解和熟悉實驗臺的構(gòu)造,功能及使用方法。2.通過實驗掌握直接使用Debug的I、O命令來讀寫IO端口。3.學會Debug的使用及編寫匯編程序二、實驗內(nèi)容:1.學習使用Debug命令,并用I、O命令直接對端口進展讀寫操作,2.用匯編語言編寫跑馬燈程序。(使用EDIT編輯工具)實現(xiàn)功能A.通過讀入端口狀態(tài)(ON為低電平),選擇工作模式(燈的閃爍方式、速度等)。B.通過輸出端口控制燈的工作狀態(tài)(低電平燈亮)三、實驗步驟:1.實驗板的IO端口地址為0E8E0H在Debug下,I是讀命令。(即讀輸入端口的狀態(tài)---撥碼開關(guān)的狀態(tài))O是寫命令。(即向端口輸出數(shù)據(jù)---通過發(fā)光管來查看)進入Debug后,讀端口撥動實驗臺上八位撥碼開關(guān)輸入I端口地址回車屏幕顯示 xx 表示從端口讀出的內(nèi)容,即八位開關(guān)的狀態(tài)ON是0,OFF是1寫端口輸入 O 端口地址 xx(xx表示要向端口輸出的內(nèi)容)回車查看實驗臺上的發(fā)光二極管狀態(tài),0是燈亮,1是燈滅。2.在Debug環(huán)境下,用a命令錄入程序,用g命令運行C>Debug-amov dx,端口地址mov al,輸出內(nèi)容out dx,almov ah,0bhint 21hor al,aljz 0100int 20h-g運行查看結(jié)果,修改輸出內(nèi)容再運行查看結(jié)果分析movah,0bhint21hor al,aljz 0100int20h該段程序的作用:檢測鍵盤有沒有按鍵,有則返回DOS。沒有繼續(xù)執(zhí)行3.利用EDIT工具編寫匯編寫跑馬燈程序程序?qū)崿F(xiàn)功能A.通過讀入端口狀態(tài)(ON為低電平),選擇工作模式(燈的閃爍方式、速度等)。B.通過輸出端口控制燈的工作狀態(tài)(低電平燈亮)C>EDIT文件名.asm錄入程序按Alt鍵翻開菜單進展存盤或退出編譯文件C>MASM文件名.asm連接文件C>LINK文件名.obj運行文件或用Debug進展調(diào)試。四、程序流程圖軟件程序流程圖:開場開場檢測撥碼開關(guān)最低位=1中間位=1最高位=1按照速度設定向右運動按照速度設定向左運動完畢YNYNNY硬件連線圖:五、源程序代碼:DATSEGMENTNUMDB0EFHDATENDS;定義數(shù)據(jù)段STASEGMENTSTACK'STACK'DB100DUP(?)STAENDS;定義堆棧段CODSEGMENTASSUMECS:COD,DS:DAT,SS:STASTARTPROCFARPUSHDSMOVAX,0PUSHAX;使用第一種返回DOS的方式MOVAX,DATMOVDS,AXMOVDX,0E8E0H;輸出端口設置LOOP0:INAL,DXMOVAH,ALTESTAL,01HJZGG;最低位為1則程序完畢TESTAL,02H;檢測中間位JZLOOP0;假設輸入端為0則繼續(xù)等待TESTAL,04H;JZRR;跑馬燈向右運動ROLNUM,1;跑馬燈向左運動JMPLOOP2RR:RORNUM,1;原數(shù)據(jù)循環(huán)右移,使得跑馬燈向右跳轉(zhuǎn)LOOP2:ANDAH,1FHMOVCL,AH;設置子程序調(diào)用的次數(shù),間接控制延遲時間MOVCH,0;MOVAL,NUMOUTDXINCCXLOOP1:CALLDELAY;調(diào)用延時子程序LOOPLOOP1JMPLOOP0;返回等待輸入過程GG:RETFSTARTENDP;延時子程序DELAYPROCPUSHCXMOVCX,008FFH;外循環(huán)過程D1:PUSHCXMOVCX,004FFH;內(nèi)循環(huán)過程D2:LOOPD2POPCXLOOPD1POPCXRETDELAYENDP;CODENDSENDSTART六、思考題:通過實驗說明用debug中的a命令錄入實驗中給出的小程序中,有些語句可以不寫出“h〞字符的原因。答:在DEBUG環(huán)境下,地址都是默認以16進制顯示的,所以當語句中的數(shù)據(jù)是地址時,可以不加H,如果輸入的不是地址而是數(shù)據(jù)時,就要加上H以表示為十六進制數(shù)。七、實驗收獲和體會:本次試驗涉及到了計算機對于外部設備的控制的根本過程,我們主要學會假設何在debug環(huán)境下編寫I/O命令對于外部設備進展輸入和輸出。具體而言,利用命令點亮了LED燈,以及讀取了撥碼開關(guān)的狀態(tài)。通過上述讀寫的操作,以及編寫子程序等過程完成了跑馬燈的實現(xiàn)。由于電路板的時鐘信號周期很小,在完成一層循環(huán)時,形成的跑馬燈無法被人眼識別捕捉,呈現(xiàn)出了八個LED燈都亮的狀態(tài),不符合要求。于是我們將循環(huán)延遲的子程序改成了兩層,并且由于輸入端的撥碼開關(guān)一共有三個可以控制跑馬燈的模式,其中一個控制開關(guān),另一個控制方向(可左可右),另一個輔助控制跑馬燈的速度。實際上我們在跑馬燈開啟狀態(tài)下,讀入三個撥碼開關(guān)的狀態(tài)并且將其轉(zhuǎn)化為三位的二進制數(shù),并且將這個二進制數(shù)作為控制延遲子程序的調(diào)用次數(shù),從而實現(xiàn)了兩種方向下七種速度的實現(xiàn)(本應該有八種,但是一種是關(guān)閉狀態(tài))。實現(xiàn)了功能的拓展和創(chuàng)新。我們通過本次實驗,根本學會了匯編語言代碼的編寫,熟悉了DEBUG的工作環(huán)境和調(diào)試過程,并且對于計算機控制外部設備有了更客觀清醒的認識,為今后匯編學習做了更充分的準備。實驗二8255A并行接口應用實驗目的:1.掌握8255A的功能及方式0、1的實現(xiàn)2.熟悉8255A與CPU的接口,以及傳輸數(shù)據(jù)的工作原理及編程方法。3.了解七段數(shù)碼管顯示數(shù)字的原理。4.掌握同時顯示多位數(shù)字的技術(shù)。二、實驗內(nèi)容:在實驗一的根基上學習PIO芯片(8255)編程應用,熟悉平臺的主要內(nèi)容。CS用Y0(E800H)(一)簡要說明:在方式0(輸入/輸出)下,以A口為輸出口,B口為輸出口,A口接六個共陰極數(shù)碼管的八位段碼,高電平點亮數(shù)碼管的某一段,B口接數(shù)碼管的位選(即要使哪個數(shù)碼管亮),高電平選中某一位數(shù)碼管點亮。8255A中A端口地址 E800HB端口地址 E801HC端口地址 E802H控制地址 E803H八段數(shù)碼管的顯示規(guī)律及數(shù)碼管的位選規(guī)律自己查找,可用實驗一中,學過的I、O命令來做。三、程序流程圖:軟件程序流程圖:程序一:靜態(tài)顯示學號82558255初始化開場待顯示字符地址給BX點亮第一個字符熄滅依次點亮后面的字符檢測鍵盤返回DOSYN程序二:動態(tài)顯示hello8255初始化8255初始化從端口讀入數(shù)據(jù),改變速度顯示所需字符鍵盤是否有輸入所需顯示字符的地址加1或者返回最初地址程序完畢,返回DOSNY硬件連線圖:四、源程序代碼:程序一:顯示靜態(tài)學號DATASEGMENTSHOWDB0F4H,21H,0EDH,0F1H,0D9H,0EDH;210350的ASCII碼值COUNTEQU$-SHOWSLDB?DATAENDSSTACKSEGMENTSTACK'STACK' DB100HDUP(?)STACKENDSCODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK;延時子程序----------------------------------------------------DELAYPROC PUSHCX MOVCX,800HDELAY1:PUSHCX;外層循環(huán) MOVCX,400HDELAY2:LOOPDELAY2;內(nèi)層循環(huán) POPCXLOOPDELAY1 POPCX RETDELAYENDP;主程序--------------------------------------------------------START:MOVAX,DATA MOVDS,AXNEXT:MOVCX,COUNT;字母個數(shù) LEABX,SHOW MOVSL,01HAGAIN:MOVAL,80HMOVDX,0E803H OUTDX,AL;設置輸出端口 MOVAL,SL MOVDX,0E801H OUTDX MOVAL,[BX] MOVDX,0E800H OUTDX,AL;數(shù)碼管顯示已經(jīng)保存在數(shù)據(jù)段的數(shù)字 MOVAL,00H MOVDX,0E800H OUTDX,AL;去除原有字符 INCBX;增加BX數(shù)值,顯示下一個數(shù)字 SHLSL,1;Sl左移依次向左選通數(shù)碼管 LOOPAGAIN;循環(huán)此過程 MOVAH,0BH INT21H ORAL JZNEXTOK:MOVAH,4CH INT21HCODEENDSENDSTART程序二:動態(tài)顯示HELLODATASEGMENTMESGDB0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0DATAENDSSTACKSEGMENTSTACK'STACK'DB100DUP(0)STACKENDSCODESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKMAINPROCFARMOVAX,DATAMOVDS,AXMOVES,AXMOVAL,80HMOVDX,0E803HOUTDXLOP6:MOVBX,OFFSETMESGMOVCX,07HLOP5:MOVDX,0E8E0H;從端口讀入數(shù)據(jù)INAL,DXINCALANDAL,07HXORAH,AHMOVDX,AX;DX值設置為外循環(huán)次數(shù)LOPZ:CALLDISP;顯示子程序調(diào)用DECDXJNZLOPZ;顯示當前狀態(tài)直至DX=0INCBX;BX決定哪個數(shù)碼管應被點亮LOOPLOP5;重新設置數(shù)碼管移動速度JMPLOP6;當六種狀態(tài)都完畢后重新開場顯示“HELLO〞過程MAINENDP;顯示子程序-------------------------------------------------------------DISPPROCNEARPUSHCXPUSHDXPUSHAXMOVBP,0044H;控制顯示速度LOPX:XORSI,SIMOVCX,06H;每次記錄六個數(shù)碼管的狀態(tài)MOVDX,0E800H;從外部設備讀入數(shù)據(jù)MOVAH,00000001B;每次顯示一個數(shù)碼管LOP2:MOVAL,MESG[BX+SI]OUTDXMOVAL,AH;決定顯示哪一個數(shù)碼管INCDXOUTDX,AL;控制哪一個LED燈亮DECDXROLAH,1;使得下一個LED燈亮INCSICALLDELAY;調(diào)用延時子程序CALLKEY;檢驗按鍵是否有輸入LOOPLOP2;循環(huán)執(zhí)行LOP2直到所有六個數(shù)碼管都被點亮DECBPJNZLOPX;外層循環(huán),控制顯示時間POPAXPOPDXPOPCXRETDISPENDP;返回DOS子程序---------------------------------------------KEYPROCNEAR;檢測鍵盤輸入PUSHAXMOVAH,0BHINT21HORALJZGOON;沒有鍵盤輸入則跳向GOONMOVAH,4CH;有任意輸入則返回DOSINT21HGOON:POPAXRETKEYENDP;延時子程序--------------------------------------------------DELAYPROCPUSHAXPUSHCXMOVAX,0002H;外層循環(huán)LOPD:MOVCX,0HLOOP$;內(nèi)層循環(huán)DECAXJNZLOPDPOPCXPOPAXRETDELAYENDPCODEENDSENDMAIN五、實驗心得與體會:這次的實驗里我學習了使用8255芯片進展并口接口的應用,先用了I/O命令檢測出了數(shù)碼管的顯示規(guī)律和段選規(guī)律。在實際編寫代碼時,應該時刻都記住實際上數(shù)碼管顯示圖形時,我們看到多個數(shù)碼管的顯示都是逐個選通。應該給數(shù)碼管參加高于24*6Hz的始終使得人眼無法分清數(shù)碼管是被依次點亮。在HELLO的動態(tài)顯示時,這個問題更加復雜,不僅需要在每次顯示時數(shù)碼管被逐個點亮,還需要在每經(jīng)過一個顯示周期,HELLO字符都左移1位,這無法通過二進制數(shù)的左右移位實驗,而需要另外編寫代碼。另外還需要注意就是在實驗中,每次換下一個數(shù)碼管顯示的時候還會顯示之前數(shù)碼管已經(jīng)顯示的字符,需要將原來的顯示清零,才能呈現(xiàn)出所需的左右移動的變化過程。本次過程經(jīng)過屢次調(diào)試,另外還經(jīng)歷了電腦死機、板子失靈、無法返回DOS等問題的干擾。但最終我和組員能夠相互協(xié)作,并且認真分析一些bug出現(xiàn)的原因,并且及時分析修改代碼,使得我們能最終順利完成實驗,收獲頗豐。實驗三8253計數(shù)器/定時器的應用一、實驗目的:學習掌握8253用作定時器的編程原理二、實驗內(nèi)容:完成一個音樂發(fā)生器,通過蜂鳴器放出音樂,并在數(shù)碼管上顯示樂譜。三,電路測試與連接測試:在Debug狀態(tài)下,用“O〞命令測試8353的發(fā)生功能,3組通道工作是否正常。電路連接:8253的CS接譯碼器輸出Y1其地址為E820-E827H8253的OUT接蜂鳴器的BELL端8253的門控信號GATE接+5V8253的CLK端接Q7(32KHz)清零復位電路中的T/C端接地〔或接RESET端〕注意:由于8253計數(shù)速率應小于2MHz,CLK0的輸入信號必須由8MHz經(jīng)393分頻到小于2MHz后使用。393分頻之后,Q0輸出為4MHz,Q1輸出為2MHz……Q7輸出32KHz。編程提示:1.8253控制端口地址為E823H定時器0地址為E820H定時器1地址為E821H定時器2地址為E822H2.定時器可工作在方式3下。四、程序流程圖:軟件程序流程圖:開場開場8255初始化8253A初始化設置數(shù)碼管選通信號調(diào)用音階子程序,并且讀入撥碼開關(guān),蜂鳴器發(fā)聲,數(shù)碼管顯示音階數(shù)字完畢鍵盤有輸入YN硬件連線圖:五、源程序代碼:DATASEGMENTNUMSdw0fffh;數(shù)據(jù)段NUMdw01fffh;NUMLdw02fffh;延時大小DATAENDSSTACKSEGMENTSTACK'STACK' DB100HDUP(?)STACKENDSCODESEGMENT;代碼段 ASSUMECS:CODE,DS:DATA,SS:STACKDELAYPROCFAR;延時子程序 PUSHF PUSHCX MOVCX,NUMLOOP1:PUSHCX MOVCX,NUMLOOP2:LOOPLOOP2 POPCXLOOPLOOP1 POPCX POPF RETFDELAYENDPDELAYSPROCFAR;延時子程序 PUSHF PUSHCX MOVCX,NUMLOOPS1:PUSHCX MOVCX,NUMSLOOPS2:LOOPLOOPS2 POPCXLOOPLOOPS1 POPCX POPF RETFDELAYSENDPDELAYLPROCFAR;延時子程序 PUSHF PUSHCX MOVCX,NUMLOOPL1:PUSHCX MOVCX,NUMLLOOPL2:LOOPLOOPL2 POPCXLOOPLOOPL1 POPCX POPF RETFDELAYLENDPsingdoprocfar;音階do的發(fā)聲及顯示子程序do:movdx,0e8e0h;inal,dx;testal,02h;;teststopornotjzdodelay;;stopmovdx,0E820h;timer0set moval,7Dh;do outdx,al MOVDX,0E800H;ledshow MOVAL,21H;"1" OUTDX CALLDELAY retfdodelay: movdx,0E820h;timer0set moval,00h;do outdx,al movdx,0e800h moval,21h outdx,al jmpdosingdoendpsingreprocfar;音階re的發(fā)聲及顯示子程序re:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzredelay;stopmovdx,0E820h;timer0set moval,6FH;re outdx,al MOVDX,0E800H;ledshow MOVAL,0F4H;"2" OUTDX CALLDELAY retfredelay: movdx,0E820h;timer0set moval,00H;re outdx,al MOVDX,0E800H;ledshow MOVAL,0F4H;"2" OUTDX jmpresingreendpsingmiprocfar;音階mi的發(fā)聲及顯示子程序mi:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzmidelay;stopmovdx,0E820h;timer0set moval,64H;mi outdx,al MOVDX,0E800H;ledshow MOVAL,0F1H;"3" OUTDX CALLDELAY retfmidelay: movdx,0E820h;timer0set moval,00H;mi outdx,al MOVDX,0E800H;ledshow MOVAL,0F1H;"3" OUTDX jmpmisingmiendpsingfaprocfar;音階fa的發(fā)聲及顯示子程序fa:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzfadelay;stopmovdx,0E820h;timer0set moval,5EH;fa outdx,al MOVDX,0E800H;ledshow MOVAL,39H;"4" OUTDX CALLDELAY retffadelay: movdx,0E820h;timer0set moval,00H;fa outdx,al MOVDX,0E800H;ledshow MOVAL,39H;"4" OUTDX jmpfasingfaendpsingsoprocfar;音階so的發(fā)聲及顯示子程序so:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzsodelay;stopmovdx,0E820h;timer0set moval,53h;so outdx,al MOVDX,0E800H;ledshow MOVAL,0D9H;"5" OUTDX CALLDELAY retfsodelay: movdx,0E820h;timer0set moval,00h;so outdx,al MOVDX,0E800H;ledshow MOVAL,0D9H;"5" OUTDX jmpsosingsoendpsinglaprocfar;音階la的發(fā)聲及顯示子程序la:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzradelay;stopmovdx,0E820h;timer0set moval,4BH;la outdx,al MOVDX,0E800H;ledshow MOVAL,0DDH;"6" OUTDX CALLDELAY retfradelay: movdx,0E820h;timer0set moval,00H;la outdx,al MOVDX,0E800H;ledshow MOVAL,0DDH;"6" OUTDX jmplasinglaendpsingtiprocfar;音階ti的發(fā)聲及顯示子程序ti:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzxidelay;stop movdx,0E820h;timer0set moval,43H;ti outdx,al MOVDX,0E800H;ledshow MOVAL,61H;"7" OUTDX CALLDELAY retfxidelay: movdx,0E820h;timer0set moval,00H;ti outdx,al MOVDX,0E800H;ledshow MOVAL,61H;"7" OUTDX jmptisingtiendpsingdo2procfar;音階高音do的發(fā)聲及顯示子程序do2:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzdo2delay;stop movdx,0E820h;timer0set moval,3fH;highdo outdx,al MOVDX,0E800H;ledshow MOVAL,23H;"1." OUTDX CALLDELAY retfdo2delay:movdx,0E820h;timer0set moval,00H;highdo outdx,al MOVDX,0E800H;ledshow MOVAL,23H;"1." OUTDX jmpdo2singdo2endpsingsodprocfar;音階低音so的發(fā)聲及顯示子程序sod:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzsoddelay;stopmovdx,0E820h;timer0set moval,0a4h;so outdx,al MOVDX,0E800H;ledshow MOVAL,0DBH;"5" OUTDX CALLDELAY retfsoddelay: movdx,0E820h;timer0set moval,00h;so outdx,al MOVDX,0E800H;ledshow MOVAL,0D9H;"5" OUTDX jmpsodsingsodendpsingmisprocfar;音階mi的短發(fā)聲及顯示子程序mis:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzmisdelay;stopmovdx,0E820h;timer0set moval,64H;mi outdx,al MOVDX,0E800H;ledshow MOVAL,0F1H;"3" OUTDX CALLDELAYS retfmisdelay: movdx,0E820h;timer0set moval,00H;mi outdx,al MOVDX,0E800H;ledshow MOVAL,0F1H;"3" OUTDX jmpmissingmisendpsingfasprocfar;音階fa的短發(fā)聲及顯示子程序fas:movdx,0e8e0h;inal,dx;testal,02h;teststopornotjzfasdelay;stopmovdx,0E820h;timer0set moval,5EH;fa outdx,al MOVDX,0E800H;ledshow MOVAL,39H;"4" OUTDX CALLDELAYS retffasdelay: movdx,0E820h;timer0set moval,00H;fa outdx,al MOVDX,0E800H;ledshow MOVAL,39H;"4" OUTDX jmpfassingfasendp;主程序--------------------------------------------------------STARTPROCFAR MOVAX,DATA MOVDS,AXini:movdx,0E823h;8253初始化 moval,00010110B;分頻比小于255,mode3,二進制 outdx,al ;8255初始化 MOVDX,0E803H;A、B口均為方式0輸出 MOVAL,80H OUTDX;數(shù)碼管顯示的準備工作 MOVDX,0E801H;設置數(shù)碼管選通信號MOVAL,01H OUTDX MOVDX,0E800H;顯示清零 MOVAL,00H OUTDXcallsingmicallsingmicallsingfacallsingsocallsingsocallsingfacallsingmicallsingrecallsingdo callsingdo callsingre callsingmi callsingmi callsingrecallsingrecalldelay;只延時,呈現(xiàn)長音效果 callsingmi callsingmi callsingfa callsingso callsingso callsingfa callsingmi callsingre callsingdo callsingdo callsingre callsingmi callsingre callsingdo callsingdo calldelay callsingre callsingre callsingmi callsingdo callsingre callsingmis callsingfas callsingmi callsingdo callsingre callsingmis callsingfas callsingmi callsingre callsingdo callsingre callsingsod callsingmi callsingmi callsingfa callsingso callsingso callsingfa callsingmi callsingre callsingdo callsingdo callsingre callsingmi callsingre callsingdocallsingdo movah,0bh;檢測鍵盤緩沖區(qū) int21h ORAL,AL JNZgoon jmpinigoon:MOVDX,0E823H;退出前送出一個控制字,使音樂停頓播放MOVAL,16HOUTDXMOVAH,4CHmovax,4c00h;返回DOS int21h retSTARTENDPCODEENDSENDSTART六、思考題:寫出8253計數(shù)初值、輸入頻率和輸出頻率的關(guān)系。答:輸出頻率=輸入頻率/8253計數(shù)初值七、實驗心得與體會:這次實驗中我們學習使用了8253定時器,8253共有3個工作通道,每個通道有5種工作方式,在程序一開場應該將控制字送入控制存放器以確定工作的通道和方式,在這次實驗里主要是驅(qū)動蜂鳴器所以選擇工作方式2。通過技術(shù)初值,輸入頻率和輸出頻率的關(guān)系計算出每個音符應該給工作通道送的計數(shù)初值,將計數(shù)初值送到工作通道的地址以實現(xiàn)蜂鳴器響。再通過改變不同的計數(shù)初值實現(xiàn)音樂播放。值得一提的是,我們在初步設計時候,沒有考慮到可能有低音,但是由于我們選用了貝多芬的《歡樂頌》,這一旋律中出現(xiàn)了低音so,于是我們利用已有的中音do的頻率是高音do頻率的一半推測低音so是中音so頻率的一半并且嘗試寫進了代碼中,實際運行時證實了我們這么做的正確性。還有就是長短音也有出現(xiàn),只要改變延遲時間即可。還有就是我們在實現(xiàn)時,增加了一個“暫停〞的功能,為使得邏輯上方便編寫代碼,將這一局部的代碼分配給了每個音階的子程序中。在暫停期間,能使得蜂鳴器不發(fā)出聲音,但是數(shù)碼管仍然顯示當前停頓時的音階數(shù)目,在編寫這局部程序時,我們仔細推敲了邏輯過程,并且在調(diào)試時反復修改,最終獲得了成功??傊敬螌嶒炇俏C原理硬件實驗中代碼最多,調(diào)試時間最長的一次,非常遺憾的是沒有能夠完成擴展功能。但是我們通過根本內(nèi)容的實現(xiàn)編程能力已經(jīng)得到了提高,舉一反三的能力也初見端倪。實驗四串行8251A一、實驗目的:1.了解串行通信的一般原理和8251A的工作原理2.初步了解RS232串行口標準及與TTL電路的連接方法;3.學會擴大8251A的方法,并設計實現(xiàn)用8251A進展數(shù)據(jù)傳輸;4.掌握8251A的編程方法。二、實驗內(nèi)容:(一)自收自發(fā):采用查詢方式:將內(nèi)存制定區(qū)域內(nèi)存放的一批數(shù)據(jù)通過8251A的TXD發(fā)送出去,然后從RXD接收回來,并在屏幕上或數(shù)碼管上顯示出來。1.連接線路,即:1.8MHz信號接分頻器74LS393的CLK端(已接好),從74LS393的Q4(250kHz)接8253的CLK;T/C接地或接RESET2.GATE接+5V;3.8253的OUT和8251A的TXC、RXC相連,作為發(fā)送時鐘和接收時鐘;4.8251A的CS和Y2相連,Y2地址為EE40-EE47H;5.8253的CS和Y1相連,Y1地址為EE20-EE27H;6.用導線將TXD和RXD相接,成為自發(fā)自收方式;7.CTS端必須為低電平(實驗臺中已接為低電平),8251A才可想外發(fā)送信號,RTS、DTR、DSR可不用。(但實驗臺中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論