




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 課程設(shè)計報告( 2012- 2013年度第 1 學(xué)期)名 稱:微型計算機原理及應(yīng)用 題 目:用8255A實現(xiàn)四位十進(jìn)制數(shù)簡單計算器院 系:控制與計算機工程學(xué)院班 級:自動化1003班學(xué) 號:1101190302學(xué)生姓名:范 昌指導(dǎo)教師:王震宇 設(shè)計周數(shù):一周成 績: 同 組 人:賈旭 郭歡 劉玉婷日期:2013 年 1 月 5 日 課 課程設(shè)計報告一、 課程設(shè)計的目的與要求課程設(shè)計是培養(yǎng)和鍛煉學(xué)生在學(xué)習(xí)完本門課后綜合應(yīng)用所學(xué)理論知識,解決實際工程設(shè)計和應(yīng)用問題的能力的重要教學(xué)環(huán)節(jié)。它具有動手、動腦和理論聯(lián)系實際的特點,是培養(yǎng)在校工科大學(xué)生理論聯(lián)系實際、敢于動手、善于動手和獨立自主解決設(shè)計實踐
2、中遇到的各種問題能力的一個重要教學(xué)環(huán)節(jié)。通過課程設(shè)計,要求學(xué)生熟悉和掌握微機系統(tǒng)的軟件、硬件設(shè)計的方法、設(shè)計步驟,使學(xué)生得到微機開發(fā)應(yīng)用方面的初步訓(xùn)練。讓學(xué)生獨立或集體討論設(shè)計題目的總體設(shè)計方案、編程、軟件硬件調(diào)試、編寫設(shè)計報告等問題,真正做到理論聯(lián)系實際,提高動手能力和分析問題、解決問題的能力,實現(xiàn)由學(xué)習(xí)知識到應(yīng)用知識的初步過渡。通過本次課程設(shè)計使學(xué)生熟練掌握微機系統(tǒng)與接口擴(kuò)展電路的設(shè)計方法,熟練應(yīng)用8086匯編語言編寫應(yīng)用程序和實際設(shè)計中的硬軟件調(diào)試方法和步驟,熟悉微機系統(tǒng)的硬軟件開發(fā)工具的使用方法。我組根據(jù)微機原理課程所學(xué)相關(guān)知識及實驗教程相關(guān)內(nèi)容,在基于proteus平臺,使用匯編語言
3、,以8086為核心的情況下,配合可編程并行接口器件8255A,LED數(shù)碼管等器件實現(xiàn)可進(jìn)行簡單四位數(shù)加減乘除法功能的十進(jìn)制計算器。在課程設(shè)計實踐中,我們不僅鍛煉了實際動手能力,培養(yǎng)了團(tuán)隊精神和嚴(yán)肅認(rèn)真的工作態(tài)度,更增強了自己在實際的工程設(shè)計中查閱資料,撰寫設(shè)計報告表達(dá)設(shè)計思想和結(jié)果的能力。二、 課程設(shè)計進(jìn)度及任務(wù)分工課設(shè)進(jìn)度:1.選擇課程設(shè)計題目,查閱相關(guān)資料。(全體組員) 2.需求分析及總體設(shè)計。(全體組員)3.軟硬件設(shè)計。(范昌負(fù)責(zé)主程序的框架與整體調(diào)試、LED數(shù)碼顯示部分及硬件構(gòu)架,賈旭負(fù)責(zé)鍵盤管理部分,郭歡、劉玉婷負(fù)責(zé)算法及相關(guān)程序) 4.仿真調(diào)試。(范昌、賈旭) 5.總結(jié)及撰寫設(shè)計報
4、告。(郭歡、劉玉婷) 6.個人總結(jié)(全體組員)三、設(shè)計正文1 需求分析l 操控核心微處理器8086芯片l 可編程并行接口芯片8255Al 可編程定時/計數(shù)器8253Al 對輸入掃描的矩陣鍵盤l 顯示模塊LED數(shù)碼管l 輔助器件如74LS138譯碼器、74LS373等2 總體設(shè)計l 確定鍵盤是否有輸入(使用程序不斷進(jìn)行掃描)l 若有輸入就調(diào)用子程序進(jìn)行判斷,是數(shù)值則進(jìn)行存儲并同時進(jìn)行顯示,是運算符號等就調(diào)用相應(yīng)的子程序進(jìn)行操作l 繼續(xù)掃描鍵盤是否有輸入,從而實現(xiàn)4位十進(jìn)制數(shù)以內(nèi)的加減乘除法或者擴(kuò)展功能運算l 運算完成后將運算的結(jié)果儲存并顯示到LED顯示器上3 硬件設(shè)計見附錄。4 軟件設(shè)計見附錄。
5、四、課程設(shè)計總結(jié)或結(jié)論(1)個人總結(jié) 本次課程設(shè)計我們做的課題是用8255A實現(xiàn)4位十進(jìn)制數(shù)簡易計算器,四人一組,我負(fù)責(zé)主程序的框架與整體調(diào)試、LED數(shù)碼顯示部分及硬件構(gòu)架。對于主程序的框架,是整個計算器的核心,通過與其他組員的商量我們最終確定了我們的主要算法:通過一個4*4鍵盤,輸入數(shù)據(jù),實現(xiàn)加減乘除操作,將輸入的數(shù)據(jù)和運算符分別存儲,接收到“=”時進(jìn)行運算,并將結(jié)果輸出。 看起來簡單的算法,由于涉及到十進(jìn)制和十六進(jìn)制的轉(zhuǎn)換,其中就需要很多中間的轉(zhuǎn)換程序。經(jīng)過反復(fù)修改與查閱資料,我們的程序最終能夠完成部分預(yù)期功能。我還負(fù)責(zé)LED數(shù)碼管顯示部分的程序,四位七段數(shù)碼管的顯示,原理看起來簡單,但是
6、實際操作時卻有各種各樣的毛病,按照原理寫好程序,往往不能達(dá)到預(yù)期效果,數(shù)碼管又是不顯示,有時會顯示亂碼,有時會閃爍,所有這些,都要一步一步調(diào)試,加入合適的延時程序是關(guān)鍵,延時過長、過短都不好。顯示亂碼是程序方面出了問題,經(jīng)過一次次調(diào)試,終于得到了穩(wěn)定的顯示,我對數(shù)碼管的應(yīng)用也更熟練了。由于我之前有接觸過proteus仿真軟件,所以我負(fù)責(zé)硬件的搭建,熟悉使用proteus軟件對我們專業(yè)來說是一項基本技能,通過一次次摸索與百度,我對這個軟件的使用也越來越熟悉,學(xué)會了怎么連總線,怎么仿真,怎么快速連線,以及常用元件的搜索。其中最讓我滿足的是鍵盤的設(shè)計,如果用16個按鈕排列當(dāng)然可以實現(xiàn)我們的要求,但是
7、每次按按鈕有很不方便,所以我在網(wǎng)上查詢資料,學(xué)會了用proteus自身的模型制作自己的元件,上圖左邊是普通矩陣鍵盤,右圖是我利用proteus自身模型制作的的鍵盤,感覺很滿意。整個硬件仿真的搭建,由于對軟件的不熟悉,本身設(shè)計的問題,花了我很長時間,而且重復(fù)連接了很多次,最后我們成功仿真出了我們的計算器。通過本次課程設(shè)計,就我本身來說我學(xué)會了很多東西,無論是軟件上匯編語言程序的編寫與調(diào)試,還是硬件的搭建技巧與相關(guān)軟件的應(yīng)用的能力都得到了很大提高,同時也鍛煉了我的自我學(xué)習(xí)能力與交流合作能力,相關(guān)軟件的學(xué)習(xí)使用,相關(guān)芯片與元件的使用與選擇能力都在一定程度上有了很大進(jìn)步。同時,軟硬件的結(jié)合,也體現(xiàn)了我
8、們自動化專業(yè)的特點。最后,有一點遺憾的就是做好了四位的簡易計算器,我們想進(jìn)一步擴(kuò)展做成八位的計算器,但是難度有所加大,不是想象中的那么簡單,數(shù)碼管顯示部分就花了很大精力去調(diào)試。最后由于時間關(guān)系沒有完成8位計算器的制作。(2)團(tuán)隊總結(jié) 本次課程設(shè)計,我們是四人一組,團(tuán)隊合作的要求就比較高。因為選題的關(guān)系,需要更多的人合作,所以決定四人組隊,各自發(fā)揮特長。 在設(shè)計過程中,我們配合得很好,初期的查閱資料共享,極大地體現(xiàn)了我們?nèi)藬?shù)上的優(yōu)勢。對于整個設(shè)計的交流更讓我們在大方向上走上了正確的道路,少走了很多彎路。我們的課題看起來簡單,其實不然,仔細(xì)分析,涉及的知識面很廣,很考驗我們的基本功和自學(xué)能力。軟件
9、方面的算法由于是大家一起討論后決定的,一般都是可行的,也有很多難點,比如說十進(jìn)制與十六進(jìn)制的轉(zhuǎn)換,數(shù)據(jù)的輸出與存儲等,但是在我們的通力合作下一一解決了我們面臨的很多難題。硬件方面用的是proteus軟件仿真,硬件電路的設(shè)計也是一個難點,但是通過查閱資料與相互交流,我們的電路最終是可行的,雖然之前失敗了好幾次。軟件和硬件的結(jié)合再一次考驗了我們的合作精神,軟件是建立在硬件上的,硬件體現(xiàn)軟件的功能,主要負(fù)責(zé)硬件和組要負(fù)責(zé)軟件的同學(xué)建立了很好的默契,相互學(xué)習(xí),圓滿的完成了任務(wù)。本次課程設(shè)計我們對自己的成果相對比較滿意,在設(shè)計的過程中,大家相互學(xué)習(xí),相互幫助,都收獲很多。但是我們也有很多不足的地方,比如
10、四位的計算器位數(shù)太少,不能進(jìn)行小數(shù)運算等,這些都是對我們能力的極大挑戰(zhàn),為了解決這些問題我們也進(jìn)行了積極探索,設(shè)計了一個八位的簡單計算器,但是由于時間有限,沒能完成設(shè)計。 五、參考文獻(xiàn)1清華大學(xué)TPC2003A實驗指導(dǎo)書,2006版 2新編16/32位微型計算機原理及應(yīng)用,李繼燦主編,清華大學(xué)出版社,2008版,第四版3 陳繼紅.微機原理及應(yīng)用M.北京:高等教育出版社,2011年,276-283頁4 周明德.微型計算機系統(tǒng)原理及應(yīng)用M.北京:清華大學(xué)出版社,2007年附錄一、 軟件設(shè)計掃描計算鍵值數(shù)值?運算符?“=”?“+”?“-”?“*”?除法運算加法運算清零減法運算乘法運算存儲顯示1. 總
11、程序流程圖 2. 掃描程序流程圖開始初始化延時12ms按鍵掃描保存鍵值按鍵閉合按鍵釋放按鍵閉合YYYNNN結(jié)束3. 程序代碼;8255A端口地址:A口:40H,B口:44H,C口:42H,控制端口:46HDATA SEGMENTXDB? , ? , ? , ?;存放數(shù)據(jù)的每一位X1DW ?;存放第一個數(shù)據(jù)值X2DW?;存放第二個數(shù)據(jù)值YDW?;存放運算結(jié)果SDB? ;存放運算符號值EDB? ;按下等號鍵標(biāo)記CC DB? ;存放運算數(shù)據(jù)位數(shù)HDB0 ;存放按鍵行號LDB0 ;存放按鍵列號DISCODEDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7
12、CH,39H,5EH,79H,71H;段碼表DATA ENDSCODE SEGMENTASSUMECS:CODEDS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,90H ;設(shè)置為A口輸入,B口輸出,C口輸出OUT46H,ALMOVDI,OFFSET X+3;DI指向X的高位KKK:CALLKEY ;掃描按鍵JMPKKK;以下為按鍵掃描子程序,程序返回后,在變量H和L中存放當(dāng)前按鍵的行列號KEY PROCCHECK:CALLDISP ;等待按鍵按下的同時進(jìn)行顯示MOVAL,0F0H ;所有行輸出低電平OUT44H,ALINAL,40HCMPAL,0FFH ;讀列值JZ C
13、HECK ;若都為高電平則無鍵按下,等待MOVCX,50LOOP$ ;延時消抖INAL,DX ;重讀列值CMPAL,0FFHJZCHECK ;無鍵按下一直等待MOVH,0 ;有鍵按下,先把行列號變量清0MOVL,0MOVBL,01HMOVBH,0FEH ;掃描法讀鍵值:從第一行開始測試,即PC0輸出低電平NEXT:MOVAL,BHOUT 44H,ALNEXTH:INAL,40H ;讀列值,判斷是第幾列有鍵按下TESTAL,BL ;從第一列開始判斷JZWAIT0ROLBL,1CMPBL,10H ;當(dāng)前行狀態(tài)下沒有列有鍵按下,則轉(zhuǎn)為對下一行的測試JZNEXTLINCH ;每判斷一列,列號加1JMP
14、NEXTH ;再對下一列進(jìn)行判斷NEXTL:MOVH,0MOVBL,01HROLBH,1 ;對下一行測試,讓下一個PC口輸出低電平CMPBH,0EFHJZEXITINCLJMPNEXTWAIT0:INAL,40H ;若有鍵按下,則等該按鍵松開后再計算鍵值CMPAL,0FFHJNZWAIT0MOVCX,50LOOP$ ;延時消抖INAL,40HCMPAL,0FFHJNZWAIT0CALLKEYVALUE ;調(diào)計算鍵值子程序EXIT:RETKEY ENDP;以下為計算鍵值子程序,通過行列號計算鍵值(鍵值=行號*4+列號)鍵值存放在DL寄存器中KEYVALUE PROCMOVDL,LMOVDH,HS
15、HLDL,1SHLDL,1 ;列號乘4ADDDL,DHCMPDL,9 ;按下的是數(shù)字鍵JNGNUM_CALLCMPDL,14JLCONT_CALL ;按下的是運算鍵CMPDL,14JZOUTP_CALL ;按下的是等于鍵CMPDL,15JZCLR_CALL ;按下的是清除鍵NUM_CALL: CALLNUMBER ;調(diào)數(shù)字鍵處理子程序JMPEXIT1CONT_CALL:MOVS,DL ;存放運算鍵的鍵值MOVE,0CALLCOUNT 調(diào)運算鍵處理子程序,計算第一個加數(shù)JMPEXIT1OUTP_CALL:CALLOUTP ;調(diào)等號鍵處理子程序JMPEXIT1CLR_CALL:CALLCLEAR
16、;調(diào)清除鍵處理子程序EXIT1:RETKEYVALUE ENDP;以下為清除鍵處理子程序,按下清除鍵后,X變量全部清0CLEAR PROCMOVX3,0MOVX2,0MOVX1,0MOVX0,0CALLBITPRETCLEAR ENDP;以下為等號鍵處理子程序,該子程序負(fù)責(zé)將第二個運算數(shù)據(jù)的數(shù)值計算出來存入X2變量;并根據(jù)運算符號,調(diào)用相應(yīng)的運算子程序OUTP PROCPUSHAXPUSHDXPUSHBXINCECALLCOUNT ;調(diào)運算鍵處理子程序,計算第二個運算數(shù)據(jù)CMPS,10JZADD_CALL ;運算符為加號,則調(diào)用加法子程序CMPS,11JZSUB_CALL ;運算符為減號,則調(diào)
17、用減法子程序CMPS,12JZMUL_CALL ;運算符為乘號,則調(diào)用乘法子程序CMPS,13CALLDIVP ;運算符為除號,則調(diào)用除法子程序JMPSTORE1ADD_CALL:CALLADDPJMPSTORE1SUB_CALL:CALLSUBPJMPSTORE1MUL_CALL:CALLMULPSTORE1:MOVAX,Y;以下程序?qū)⒏鬟\算子程序返回的運算結(jié)果,按位分解,送入X變量MOVDX,0MOVBX,1000DIVBXMOVX0, ALMOVAX,DXMOVBL,100DIVBLMOVX1,ALMOVAL,AHMOVAH,0MOVBL,10DIVBLMOVX2,ALMOVX3,AHP
18、OPBXPOPDXPOPAXRETOUTP ENDP;以下為運算鍵處理子程序,該程序?qū)⒌谝粋€運算數(shù)據(jù)的數(shù)值計算出來并存入X1變量;或者將第二個運算數(shù)據(jù)的數(shù)值計算出來并存入X2變量;將運算符的值存入S變量COUNT PROCPUSHAXPUSHBXPUSHDXMOVDX,0CALLBITP ;測試X中的數(shù)據(jù)是多少位CMPCC,4 ;輸入的數(shù)據(jù)是4位數(shù) ?JZC4CMPCC,3 ;輸入的數(shù)據(jù)是3位數(shù) ?JZ C3CMPCC,2 ;輸入的數(shù)據(jù)是2位數(shù) ?JZC2JMPC1 ;輸入的數(shù)據(jù)是1位數(shù) ?C4:MOVAX,0MOVAL,X0MOV BX,1000MUL BXMOV DX,AXC3:MOVAL
19、,X1MOV BL,100MUL BLADD DX,AXC2:MOV AL,X2MOVBL,10MULBLADDDX,AXC1:MOVAL,X3MOVAH,0ADDDX,AXCMPE,1JNZX1_SMOVX2,DX ;按下的是等號,則將第二個運算數(shù)據(jù)的值存入X2變量JMPEXIT3X1_S:MOVX1,DX ;按下的是運算符號,則將第一個運算數(shù)據(jù)的值存X1變量MOVX3,0 ;清空X變量MOVX2,0MOVX1,0MOV X0,0EXIT3: POP DXPOPBXPOPAXRETCOUNT ENDP;以下為數(shù)字鍵處理子程序;該程序,將輸入的數(shù)據(jù)按位存放在X變量中,并由CC記錄數(shù)據(jù)的位數(shù)NU
20、MBER PROCCMPE,1JNZCONTINUEMOVE,0CALLCLEARCONTINUE:CMPCC,0 ;目前數(shù)據(jù)為0位,即沒有數(shù)據(jù),則轉(zhuǎn)到SSSJZSSSPUSHAXPUSHDXMOVAL,X3MOVAH,X2MOVDL,X1MOVDH,X0MOV CX,8LL:SHLAX, 1RCLDX,1LOOPLLMOVX3,ALMOVX2,AHMOVX1,DLMOVX0,DHPOPDXPOPAXSSS:MOV DI,DL ;將當(dāng)前鍵入的數(shù)據(jù)存放到X的最低位INCCC ;數(shù)據(jù)位數(shù)加1CMPCC,4 ;判斷數(shù)據(jù)位數(shù)JNGEXIT2MOVCC,0 ;如果數(shù)據(jù)超過4位,重新從最低位開始存放MOV
21、X2,0MOVX1,0MOV X0,0EXIT2: CALL DISP ;調(diào)顯示子程序,顯示輸入的數(shù)據(jù)RETNUMBER ENDP;加法子程序ADDP PROCPUSHAXMOVAX,X1ADDAX,X2MOVY,AXPOPAXRETADDP ENDP;減法子程序SUBP PROCPUSHAXMOVAX,X1SUBAX,X2MOV Y,AXPOP AXRETSUBP ENDP;乘法子程序MULP PROCPUSHAXPUSHDXMOV AX,X1MOVDX,X2MULDXMOVY,AXPOPDXPOPAXRETMULP ENDP;除法子程序DIVP PROCPUSHAXPUSHBXPUSHDX
22、MOVDX,0MOV AX,X1MOVBX,X2DIV BXMOVY,AXPOP DXPOP BXPOP AXRETDIVP ENDP;顯示子程序 ,將X中的數(shù)值按位顯示出來DISP PROCPUSHBXPUSH AXMOVBH,0LEA SI,DISCODECALLBITP ;測試X位數(shù)CMP CC,4JZ QIANCMP CC,3JZ BAICMP CC,2JZ SHICMP CC,1JMP GJMP NONEQIAN:MOVAH,11100000B ;從第4位開始顯示MOVAL,AHOUT 44H,ALMOV BL,X0MOV AL,SI+BXOUT 42H,ALCALL DELYMOV
23、 AL,0OUT 42H,ALBAI:MOVAH,11010000B ;從第3位開始顯示MOV AL,AHOUT44H,ALMOV BL,X1MOV AL,SI+BXOUT 42H,ALCALL DELYMOV AL,0OUT 42H,ALSHI:MOV AH,10110000B ;從第2位開始顯示MOV AL,AHOUT 44H,ALMOV BL,X2MOV AL,SI+BXOUT 42H,ALCALL DELYMOV AL,0OUT 42H,ALG:MOV AH,01110000B ;從第1位開始顯示MOVAL,AHOUT 44H,ALMOV BL,X3MOV AL,SI+BXOUT 42
24、H,ALCALL DELYJMP EXIT4NONE: MOVAL,0 ;X中沒有數(shù)據(jù),不顯示OUT42H,ALEXIT4: POP AXPOP BXRETDISP ENDP;分析數(shù)據(jù)位數(shù)子程序BITP PROCCMP X0,0 ;如果X0不為0,則數(shù)據(jù)為4位數(shù)JNZ FOURBITCMP X1,0 ;如果X1不為0,則數(shù)據(jù)為3位數(shù)JNZ THREEBITCMP X2,0 ;如果X2不為0,則數(shù)據(jù)為2位數(shù)JNZ TOWBITCMP X3,0 ;如果X3不為0,則數(shù)據(jù)為1位數(shù)JNZ ONEBITJMP ZER0BIT ;否則,沒有數(shù)據(jù)FOURBIT:MOVCC,4JMPEXIT5THREEBIT
25、: MOVCC,3JMP EXIT5TOWBIT: MOV CC,2JMP EXIT5ONEBIT: MOV CC,1JMP EXIT5ZER0BIT: MOV CC,0EXIT5: RETBITP ENDP;延時子程序DELY PROCPUSHCXMOV CX,100LOOP $POP CXRETDELY ENDPCODE ENDSEND START二、 硬件設(shè)計1.微處理器8086當(dāng)引腳接高電平時,CPU工作于最小模式。此時,引腳信號2431的含義及其功能如下: (1)INTA/(interrupt acknowledge):可屏蔽中斷響應(yīng)信號,輸出,低電平有效。 CPU通過信號對外設(shè)提出
26、的可屏蔽中斷請求做出響應(yīng)。為低電平時,表示CPU已經(jīng)響應(yīng)外設(shè)的中斷請求,即將執(zhí)行中斷服務(wù)程序。(2)ALE(address lock enable):地址鎖存允許信號,輸出,高電平有效。 CPU利用ALE信號可以把AD15 AD0地址/數(shù)據(jù)、A19/S6A16/S3地址/狀態(tài)線上的地址信息鎖存在地址鎖存器中。 (3)DEN/(data enable):數(shù)據(jù)允許控制信號,輸出,三態(tài),低電平有效。信號用作總線收發(fā)器的選通控制信號。當(dāng)為低電平時,表明CPU進(jìn)行數(shù)據(jù)的讀/寫操作。 (4)DT/(data transmit or receive):數(shù)據(jù)發(fā)送/接收信號,輸出,三態(tài)。 DT/信號用來控制數(shù)據(jù)
27、傳送的方向。DT/為高電平時,CPU發(fā)送數(shù)據(jù)到存儲器或I/O端口;DT/為低電平時,CPU接收來自存儲器或I/O端口的數(shù)據(jù)。(5)IO/M/(memory I/O select):存儲器、I/O端口選擇控制信號。 信號指明當(dāng)前CPU是選擇訪問存儲器還是訪問I/O端口。為高電平時訪問存儲器,表示當(dāng)前要進(jìn)行CPU與存儲器之間的數(shù)據(jù)傳送。為低電平時,訪問I/O端口,表示當(dāng)前要進(jìn)行CPU與I/O端口之間的數(shù)據(jù)傳送。 (6)WR/(write):寫信號,輸出,低電平有效。 信號有效時,表明CPU正在執(zhí)行寫總線周期,同時由信號決定是對存儲器還是對I/O端口執(zhí)行寫操作。(7)HLDA(hold acknow
28、ledge):總線保持響應(yīng)信號,輸出,高電平有效。HLDA是與HOLD配合使用的聯(lián)絡(luò)信號。在HLDA有效期間,HLDA引腳輸出一個高電平有效的響應(yīng)信號,同時總線將處于浮空狀態(tài),CPU讓出對總線的控制權(quán),將其交付給申請使用總線的8237A控制器使用,總線使用完后,會使HOLD信號變?yōu)榈碗娖?,CPU又重新獲得對總線的控制權(quán)。(8)HOLD(bus hold request):總線保持請求信號,輸入,高電平有效。在DMA數(shù)據(jù)傳送方式中,由總線控制器8237A發(fā)出一個高電平有效的總線請求信號,通過HOLD引腳輸入到CPU,請求CPU讓出總線控制權(quán)。 2. 可編程并行接口芯片8255ARESET:復(fù)位輸
29、入線,當(dāng)該輸入端外于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成輸入方式。PA0PA7:端口A 輸入輸出線,一個8 位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個 8 位的數(shù)據(jù)輸入鎖存器。PB0PB7:端口B 輸入輸出線,一個8 位的I/O 鎖存器, 一個 8 位的輸入輸出緩沖器。PC0PC7:端口C 輸入輸出線,一個8 位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個 8 位的數(shù)據(jù)輸入緩沖器。端口C 可以通過工作方式設(shè)定而分成2 個4 位的端口, 每個 4 位的端口包含一個4 位的鎖存器,分別與端口A 和端口B 配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。CS:片選信號線,當(dāng)這個輸入
30、引腳為低電平時,表示芯片被選中,允許8255 與CPU 進(jìn)行通訊。RD:讀信號線,當(dāng)這個輸入引腳為低電平時,允許8255 通過數(shù)據(jù)總線向CPU 發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU 從8255 讀取信息或數(shù)據(jù)。WR:寫入信號,當(dāng)這個輸入引腳為低電平時,允許CPU 將數(shù)據(jù)或控制字寫8255。D0D7:三態(tài)雙向數(shù)據(jù)總線,8255 與CPU 數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8 位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。8255 的讀寫控制:8255 的讀/寫控制邏輯電路接受CPU 發(fā)來的控制口號RD、WR、RESET 和地址信號A1A0。然后根據(jù)命令端口,控制信號的要求
31、,將端口的數(shù)據(jù)讀出選信CPU 或者將CPU送來的數(shù)據(jù)寫入端口,各端口的工作狀態(tài)。通過用輸出指令對8255A 的控制字寄存器編程,寫入設(shè)定工作方式的控制字,可以讓3個數(shù)據(jù)口以不同的方式工作,端口A 可工作于3 種方式的任一種,端口B 只能工作于方式0 和方式1,端口C 除了用于輸入輸出端口外,還能配合A 口和B 口工作,為這兩個端口的輸入輸出操作提供聯(lián)系信號。 3.可編程定時/計數(shù)器8253A8253A的引腳可以分為兩部分:與CPU的接口引腳和與外設(shè)的接口引腳。(1) 與CPU的接口引腳 D0D7:三態(tài)雙向數(shù)據(jù)線,和CPU數(shù)據(jù)總線相連,用于傳輸CPU與8253之間的數(shù)據(jù)信息、控制信息和狀態(tài)信息。CS:片選信息,輸入、低電平有效。A1、A0:用來對8253A片內(nèi)三個計數(shù)通道和控制字寄存器進(jìn)行尋址。RD:讀信號,輸入,低電平有效。WR:寫信號,輸入,低電平有效。(2) 與外設(shè)的接口引腳CLK:時鐘輸入引腳,用于輸入定時脈沖或計數(shù)脈沖信號。計數(shù)器對這個引腳輸入的脈沖進(jìn)行計數(shù)。GATE:門控輸入端。用于外部控制計數(shù)器的啟動計數(shù)和停止計數(shù)的操作。兩個或兩個以上計數(shù)器連用時,可以用此信號來同步,也可用于與外部某信號的同步。OUT:計數(shù)輸出端。不管8253以何種方式工作,當(dāng)計數(shù)器計數(shù)到0時,在
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鉸縫施工方案
- 鋁合金門施工方案
- 管桁架施工方案
- 北京結(jié)構(gòu)加固施工方案
- 白色木飾面隱形門施工方案
- 畢業(yè)簡短發(fā)言稿
- 初三表彰大會發(fā)言稿
- 變電站線桿加固施工方案
- 兩學(xué)一做討論會發(fā)言稿
- 青年教師發(fā)言稿
- 2025年雙方協(xié)商一致自愿離婚協(xié)議書范本
- 眼科與視功能檢查屈光參差課件
- GB/T 6433-2025飼料中粗脂肪的測定
- 2025年湖南司法警官職業(yè)學(xué)院單招職業(yè)傾向性測試題庫學(xué)生專用
- 2025山西國際能源集團(tuán)有限公司所屬企業(yè)社會招聘258人筆試參考題庫附帶答案詳解
- 醫(yī)學(xué)遺傳學(xué)教案-山東大學(xué)醫(yī)學(xué)遺傳學(xué)
- 四川德陽歷年中考語文文言文閱讀試題12篇(含答案與翻譯)(截至2024年)
- 10以內(nèi)加減法口算趣味學(xué)習(xí)500題(可打?。?/a>
- 合唱之美知到智慧樹章節(jié)測試課后答案2024年秋山東航空學(xué)院
- 中國卒中學(xué)會急性缺血性卒中再灌注治療指南+2024解讀
- 海南省澄邁縣2024-2025學(xué)年七年級上學(xué)期期末考試地理試題(含答案)
評論
0/150
提交評論