版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p> 學(xué) 號(hào): </p><p><b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 題 目: 存儲(chǔ)器擴(kuò)展分析與設(shè)計(jì) </p><p> 要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等
2、具體要求)</p><p> 1. 畫(huà)出簡(jiǎn)要的硬件原理圖,編寫(xiě)程序。 </p><p><b> 2.完成以下任務(wù):</b></p><p> (1).設(shè)計(jì)一個(gè)EEPROM擴(kuò)展電路,由兩片2864擴(kuò)展為16KB容量, 并編程信息檢索程序。</p><p> (2). 編程內(nèi)容:在擴(kuò)展的ROM中存入有9個(gè)不同的信息
3、,編號(hào)0到8,每個(gè)信息包括40個(gè)字字符。從鍵盤(pán)接收0到8之間的一個(gè)編號(hào),然后在屏幕上顯示出相應(yīng)的編號(hào)的信息內(nèi)容,按“q”鍵退出。</p><p> 3. 撰寫(xiě)課程設(shè)計(jì)說(shuō)明書(shū)。內(nèi)容包括:摘要、目錄、正文、參考文獻(xiàn)、附錄(程序清單)。正文部分包括:設(shè)計(jì)任務(wù)及要求、方案比較及論證、軟件設(shè)計(jì)說(shuō)明(軟件思想,流程,源程序設(shè)計(jì)及說(shuō)明等)、程序調(diào)試說(shuō)明和結(jié)果分析、課程設(shè)計(jì)收獲及心得體會(huì)。</p><p&g
4、t;<b> 時(shí)間安排:</b></p><p> 2012年12月30 日----- 12月 31日 查閱資料及方案設(shè)計(jì)</p><p> 2013年01月 01日----- 01月 05日 編程</p><p> 2013年01月 06日----- 01月 08日 調(diào)試程序</p>&l
5、t;p> 2013年01月 09日----- 01月 10日 撰寫(xiě)課程設(shè)計(jì)報(bào)告</p><p> 指導(dǎo)教師簽名: 2013年 1月 11日</p><p> 系主任(或責(zé)任教師)簽名: 年 月 日</p><p><b> 目錄</b></
6、p><p><b> 摘要1</b></p><p> 1設(shè)計(jì)意義及任務(wù)2</p><p><b> 1.1設(shè)計(jì)意義2</b></p><p><b> 1.2設(shè)計(jì)任務(wù)2</b></p><p> 2 EEPROM擴(kuò)展電路設(shè)計(jì)3</
7、p><p><b> 2.1方案設(shè)計(jì)3</b></p><p><b> 2.2芯片選擇3</b></p><p><b> 2.3連線說(shuō)明4</b></p><p> 2.4硬件電路圖5</p><p><b> 3程序設(shè)計(jì)6
8、</b></p><p><b> 3.1設(shè)計(jì)思路6</b></p><p><b> 3.2程序框圖6</b></p><p> 3.2.1主程序流程圖6</p><p> 3.2.2輸入程序流程圖6</p><p> 3.2.3輸出程序流程圖
9、6</p><p> 3.3設(shè)計(jì)程序一8</p><p> 3.4設(shè)計(jì)程序二10</p><p> 3.5調(diào)試過(guò)程12</p><p> 3.5.1調(diào)試過(guò)程12</p><p> 3.5.2結(jié)果記錄12</p><p> 3.5.3調(diào)試過(guò)程中遇到的問(wèn)題13</p&
10、gt;<p><b> 結(jié)束語(yǔ)14</b></p><p><b> 參考文獻(xiàn)15</b></p><p><b> 附錄一16</b></p><p><b> 附錄二19</b></p><p><b> 摘要
11、</b></p><p> 存儲(chǔ)器(Memory)是計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用來(lái)存放程序和數(shù)據(jù)。有了存儲(chǔ)器,計(jì)算機(jī)才有記憶功能,才能保證正常工作。按存儲(chǔ)介質(zhì)分可分為半導(dǎo)體存儲(chǔ)器和磁表面存儲(chǔ)器。按存儲(chǔ)器的讀寫(xiě)功能分可分為只讀存儲(chǔ)器(ROM)和隨機(jī)讀寫(xiě)存儲(chǔ)器(RAM)。</p><p> 只讀存儲(chǔ)器ROM是一種對(duì)其內(nèi)容只能讀,不能寫(xiě)的存儲(chǔ)器。隨著半導(dǎo)體技術(shù)的發(fā)展,只讀存儲(chǔ)器也根
12、據(jù)不同需要設(shè)計(jì)出不同的種類(lèi)。其中電可擦除只讀存儲(chǔ)器(EEPROM)是一種可用電氣方法在線擦除和再編程的只讀存儲(chǔ)器,它既有RAM可讀可改寫(xiě)的特性,又有非易失性存儲(chǔ)器ROM在掉電后仍能保持所存數(shù)據(jù)的優(yōu)點(diǎn)。因此,EEPROM在單片機(jī)存儲(chǔ)器擴(kuò)展中可以作程序存儲(chǔ)器,也可以用作數(shù)據(jù)存儲(chǔ)器,基于EEPROM存儲(chǔ)器的擴(kuò)展設(shè)計(jì)有十分重要的意義。</p><p> 建立一個(gè)信息檢索系統(tǒng),每個(gè)序號(hào)對(duì)應(yīng)一個(gè)不同的信息。通過(guò)鍵盤(pán)輸入不同
13、的指令序號(hào),在電腦屏幕上會(huì)輸出想要得到的信息。當(dāng)超出序號(hào)范圍的時(shí)候,屏幕會(huì)顯示錯(cuò)誤。程序還附加一個(gè)進(jìn)一步查詢(xún)的子程序。在輸出信息后,可以對(duì)該信息進(jìn)行查尋,當(dāng)輸入信息與序號(hào)相對(duì)應(yīng)的信息完全相同時(shí),會(huì)在屏幕上顯示NO字樣,然后繼續(xù)進(jìn)行下一次的提示輸入。</p><p> 關(guān)鍵字:存儲(chǔ)器 EEPROM 信息檢索</p><p><b> 1設(shè)計(jì)意義及任務(wù)</b>&l
14、t;/p><p><b> 1.1設(shè)計(jì)意義</b></p><p> 《微機(jī)原理與接口技術(shù)》主要培養(yǎng)統(tǒng)籌運(yùn)用課本所學(xué)的理論知識(shí),掌握程序設(shè)計(jì)模塊化基本理論和基本方法。EEPROM(電可擦寫(xiě)可編程只讀存儲(chǔ)器)是用戶(hù)可更改的只讀存儲(chǔ)器(ROM),其可通過(guò)高于普通 電壓的作用來(lái)擦除和重編程(重寫(xiě))。EEPROM在單片機(jī)存儲(chǔ)器擴(kuò)展中可以作程序存儲(chǔ)器,也可以用作數(shù)據(jù)存儲(chǔ)器。建立
15、一個(gè)信息檢索系統(tǒng),然后通過(guò)鍵盤(pán)輸入不同的指令,輸出想要得到的信息。信息檢索是為了滿(mǎn)足用戶(hù)的查詢(xún)需求,本次課程設(shè)計(jì)是針對(duì)我們平時(shí)學(xué)習(xí)的理論知識(shí)的檢驗(yàn),在實(shí)踐中考察我們的掌握能力,更好的存儲(chǔ)器的一些問(wèn)題。</p><p><b> 1.2設(shè)計(jì)任務(wù)</b></p><p> 要求完成的主要任務(wù): </p><p> (1)畫(huà)出簡(jiǎn)要的硬件原理圖,
16、編寫(xiě)程序。 </p><p> (2)完成以下任務(wù):</p><p> 1)設(shè)計(jì)一個(gè)EEPROM擴(kuò)展電路,由兩片2864擴(kuò)展為16KB容量,并編程信息檢索程序。</p><p> 2)編程內(nèi)容:在擴(kuò)展的ROM中存入有9個(gè)不同的信息,編號(hào)0到8,每個(gè)信息包括40個(gè)字字符。從鍵盤(pán)接收0到8之間的一個(gè)編號(hào),然后在屏幕上顯示出相應(yīng)的編號(hào)的信息內(nèi)容,按‘Q’或‘q’鍵退
17、出。</p><p> 2 EEPROM擴(kuò)展電路設(shè)計(jì)</p><p><b> 2.1方案設(shè)計(jì)</b></p><p> 8086通過(guò)控制138譯碼器來(lái)實(shí)現(xiàn)控制EEPROM擴(kuò)展電路,即兩片2864芯片。通過(guò)D0D7數(shù)據(jù)總線來(lái)傳輸數(shù)據(jù),通過(guò)地址總線來(lái)實(shí)現(xiàn)讀寫(xiě)的輸入輸出,同時(shí)數(shù)據(jù)可以先放在74LS373鎖存器中存放來(lái)保護(hù)數(shù)據(jù)。</p&g
18、t;<p> 硬件原理圖如圖2-1所示。</p><p><b> 圖2-1硬件原理圖</b></p><p><b> 2.2芯片選擇</b></p><p> EEPROM芯片在寫(xiě)入時(shí)能自動(dòng)完成擦除,而且不需要專(zhuān)用的編程電源,可直接使用5V電源。在芯片引腳設(shè)計(jì)上,2KB的EEPROM2816與相同
19、容量的EPROM2716和靜態(tài)RAM6116兼容,8KB的EEPROM2864A與相同容量的EPROM2764A和靜態(tài)RAM6264兼容,這些特點(diǎn)給硬件電路設(shè)計(jì)和調(diào)試帶來(lái)了方便。</p><p> 常用的并行EEPROM芯片有2816/2816A、2817/2817A、2864A等, 本次設(shè)計(jì)要形成16KB容量,若采用2816/2816A、2817/2817A,需用8塊芯片,連接線麻煩,所以采用2864芯片擴(kuò)展
20、。</p><p> 2816、2817、2864的讀出數(shù)據(jù)時(shí)間均為250ns,寫(xiě)入時(shí)間為10ms。</p><p> 2864引腳圖如圖2-2所示。</p><p> 圖2-2 2864引腳圖</p><p><b> 計(jì)算芯片數(shù)量:</b></p><p> 2864芯片容量是64/
21、8=8,即8KB。,所以需用兩片2864芯片。</p><p><b> 2.3連線說(shuō)明</b></p><p><b> 數(shù)據(jù)線:</b></p><p> 2864的8位數(shù)據(jù)線直接與8086的數(shù)據(jù)線相連。</p><p><b> 地址線:</b></p>
22、;<p> 根據(jù)選擇的芯片進(jìn)行地址分配,由于選擇芯片分別是8KB,這樣片內(nèi)尋址需要的地址線是13根,因使用138譯碼器來(lái)片選,所以8086上的地址線作為片內(nèi)尋址與8KB的ROM的地址連接。</p><p> 通過(guò)一片74LS138譯碼器來(lái)控制片選。將控制低8位的2864(1)的,控制高8位的2864(2)的,138譯碼器的輸入端連接到8086的地址線的高位,地址分配表如表2-1所示。</p
23、><p> 所以2864(1)的地址范圍為0000H至1FFFH,2864(2)的地址范圍為2000H至3FFFH,兩片加起來(lái)一共是16KB。</p><p> 為了防止CPU在讀取數(shù)據(jù)時(shí),數(shù)據(jù)發(fā)生變化,在硬件電路上采用了74LS373鎖存器。</p><p><b> 控制線:</b></p><p> 取中的兩根
24、地址線如和分別控制兩片2864的讀寫(xiě)端。</p><p> 地址分配表如表2-1所示。</p><p> 表2-1 地址分配表</p><p><b> 2.4硬件電路圖</b></p><p> 存儲(chǔ)器擴(kuò)展硬件電路圖如圖2-3所示。</p><p> 圖2-3存儲(chǔ)器擴(kuò)展硬件電路圖<
25、;/p><p><b> 3程序設(shè)計(jì)</b></p><p><b> 3.1設(shè)計(jì)思路</b></p><p> 在存儲(chǔ)器的數(shù)據(jù)段里分配10個(gè)小數(shù)據(jù)段,每個(gè)小數(shù)據(jù)段分配40個(gè)字符,0-8這9個(gè)信息存儲(chǔ)信息內(nèi)容,另外一個(gè)輸出錯(cuò)誤信息,Q或q退出。取MSG0的首地址作為整個(gè)信息段的首地址,根據(jù)輸入的信號(hào)的不同,用序號(hào)乘40再
26、加到首地址上找到相應(yīng)序號(hào)的信息內(nèi)容。</p><p><b> 步驟為:</b></p><p> (1)開(kāi)始,等待信息輸入;</p><p> ?。?)輸入序號(hào),判斷是否為Q。若是轉(zhuǎn)(7),否則轉(zhuǎn)(3);</p><p> ?。?)判斷是否滿(mǎn)足要求的序號(hào)范圍。滿(mǎn)足轉(zhuǎn)(4),否則轉(zhuǎn)(6);</p>&l
27、t;p> (4)根據(jù)輸入的序號(hào),計(jì)算出相關(guān)信息的物理地址;</p><p> ?。?)輸出結(jié)果,跳轉(zhuǎn)到(2);</p><p> ?。?)輸出錯(cuò)誤信息提示,轉(zhuǎn)(2);</p><p> ?。?)結(jié)束,退出程序。</p><p><b> 3.2程序框圖</b></p><p> 3.2
28、.1主程序流程圖</p><p> 主程序流程圖如圖3-1所示。</p><p> 3.2.2輸入程序流程圖</p><p> 輸入程序流程圖如圖3-2所示。</p><p> 程序中需使用DOS調(diào)用程序來(lái)顯示一串字符串:</p><p><b> MOV AH,9</b></p
29、><p><b> INT 21H</b></p><p> 3.2.3輸出程序流程圖</p><p> 輸出程序流程圖如圖3-3所示。</p><p> 圖3-1主程序流程圖</p><p> 圖3-2輸入程序流程圖</p><p> 圖3-3輸出程序流程圖&
30、lt;/p><p> 從鍵盤(pán)輸入序號(hào),并運(yùn)用DOS命令將所得結(jié)果顯示在屏幕上,隨后返回輸入序號(hào)提示語(yǔ)句。</p><p><b> 3.3設(shè)計(jì)程序一</b></p><p> 根據(jù)題目,嘗試編寫(xiě)了一個(gè)簡(jiǎn)單程序。為與最后的程序作比較,將此程序列出,如下:</p><p> DATA SEGMENT</p>
31、<p> n0 db '0000000000000000000000000000000000000000'</p><p> n1 db'1111111111111111111111111111111111111111'</p><p> n2 db '2222222222222222222222222222222222222222
32、'</p><p> n3 db '3333333333333333333333333333333333333333'</p><p> n4 db '4444444444444444444444444444444444444444'</p><p> n5 db '55555555555555555555555
33、55555555555555555'</p><p> n6 db'6666666666666666666666666666666666666666'</p><p> n7 db '777'</p><p> n8 db '888'</p><p> Errmsg DB &
34、#39;No! Input 0-8! Q or q , Exit $' ;輸出錯(cuò)誤信息</p><p><b> DATA ENDS</b></p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DATA
35、 ;段屬性說(shuō)明</p><p><b> START:</b></p><p> MOVAX,DATA ;初始化DS</p><p> MOVDS,AX</p><p><b> LOP: </b></
36、p><p> MOVAH,01H ;輸入一個(gè)數(shù)字</p><p><b> INT21H</b></p><p> CMPAL,'Q' ;判斷是否輸入字符與Q相等,相等跳到EXIT退出</p>&
37、lt;p> JZ EXIT </p><p> CMPAL,'q' ;判斷是否輸入字符與q相等,相等跳到EXIT退出</p><p> JZ EXIT </p><p> CMPAL,'0' ;輸入不
38、在0-8范圍則退出</p><p> JB ERR ;小于0跳轉(zhuǎn)</p><p> CMPAL,'8'</p><p> JA ERR ;大于8跳轉(zhuǎn) </p><p> SUBAL,30H
39、 ;計(jì)算字符串的地址</p><p> MOVDH,28H ;28H=40</p><p><b> MULDH</b></p><p> MOVBX,AX ;數(shù)據(jù)放入BX </p><p> CALLDISP </p&
40、gt;<p> JMPLOP ;輸出錯(cuò)誤信息后,繼續(xù)輸入序號(hào)</p><p><b> ERR: </b></p><p> MOVDL,0DH ;輸出提示錯(cuò)誤語(yǔ)句</p><p> MOVAH,02</p><p>&l
41、t;b> INT21H</b></p><p> MOVDX,OFFSET Errmsg</p><p><b> MOVAH,9</b></p><p> INT21H </p><p> MOVDL,0DH ;回車(chē)和換行</p
42、><p> MOVAH,02</p><p><b> INT21H</b></p><p> JMPLOP ;返回LOP繼續(xù)輸入序號(hào)</p><p><b> EXIT:</b></p><p> MOVAH,4CH
43、 ;返回DOS</p><p><b> INT21</b></p><p> DISP PROC NEAR </p><p> MOVDL,0DH ;回車(chē)換行</p><p> MOVAH,02</p>
44、<p><b> INT21H</b></p><p> MOVDL,0AH ;多字符輸入</p><p> MOVAH,02</p><p> INT21H </p><p> MOVCX,28H ;28H=4
45、0 控制循環(huán)次數(shù)即輸出的信息字符個(gè)數(shù)</p><p><b> LOP1:</b></p><p> MOVDL,[BX] ;循環(huán)輸出字符串</p><p> MOVAH,02H</p><p><b> INT21H</b></p>
46、<p> INCBX ;BX打印字符</p><p> LOOPLOP1 </p><p> MOVDL,0DH</p><p> MOVAH,02</p><p><b> INT21H</b></p><p>
47、; MOV DL,0AH</p><p> MOVAH,02</p><p><b> INT 21H</b></p><p><b> RET</b></p><p> DISP ENDP </p><p><b> CODE
48、 ENDS</b></p><p> END START ;源程序結(jié)束</p><p> 調(diào)試結(jié)果如圖3-4所示。</p><p><b> 圖3-4調(diào)試結(jié)果</b></p><p><b> 出現(xiàn)的問(wèn)題有:</
49、b></p><p> 問(wèn)題1:開(kāi)始輸入序號(hào)時(shí),只能顯示在屏幕的第一個(gè)空間。</p><p> 問(wèn)題2:在輸出沒(méi)有寫(xiě)滿(mǎn)40個(gè)字符的字符串時(shí),輸出是亂碼。</p><p> 問(wèn)題3:按Q或q退出時(shí),還會(huì)顯示一串?dāng)?shù)字再退出。</p><p><b> 3.4設(shè)計(jì)程序二</b></p><p&
50、gt; 在程序一調(diào)試的基礎(chǔ)上,檢查程序發(fā)現(xiàn)一些問(wèn)題,在輸入不是Q或q或0至8的數(shù)字時(shí),沒(méi)有寫(xiě)輸出顯示字符的程序;輸入是應(yīng)該是字符串,因?yàn)橛谢剀?chē)。在此基礎(chǔ)上,繼續(xù)改善設(shè)計(jì)的程序,設(shè)計(jì)出程序二,即最終程序。</p><p> 輸入一個(gè)序號(hào),首先判斷是否是Q或q。如果是,則直接跳出,結(jié)束程序。如果不是,就在已設(shè)定好的信息庫(kù)中檢索相應(yīng)信息,并將信息顯示在屏幕上,緊接著跳入下一次序號(hào)輸入界面。如果沒(méi)有相應(yīng)的序號(hào)所對(duì)應(yīng)的
51、信息,即超出序號(hào)范圍會(huì)自動(dòng)報(bào)錯(cuò),并跳到下一次序號(hào)輸入界面。</p><p><b> 主體部分程序如下:</b></p><p><b> BEGIN:</b></p><p> CALL CRLF ;回車(chē)換行</p><p> LEADX,MSG
52、 ;輸出提示語(yǔ)句Please input a number:</p><p> MOVAH,09H</p><p><b> INT21H</b></p><p> MOVAH,1 ;輸入序號(hào)</p><p><b> I
53、NT21H</b></p><p> CMPAL,'Q' ;判斷為‘Q’退出</p><p><b> JEEXIT</b></p><p> CMP AL,'q' ;判斷為‘q’退出</p&g
54、t;<p> JE EXIT</p><p> SUBAL,'0' ;小于0跳轉(zhuǎn)ERROR</p><p> JBERROR </p><p> CMP AL,8 ;大于9跳轉(zhuǎn)ERROR<
55、/p><p> JA ERROR</p><p> MOV BX,OFFSET MSG0 ;取第一個(gè)字符串的首地址</p><p> MUL FORTY</p><p> ADDBX,AX ;找到相應(yīng)字符串的地址</p><p> CALL DI
56、SPLAY ;調(diào)用DISPLAY子程序</p><p> 定義ERROR程序:提示錯(cuò)誤,重新要求輸入序號(hào),再次檢測(cè)。</p><p><b> ERROR:</b></p><p> CALL CRLF ;回車(chē)換行</p><p> LE
57、A DX,ERRMSG ;提示錯(cuò)誤語(yǔ)句</p><p> MOV AH,09H</p><p> INT 21H</p><p> CALL CRLF</p><p> JMP BEGIN ;返回BEGIN程序</p>&
58、lt;p> 定義顯示信息程序:將字符信息一個(gè)個(gè)輸出。</p><p> DISPLAY PROC NEAR</p><p> CALL CRLF</p><p> LEA DX,MSG9 ;提示語(yǔ)The message is:</p><p> MOV AH,09H</p
59、><p> INT 21H</p><p> MOV CX,40 ;設(shè)置循環(huán)次數(shù)</p><p><b> DISP1:</b></p><p> MOV DL,[BX] ;輸出字符串</p><p&g
60、t; MOV AH,2</p><p> INT 21H</p><p> INC BX</p><p> LOOP DISP1</p><p> CALL CRLF</p><p> JMP BEGIN</p><p> CALL CRL
61、F</p><p> RET ;返回程序</p><p> DISPLAY ENDP</p><p><b> 完整程序見(jiàn)附錄一。</b></p><p><b> 3.5調(diào)試過(guò)程</b></p><p&g
62、t;<b> 3.5.1調(diào)試過(guò)程</b></p><p> 調(diào)試過(guò)程主要由編輯、匯編、鏈接和執(zhí)行等幾個(gè)步驟組成。當(dāng)編輯好匯編語(yǔ)言源程序后,將其保存為.ASM文件。再調(diào)用匯編程序?qū)υ闯绦蜻M(jìn)行翻譯,生成.OBJ的目標(biāo)文件。在匯編過(guò)程中,源程序有錯(cuò)誤則不能生成目標(biāo)文件,經(jīng)過(guò)多次修改最終生成無(wú)錯(cuò)誤目標(biāo)文件。之后,調(diào)用鏈接程序(LINK)將用戶(hù)目標(biāo)程序和庫(kù)文件進(jìn)行鏈接、定位,生成.EXE可執(zhí)行文件
63、。如果剛開(kāi)始可執(zhí)行程序運(yùn)行之后沒(méi)有得到預(yù)想的結(jié)果,又要重新檢查源程序的算法錯(cuò)誤,重新編輯、匯編、鏈接和執(zhí)行,最終得到預(yù)期的結(jié)果。</p><p><b> 3.5.2結(jié)果記錄</b></p><p> 經(jīng)過(guò)多次調(diào)試、修改、測(cè)試結(jié)果,最后基本符合要求。</p><p> 調(diào)試最終結(jié)果如圖3-5所示。</p><p>
64、 完整的調(diào)試見(jiàn)附錄二。</p><p> 圖3-5調(diào)試最終結(jié)果</p><p> 3.5.3調(diào)試過(guò)程中遇到的問(wèn)題</p><p> ?。?)問(wèn)題1:程序運(yùn)行后無(wú)法生成.obj文件。</p><p> 首先,由于軟件缺陷,要先運(yùn)行一遍軟件自帶的程序之后,運(yùn)行自己編寫(xiě)的程序,才能運(yùn)行。另外,在程序有錯(cuò)誤時(shí),當(dāng)錯(cuò)誤被改正之后,即能正常生成.
65、obj文件。</p><p> ?。?)問(wèn)題2:開(kāi)始輸入序號(hào)時(shí),只能顯示在屏幕的第一個(gè)空間。</p><p> 檢查程序發(fā)現(xiàn)一些問(wèn)題,在輸入不是Q或0至8的數(shù)字時(shí),沒(méi)有寫(xiě)輸出顯示字符的程序;輸入是應(yīng)該是字符串而不是字,因?yàn)樾枰谢剀?chē)。</p><p> ?。?)問(wèn)題3:選擇序號(hào)后,屏幕上出現(xiàn)錯(cuò)誤附加信息。</p><p> 這是由于,設(shè)計(jì)
66、的是40個(gè)字符空間,當(dāng)某一條序號(hào)所對(duì)應(yīng)的信息達(dá)不到四十個(gè)字符時(shí),由于是順序存儲(chǔ),計(jì)算機(jī)會(huì)自動(dòng)用下一個(gè)序號(hào)所對(duì)應(yīng)的信息填補(bǔ)上一條信息未滿(mǎn)40個(gè)字符的空間,保證輸出一定是40個(gè)字符。于是,當(dāng)調(diào)整每個(gè)信息的字符數(shù)均為40個(gè)字符時(shí),即將空白寫(xiě)上空格符,將不會(huì)再出現(xiàn)錯(cuò)誤的附加信息。</p><p> ?。?)問(wèn)題4:輸入正確的序號(hào)后,會(huì)輸出兩個(gè)字符串。</p><p> 這是由于在顯示程序的問(wèn)題,
67、在顯示程序塊結(jié)束的地方加入返回BEGIN語(yǔ)句,程序可以運(yùn)行處正確的結(jié)果。</p><p><b> 結(jié)束語(yǔ)</b></p><p> 通過(guò)本次課程設(shè)計(jì)讓我學(xué)到了很多東西,受益匪淺。雖然剛才拿到任務(wù),不知從何下手,對(duì)編程也是一頭霧水,但在通過(guò)看書(shū)和網(wǎng)上查閱了相關(guān)芯片資料,了解了一些設(shè)計(jì)原理,對(duì)硬件設(shè)計(jì)有了一定了想法,順利用PROTUS軟件畫(huà)出硬件電路圖,編寫(xiě)程序時(shí),
68、先簡(jiǎn)化了題目,從簡(jiǎn)單的開(kāi)始寫(xiě),再不斷加入新的功能,逐漸完善所設(shè)計(jì)的程序。通過(guò)運(yùn)用微機(jī)原理專(zhuān)用匯編程序軟件MF2KP,大大提高了我們的程序設(shè)計(jì)部分的效率,可見(jiàn),這次課程設(shè)計(jì),還鍛煉了我們?cè)诙唐趦?nèi)熟練掌握新軟件,新知識(shí)的能力。</p><p> 當(dāng)然,通過(guò)這次課程設(shè)計(jì),我還發(fā)現(xiàn)了自己的不少問(wèn)題。首先是理論知識(shí)掌握得不夠牢固,常常忘記一些知識(shí)點(diǎn),對(duì)設(shè)計(jì)的過(guò)程和效率有很大影響。其次是動(dòng)手能力還有待提高,雖然這次沒(méi)有操縱
69、實(shí)物,但在計(jì)算機(jī)上編程和發(fā)現(xiàn)問(wèn)題解決問(wèn)題的能力上有所欠缺。</p><p> 設(shè)計(jì)過(guò)程中不僅要求我對(duì)知識(shí)的掌握能力,還要細(xì)心和耐心。在幾天的時(shí)間中,我感到自己的知識(shí)還是比較匱乏,所以平時(shí)還是需要多鍛煉自己,加深對(duì)所學(xué)的知識(shí)的了解。本次設(shè)計(jì)涉及到了書(shū)本的絕大部分內(nèi)容,將課本中所學(xué)的知識(shí)一一串聯(lián)起來(lái),考驗(yàn)了自己的基礎(chǔ)知識(shí),也提升了學(xué)會(huì)串聯(lián)知識(shí)的能力。</p><p> 在今后的學(xué)習(xí)中我要鍛
70、煉自己獨(dú)立分析問(wèn)題,解決問(wèn)題的能力,端正態(tài)度努力學(xué)習(xí),不斷的完善自己,充實(shí)自己。</p><p><b> 參考文獻(xiàn)</b></p><p> 彭虎.微機(jī)原理與接口技術(shù)(第三版).電子工業(yè)出版社.2011</p><p> 張小鳴.微機(jī)原理與接口技術(shù)(第一版).清華大學(xué)出版社.2009</p><p> 康華光.
71、電子技術(shù)基礎(chǔ)數(shù)字部分(第五版).高等教育出版社.2005</p><p> 李志明.計(jì)算機(jī)原理與匯編語(yǔ)言程序設(shè)計(jì).中南大學(xué)出版社.2005</p><p> 潘名蓮.微計(jì)算機(jī)原理.電子工業(yè)出版社.2004</p><p><b> 附錄一</b></p><p> DATA SEGMENT</p>
72、<p> MESS DB '----------------------------------',0DH,0AH</p><p> DB '| Input a number between 0 and 8|',0DH,0AH</p><p> DB '| Press Q OR q to quit |',0
73、DH,0AH</p><p> DB '---------------------------------',0DH,0AH,'$' ;提示語(yǔ)句</p><p> FORTY DB 40</p><p> MSG0 DB 'I am very happy
74、39;</p><p> MSG1 DB 'Today is Monday '</p><p> MSG2 DB 'Today is Tuesday '</p><p> MSG3 DB'Today is Wesn
75、esday '</p><p> MSG4 DB'Today is Thursday '</p><p> MSG5 DB'Today is Friday '</p><p> M
76、SG6 DB'Today is Saturday '</p><p> MSG7 DB'Today is Sunday '</p><p> MSG8 DB'Today is a good day
77、39;</p><p> MSG DB 'Please input a number:$'</p><p> MSG9 DB'The message is: $'</p><p> MESS1DB'no!$'</p><p> CRLF1 DB 0DH,0AH,'
78、;$' </p><p> ERRMSG DB 'error! invalied parameter!!' ;錯(cuò)誤信息</p><p><b> DATA ENDS</b></p><p> STACK SEGMENT</p><p> DB 256
79、DUP(0) ;256字節(jié)堆棧空間</p><p> TOS LABEL WORD</p><p> STACK ENDS</p><p> CODE SEGMENT</p><p> MAINPROC FAR</p><p> ASSUME CS:CO
80、DE,DS:DATA,SS:STACK ;段屬性說(shuō)明</p><p><b> START:</b></p><p> MOVAX,STACK ;初始化SS</p><p> MOVSS,AX</p><p> MOVSP,OFFSET TOS
81、 ;取TOS首地址</p><p> PUSH DS ;保存舊數(shù)據(jù)段</p><p> SUBAX,AX ;AX清零</p><p> PUSH AX ;保存在堆棧中</p><p>
82、 MOVAX,DATA ;初始化DS</p><p> MOVDS,AX</p><p> CALLSHOW ;調(diào)用子程序SHOW</p><p><b> BEGIN:</b></p><p> CALL CRLF
83、 ;回車(chē)換行</p><p> LEADX,MSG ;輸出提示語(yǔ)句Please input a number:</p><p> MOVAH,09H</p><p><b> INT21H</b></p><p> MO
84、VAH,1 ;輸入序號(hào)</p><p><b> INT21H</b></p><p> CMPAL,'Q' ;判斷為‘Q’退出</p><p><b> JEEXIT</b></p>
85、;<p> CMP AL,'q' ;判斷為‘q’退出</p><p> JE EXIT</p><p> SUBAL,'0' ;小于0跳轉(zhuǎn)error</p><p> JBERROR
86、 </p><p> CMP AL,8 ;大于9跳轉(zhuǎn)error</p><p> JA ERROR</p><p> MOV BX,OFFSET MSG0 ;取第一個(gè)字符串的首地址</p><p> MUL FORTY</p>
87、<p> ADDBX,AX ;找到相應(yīng)字符串的地址</p><p> CALL DISPLAY</p><p><b> ERROR:</b></p><p> CALL CRLF ;回車(chē)換行</p><p&g
88、t; LEA DX,ERRMSG ;提示錯(cuò)誤語(yǔ)</p><p> MOV AH,09H</p><p> INT 21H</p><p> CALL CRLF</p><p> CALL CRLF</p><p> JMP BEGIN
89、 ;返回BEGIN程序</p><p> DISPLAY PROC NEAR</p><p> CALL CRLF</p><p> LEA DX,MSG9 ;提示語(yǔ)The message is:</p><p> MOV AH,09H<
90、/p><p> INT 21H</p><p> MOV CX,40 ;設(shè)置循環(huán)次數(shù)</p><p> DISP1: ;輸出字符串子程序</p><p> MOV DL,[BX]</p>&
91、lt;p> MOV AH,2</p><p> INT 21H</p><p> INC BX</p><p> LOOP DISP1</p><p> CALL CRLF</p><p> JMP BEGIN</p><p> CAL
92、L CRLF</p><p> RET ;返回程序</p><p> DISPLAY ENDP </p><p> CRLF PROC NAER ;定義CRLF子程序</p><p> MOV DX,OFF
93、SET CRLF1</p><p> MOV AH,9H</p><p><b> INT 21H</b></p><p><b> RET</b></p><p> CRLF ENDP</p><p> SHOW PROC NEAR
94、 ;定義SHOW子程序</p><p> LEA DX,MESS ;輸出開(kāi)始提示性語(yǔ)句</p><p> MOV AH,09H</p><p> INT 21H</p><p><b> RET</b>
95、;</p><p> SHOW ENDP</p><p> EXIT: ;返回DOS子程序</p><p> MOV AH,4CH</p><p> INT 21H</p><p> MAIN E
96、NDP</p><p> CODE ENDS</p><p> END START</p><p><b> 附錄二</b></p><p><b> 圖1顯示語(yǔ)句結(jié)果1</b></p><p><b> 圖2顯示語(yǔ)句結(jié)果2</b>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì) --存儲(chǔ)器
- 虛擬存儲(chǔ)器課程設(shè)計(jì)
- 課程設(shè)計(jì)---存儲(chǔ)器管理系統(tǒng)設(shè)計(jì)
- 存儲(chǔ)器擴(kuò)展
- 課程設(shè)計(jì)--請(qǐng)求頁(yè)式存儲(chǔ)器管理
- 微機(jī)原理課程設(shè)計(jì)-計(jì)時(shí)器
- 微機(jī)原理課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)搶答器
- 存儲(chǔ)器動(dòng)態(tài)分區(qū)算法模擬課程設(shè)計(jì)報(bào)告
- 存儲(chǔ)器擴(kuò)展實(shí)驗(yàn)
- 《微機(jī)原理與應(yīng)用》課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)---競(jìng)賽搶答器設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)--簡(jiǎn)易計(jì)算器設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)波形發(fā)生器
- 微機(jī)原理簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)--搶答計(jì)時(shí)器
- 微機(jī)原理課程設(shè)計(jì)-函數(shù)發(fā)生器
- 微機(jī)原理課程設(shè)計(jì)---函數(shù)發(fā)生器
- 微機(jī)原理課程設(shè)計(jì)-- 波形發(fā)生器
- 微機(jī)原理課程設(shè)計(jì)—— 定時(shí)器系統(tǒng)
評(píng)論
0/150
提交評(píng)論