微機原理課程設計(用8255A實現(xiàn)4位十進制計算器)_第1頁
微機原理課程設計(用8255A實現(xiàn)4位十進制計算器)_第2頁
微機原理課程設計(用8255A實現(xiàn)4位十進制計算器)_第3頁
微機原理課程設計(用8255A實現(xiàn)4位十進制計算器)_第4頁
微機原理課程設計(用8255A實現(xiàn)4位十進制計算器)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 課程設計報告( 2012- 2013年度第 1 學期)名 稱:微型計算機原理及應用 題 目:用8255A實現(xiàn)四位十進制數(shù)簡單計算器院 系:控制與計算機工程學院班 級:自動化1003班學 號:1101190302學生姓名:范 昌指導教師:王震宇 設計周數(shù):一周成 績: 同 組 人:賈旭 郭歡 劉玉婷日期:2013 年 1 月 5 日 課 課程設計報告一、 課程設計的目的與要求課程設計是培養(yǎng)和鍛煉學生在學習完本門課后綜合應用所學理論知識,解決實際工程設計和應用問題的能力的重要教學環(huán)節(jié)。它具有動手、動腦和理論聯(lián)系實際的特點,是培養(yǎng)在校工科大學生理論聯(lián)系實際、敢于動手、善于動手和獨立自主解決設計實踐

2、中遇到的各種問題能力的一個重要教學環(huán)節(jié)。通過課程設計,要求學生熟悉和掌握微機系統(tǒng)的軟件、硬件設計的方法、設計步驟,使學生得到微機開發(fā)應用方面的初步訓練。讓學生獨立或集體討論設計題目的總體設計方案、編程、軟件硬件調(diào)試、編寫設計報告等問題,真正做到理論聯(lián)系實際,提高動手能力和分析問題、解決問題的能力,實現(xiàn)由學習知識到應用知識的初步過渡。通過本次課程設計使學生熟練掌握微機系統(tǒng)與接口擴展電路的設計方法,熟練應用8086匯編語言編寫應用程序和實際設計中的硬軟件調(diào)試方法和步驟,熟悉微機系統(tǒng)的硬軟件開發(fā)工具的使用方法。我組根據(jù)微機原理課程所學相關知識及實驗教程相關內(nèi)容,在基于proteus平臺,使用匯編語言

3、,以8086為核心的情況下,配合可編程并行接口器件8255A,LED數(shù)碼管等器件實現(xiàn)可進行簡單四位數(shù)加減乘除法功能的十進制計算器。在課程設計實踐中,我們不僅鍛煉了實際動手能力,培養(yǎng)了團隊精神和嚴肅認真的工作態(tài)度,更增強了自己在實際的工程設計中查閱資料,撰寫設計報告表達設計思想和結果的能力。二、 課程設計進度及任務分工課設進度:1.選擇課程設計題目,查閱相關資料。(全體組員) 2.需求分析及總體設計。(全體組員)3.軟硬件設計。(范昌負責主程序的框架與整體調(diào)試、LED數(shù)碼顯示部分及硬件構架,賈旭負責鍵盤管理部分,郭歡、劉玉婷負責算法及相關程序) 4.仿真調(diào)試。(范昌、賈旭) 5.總結及撰寫設計報

4、告。(郭歡、劉玉婷) 6.個人總結(全體組員)三、設計正文1 需求分析l 操控核心微處理器8086芯片l 可編程并行接口芯片8255Al 可編程定時/計數(shù)器8253Al 對輸入掃描的矩陣鍵盤l 顯示模塊LED數(shù)碼管l 輔助器件如74LS138譯碼器、74LS373等2 總體設計l 確定鍵盤是否有輸入(使用程序不斷進行掃描)l 若有輸入就調(diào)用子程序進行判斷,是數(shù)值則進行存儲并同時進行顯示,是運算符號等就調(diào)用相應的子程序進行操作l 繼續(xù)掃描鍵盤是否有輸入,從而實現(xiàn)4位十進制數(shù)以內(nèi)的加減乘除法或者擴展功能運算l 運算完成后將運算的結果儲存并顯示到LED顯示器上3 硬件設計見附錄。4 軟件設計見附錄。

5、四、課程設計總結或結論(1)個人總結 本次課程設計我們做的課題是用8255A實現(xiàn)4位十進制數(shù)簡易計算器,四人一組,我負責主程序的框架與整體調(diào)試、LED數(shù)碼顯示部分及硬件構架。對于主程序的框架,是整個計算器的核心,通過與其他組員的商量我們最終確定了我們的主要算法:通過一個4*4鍵盤,輸入數(shù)據(jù),實現(xiàn)加減乘除操作,將輸入的數(shù)據(jù)和運算符分別存儲,接收到“=”時進行運算,并將結果輸出。 看起來簡單的算法,由于涉及到十進制和十六進制的轉換,其中就需要很多中間的轉換程序。經(jīng)過反復修改與查閱資料,我們的程序最終能夠完成部分預期功能。我還負責LED數(shù)碼管顯示部分的程序,四位七段數(shù)碼管的顯示,原理看起來簡單,但是

6、實際操作時卻有各種各樣的毛病,按照原理寫好程序,往往不能達到預期效果,數(shù)碼管又是不顯示,有時會顯示亂碼,有時會閃爍,所有這些,都要一步一步調(diào)試,加入合適的延時程序是關鍵,延時過長、過短都不好。顯示亂碼是程序方面出了問題,經(jīng)過一次次調(diào)試,終于得到了穩(wěn)定的顯示,我對數(shù)碼管的應用也更熟練了。由于我之前有接觸過proteus仿真軟件,所以我負責硬件的搭建,熟悉使用proteus軟件對我們專業(yè)來說是一項基本技能,通過一次次摸索與百度,我對這個軟件的使用也越來越熟悉,學會了怎么連總線,怎么仿真,怎么快速連線,以及常用元件的搜索。其中最讓我滿足的是鍵盤的設計,如果用16個按鈕排列當然可以實現(xiàn)我們的要求,但是

7、每次按按鈕有很不方便,所以我在網(wǎng)上查詢資料,學會了用proteus自身的模型制作自己的元件,上圖左邊是普通矩陣鍵盤,右圖是我利用proteus自身模型制作的的鍵盤,感覺很滿意。整個硬件仿真的搭建,由于對軟件的不熟悉,本身設計的問題,花了我很長時間,而且重復連接了很多次,最后我們成功仿真出了我們的計算器。通過本次課程設計,就我本身來說我學會了很多東西,無論是軟件上匯編語言程序的編寫與調(diào)試,還是硬件的搭建技巧與相關軟件的應用的能力都得到了很大提高,同時也鍛煉了我的自我學習能力與交流合作能力,相關軟件的學習使用,相關芯片與元件的使用與選擇能力都在一定程度上有了很大進步。同時,軟硬件的結合,也體現(xiàn)了我

8、們自動化專業(yè)的特點。最后,有一點遺憾的就是做好了四位的簡易計算器,我們想進一步擴展做成八位的計算器,但是難度有所加大,不是想象中的那么簡單,數(shù)碼管顯示部分就花了很大精力去調(diào)試。最后由于時間關系沒有完成8位計算器的制作。(2)團隊總結 本次課程設計,我們是四人一組,團隊合作的要求就比較高。因為選題的關系,需要更多的人合作,所以決定四人組隊,各自發(fā)揮特長。 在設計過程中,我們配合得很好,初期的查閱資料共享,極大地體現(xiàn)了我們?nèi)藬?shù)上的優(yōu)勢。對于整個設計的交流更讓我們在大方向上走上了正確的道路,少走了很多彎路。我們的課題看起來簡單,其實不然,仔細分析,涉及的知識面很廣,很考驗我們的基本功和自學能力。軟件

9、方面的算法由于是大家一起討論后決定的,一般都是可行的,也有很多難點,比如說十進制與十六進制的轉換,數(shù)據(jù)的輸出與存儲等,但是在我們的通力合作下一一解決了我們面臨的很多難題。硬件方面用的是proteus軟件仿真,硬件電路的設計也是一個難點,但是通過查閱資料與相互交流,我們的電路最終是可行的,雖然之前失敗了好幾次。軟件和硬件的結合再一次考驗了我們的合作精神,軟件是建立在硬件上的,硬件體現(xiàn)軟件的功能,主要負責硬件和組要負責軟件的同學建立了很好的默契,相互學習,圓滿的完成了任務。本次課程設計我們對自己的成果相對比較滿意,在設計的過程中,大家相互學習,相互幫助,都收獲很多。但是我們也有很多不足的地方,比如

10、四位的計算器位數(shù)太少,不能進行小數(shù)運算等,這些都是對我們能力的極大挑戰(zhàn),為了解決這些問題我們也進行了積極探索,設計了一個八位的簡單計算器,但是由于時間有限,沒能完成設計。 五、參考文獻1清華大學TPC2003A實驗指導書,2006版 2新編16/32位微型計算機原理及應用,李繼燦主編,清華大學出版社,2008版,第四版3 陳繼紅.微機原理及應用M.北京:高等教育出版社,2011年,276-283頁4 周明德.微型計算機系統(tǒng)原理及應用M.北京:清華大學出版社,2007年附錄一、 軟件設計掃描計算鍵值數(shù)值?運算符?“=”?“+”?“-”?“*”?除法運算加法運算清零減法運算乘法運算存儲顯示1. 總

11、程序流程圖 2. 掃描程序流程圖開始初始化延時12ms按鍵掃描保存鍵值按鍵閉合按鍵釋放按鍵閉合YYYNNN結束3. 程序代碼;8255A端口地址:A口:40H,B口:44H,C口:42H,控制端口:46HDATA SEGMENTXDB? , ? , ? , ?;存放數(shù)據(jù)的每一位X1DW ?;存放第一個數(shù)據(jù)值X2DW?;存放第二個數(shù)據(jù)值YDW?;存放運算結果SDB? ;存放運算符號值EDB? ;按下等號鍵標記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 ;設置為A口輸入,B口輸出,C口輸出OUT46H,ALMOVDI,OFFSET X+3;DI指向X的高位KKK:CALLKEY ;掃描按鍵JMPKKK;以下為按鍵掃描子程序,程序返回后,在變量H和L中存放當前按鍵的行列號KEY PROCCHECK:CALLDISP ;等待按鍵按下的同時進行顯示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 ;當前行狀態(tài)下沒有列有鍵按下,則轉為對下一行的測試JZNEXTLINCH ;每判斷一列,列號加1JMP

14、NEXTH ;再對下一列進行判斷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;以下為等號鍵處理子程序,該子程序負責將第二個運算數(shù)據(jù)的數(shù)值計算出來存入X2變量;并根據(jù)運算符號,調(diào)用相應的運算子程序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;以下程序將各運算子程序返回的運算結果,按位分解,送入X變量MOVDX,0MOVBX,1000DIVBXMOVX0, ALMOVAX,DXMOVBL,100DIVBLMOVX1,ALMOVAL,AHMOVAH,0MOVBL,10DIVBLMOVX2,ALMOVX3,AHP

18、OPBXPOPDXPOPAXRETOUTP ENDP;以下為運算鍵處理子程序,該程序將第一個運算數(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ù),則轉到SSSJZSSSPUSHAXPUSHDXMOVAL,X3MOVAH,X2MOVDL,X1MOVDH,X0MOV CX,8LL:SHLAX, 1RCLDX,1LOOPLLMOVX3,ALMOVX2,AHMOVX1,DLMOVX0,DHPOPDXPOPAXSSS:MOV DI,DL ;將當前鍵入的數(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二、 硬件設計1.微處理器8086當引腳接高電平時,CPU工作于最小模式。此時,引腳信號2431的含義及其功能如下: (1)INTA/(interrupt acknowledge):可屏蔽中斷響應信號,輸出,低電平有效。 CPU通過信號對外設提出

26、的可屏蔽中斷請求做出響應。為低電平時,表示CPU已經(jīng)響應外設的中斷請求,即將執(zhí)行中斷服務程序。(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ā)器的選通控制信號。當為低電平時,表明CPU進行數(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端口選擇控制信號。 信號指明當前CPU是選擇訪問存儲器還是訪問I/O端口。為高電平時訪問存儲器,表示當前要進行CPU與存儲器之間的數(shù)據(jù)傳送。為低電平時,訪問I/O端口,表示當前要進行CPU與I/O端口之間的數(shù)據(jù)傳送。 (6)WR/(write):寫信號,輸出,低電平有效。 信號有效時,表明CPU正在執(zhí)行寫總線周期,同時由信號決定是對存儲器還是對I/O端口執(zhí)行寫操作。(7)HLDA(hold acknow

28、ledge):總線保持響應信號,輸出,高電平有效。HLDA是與HOLD配合使用的聯(lián)絡信號。在HLDA有效期間,HLDA引腳輸出一個高電平有效的響應信號,同時總線將處于浮空狀態(tài),CPU讓出對總線的控制權,將其交付給申請使用總線的8237A控制器使用,總線使用完后,會使HOLD信號變?yōu)榈碗娖?,CPU又重新獲得對總線的控制權。(8)HOLD(bus hold request):總線保持請求信號,輸入,高電平有效。在DMA數(shù)據(jù)傳送方式中,由總線控制器8237A發(fā)出一個高電平有效的總線請求信號,通過HOLD引腳輸入到CPU,請求CPU讓出總線控制權。 2. 可編程并行接口芯片8255ARESET:復位輸

29、入線,當該輸入端外于高電平時,所有內(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 可以通過工作方式設定而分成2 個4 位的端口, 每個 4 位的端口包含一個4 位的鎖存器,分別與端口A 和端口B 配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。CS:片選信號線,當這個輸入

30、引腳為低電平時,表示芯片被選中,允許8255 與CPU 進行通訊。RD:讀信號線,當這個輸入引腳為低電平時,允許8255 通過數(shù)據(jù)總線向CPU 發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU 從8255 讀取信息或數(shù)據(jù)。WR:寫入信號,當這個輸入引腳為低電平時,允許CPU 將數(shù)據(jù)或控制字寫8255。D0D7:三態(tài)雙向數(shù)據(jù)總線,8255 與CPU 數(shù)據(jù)傳送的通道,當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 的控制字寄存器編程,寫入設定工作方式的控制字,可以讓3個數(shù)據(jù)口以不同的方式工作,端口A 可工作于3 種方式的任一種,端口B 只能工作于方式0 和方式1,端口C 除了用于輸入輸出端口外,還能配合A 口和B 口工作,為這兩個端口的輸入輸出操作提供聯(lián)系信號。 3.可編程定時/計數(shù)器8253A8253A的引腳可以分為兩部分:與CPU的接口引腳和與外設的接口引腳。(1) 與CPU的接口引腳 D0D7:三態(tài)雙向數(shù)據(jù)線,和CPU數(shù)據(jù)總線相連,用于傳輸CPU與8253之間的數(shù)據(jù)信息、控制信息和狀態(tài)信息。CS:片選信息,輸入、低電平有效。A1、A0:用來對8253A片內(nèi)三個計數(shù)通道和控制字寄存器進行尋址。RD:讀信號,輸入,低電平有效。WR:寫信號,輸入,低電平有效。(2) 與外設的接口引腳CLK:時鐘輸入引腳,用于輸入定時脈沖或計數(shù)脈沖信號。計數(shù)器對這個引腳輸入的脈沖進行計數(shù)。GATE:門控輸入端。用于外部控制計數(shù)器的啟動計數(shù)和停止計數(shù)的操作。兩個或兩個以上計數(shù)器連用時,可以用此信號來同步,也可用于與外部某信號的同步。OUT:計數(shù)輸出端。不管8253以何種

溫馨提示

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

最新文檔

評論

0/150

提交評論