




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄一前言………………1二總體設(shè)計(jì)………………………2三硬件設(shè)計(jì)………………………2 3.1微處理器8086芯片…………23.2可編程并行接口芯片8255A………………3 3.3LED數(shù)碼管…………………4 3.44×4矩陣按鍵………………4 3.5硬件原理圖…………………6四軟件設(shè)計(jì)………………………7 4.1程序流程圖…………………7 4.2源代碼………………………9五仿真…………18六課程設(shè)計(jì)體會(huì)………………18七參考文獻(xiàn)……………………19一前言1.1課程設(shè)計(jì)的目的和任務(wù)課程設(shè)計(jì)是培養(yǎng)和鍛煉學(xué)生在學(xué)習(xí)完本門課后綜合應(yīng)用所學(xué)理論知識,解決實(shí)際工程設(shè)計(jì)和應(yīng)用問題的能力的重要教學(xué)環(huán)節(jié)。它具有動(dòng)手、動(dòng)腦和理論聯(lián)系實(shí)際的特點(diǎn),是培養(yǎng)在校工科大學(xué)生理論聯(lián)系實(shí)際、敢于動(dòng)手、善于動(dòng)手和獨(dú)立自主解決設(shè)計(jì)實(shí)踐中遇到的各種問題能力的一個(gè)重要教學(xué)環(huán)節(jié)。通過課程設(shè)計(jì),要求學(xué)生熟悉和掌握微機(jī)系統(tǒng)的軟件、硬件設(shè)計(jì)的方法、設(shè)計(jì)步驟,使學(xué)生得到微機(jī)開發(fā)應(yīng)用方面的初步訓(xùn)練。讓學(xué)生獨(dú)立或集體討論設(shè)計(jì)題目的總體設(shè)計(jì)方案、編程、軟件硬件調(diào)試、編寫設(shè)計(jì)報(bào)告等問題,真正做到理論聯(lián)系實(shí)際,提高動(dòng)手能力和分析問題、解決問題的能力,實(shí)現(xiàn)由學(xué)習(xí)知識到應(yīng)用知識的初步過渡。通過本次課程設(shè)計(jì)使學(xué)生熟練掌握微機(jī)系統(tǒng)與接口擴(kuò)展電路的設(shè)計(jì)方法,熟練應(yīng)用8086匯編語言編寫應(yīng)用程序和實(shí)際設(shè)計(jì)中的硬軟件調(diào)試方法和步驟,熟悉微機(jī)系統(tǒng)的硬軟件開發(fā)工具的使用方法。通過課程設(shè)計(jì)實(shí)踐,不僅要培養(yǎng)學(xué)生事實(shí)求是和嚴(yán)肅認(rèn)真的工作態(tài)度,培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力,檢驗(yàn)學(xué)生對本門課學(xué)習(xí)的情況,更要培養(yǎng)學(xué)生在實(shí)際的工程設(shè)計(jì)中查閱資料,撰寫設(shè)計(jì)報(bào)告表達(dá)設(shè)計(jì)思想和結(jié)果的能力。1.2課程設(shè)計(jì)指導(dǎo)及要求在課程設(shè)計(jì)時(shí),2~3名同學(xué)組成1個(gè)設(shè)計(jì)小組,分別完成項(xiàng)目的功能設(shè)計(jì)、電路編輯及調(diào)試、編碼及調(diào)試和課程設(shè)計(jì)報(bào)告編寫工作。同批次同學(xué)中選擇同一題的不超過3組。在教師指導(dǎo)下,可以相互討論。每設(shè)計(jì)小組提交1份設(shè)計(jì)報(bào)告,設(shè)計(jì)報(bào)告由設(shè)計(jì)小組同學(xué)獨(dú)立完成,不得互相抄襲。教師的主導(dǎo)作用主要在于指明設(shè)計(jì)思路,啟發(fā)學(xué)生獨(dú)立設(shè)計(jì)的思路,解答疑難問題和按設(shè)計(jì)進(jìn)度進(jìn)行階段審查。學(xué)生必須發(fā)揮自身學(xué)習(xí)的主動(dòng)性和能動(dòng)性,主動(dòng)思考問題、分析問題和解決問題,而不應(yīng)處處被動(dòng)地依賴指導(dǎo)老師。同學(xué)應(yīng)積極主動(dòng)的提出問題、解決問題、討論問題,互相幫助和啟發(fā)。學(xué)生在設(shè)計(jì)中可以引用所需的參考資料,避免重復(fù)工作,加快設(shè)計(jì)進(jìn)程,但必須和題目的要求相符合,保證設(shè)計(jì)的正確。指導(dǎo)教師要引導(dǎo)學(xué)生學(xué)會(huì)掌握和使用各種已有的技術(shù)資料,不能盲目地、機(jī)械地抄襲資料,必須具體分析,使設(shè)計(jì)質(zhì)量和設(shè)計(jì)能力都獲得提高。學(xué)生要在老師的指導(dǎo)下制定好自己各環(huán)節(jié)的詳細(xì)設(shè)計(jì)進(jìn)程計(jì)劃,按給定的時(shí)間計(jì)劃保質(zhì)保量的完成個(gè)階段的設(shè)計(jì)任務(wù)。設(shè)計(jì)中可邊設(shè)計(jì),邊修改,軟件設(shè)計(jì)與硬件設(shè)計(jì)可交替進(jìn)行,問題答疑與調(diào)試和方案修改相結(jié)合,提高設(shè)計(jì)的效率,保證按時(shí)完成設(shè)計(jì)工作并交出合格的設(shè)計(jì)報(bào)告。二總體設(shè)計(jì)設(shè)計(jì)思路:首先利用程序不斷掃描鍵盤是不是有輸入,如果沒有就一直掃描,如果有就調(diào)用子程序進(jìn)行判斷,是數(shù)值則進(jìn)行存儲(chǔ)并同時(shí)進(jìn)行顯示,是運(yùn)算符號等就調(diào)用相應(yīng)的子程序進(jìn)行操作,操作后則繼續(xù)利用程序不斷掃描鍵盤是不是有輸入,從而實(shí)現(xiàn)4位十進(jìn)制數(shù)以內(nèi)的加減乘除法運(yùn)算。運(yùn)算完成后將運(yùn)算的結(jié)果儲(chǔ)存并顯示到LED顯示器上。三硬件設(shè)計(jì)3.1微處理器8086芯片當(dāng)引腳接高電平時(shí),CPU工作于最小模式。此時(shí),引腳信號24~31的含義及其功能如下:(1)IO/M/(memoryI/Oselect):存儲(chǔ)器、I/O端口選擇控制信號。信號指明當(dāng)前CPU是選擇訪問存儲(chǔ)器還是訪問I/O端口。為高電平時(shí)訪問存儲(chǔ)器,表示當(dāng)前要進(jìn)行CPU與存儲(chǔ)器之間的數(shù)據(jù)傳送。為低電平時(shí),訪問I/O端口,表示當(dāng)前要進(jìn)行CPU與I/O端口之間的數(shù)據(jù)傳送。(2)WR/(write):寫信號,輸出,低電平有效。信號有效時(shí),表明CPU正在執(zhí)行寫HYPERLINK\t"_blank"總線周期,同時(shí)由信號決定是對存儲(chǔ)器還是對I/O端口執(zhí)行寫操作。(3)INTA/(interruptacknowledge):可屏蔽中斷響應(yīng)信號,輸出,低電平有效。CPU通過信號對外設(shè)提出的可屏蔽中斷請求做出響應(yīng)。為低電平時(shí),表示CPU已經(jīng)響應(yīng)外設(shè)的中斷請求,即將執(zhí)行HYPERLINK\t"_blank"中斷服務(wù)程序。(4)ALE(addresslockenable):地址鎖存允許信號,輸出,高電平有效。CPU利用ALE信號可以把AD15~AD0地址/數(shù)據(jù)、A19/S6~A16/S3地址/狀態(tài)線上的地址信息鎖存在HYPERLINK\t"_blank"地址鎖存器中。(5)DT/(datatransmitorreceive):數(shù)據(jù)發(fā)送/接收信號,輸出,三態(tài)。DT/信號用來控制數(shù)據(jù)傳送的方向。DT/為高電平時(shí),CPU發(fā)送數(shù)據(jù)到存儲(chǔ)器或I/O端口;DT/為低電平時(shí),CPU接收來自存儲(chǔ)器或I/O端口的數(shù)據(jù)。(6)DEN/(dataenable):數(shù)據(jù)允許控制信號,輸出,三態(tài),低電平有效。信號用作總線收發(fā)器的選通控制信號。當(dāng)為低電平時(shí),表明CPU進(jìn)行數(shù)據(jù)的讀/寫操作。(7)HOLD(busholdrequest):總線保持請求信號,輸入,高電平有效。在DMA數(shù)據(jù)傳送方式中,由總線控制器8237A發(fā)出一個(gè)高電平有效的總線請求信號,通過HOLD引腳輸入到CPU,請求CPU讓出總線控制權(quán)。(8)HLDA(holdacknowledge):總線保持響應(yīng)信號,輸出,高電平有效。HLDA是與HOLD配合使用的聯(lián)絡(luò)信號。在HLDA有效期間,HLDA引腳輸出一個(gè)高電平有效的響應(yīng)信號,同時(shí)總線將處于浮空狀態(tài),CPU讓出對總線的控制權(quán),將其交付給申請使用總線的8237A控制器使用,總線使用完后,會(huì)使HOLD信號變?yōu)榈碗娖剑珻PU又重新獲得對總線的控制權(quán)。3.2可編程并行接口芯片8255A微機(jī)系統(tǒng)的信息交換有兩種方式:并行通信接口方式和串行通信接口方式。接口電路在CPU和I/O設(shè)備之間起著信號的變換和傳輸?shù)淖饔谩?255A可為86系列CPU與外部設(shè)備之間提供并行輸入/輸出的通道。由于它是可編程的,可以通過軟件來設(shè)置芯片的工作方式,因此,用8255A連接外部設(shè)備時(shí),通常不用再附加外部電路,使用教方便。并行接口是在多根數(shù)據(jù)線上,以數(shù)據(jù)字節(jié)/字與I/O設(shè)備交換信息。
在輸入過程中,輸入設(shè)備把數(shù)據(jù)送給接口,并且使?fàn)顟B(tài)線“輸入準(zhǔn)備好”有效。接口把數(shù)據(jù)存放在“輸入緩沖寄存器”中,同時(shí)使“輸入回答”線有效,作為對外設(shè)的響應(yīng)。外設(shè)在收到這個(gè)回答信號后,就撤消數(shù)據(jù)和“輸入準(zhǔn)備好”信號。數(shù)據(jù)到達(dá)接口中后,接口會(huì)在“狀態(tài)寄存器”中設(shè)置輸入準(zhǔn)備好標(biāo)志,或者向CPU發(fā)一個(gè)中斷請求。CPU可用查詢方式或中斷方式從接口中讀取數(shù)據(jù)。接口中的數(shù)據(jù)被讀取后,接口會(huì)自動(dòng)清除狀態(tài)寄存器中的標(biāo)志,且撤消對CPU的中斷請求。
在輸出過程中,每當(dāng)輸出寄存器可以接收數(shù)據(jù),接口就會(huì)將狀態(tài)寄存器中“輸出準(zhǔn)備好”狀態(tài)置1或向CPU發(fā)一個(gè)中斷請求,CPU可用查詢或中斷方式向接口輸出數(shù)據(jù)。當(dāng)CPU輸出的數(shù)據(jù)到達(dá)接口后,接口會(huì)清除“輸出準(zhǔn)備好”狀態(tài),把數(shù)據(jù)送往外設(shè),并向外設(shè)發(fā)一個(gè)“數(shù)據(jù)輸出準(zhǔn)備好”信號。外設(shè)受到驅(qū)動(dòng)后,便接收數(shù)據(jù),并向接口電路發(fā)一個(gè)“輸出回答”信號,接口收到該回答信號后,又將狀態(tài)寄存器中“輸出準(zhǔn)備好”置位,以便CPU輸出下一個(gè)數(shù)據(jù)。定義工作方式控制字:3.3LED數(shù)碼管LED為發(fā)光二極管構(gòu)成的顯示器件,亦稱數(shù)碼管。由7個(gè)字符段和一個(gè)小數(shù)點(diǎn)段組成,每段對應(yīng)一個(gè)發(fā)光二極管,當(dāng)發(fā)光二極管點(diǎn)亮?xí)r,相應(yīng)的字符段點(diǎn)亮。LED有共陰極和共陽極兩種供應(yīng)狀態(tài)。共陰極顯示時(shí),將LED顯示的COM接地,將八個(gè)字符段端a、b、c、d、e、f、g、dp依次與一個(gè)8位I/O口的最低到最高位連接,當(dāng)I/O給LED的哪個(gè)字符段送入一個(gè)高電平時(shí),該段就被點(diǎn)亮,從而可從這7個(gè)字符段中被點(diǎn)亮的構(gòu)成相應(yīng)的字符顯示出來。同理,COM陽極即將COM端接Vcc,其顯示原理與COM陰極的基本相同,但I(xiàn)/O口送入低電平是相應(yīng)的段才被點(diǎn)亮。3.44×4矩陣按鍵 鍵盤是常用信息輸入元件,其實(shí)鍵盤也是由一個(gè)個(gè)按鈕組成,如果是獨(dú)立按鈕的話必須要需要一個(gè)I/O口對它進(jìn)行檢測,而鍵盤往往這需要鍵盤按鈕數(shù)一半的I/O口數(shù)對它進(jìn)行檢測,也許對一個(gè)比較簡單的系統(tǒng)I/O口數(shù)一般不是問題,但對于一個(gè)大型、復(fù)雜的系統(tǒng)來說I/O資源就顯得非常珍貴了,盡量減少I/O使用是非常利于降低成本,另外一方面鍵盤比用獨(dú)立按鍵要美觀,這也是鍵盤能夠長期得到人們青睞的原因,可是硬件上的節(jié)省必然導(dǎo)致軟件上編程的復(fù)雜,那就來看看鍵盤到底使軟件編程有多復(fù)雜? 因?yàn)?×4矩陣鍵盤有8個(gè)管腳,于是將鍵盤接8255A的PC口,至于為什么選擇PC是有原因的,進(jìn)行鍵盤掃描一般要求有一部分的I/O口的工作方式是輸入,另一部分I/O是輸出,具體到4×4鍵盤則要求4個(gè)I/O口輸入,另外4個(gè)輸出,這一點(diǎn)PC口剛好符合,而PA、PB口要么全部輸入或輸出,所以只能是PC口接鍵盤。3.5硬件原理圖四軟件設(shè)計(jì)4.1程序流程圖(1)鍵盤掃描程序流程圖:開始開始初始化延時(shí)12ms鍵掃描保存鍵值鍵閉合?鍵釋放?結(jié)束鍵閉合?YYYNNN(2)總程序流程圖:計(jì)算鍵值計(jì)算鍵值掃描加法運(yùn)算減法運(yùn)算顯示乘法運(yùn)算存儲(chǔ)除法運(yùn)算數(shù)值?運(yùn)算符?“=”??清零“+”?“--”??“*”??4.2源代碼DATASEGMENTX DB ? ;存放數(shù)據(jù)的每一位X1 DW ? ;存放第一個(gè)數(shù)據(jù)值X2 DW ? ;存放第二個(gè)數(shù)據(jù)值Y DW ? ;存放運(yùn)算結(jié)果S DB ?;存放運(yùn)算符號值E DB ?;按下等號鍵標(biāo)記CC DB ?;存放運(yùn)算數(shù)據(jù)位數(shù)H DB 0;存放按鍵行號L DB 0;存放按鍵列號DISCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;段碼表DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,90H ;設(shè)置為A口輸入,B口輸出,C口輸出OUT 46H,ALMOV DI,OFFSETX+3 ;DI指向X的高位KKK: CALL KEY ;掃描按鍵JMP KKK;以下為按鍵掃描子程序,程序返回后,在變量H和L中存放當(dāng)前按鍵的行列號KEYPROCCHECK: CALL DISP ;等待按鍵按下的同時(shí)進(jìn)行顯示MOV AL,0F0H ;所有行輸出低電平OUT 44H,ALIN AL,40HCMP AL,0FFH;讀列值JZ CHECK ;若都為高電平則無鍵按下,等待MOV CX,50LOOP $;延時(shí)消抖IN AL,DX;重讀列值CMP AL,0FFHJZ CHECK;無鍵按下一直等待MOV H,0;有鍵按下,先把行列號變量清0MOV L,0MOV BL,01HMOV BH,0FEH;掃描法讀鍵值:從第一行開始測試,即PC0輸出低電平NEXT: MOV AL,BHOUT 44H,ALNEXTH: IN AL,40H ;讀列值,判斷是第幾列有鍵按下TEST AL,BL;從第一列開始判斷JZ WAIT0ROL BL,1CMP BL,10H;當(dāng)前行狀態(tài)下沒有列有鍵按下,則轉(zhuǎn)為對下一行的測試JZ NEXTLINC H ;每判斷一列,列號加1JMP NEXTH ;再對下一列進(jìn)行判斷NEXTL: MOV H,0MOV BL,01HROL BH,1;對下一行測試,讓下一個(gè)PC口輸出低電平CMP BH,0EFHJZ EXITINC LJMP NEXTWAIT0: IN AL,40H;若有鍵按下,則等該按鍵松開后再計(jì)算鍵值CMP AL,0FFHJNZ WAIT0MOV CX,50LOOP $ ;延時(shí)消抖IN AL,40HCMP AL,0FFHJNZ WAIT0CALL KEYVALUE ;調(diào)計(jì)算鍵值子程序EXIT: RETKEYENDP;以下為計(jì)算鍵值子程序,通過行列號計(jì)算鍵值(鍵值=行號*4+列號)鍵值存放在DL寄存器中KEYVALUEPROCMOV DL,LMOV DH,HSHL DL,1SHL DL,1 ;列號乘4ADD DL,DHCMP DL,9 ;按下的是數(shù)字鍵JNG NUM_CALLCMP DL,14JL CONT_CALL ;按下的是運(yùn)算鍵CMP DL,14JZ OUTP_CALL ;按下的是等于鍵CMP DL,15JZ CLR_CALL ;按下的是清除鍵NUM_CALL: CALL NUMBER ;調(diào)數(shù)字鍵處理子程序JMP EXIT1CONT_CALL: MOV S,DL ;存放運(yùn)算鍵的鍵值MOV E,0CALL COUNT 調(diào)運(yùn)算鍵處理子程序,計(jì)算第一個(gè)加數(shù)JMP EXIT1OUTP_CALL: CALL OUTP ;調(diào)等號鍵處理子程序JMP EXIT1CLR_CALL: CALL CLEAR ;調(diào)清除鍵處理子程序EXIT1: RETKEYVALUEENDP;以下為清除鍵處理子程序,按下清除鍵后,X變量全部清0CLEARPROCMOV X[3],0MOV X[2],0MOV X[1],0MOV X[0],0CALL BITPRETCLEARENDP;以下為等號鍵處理子程序,該子程序負(fù)責(zé)將第二個(gè)運(yùn)算數(shù)據(jù)的數(shù)值計(jì)算出來存入X2變量;并根據(jù)運(yùn)算符號,調(diào)用相應(yīng)的運(yùn)算子程序OUTPPROCPUSH AXPUSH DXPUSH BXINC ECALL COUNT;調(diào)運(yùn)算鍵處理子程序,計(jì)算第二個(gè)運(yùn)算數(shù)據(jù)CMP S,10JZ ADD_CALL;運(yùn)算符為加號,則調(diào)用加法子程序CMP S,11JZ SUB_CALL;運(yùn)算符為減號,則調(diào)用減法子程序CMP S,12JZ MUL_CALL;運(yùn)算符為乘號,則調(diào)用乘法子程序CMP S,13CALL DIVP;運(yùn)算符為除號,則調(diào)用除法子程序JMP STORE1ADD_CALL: CALL ADDPJMP STORE1SUB_CALL: CALL SUBPJMP STORE1MUL_CALL: CALL MULPSTORE1: MOV AX,Y;以下程序?qū)⒏鬟\(yùn)算子程序返回的運(yùn)算結(jié)果,按位分解,送入X變量MOV DX,0MOV BX,1000DIV BXMOV X[0],ALMOV AX,DXMOV BL,100DIV BLMOV X[1],ALMOV AL,AHMOV AH,0MOV BL,10DIV BLMOV X[2],ALMOV X[3],AHPOP BXPOP DXPOP AXRETOUTPENDP;以下為運(yùn)算鍵處理子程序,該程序?qū)⒌谝粋€(gè)運(yùn)算數(shù)據(jù)的數(shù)值計(jì)算出來并存入X1變量;或者將第二個(gè)運(yùn)算數(shù)據(jù)的數(shù)值計(jì)算出來并存入X2變量;將運(yùn)算符的值存入S變量COUNTPROCPUSH AXPUSH BXPUSH DXMOV DX,0CALL BITP ;測試X中的數(shù)據(jù)是多少位CMP CC,4 ;輸入的數(shù)據(jù)是4位數(shù)?JZ C4CMP CC,3 ;輸入的數(shù)據(jù)是3位數(shù)?JZ C3CMP CC,2 ;輸入的數(shù)據(jù)是2位數(shù)?JZ C2JMP C1 ;輸入的數(shù)據(jù)是1位數(shù)?C4: MOV AX,0MOV AL,X[0]MOV BX,1000MUL BXMOV DX,AXC3: MOV AL,X[1]MOV BL,100MUL BLADD DX,AXC2: MOV AL,X[2]MOV BL,10MUL BLADD DX,AXC1: MOV AL,X[3]MOV AH,0ADD DX,AXCMP E,1JNZ X1_SMOV X2,DX ;按下的是等號,則將第二個(gè)運(yùn)算數(shù)據(jù)的值存入X2變量JMP EXIT3X1_S: MOV X1,DX ;按下的是運(yùn)算符號,則將第一個(gè)運(yùn)算數(shù)據(jù)的值存X1變量MOV X[3],0 ;清空X變量MOV X[2],0MOV X[1],0MOV X[0],0EXIT3:POP DXPOP BXPOP AXRETCOUNTENDP;以下為數(shù)字鍵處理子程序;該程序,將輸入的數(shù)據(jù)按位存放在X變量中,并由CC記錄數(shù)據(jù)的位數(shù)NUMBERPROCCMP E,1JNZ CONTINUEMOV E,0CALL CLEARCONTINUE:CMP CC,0;目前數(shù)據(jù)為0位,即沒有數(shù)據(jù),則轉(zhuǎn)到SSSJZ SSSPUSH AXPUSH DXMOV AL,X[3]MOV AH,X[2]MOV DL,X[1]MOV DH,X[0]MOV CX,8LL: SHL AX,1RCL DX,1LOOP LLMOV X[3],ALMOV X[2],AHMOV X[1],DLMOV X[0],DHPOP DXPOP AXSSS: MOV [DI],DL;將當(dāng)前鍵入的數(shù)據(jù)存放到X的最低位INC CC;數(shù)據(jù)位數(shù)加1CMP CC,4;判斷數(shù)據(jù)位數(shù)JNG EXIT2MOV CC,0;如果數(shù)據(jù)超過4位,重新從最低位開始存放MOV X[2],0MOV X[1],0MOV X[0],0EXIT2:CALL DISP;調(diào)顯示子程序,顯示輸入的數(shù)據(jù)RETNUMBERENDP;加法子程序ADDPPROCPUSH AXMOV AX,X1ADD AX,X2MOV Y,AXPOP AXRETADDPENDP;減法子程序SUBPPROCPUSH AXMOV AX,X1SUB AX,X2MOV Y,AXPOP AXRETSUBPENDP;乘法子程序MULPPROCPUSH AXPUSH DXMOV AX,X1MOV DX,X2MUL DXMOV Y,AXPOP DXPOP AXRETMULPENDP;除法子程序DIVPPROCPUSH AXPUSH BXPUSH DXMOV DX,0MOV AX,X1MOV BX,X2DIV BXMOV Y,AXPOP DXPOP BXPOP AXRETDIVPENDP;顯示子程序,將X中的數(shù)值按位顯示出來DISPPROCPUSH BXPUSH AXMOV BH,0LEA SI,DISCODECALL BITP ;測試X位數(shù)CMP CC,4JZ QIANCMP CC,3JZ BAICMP CC,2JZ SHICMP CC,1JMP GJMP NONEQIAN: MOV ;從第4位開始顯示MOV AL,AHOUT 44H,ALMOVBL,X[0]MOVAL,[SI+BX]OUT 42H,ALCALLDELYMOV AL,0OUT 42H,ALBAI: MOV ;從第3位開始顯示MOVAL,AHOUT 44H,ALMOV BL,X[1]MOVAL,[SI+BX]OUT 42H,ALCALLDELYMOV AL,0OUT42H,ALSHI: MOV ;從第2位開始顯示MOV AL,AHOUT 44H,ALMOV BL,X[2]MOV AL,[SI+BX]OUT42H,ALCALLDELYMOV AL,0OUT 42H,ALG: MOV AH,01110000B;從第1位開始顯示MOV AL,AHOUT 44H,ALMOVBL,X[3]MOV AL,[SI+BX]OUT 42H,ALCALLDELYJMP EXIT4NONE:MOV AL,0;X中沒有數(shù)據(jù),不顯示OUT 42H,ALEXIT4:POP AXPOP BXRETDISPENDP;分析數(shù)據(jù)位數(shù)子程序BITPPROCCMP X[0],0 ;如果X[0]不為0,則數(shù)據(jù)為4位數(shù)JNZ FOURBITCMP X[1],0 ;如果X[1]不為0,則數(shù)據(jù)為3位數(shù)JNZ THREEBITCMP X[2],0 ;如果X[2]不為0,則數(shù)據(jù)為2位數(shù)JNZ TOWBITCMP X[3],0 ;如果X[3]不為0,則數(shù)據(jù)為1位數(shù)JNZ ONEBITJMP ZER0BIT ;否則,沒有數(shù)據(jù)FOURBIT: MOV CC,4JMP EXIT5THREEBIT:MOV CC,3JMP EXIT5TOWBIT: MOV CC,2JMP EXIT5ONEBIT: MOVCC,1JMPEXIT5ZER0BIT: MOVCC,0EXIT5: RETBITPENDP;延時(shí)子程序DELYPROCPUSH CXMOV CX,100LOOP $POP CXRETDELYENDPCODEENDSENDSTART五仿真第一步,進(jìn)行數(shù)碼管顯示的仿真。編寫一段直接賦值送到數(shù)碼管顯示的程序,進(jìn)行數(shù)碼管顯示的仿真。第二步,進(jìn)行鍵盤掃描的仿真。編寫代碼,將掃描到的鍵值送到數(shù)碼管顯示。第三步,在數(shù)碼管顯示和鍵盤掃描程序都正確的基礎(chǔ)上,逐步增加代碼,增加功能,逐步實(shí)現(xiàn)按鍵值的存儲(chǔ)與顯示、清零、加法、減法、乘法、除法等功能的仿真。六課程設(shè)計(jì)體會(huì) 上學(xué)期剛學(xué)過微機(jī)原理,學(xué)得不是很深入,僅限于課本知識的掌握,而此次課程設(shè)計(jì)將會(huì)是一個(gè)很好的機(jī)會(huì),來考察自己對課本知識的掌握以及應(yīng)用情況。本次課程設(shè)計(jì)是四人一組,并且自由選擇設(shè)計(jì)課題,我們小組選擇了簡易計(jì)算器的課題,在做的過程中也遇到很多困難。 在硬件設(shè)計(jì)模塊,參考了課本上的相關(guān)例題以及查閱相關(guān)資料,發(fā)現(xiàn)關(guān)于此次課程設(shè)計(jì)的所有課題的硬件原理圖都有很大的共同之處,都是利用8086芯片經(jīng)過地址鎖存器,再通過譯碼器,最后利用8255A或者更多芯片(如8253等)進(jìn)行設(shè)計(jì)在軟件設(shè)計(jì)模塊,數(shù)碼管顯示和鍵盤掃描程序參考了書上的相關(guān)例題,也查閱了很多資料,發(fā)現(xiàn)原理都差不多,并且對此次課
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理學(xué)導(dǎo)論病例討論
- 急診室護(hù)理總結(jié)
- 數(shù)據(jù)泄露風(fēng)險(xiǎn)分析-第1篇-洞察及研究
- 2025年貴州省委黨校在職研究生招生考試(社會(huì)學(xué)原理)歷年參考題庫含答案詳解(5套)
- 2025年職業(yè)病診斷醫(yī)師資格考試(基礎(chǔ)理論及法律法規(guī))歷年參考題庫含答案詳解(5套)
- 風(fēng)險(xiǎn)評估方法促進(jìn)理論安全性
- 長期臥床便秘護(hù)理措施
- 2025年空軍專業(yè)技能類文職人員招聘考試(交通運(yùn)輸類)歷年參考題庫含答案詳解(5卷)
- 2025年福建省建筑施工企業(yè)安管人員考試(專職安全生產(chǎn)管理人員·C3證)歷年參考題庫含答案詳解(5套)
- 2025年省級行業(yè)企業(yè)職業(yè)技能競賽(變配電運(yùn)行值班員)歷年參考題庫含答案詳解(5套)
- 2025年食品安全培訓(xùn)考試試題及答案
- 2025年長江證券港股通開通測試題及答案
- 2025西安亮麗電力集團(tuán)有限責(zé)任公司招聘10人筆試備考題庫及1套完整答案詳解
- 成都銀行總行招聘考試真題2024
- 基孔肯雅熱培訓(xùn)測試題含答案
- 小額貸款公司貸款五級分類辦法
- 2025公衛(wèi)執(zhí)業(yè)醫(yī)師考試試題(附答案)
- 醫(yī)院藥品質(zhì)量管理課件
- 2025年上海市中考招生考試數(shù)學(xué)真題試卷(真題+答案)
- 2025年廣東省中考英語試題卷(含答案解析)
- 腎病綜合征患者飲食與液體平衡管理:核心原則、臨床策略與患者教育
評論
0/150
提交評論