微機(jī)原理與匯編語言課程設(shè)計報告_第1頁
微機(jī)原理與匯編語言課程設(shè)計報告_第2頁
微機(jī)原理與匯編語言課程設(shè)計報告_第3頁
微機(jī)原理與匯編語言課程設(shè)計報告_第4頁
微機(jī)原理與匯編語言課程設(shè)計報告_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

精選西北師范大學(xué)計算機(jī)科學(xué)與工程學(xué)院微機(jī)原理與匯編語言課程設(shè)計報告設(shè)計題目: 中斷控制點陣顯示與音樂模塊姓 名:學(xué) 號:專業(yè)班級:系所中心:指導(dǎo)老師:起訖時間:設(shè)計地點:2016年8月20日.精選.精選摘 要使用8086匯編語言,在唐都TD-PITE實驗箱上進(jìn)行硬件連線,在計算機(jī)上采用與該實驗箱配套的軟件進(jìn)行輸入, 觀察實驗結(jié)果。設(shè)計思路是利用在實驗箱上i386內(nèi)集成的兩片8259芯片分別進(jìn)行中斷,通過實驗箱上的兩個脈沖開關(guān)發(fā)送信號到總線上開放的兩個中斷口,送入CPU內(nèi)部的8259中。此時按下脈沖開關(guān)kk1+,第一個中斷發(fā)生,在16*16點陣上循環(huán)滾動顯示“西北師大匯編設(shè)計李泓毅”,若按下kk2+則第二個中斷發(fā)生,執(zhí)行音樂模塊子程序,利用8254芯片開始響應(yīng)預(yù)先編排好的音樂?!娟P(guān)鍵詞】 級聯(lián)中斷;8259芯片;16*16點陣;8254芯片;SPK音樂模塊;脈沖信號.精選目錄摘 要 2第一章 課程設(shè)計 21.1目的和任務(wù) 21.2設(shè)計環(huán)境、設(shè)備與器材 2第二章 設(shè)計內(nèi)容和方案 32.1設(shè)計內(nèi)容 32.2設(shè)計方案 3第三章 課程設(shè)計相關(guān)原理簡述 3第四章 設(shè)計實現(xiàn) 44.1系統(tǒng)設(shè)計框架結(jié)構(gòu) 44.2系統(tǒng)硬件設(shè)計 44.3系統(tǒng)軟件設(shè)計 64.4程序流程圖 64.5核心數(shù)據(jù)結(jié)構(gòu) 84.6關(guān)鍵代碼片段分析 10第五章 設(shè)計驗證 105.1驗證步驟及結(jié)果 105.2數(shù)據(jù)分析 105.3遇到的問題及解決 115.4需要討論的其它問題 115.5結(jié)論 11第六章 設(shè)計總結(jié) 12第七章 本課程教學(xué)建議 13第八章 參考文獻(xiàn) 13第九章 附錄:源代碼 13第一章 課程設(shè)計1.1目的和任務(wù)使用8259芯片進(jìn)行中斷程序設(shè)計,在第一個中斷中響應(yīng)字模顯示模塊,在第二個中斷中響應(yīng)音樂發(fā)聲模塊。.精選1.2設(shè)計環(huán)境、設(shè)備與器材列出本次課程設(shè)計所用到的設(shè)備與器材,包括數(shù)量。設(shè)備:微機(jī)、唐都 TD-PITE實驗箱等。器材:i386芯片(內(nèi)部已集成2片8259芯片)、16*16點陣顯示模塊、SPK音樂發(fā)聲模塊、8254芯片等。設(shè)計環(huán)境:計算機(jī)可正確運(yùn)行 TD-PITE實驗箱配套的軟件,計算機(jī)與實驗箱接口通訊正常。第二章 設(shè)計內(nèi)容和方案2.1設(shè)計內(nèi)容采用8086芯片控制8259中斷,在一號中斷響應(yīng)圖像顯示,在二號中斷中響應(yīng)音樂發(fā)聲。2.2設(shè)計方案利用在實驗箱上 i386內(nèi)集成的兩片8259芯片分別進(jìn)行中斷,通過實驗箱上的兩個脈沖開關(guān)發(fā)送信號到總線上開放的兩個中斷口,送入 CPU內(nèi)部的 8259中。此時按下脈沖開關(guān) kk1+,第一個中斷發(fā)生,在 16*16點陣上循環(huán)滾動顯示“西北師大匯編設(shè)計李泓毅”,若按下 kk2+則第二個中斷發(fā)生,執(zhí)行音樂模塊子程序,開始響應(yīng)預(yù)先編排好的音樂。因為采用了級聯(lián)的中斷,所以在一號中斷上采用 MIR7即主片8259芯片7號口,二號中斷上采用 SIR1即從片8259芯片1號口響應(yīng)中斷。.精選第三章 課程設(shè)計相關(guān)原理簡述按照本設(shè)計需求可將本設(shè)計大致劃分為三大模塊分別設(shè)計。第一模塊即使用 i386內(nèi)集成的兩片8259芯片進(jìn)行級聯(lián)的中斷設(shè)計,使用了實驗箱上開放的 MIR7與SIR1兩個接口。并且利用試驗箱上的兩個脈沖信號開關(guān)進(jìn)行中斷發(fā)生操作。第二模塊則是在 MIR7中斷響應(yīng)時完成圖像顯示功能。 使用了16*16點陣來完成此操作,此點陣由4個8*8點陣構(gòu)成,顯示時采用自下而上滾動顯示的方法,逐行刷新。第三模塊是在SIR1中斷響應(yīng)時完成音樂發(fā)聲功能。使用8254芯片方式3方波發(fā)生器對應(yīng)揚(yáng)聲器達(dá)到響應(yīng)音樂的目的。第四章 設(shè)計實現(xiàn)4.1系統(tǒng)設(shè)計框架結(jié)構(gòu)以8086CPU為主架構(gòu),其中添加兩個由8259芯片控制的中斷,第一個中斷響應(yīng)時實現(xiàn)圖像顯示功能,第二個中斷響應(yīng)時實現(xiàn)音樂發(fā)聲功能。4.2系統(tǒng)硬件設(shè)計中斷模塊硬件設(shè)計:.精選圖像顯示模塊硬件設(shè)計:音樂發(fā)聲模塊硬件設(shè)計:總體硬件連線:.精選4.3系統(tǒng)軟件設(shè)計.精選4.4程序流程圖整體程序流程圖參照上方軟件總體設(shè)計16*16液晶點陣顯示程序流程圖:.精選音樂發(fā)聲模塊流程圖:.精選4.5核心數(shù)據(jù)結(jié)構(gòu)ROW1EQU0600H ;端口定義ROW2EQU0640HCOL1EQU0680HCOL2EQU06C0HIOY3 EQU06C0HMY8254_COUNT0 EQUIOY3+00H ;8254計數(shù)器0端口地址.精選MY8254_COUNT1 EQUIOY3+02H ;8254計數(shù)器1端口地址MY8254_COUNT2 EQUIOY3+04H ;8254計數(shù)器2端口地址MY8254_MODE EQUIOY3+06H ;8254控制寄存器端口地址;初始化主片8259MOVAL,11HOUT20H,AL ;ICW1MOVAL,08HOUT21H,AL ;ICW2MOVAL,04HOUT21H,AL ;ICW3MOVAL,01HOUT21H,AL ;ICW4;初始化從片8259MOVAL,11HOUT0A0H,AL ;ICW1MOVAL,30HOUT0A1H,AL ;ICW2.精選MOVAL,02HOUT0A1H,AL ;ICW3MOVAL,01HOUT0A1H,AL ;ICW4MOVAL,0FDHOUT0A1H,AL ;OCW1=111111014.6關(guān)鍵代碼片段分析MOVAL,20HOUT20H,AL中斷結(jié)束的標(biāo)志,通過在具體操作中放置位置的不同達(dá)到不同的效果第五章 設(shè)計驗證5.1驗證步驟及結(jié)果無論按下哪個中斷都會響應(yīng)具體程序,不會表現(xiàn)出 MIR7優(yōu)先級大于 SIR1優(yōu)先級。在中斷程序進(jìn)行時,如果再次按下中斷則該程序會重新進(jìn)行。5.2數(shù)據(jù)分析優(yōu)先級考量如下:因為軟件流程設(shè)計將兩片 8259初始化都放在了循環(huán)等待程序中,所以每次執(zhí)行中斷后都會進(jìn)行一次初始化,這樣的話實際上是每次對 ICW4中的EOI位.精選置進(jìn)行一次置位,也就是說 8259A只要向CPU發(fā)送了中斷號就會將 ISR中的相應(yīng)位清零,這樣一來實際表現(xiàn)出沒有優(yōu)先級即可以讓兩個中斷相互搶優(yōu)先級。5.3遇到的問題及解決在16*16LED液晶點陣顯示中,對于字模的取法是A51,橫向取模字節(jié)倒序的方式,因為對其刷新方式及ROW1、ROW2、COW1、COW2表示的不理解,出現(xiàn)了反向顯示,中心對稱相反等等問題,現(xiàn)已解決。在中斷控制中,因為對于中斷的理解有誤,在中斷程序中使用了死循環(huán),即LED點陣顯示循環(huán)和音樂循環(huán),導(dǎo)致中斷不能正常進(jìn)行,這是對于中斷結(jié)構(gòu)的不理解,在中斷程序中不能有死循環(huán),現(xiàn)已解決。5.4需要討論的其它問題重點還是在于對于硬件設(shè)備的理解不夠,通過實驗時遇到具體問題去查資料到完成報告時,通過對問題的分析再一次詳盡的閱讀資料才對 8259芯片的運(yùn)作方式有了進(jìn)一步的了解。5.5結(jié)論因為軟件流程設(shè)計將兩片 8259初始化都放在了循環(huán)等待程序中,所以每次執(zhí)行中斷后都會進(jìn)行一次初始化,這樣的話實際上是每次對 ICW4中的EOI位置進(jìn)行一次置位,也就是說 8259A只要向CPU發(fā)送了中斷號就會將 ISR中的相應(yīng)位清零,這樣一來實際表現(xiàn)出沒有優(yōu)先級即可以讓兩個中斷相互搶優(yōu)先級。.精選第六章 設(shè)計總結(jié)從本次設(shè)計中我體會到了計算機(jī)科學(xué)的精確性,尤其是由于我使用了匯編語言,這就使得必須對于硬件本身的運(yùn)作方式有一定的了解。從剛開始實驗時對于8259芯片模糊的概念,到遇到問題時查詢資料,再到設(shè)計完成時可以說對于8259的架構(gòu)都不能說完全了解。最后到現(xiàn)在完成設(shè)計報告時又一次的閱讀8259的運(yùn)作方式才算是對這一個芯片有淺薄的了解。可以肯定的是匯編語言絕對是相對于其他,例如c語言之類語言而言,最適宜了解計算機(jī)的語言。因為想要達(dá)到最終設(shè)計目標(biāo)你就必須去了解硬件的運(yùn)作方式,一步一步都必須有所了解。否則即使作出了相應(yīng)結(jié)果也無法從科學(xué)的角度進(jìn)行精準(zhǔn)的解釋。但是也必須承認(rèn)硬件架構(gòu)是最麻煩最精準(zhǔn)最不好學(xué),當(dāng)然也是最不可思議的設(shè)計。通過學(xué)習(xí)幾十年前的硬件工程師設(shè)計出的芯片可以說窺一斑而知全豹,可以說無比佩服那些工程師精妙而萬無一失的設(shè)計。尤其是基于現(xiàn)在去看幾十年前的技術(shù),會有無數(shù)資料還有網(wǎng)上很多有識之士的講解,都可以說很難學(xué)習(xí),可以想見真正前沿的沒有多少資料的研究和學(xué)習(xí)是無比困難的??偠灾?,要說體會的話就是計算機(jī)是一個精妙的設(shè)計,想要真的搞懂就得踏踏實實一點一點學(xué)習(xí),但是這個東西經(jīng)過這么多年的發(fā)展可以說太繁瑣太復(fù)雜,又容不得一點模糊,實在是很難。.精選第七章 本課程教學(xué)建議以后的話希望督促大家抓緊時間吧,前幾周大家都會因為覺得還有時間而浪費(fèi)大量寶貴的時間,到最后才覺得時間緊張,當(dāng)然這是人性了。不能說真的改變,可以從要求前多少周必須拿出例如整體設(shè)計中一小部分的成果或者模塊設(shè)計之類來讓前幾周的課程不至于過得渾渾噩噩。第八章 參考文獻(xiàn)1.唐都儀器,唐都儀器微機(jī)原理接口實驗指導(dǎo)2.何小海.微機(jī)原理與接口技術(shù):科學(xué)出版社, 2006:302-3153.8259A中斷控制器,百度百科, http://baike.baidu../link?url=bGP-QGFNyp3ak2rDcy5vqdPXQ0QojtBGtH2HVsqlNsWDSBH_78COklwsAgDV4sOWUUECj_sQMgBx7GOmigJ9-zd-ktsKVdpgBLV6QCrhcQHNvKdzWYdbAhgUACuelLw1第九章 附錄:源代碼;=========================================================.精選;文件名:A82593.ASM;功能描述:8259級聯(lián)中斷實驗,中斷源為主片 8259的IR7,; 從片8259的IR1。從片8259通過主片8259的IR2; 進(jìn)行級聯(lián)。; 主片每產(chǎn)生一次中斷進(jìn)行 16*16LED液晶點陣顯示,從片;每產(chǎn)生一次中斷輸出進(jìn)行音樂發(fā)聲模塊響應(yīng)。;=========================================================ROW1 EQU0600H ;端口定義ROW2 EQU0640HCOL1EQU0680HCOL2EQU06C0HIOY3 EQU06C0HMY8254_COUNT0EQUIOY3+00H;8254計數(shù)器0端口地址MY8254_COUNT1EQUIOY3+02H;8254計數(shù)器1端口地址MY8254_COUNT2EQUIOY3+04H;8254計數(shù)器2端口地址MY8254_MODEEQUIOY3+06H;8254控制寄存器端口地址SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDS.精選;定義為數(shù)據(jù)段INCLUDEDATA.ASM ;數(shù)據(jù)字段為漢字點陣庫和音樂文件,在DATA.ASM;文件中CODE SEGMENTASSUMECS:CODESTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7 ;取中斷入口地址MOVSI,003CH ;中斷矢量地址MOV[SI],AX ;填I(lǐng)RQ7的偏移矢量MOVAX,CS ;段地址MOVSI,003EHMOV[SI],AX ;填I(lǐng)RQ7的段地址矢量MOVAX,OFFSETSIR1MOVSI,00C4HMOV[SI],AX.精選MOVAX,CSMOVSI,00C6HMOV[SI],AXCLIPOPDS;初始化主片8259MOVAL,11HOUT20H,AL ;ICW1MOVAL,08HOUT21H,AL ;ICW2MOVAL,04HOUT21H,AL ;ICW3MOVAL,01HOUT21H,AL ;ICW4;初始化從片8259MOVAL,11HOUT0A0H,AL ;ICW1MOVAL,30HOUT0A1H,AL ;ICW2MOVAL,02HOUT0A1H,AL ;ICW3.精選MOVAL,01HOUT0A1H,AL ;ICW4MOVAL,0FDHOUT0A1H,AL ;OCW1=11111101MOVAL,6BHOUT21H,AL ;主8259OCW1STIAA1:NOPJMPAA1JMPAA1;******************************MIR7:STIPUSHDSCALLDELAYMOVAX,DATAMOVDS,AXMOVDX,ROW1MOVAL,00H.精選OUTDX,ALMOVDX,ROW2OUTDX,ALMOVAL,0ffHMOVDX,COL1OUTDX,ALMOVDX,COL2OUTDX,ALBG0:MOVAX,160MOVSI,OFFSETHZDOThtBG1:CALLDISPADDSI,2DECAXMOVAL,20HOUT20H,ALJZBG0JMPBG1MOVAL,20HOUT20H,AL ;中斷結(jié)束命令.精選STIPOPDSIRET;*******************************SIR1:STIPUSHDSCALLDELAYMOVAX,DATAMOVDS,AXMOVDX,MY8254_MODE ;初始化8254工作方式MOVAL,36H ;定時器0、方式3OUTDX,ALBEGIN: MOVSI,OFFSETFREQ_LIST ;裝入頻率表起始地址MOVDI,OFFSETTIME_LIST ;裝入時間表起始地址PLAY:MOVDX,0FH ;輸入時鐘為1MHz,1M=0F4240H.精選MOVAX,4240HDIVWORDPTR[SI] ;取出頻率值計算計數(shù)初值,0F4240H/ 輸出頻率MOVDX,MY8254_COUNT0OUTDX,AL ;裝入計數(shù)初值MOVAL,AHOUTDX,ALMOVDL,[DI] ;取出演奏相對時間,調(diào)用延時子程序CALLDALLYADDSI,2INCDI;CMPWORDPTR[SI],0 ;判斷是否到曲末?MOVAL,20HOUT0A0H,ALOUT20H,ALJZBEGINJMP PLAY.精選STIPOPDSIRETDALLY PROC ;延時子程序D0: MOVCX,0010HD1: MOVAX,0FF0HD2: DECAXJNZD2LOOPD1DECDLJNZD0RETDALLY ENDPDELAY:PUSHCXMOVCX,0F000HAA0:PUSHAXPOP AX.精選LOOPAA0POPCXRET;======顯示漢字子程序======;入口參數(shù):SI=存放漢字起始地址DISP:MOVCX,000FHPUSHAXML0:PUSHCXMOVBL,01HMOVCX,0008HML1:MOVDX,ROW1;控制0--7行MOVAL,00HOUTDX,ALMOVAL,[SI]notalMOVDX,COL1;0--7列OUTDX,ALINCSIMOVAL,[SI]notalMOVDX,COL2;8--15列.精選OUTDX,ALINCSIMOVDX,ROW1 ;控制0--7行MOVAL,BLOUTDX,ALROLBL,1CALLDELAY16LOOPML1MOVDX,ROW1MOVAL,00HOUTDX,ALMOVCX,0008HML2:MOVDX,ROW2 ;控制8--15行MOVAL,00HOUTDX,ALMOVAL,[SI]notalMOVDX,COL1 ;0--7列OUTDX,ALINCSIMOVAL,[SI].精選notalMOVDX,COL2 ;8--15列OUTDX,ALINCSIMOVDX,ROW2 ;控制8--15行MOVAL,BLOUTDX,ALROLBL,1CALLDELAY16LOOPML2MOVDX,ROW2MOVAL,00HOUTDX,ALSUBSI,32POPCXLOOPML0POPAXRETDELAY16: PUSHCX ;延時子程序MOVCX,0100HDL1:PUSHAX.精選POPAXLOOPDL1POPCXRETCODE ENDSEND START以下是DATA.ASM即數(shù)據(jù)段;本文件為16×16點陣中文字庫文件,字的橫向8點構(gòu)成一字節(jié),;左邊點在字節(jié)的低位,字符點陣四角按左上角→右上角→左下;角→右下角取字DATA SEGMENT;西HZDOThtDB000H,000H,0FFH,07FH,0FFH,07FH,060H,003HDB060H,003H,0FEH,03FH,0FEH,03FH,066H,033HDB066H,033H,036H,03FH,01EH,03EH,006H,030HDB0FEH,03FH,0FEH,03FH,006H,030H,000H,000H;北.精選DB 20H,02H,20H,02H,20H,02H,20H,22HDB 20H,72H,3EH,1AH,20H,06H,20H,02HDB 20H,02H,20H,02H,30H,02H,2CH,42HDB 27H,42H,22H,42H,20H,7CH,00H,00H;師DB 10H,00H,0D0H,7FH,12H,04H,12H,04HDB 0D2H,7FH,52H,44H,52H,44H,52H,44HDB 52H,44H,4AH,44H,4AH,54H,48H,24HDB 04H,04H,02H,04H,01H,04H,00H,04H;大DB 80H,00H,80H,00H,80H,00H,80H,00HDB 80H,00H,0FFH,7FH,80H,00H,40H,01HDB 40H,01H,40H,02H,20H,02H,20H,04HDB 10H,08H,08H,18H,04H,70H,02H,20H;匯DB 04H,00H,0C8H,3FH,48H,00H,40H,00HDB 42H,00H,54H,00H,54H,00H,50H,00HDB 48H,00H,48H,00H,4EH,00H,48H,00HDB 48H,00H,48H,00H,0C8H,7FH,08H,00H.精選;編DB 08H,01H,18H,02H,0C4H,3FH,44H,20HDB 52H,20H,0DFH,3FH,48H,00H,0C4H,3FHDB 0DEH,2AH,0C0H,2AH,0A0H,3FH,0ACH,2AHDB 0A3H,2AH,90H,2AH,88H,30H,00H,00H;設(shè)DB 02H,00H,84H,0FH,8CH,08H,84H,08HDB 80H,08H,80H,08H,47H,70H,0A4H,1FHDB 84H,10H,84H,10H,04H,09H,04H,09HDB 14H,06H,0CH,09H,0C4H,70H,30H,20H;計DB 02H,04H,04H,04H,0CH,04H,04H,04HDB 00H,04H,0CFH,7FH,08H,04H,08H,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論