版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、鄭州航空工業(yè)管理學(xué)院微機(jī)原理課程設(shè)計(jì)說(shuō)明書(shū) 2013 級(jí) 電氣工程及其自動(dòng)化 專(zhuān)業(yè) 1306971 班級(jí)題 目 判斷某一年是否為閏年 姓 名 李曉孟 學(xué)號(hào) 130697112 指導(dǎo)教師 王義琴 職稱(chēng) 二一三 年 十二月 十二 日11 判斷某一年是否為閏年摘要:微機(jī)原理及接口技術(shù)是一門(mén)應(yīng)用性、綜合性、實(shí)踐性較強(qiáng)的課程,沒(méi)有實(shí)際的有針對(duì)性的設(shè)計(jì)環(huán)節(jié),我們就不能很好的理解和掌握所學(xué)的技術(shù)知識(shí),更缺乏解決實(shí)際問(wèn)題的能力。所以通過(guò)有針對(duì)性的課程設(shè)計(jì),會(huì)使我們學(xué)會(huì)系統(tǒng)地綜合運(yùn)用所學(xué)的理論知識(shí),提高我們?cè)谖C(jī)應(yīng)用方面的開(kāi)發(fā)與設(shè)計(jì)本領(lǐng),系統(tǒng)的掌握微機(jī)硬軟件設(shè)計(jì)方法。通過(guò)設(shè)計(jì)過(guò)程,要求我們熟悉掌握微機(jī)系統(tǒng)的軟件
2、、硬件設(shè)計(jì)的方法、設(shè)計(jì)步驟,使我們得到微機(jī)開(kāi)發(fā)應(yīng)用方面的初步訓(xùn)練。關(guān)鍵詞:緩沖區(qū)、字符轉(zhuǎn)換、判斷閏年1、 判斷某一年是否為閏年的基本原理本設(shè)計(jì)是根據(jù)閏年的計(jì)算方法,利用匯編語(yǔ)言編寫(xiě)的一個(gè)簡(jiǎn)單的判斷閏年的程序。根據(jù)判斷閏年規(guī)則:如果某年能被4整除但不能被100整除或者該年能被400整除,則該年為閏年,否則不是閏年。在本程序運(yùn)行后,只要從鍵盤(pán)輸入年份,通過(guò)程序計(jì)算后,觀察8255A并行接口發(fā)外設(shè)光二極管,亮表示為閏年,不亮表示不是閏年。2、 設(shè)計(jì)方案本設(shè)計(jì)中,我們利用DOS 21H中斷類(lèi)型的10號(hào)鍵盤(pán)功能調(diào)用,將從鍵盤(pán)接收的年份數(shù)值型字符串按字節(jié)存入緩沖區(qū)。將字符串中的每個(gè)字符轉(zhuǎn)換為對(duì)應(yīng)的十進(jìn)制數(shù)
3、值(利用0-9這10個(gè)數(shù)的ASCII碼值比其本身大30H的關(guān)系),通過(guò)判斷某年是否為閏年的表達(dá)式,從8255A并行接口來(lái)控制LED發(fā)光二級(jí)管的亮滅。判斷某年是否為閏年的匯編語(yǔ)言的表達(dá)式為:(AX) MOD 4 EQ 0)AND(AX)MOD 100 NE 0))OR(AX)MOD 400 EQ 0)其中,(AX)中存放的是從鍵盤(pán)輸入的年份值。3、 硬件設(shè)計(jì)本課程設(shè)計(jì)中,設(shè)計(jì)采用的是8086CPU與外設(shè)之間通過(guò)8255A并行接口連接,通過(guò)控制外設(shè)發(fā)光二極管的亮與滅來(lái)判斷用戶(hù)輸入的年份是否為閏年。 8255A的引線結(jié)構(gòu)8255的引線結(jié)構(gòu)如圖2所示。共有40個(gè)引腳,其功能分別如下:D0D7:三態(tài)雙向
4、數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過(guò)它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫(xiě)操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。 RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即RD=0且CS=0時(shí),允許8255通過(guò)數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。CS:芯片選擇信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即CS=0時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊;CS=1時(shí),8255無(wú)法與CPU做數(shù)據(jù)傳輸。PA0PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。 PB0PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器,
5、一個(gè)8位的輸入輸出緩沖器。 PC0PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過(guò)工作方式設(shè)定而分成2個(gè)4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。RESET:復(fù)位輸入線,當(dāng)該輸入端處于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 A1,A0:地址選擇線,用來(lái)選擇8255的PA口,PB口,PC口和控制寄存器。 當(dāng)A1=0,A0=0時(shí),PA口被選擇; 當(dāng)A1=0,A0=1時(shí),PB口被選擇; 當(dāng)A1=1,A0=0時(shí),PC口被選擇; 當(dāng)
6、A1=1,A0=1時(shí),控制寄存器被選擇;在本次課程設(shè)計(jì)當(dāng)中,設(shè)計(jì)采用的是8255A并行接口(即通過(guò)匯編指令)實(shí)現(xiàn)的。而LED的亮與滅是用8255A的A口控制的,工作在方式0,A口和B口均為輸出。端口地址為2A8H2ABH。并行接口是以數(shù)據(jù)的字節(jié)為單位與I/O設(shè)備或被控制對(duì)象之間傳遞信息。CPU和接口之間的數(shù)據(jù)傳送總是并行的,即可以同時(shí)傳遞8位、16位、32位等。8255可編程外圍接口芯片是Intel公司生產(chǎn)的通用并行I/O接口芯片,它具有A、B、C三個(gè)并行接口,用+5V單電源供電,能在以下三種方式下工作:方式0-基本輸入/出方式、方式1-選通輸入/出方式、方式2-雙向選通工作方式。8086與8
7、255A的系統(tǒng)連接圖如圖1所示,8255的內(nèi)部結(jié)構(gòu)及引腳如圖2所示,8255工作方式控制字和C口按位置位/復(fù)位控制字格式如圖3所示。 圖1 8086CPU與8255A的連線圖 圖2 8255的內(nèi)部結(jié)構(gòu)及引腳 76543210控制C口低4位1:輸入0:輸出控制B口8位1:輸入0:輸出方式選擇0:方式01:方式1控制C口高4位0:輸出1:輸入控制A口8位0:輸出1:輸入方式選擇00:方式001:方式11X:方式2 功能控制0:位操作1:方式選擇0XXXD3D2D1D0置位/復(fù)位 0:復(fù)位 1:置置端口C的位選擇 PC0 0 0 0 PC1 0 0 0 PC2 0 0 0 PC3 0 0 0 PC4
8、 0 0 0 PC5 0 0 0 PC6 0 0 0 PC7 0 0 0標(biāo)志位 無(wú)關(guān) 圖3 8255工作方式控制字和C口按位置位/復(fù)位控制字格式4、 軟件設(shè)計(jì) 1. 設(shè)計(jì)方案閏年計(jì)算程序流程圖所示,程序開(kāi)始運(yùn)行以后,首先屏幕輸出提示語(yǔ),提示用戶(hù)輸入一個(gè)年份。用戶(hù)輸入年份后,程序?qū)⑤斎氲淖址D(zhuǎn)換為數(shù)值。設(shè)計(jì)利用乘法的操作,實(shí)現(xiàn)字符之間的10倍數(shù)值轉(zhuǎn)換關(guān)系。將年份字符轉(zhuǎn)換成數(shù)值后,則進(jìn)行是否是閏年的判斷。首先將年份除以4,若不能整除,則判斷為不是閏年,通過(guò)8255A并行接口連接的外設(shè),讓LED不亮,并提示用戶(hù)是否繼續(xù)下一個(gè)年份的判斷,如果用戶(hù)輸入n則表示不需要繼續(xù),程序?qū)⑼顺?,否則繼續(xù)下一個(gè)年份的
9、判斷;若能整除4,則該年份將繼續(xù)除以100,若不能整除,則判斷為是閏年,通過(guò)8255A并行接口連接的外設(shè),讓LED亮,并提示用戶(hù)是否繼續(xù)下一個(gè)年份的判斷,若不需要繼續(xù),程序?qū)⑼顺?,否則繼續(xù)下一個(gè)年份的判斷;若能整除100,則該年份將繼續(xù)除以400,若能整除,則判斷為是閏年,通過(guò)8255A并行接口連接的外設(shè),讓LED亮,并提示用戶(hù)是否繼續(xù)下一個(gè)年份的判斷,若不需要繼續(xù),程序?qū)⑼顺?,否則繼續(xù)下一個(gè)年份的判斷;若不能整除400,則判斷為不是閏年,通過(guò)8255A并行接口連接的外設(shè),讓LED不亮,并提示用戶(hù)是否繼續(xù)下一個(gè)年份的判斷,若不需要繼續(xù),程序?qū)⑼顺觯駝t繼續(xù)下一個(gè)年份的判斷。2. 設(shè)計(jì)流程圖 開(kāi)
10、始 輸入年份年份除以4是否整除 否 是年份除以100 是否整除 否 年份除以400 是是否整除 否 是 不是閏年 是閏年 LED滅 LED亮 3.代碼段定義:代碼段需要定義欲顯示的字符串,且字符串以$作為結(jié)束標(biāo)志,還需定義欲輸入字符串的緩沖區(qū),緩沖區(qū)的第一個(gè)字節(jié)存放能保存的最大字符數(shù),第二個(gè)字節(jié)存放實(shí)際輸入的字符數(shù),用戶(hù)從鍵盤(pán)輸入的字符從第三個(gè)字節(jié)開(kāi)始存放,直到用戶(hù)輸入回車(chē)鍵為止。 本設(shè)計(jì)代碼段定義如下: DATAS SEGMENT MAXLEN DB 5 ACTLEN DB ? YEAR DB 4 DUP(?) YEARALL DW 0 NUM400 DW 400 NUM100 DW 100
11、 NUM4 DW 4 NUMMUL DW 1000,100,10,1 MESSAGE1 DB 'please input the year',13,10,'$' DATAS ENDS4. 8255A初始化:MOV AL,80HMOV DX,2ABHOUT DX,AL5.提示語(yǔ)顯示:利用DOS 21H中斷類(lèi)型09號(hào)鍵盤(pán)功能調(diào)用,在屏幕輸出提示用戶(hù)輸入年份的提示。首先,將要顯示的字符串放在內(nèi)存數(shù)據(jù)區(qū)中,本設(shè)計(jì)提示語(yǔ)顯示程序代碼如下:MOV AH,09H ;輸出MOV DX,OFFSET MESSAGE1INT 21H 6.字符串輸入:利用DOS 21H中斷類(lèi)型的10
12、號(hào)鍵盤(pán)功能調(diào)用,將從鍵盤(pán)接收的表示年份數(shù)值的字符串按字節(jié)存儲(chǔ)緩沖區(qū)。首先,應(yīng)在內(nèi)存中建立一個(gè)輸入緩沖區(qū),如inbuff db 5,?,5 dup(?)。本設(shè)計(jì)字符串輸入程序代碼如下: MOV AH,0AH ;字符串輸入 LEA DX,MAXLEN INT 21H7.數(shù)制轉(zhuǎn)換:利用0-9這10個(gè)數(shù)的ASCII碼值比其本身大30H的關(guān)系,將字符串中的每個(gè)字符轉(zhuǎn)換為對(duì)應(yīng)的十進(jìn)制數(shù)值。本設(shè)計(jì)數(shù)制轉(zhuǎn)換程序代碼如下: MOV CX,4 MOV SI,0 MOV DI,0 MOV YEARALL,0 NEXT: MOV AL,YEARSI SUB AL,30H CBW MUL NUMMULDI ADD YE
13、ARALL,AX INC SI ADD DI,2 LOOP NEXT8.是否為閏年的判斷:利用判斷某年是否為閏年的表達(dá)式,輸出該年是否為閏年的信息。 MOV DX,0 MOV AX,YEARALL DIV NUM4 CMP DX,0 JNZ NOCONTINUE: MOV DX,0 MOV AX,YEARALL DIV NUM100 CMP DX,0 JNZ YES MOV DX,0 MOV AX,YEARALL DIV NUM400 CMP DX,0 JZ YES9.8255A外設(shè)LED控制:利用8255A并行接口,外接LED發(fā)光二極管,通過(guò)8255輸出,在LED接口地址上,讓其在1的時(shí)候亮
14、,在0的時(shí)候滅。YES: MOV AH,1 OUT 2ABH,AL JMP DONE NO: MOV AH,0 OUT 2ABH,AL JMP DONE 10.源程序: DATAS SEGMENT MAXLEN DB 5 ACTLEN DB ? YEAR DB 4 DUP(?) YEARALL DW 0 NUM400 DW 400 NUM100 DW 100 NUM4 DW 4 NUMMUL DW 1000,100,10,1 MESSAGE1 DB 'please input the year',13,10,'$' DATAS ENDS STACKS SEGME
15、NT ;此處輸入堆棧段代碼 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS MAIN PROC FAR START: PUSH DS SUB AX,AX PUSH AX MOV AX,DATAS MOV DS,AX MOV AL,80H ;8255A初始化 MOV DX,2ABH OUT DX,AL POP DX POP AX MOV AH,09H ;輸出 MOV DX,OFFSET MESSAGE1 INT 21H MOV AH,0AH ;字符串輸入 LEA DX,MAXLEN INT 21H MOV CX,4 MOV
16、 SI,0 MOV DI,0 MOV YEARALL,0 NEXT: MOV AL,YEARSI SUB AL,30H CBW MUL NUMMULDI ADD YEARALL,AX INC SI ADD DI,2 LOOP NEXT MOV DX,0 MOV AX,YEARALL DIV NUM4 CMP DX,0 JNZ NO CONTINUE: MOV DX,0 MOV AX,YEARALL DIV NUM100 CMP DX,0 JNZ YES MOV DX,0 MOV AX,YEARALL DIV NUM400 CMP DX,0 JZ YES YES: MOV AL,1 OUT 2A
17、BH,AL ;LED亮 JMP DONE NO: MOV AL,0 OUT 2ABH,AL ;LED滅 JMP DONE DONE: MOV AH,4CH INT 21H MAIN ENDP CODES ENDS END START五、結(jié)論通過(guò)這兩周的微機(jī)原理與接口技術(shù)課程設(shè)計(jì)實(shí)驗(yàn),我對(duì)這學(xué)期微機(jī)原理與接口技術(shù)原理的知識(shí)有了更進(jìn)一步的認(rèn)識(shí),經(jīng)過(guò)這次課程設(shè)計(jì)的學(xué)習(xí),我們才通過(guò)各方面途徑去查取相關(guān)資料,去自學(xué)相關(guān)知識(shí),去一個(gè)個(gè)逐步消解我們學(xué)習(xí)上的盲點(diǎn),使我受益匪淺,收獲頗多,但從中也發(fā)現(xiàn)了自己許多的不足和需要改進(jìn)的地方。首先,就要把握整個(gè)的設(shè)計(jì)的大概的流程,然后再對(duì)每一個(gè)分快進(jìn)行設(shè)計(jì),本次設(shè)計(jì)這一
18、點(diǎn)沒(méi)有做好,在設(shè)計(jì)當(dāng)中做了不少無(wú)用功,其次在設(shè)計(jì)的過(guò)程中,很重要的一點(diǎn)是要熟悉可編程并行通信接口芯片8255的初始化及其端口的使用。通過(guò)本次課程設(shè)計(jì),我的實(shí)際操作能力和設(shè)計(jì)能力都得到了一定的提高,但理論與實(shí)踐之間永遠(yuǎn)是存在著一定差距的,要把理論知識(shí)充分靈活地運(yùn)用于實(shí)踐是需要一定的實(shí)踐經(jīng)驗(yàn)和牢固的理論基礎(chǔ),希望以后能有更多這樣的實(shí)踐的機(jī)會(huì),讓自己不斷完善和進(jìn)步。 六、參考文獻(xiàn)1 余春暄.80x86/Pentium微機(jī)原理及接口技術(shù).北京:機(jī)械工程出版 社,20082 張榮標(biāo).微型計(jì)算機(jī)原理與接口技術(shù).北京:機(jī)械工業(yè)出版社,20083 王爽.匯編語(yǔ)言.北京:清華大學(xué)出版社,20084 楊季文.80x86匯編語(yǔ)言程序設(shè)計(jì)教程.北京:清華大學(xué)出版社,2006 5 李敬兆, 8086/8088和arm核匯編語(yǔ)言程序設(shè)計(jì) 中國(guó)科技大學(xué)出版社, 2008 6 張光長(zhǎng),匯編語(yǔ)言程序設(shè)計(jì):北京大學(xué)出版社,2009.7設(shè)計(jì)總結(jié):兩個(gè)星期的課程設(shè)計(jì)結(jié)束了,在這段時(shí)間里,我們做這個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 7 Happy birthday Section A 1a~Pronunciation 說(shuō)課稿 -2024-2025學(xué)年人教版(2024)七年級(jí)英語(yǔ)上冊(cè)
- 習(xí)作:-讓生活更美好(說(shuō)課稿)-2024-2025學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)上冊(cè)
- 2025年幼兒園大班第一學(xué)期教學(xué)計(jì)劃
- 2025年教師班級(jí)管理計(jì)劃學(xué)校工作計(jì)劃
- 油水分離設(shè)備相關(guān)項(xiàng)目投資計(jì)劃書(shū)
- 2025幼兒園春季安全工作計(jì)劃開(kāi)頭
- 2025年月?tīng)I(yíng)業(yè)員工作計(jì)劃
- 工業(yè)行政后勤工作總結(jié)
- 電子商務(wù)行業(yè)工程師工作總結(jié)
- 電商行業(yè)營(yíng)銷(xiāo)策略培訓(xùn)心得
- 3《歡歡喜喜慶國(guó)慶》說(shuō)課稿-2024-2025學(xué)年道德與法治二年級(jí)上冊(cè)統(tǒng)編版
- 蓄勢(shì)聚能籌遠(yuǎn)略揚(yáng)帆破浪啟新航-在2025年務(wù)虛會(huì)上的講話(huà)提綱
- 學(xué)生寒假心理健康教育心理調(diào)試過(guò)健康寒假課件
- 八年級(jí)地理(下冊(cè)星球版)復(fù)習(xí)提綱
- 山東省濟(jì)南市2023-2024學(xué)年高二上學(xué)期期末考試生物試題 附答案
- DB32T 3292-2017 大跨徑橋梁鋼橋面環(huán)氧瀝青混凝土鋪裝養(yǎng)護(hù)技術(shù)規(guī)程
- GB/T 44819-2024煤層自然發(fā)火標(biāo)志氣體及臨界值確定方法
- 《MATLAB編程及應(yīng)用》全套教學(xué)課件
- 喜歡新老師(教學(xué)設(shè)計(jì))-2024-2025學(xué)年嶺美版(2024)美術(shù)一年級(jí)上冊(cè)
- 《銷(xiāo)售技巧培訓(xùn)》課件
- 抖音本地生活培訓(xùn)
評(píng)論
0/150
提交評(píng)論