2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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>  計(jì)算機(jī)科學(xué)與技術(shù)系</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  2008 ~ 2009 學(xué)年第 一 學(xué)期</p><p><b>  2009-2-15</b></p><p><b>  倒計(jì)時(shí)數(shù)字

2、鐘</b></p><p>  題義分析及解決方案:</p><p>  設(shè)計(jì)一個(gè)接口與七段LED顯示器,顯示一個(gè)倒計(jì)時(shí)時(shí)鐘,顯示初值為60分00秒,每隔一秒改變一次顯示值,60秒為一分鐘,LED顯示器顯示分、秒的動(dòng)態(tài)值。</p><p><b>  1 題義需求分析:</b></p><p>  根據(jù)題意設(shè)

3、計(jì)一個(gè)接口和七段LED顯示器,本設(shè)計(jì)能顯示一個(gè)具有固定初值的倒計(jì)時(shí)鐘,能每隔固定時(shí)間間隔(1s),動(dòng)態(tài)刷新顯示值,并且能用LED顯示器顯示分秒的動(dòng)態(tài)值,需要解決如下問(wèn)題:</p><p>  1).選擇怎樣的接口問(wèn)題?</p><p>  2).顯示設(shè)備的選擇問(wèn)題?</p><p>  3).初值的設(shè)置和輸入問(wèn)題?</p><p>  4).

4、計(jì)數(shù)值與顯示碼的轉(zhuǎn)換及動(dòng)態(tài)值顯示問(wèn)題?</p><p>  5).相關(guān)芯片與譯碼器的選擇問(wèn)題?</p><p>  2解決問(wèn)題方法及思路:</p><p>  1)硬件部分:根據(jù)七段LED顯示器的硬件結(jié)構(gòu),為減少器件的使用量,可以選擇芯片8255A,將七段LED顯示器與8255A的兩個(gè)八位并行輸出口連接,比如使用8255的A口和B口。其中,A口用于位選,確定選擇哪

5、一個(gè)顯示燈;B口用于段選擇,通過(guò)改變B口中的段碼,使得顯示燈能夠顯示出相應(yīng)的時(shí)間數(shù)字。8255與七段LED顯示器采用的共陰極的接法。</p><p>  2)軟件部分:根據(jù)題義要求,可以設(shè)立一個(gè)段碼表和一個(gè)顯示緩沖區(qū),以動(dòng)態(tài)刷新的方式,顯示四位數(shù)字表示的時(shí)間。前者存放的是共陰極方式下數(shù)字0---9的段碼;后者存放的是顯示初值。設(shè)置好8255的工作方式后,運(yùn)行顯示程序,將緩沖區(qū)中的數(shù)字通過(guò)LED燈顯示出來(lái)。為消除

6、串碼和閃爍,應(yīng)讓每位數(shù)字顯示2~5毫秒后,關(guān)閉顯示,之后再顯示下一個(gè)數(shù)字。四位數(shù)字顯示完成后,將緩沖區(qū)中的時(shí)間減少一秒,重復(fù)顯示,直到時(shí)間減少到00分00秒。</p><p><b>  二. 硬件選擇分析</b></p><p>  1、8255芯片:并行輸入/輸出接口</p><p>  1) 8255的功能分析:</p>&

7、lt;p> ?。?)芯片8255在本設(shè)計(jì)中主要用于選擇位碼和輸出段碼,同時(shí)也減少了器件數(shù)量。Intel 公司生產(chǎn)的可編程并行接口芯片8255A 已廣泛應(yīng)用于實(shí)際工程中,例如8255A 與A/D、D/A 配合構(gòu)成數(shù)據(jù)采集系統(tǒng),通過(guò)8255A 連接的兩個(gè)或多個(gè)系統(tǒng)構(gòu)成相互之間的通信,系統(tǒng)與外設(shè)之間通過(guò)8255A 交換信息,等等,所有這些系統(tǒng)都將8255A 用作為并行接口。</p><p>  (2)、8255引

8、腳圖:8255是可編程并行接口,內(nèi)部有3個(gè)相互獨(dú)立的8位數(shù)據(jù)端口,即A口、B口和C口。三個(gè)端口都可以作為輸入端口或輸出端口。A口有三種工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作為聯(lián)絡(luò)信號(hào)使用。8255的工作只有當(dāng)片選CS效時(shí)才能進(jìn)行。而控制邏輯端口實(shí)現(xiàn)對(duì)其他端口的控制。</p><p>  2) 芯片選擇——8255與8253的比較:</p><p>

9、;<b>  8255:</b></p><p>  RESET:復(fù)位輸入線,當(dāng)該輸入端外于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存 器)均被清除,所有I/O口均被置成輸入方式。</p><p>  CS:片選信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊。</p><p&

10、gt;  RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),允許8255通過(guò)數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。</p><p>  WR:寫(xiě)入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許CPU將數(shù)據(jù)或控制字寫(xiě)8255。 D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過(guò)它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫(xiě)操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。</p&

11、gt;<p>  PA0~PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。 </p><p>  PB0~PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器, 一個(gè)8位的輸入輸出緩沖器。</p><p>  PC0~PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過(guò)工作方式設(shè)定而分成2個(gè)

12、4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。</p><p>  8253: 8253具有3個(gè)獨(dú)立的16位計(jì)數(shù)器,6種不同的工作方式。 計(jì)數(shù)寄存器用來(lái)寄存計(jì)數(shù)初值,計(jì)數(shù)工作單元為16位減1計(jì)數(shù)器,它的初值便是計(jì)數(shù)寄存器內(nèi)容,計(jì)數(shù)單元對(duì)CLK脈沖計(jì)數(shù),每出現(xiàn)一個(gè)CLK脈沖,計(jì)數(shù)器減1,當(dāng)減為零時(shí),通過(guò)OUT輸出指示信號(hào)表明計(jì)數(shù)單元已為零。

13、當(dāng)作為定時(shí)器工作時(shí),每當(dāng)計(jì)數(shù)單元為零時(shí),計(jì)數(shù)寄存器內(nèi)容會(huì)自動(dòng)重新裝入 計(jì)數(shù)單元,而且CLK輸入是均勻的脈沖序列,于是OUT輸出頻率是降低了的(相對(duì)于CLK信號(hào)頻率)脈沖序列。 當(dāng)作為計(jì)數(shù)器工作時(shí),表明只關(guān)心在CLK端出現(xiàn)(代表事件)的脈沖個(gè)數(shù),當(dāng)CLK端出現(xiàn)了規(guī)定個(gè)數(shù)的脈沖時(shí),OUT輸出一個(gè)脈沖信號(hào)</p><p>  3) 8255A的引腳信號(hào)</p><p> ?。?). 與外設(shè)相連

14、的</p><p>  圖2-1 8255A內(nèi)部結(jié)構(gòu)框圖</p><p>  PA7~PA0:A口數(shù)據(jù)信號(hào)線。</p><p>  PB7~PB0:B口數(shù)據(jù)信號(hào)線。</p><p>  PC7~PC0:C口數(shù)據(jù)信號(hào)線。</p><p>  4)8255A的端口錄址及操作功能表:</p><p>

15、;  表2-1 8255A端口錄址及操作功能</p><p> ?。?)8255A的方式控制字:</p><p>  D7 D6 D5 D4 D3 D2 D1 D0</p><p>  | | | | |

16、 | |</p><p>  特征位 00方式0 1輸入 1輸入 0方式0 1輸入 1輸入</p><p>  01方式1 0輸出 0輸出 1方式1 0輸出 0輸出</p><p><b>  10方式2</b></p>

17、<p>  圖2-2 8255A的方式控制字</p><p>  8255A方式選擇字</p><p> ?。?)8255A的置位/復(fù)位控制字</p><p>  D7 D6 D5 D4 D3 D2 D1 D0</p><p>  寫(xiě)入位 |

18、編碼 |</p><p>  D0~ D7 000~111 0寫(xiě)入0</p><p><b>  1寫(xiě)入1</b></p><p>  圖2-38255A的端口置位/復(fù)位控制字格式</p><p> ?。?)8255A的主要技術(shù)參數(shù)分析</p><p> 

19、 8255A技術(shù)參數(shù)表 </p><p>  表2-2 8255A的技術(shù)參數(shù)表</p><p>  由上可知:8255A的達(dá)林頓驅(qū)動(dòng)電流最大值為4.0mA。</p><p>  5)8255在本實(shí)驗(yàn)中的作用:</p><p>  1)8255作為可編程接口芯片實(shí)現(xiàn)了外設(shè)(LED數(shù)碼管顯示器,邏輯開(kāi)關(guān))與8086之間的數(shù)據(jù)傳輸,解決了兩者之

20、間的速度不匹配的矛盾,具有數(shù)據(jù)緩沖功能。</p><p>  2)8255的A口工作與方式0,作為輸入口,其PA0~PA7分別與邏輯開(kāi)關(guān)的K1~k8相連,其中開(kāi)關(guān)量k8用于判斷是否修改時(shí)間(若為0不修改,若為1則修改),K6~k7用于判斷修改哪一位,K1~k4為要修改的值;B口工作與方式0,作為輸出口,其PB0~PB7分別與LED數(shù)碼管顯示器的八段a.b.c.d.e.f.g.dp相連,C口作為輸出口,其PC0~P

21、C3L分別與LED數(shù)碼管顯示器的ED3~LED0相連,作為位選。</p><p>  6) CPU接口(數(shù)據(jù)總線緩沖器和讀/寫(xiě)控制邏輯)</p><p> ?。?)數(shù)據(jù)總線緩沖器</p><p>  這是一個(gè)8位雙向三態(tài)緩沖器,三態(tài)是由讀/寫(xiě)控制邏輯控制的。這個(gè)緩沖器是8255A與CPU數(shù)據(jù)總線的接口。所有數(shù)據(jù)的輸入/輸出,以及CPU用輸出指令向8255A發(fā)出的

22、控制字和用輸入指令從8255A讀入的外設(shè)狀態(tài)信息,都是通過(guò)這個(gè)緩沖器傳遞的。</p><p>  (2)讀/寫(xiě)控制邏輯</p><p>  它與CPU的6根控制線相連,控制8255A內(nèi)部的各種操作。控制線RESET用來(lái)使8255A復(fù)位。和地址線A1及A0用于芯片選擇和通道尋址??刂凭€ 和 用來(lái)決定8位內(nèi)部和外部數(shù)據(jù)總線上信息傳送的方向,即控制把CPU的控制命令或輸出的數(shù)據(jù)送到相應(yīng)的

23、通道,或把狀態(tài)信息或輸入數(shù)據(jù)送到CPU。8255A的讀/寫(xiě)控制邏輯的作用,是從CPU的地址和控制總線上接受輸入的信號(hào),轉(zhuǎn)變成各種命令送到A組或B組控制電路進(jìn)行相應(yīng)的操作。</p><p>  7)與CPU相連的</p><p>  RESET:復(fù)位信號(hào)。當(dāng)信號(hào)來(lái)時(shí),所有寄存器都被清除。同時(shí)三個(gè)數(shù)據(jù)端口被自動(dòng)置為輸入端口。D7~D0:它們是8255A的數(shù)據(jù)線和系統(tǒng)總線相連。</p&g

24、t;<p>  CS:片選信號(hào)。在系統(tǒng)中,一般根據(jù)全部接口芯片來(lái)分配若于低位地址(比如A5、A4、A3)組成各種芯片選擇碼,當(dāng)這幾位地址組成某一個(gè)低電平,于8255A被選中。只有當(dāng)有效時(shí),讀信號(hào)寫(xiě)才對(duì)8255進(jìn)行讀寫(xiě)。 </p><p>  RD:讀信號(hào)。當(dāng)此信號(hào)有效時(shí),CPU可從8255A中讀取數(shù)據(jù)。</p><p>  WR:寫(xiě)信號(hào)。當(dāng)此信號(hào)有效時(shí),CPU可向8255A中

25、寫(xiě)入數(shù)據(jù)。</p><p>  A1、A0:端口選擇信號(hào)。8255A內(nèi)部有3個(gè)數(shù)據(jù)端口和1個(gè)控制端口,共4個(gè)端口。規(guī)定當(dāng)A1、A0為00時(shí),選中A端口;為01時(shí),中B端口;為10時(shí),選中C端口;為11時(shí),選中控制口。</p><p><b>  2選擇器件LED:</b></p><p>  1)芯片在本設(shè)計(jì)中的作用:LED發(fā)光二極管在本設(shè)計(jì)中

26、采用7段數(shù)字發(fā)光二極管,作為終端顯示。顯示時(shí)間的分秒。</p><p>  2)LED的功能分析:物理構(gòu)造:LED發(fā)光二級(jí)管,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個(gè)PN結(jié),具有單向?qū)щ娦浴?lt;/p><p>  3)工作原理:當(dāng)在發(fā)光二極管PN結(jié)上加正向電壓時(shí),PN結(jié)勢(shì)壘降低,載流子的擴(kuò)散運(yùn)動(dòng)大于漂移運(yùn)動(dòng),致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空

27、穴與電子相遇后會(huì)產(chǎn)生復(fù)合,復(fù)合時(shí)產(chǎn)生的能量大部分以光的形式出現(xiàn)。</p><p>  4)數(shù)字成像:將七個(gè)發(fā)光管進(jìn)行組合,排列成數(shù)字圖形8,再根據(jù)需要控制七個(gè)管的亮與滅,即可顯示出定義數(shù)字。有段選碼和位選碼確定數(shù)字1~8的輸出并在延時(shí)程序中保持復(fù)位。它是一種當(dāng)外加電壓超過(guò)額定電壓時(shí)發(fā)生擊穿,并因此而產(chǎn)生可見(jiàn)光的器件。這種數(shù)碼管是有7段或8段筆畫(huà)顯示器組成一個(gè)字符而形成的。</p><p>

28、;<b>  如下圖:</b></p><p>  (a) (b) (c)</p><p><b>  (d)</b></p><p>  圖2-4LED結(jié)構(gòu)圖</p><p>  LED顯示管段選碼

29、編碼表</p><p>  表2-3 LED顯示管段選碼編碼表</p><p>  5) LED的技術(shù)參數(shù)分析</p><p>  LED發(fā)光二極管的壓降一般為1.5-2.0V,其工作電流一般取10-20Ma,發(fā)光二極管可應(yīng)用于直流驅(qū)動(dòng)電路、交流驅(qū)動(dòng)電路和脈沖驅(qū)動(dòng)電路。</p><p>  由于8255A的最大驅(qū)動(dòng)電流為4.0mA,而LE

30、D的工作電流一般為10-20mA,所以需要加一個(gè)驅(qū)動(dòng)器74LS244。</p><p>  3、74LS244芯片:</p><p>  1) 74LS244在本設(shè)計(jì)中的作用:</p><p> ?。?)數(shù)據(jù)的緩沖驅(qū)動(dòng),傳遞地址和數(shù)據(jù)信號(hào)。</p><p> ?。?)是數(shù)據(jù)總路線收發(fā)器,也是三態(tài)的總線收發(fā)器。具有八個(gè)輸入引腳和八個(gè)輸出引腳,

31、兩個(gè)使能端。當(dāng)它的使能端為有效低電平時(shí),輸出端就能將輸入信息放大輸出。</p><p>  2) 74LS244的邏輯圖及真值表</p><p>  2-5 74LS244邏輯圖 表2-4 74LS244真值表</p><p>  3)74LS244的主要技術(shù)參數(shù)</p><p>  表2-5 74LS24

32、4的主要技術(shù)參數(shù)</p><p><b>  4、 開(kāi)關(guān)</b></p><p><b>  1)開(kāi)關(guān)的作用:</b></p><p>  本次設(shè)計(jì)需要用七位開(kāi)關(guān)置數(shù)來(lái)修改時(shí)間。</p><p>  2)開(kāi)關(guān)功能的分析:注:由于本程序后來(lái)改進(jìn)加入了時(shí)的倒計(jì),所以下面的開(kāi)關(guān)是針對(duì)有時(shí)、分、秒的設(shè)計(jì)&

33、lt;/p><p>  開(kāi)關(guān)K4~K1位設(shè)置輸入的時(shí)間數(shù)字(0~15),K7~K5用來(lái)控制對(duì)不時(shí)間的時(shí)分秒位數(shù)的修改,k8控制程序的運(yùn)行與否,僅當(dāng)K8為1時(shí)即程序停止運(yùn)行時(shí)才可以修改時(shí)間。 </p><p>  3)邏輯開(kāi)關(guān)及其編碼</p><p>  圖2-6邏輯開(kāi)關(guān) 表2-6邏輯開(kāi)關(guān)邏輯編碼表</p><p>  開(kāi)

34、關(guān)高電平:+5V、低電平:0V</p><p>  三.硬件總邏輯圖及其說(shuō)明</p><p>  圖3-1硬件總邏輯圖</p><p>  AD0~AD19經(jīng)鎖存器分別送往總線收發(fā)器和地址譯碼器。經(jīng)總線收發(fā)器將低八位數(shù)據(jù)與8255的八位數(shù)據(jù)線相連地址線A1、A2與8255的A0、A1相連,即偶地址有效。控制總線RD、WR、RESET分別與8255相應(yīng)的控制信號(hào)線

35、連接。片選信號(hào)CS0與8255的CS信號(hào)連接,則8255的端口地址為04A0~04A6。8255的PA口用于存放位選碼,使用的是高四位,分別連接到四個(gè)七段LED顯示器上。使用的是共陰極接法。PB口用于存放段選碼,八位全部連接到八個(gè)二極管的陽(yáng)極上。所以,PA口中的信號(hào)是“0”才能表示選中了該位七段LED顯示器,而PB口中信號(hào)為“1”表示使該二極管發(fā)光,否則,不發(fā)光。</p><p><b>  四.控制程

36、序設(shè)計(jì)</b></p><p>  1、控制程序設(shè)計(jì)思路說(shuō)明:</p><p>  程序框架是一個(gè)主程序用于設(shè)置8255的工作方式;一個(gè)顯示程序用于顯示當(dāng)前的時(shí)值、分值和秒值,在其中還設(shè)置了一個(gè)小的程序用于延時(shí),以穩(wěn)定顯示的數(shù)值。采用動(dòng)態(tài)刷新的方式將六位數(shù)字顯示一遍。每遍約20秒的時(shí)間,顯示約50次可使得時(shí)間約為一秒。然后將時(shí)間減少一秒,再次將時(shí)間顯示出來(lái)。如此循環(huán),直到時(shí)間減

37、少到00時(shí)00分00秒為止。</p><p><b>  2、程序流程圖</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  N</b></p><p><b&g

38、t;  Y</b></p><p>  圖4-1 總流程圖</p><p><b>  修改緩沖區(qū)子程序</b></p><p>  圖4-2 計(jì)時(shí)子程序流程圖</p><p><b>  顯示子程序</b></p><p>  圖4-3 顯示子程序流程圖&

39、lt;/p><p><b>  3、控制程序</b></p><p>  .MODELTINY</p><p>  PCIBAR3EQU1CH;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址, 也為DMA & 32 BIT RAM板卡上的8237提供基地址) </p><p>  Vendor_IDEQU

40、10EBH;廠商ID號(hào)</p><p>  Device_IDEQU8376;設(shè)備ID號(hào)</p><p>  .STACK100</p><p><b>  .DATA</b></p><p>  IO_Bit8_BaseAddressDW?</p><p>  msg0

41、DB'BIOS不支持訪問(wèn)PCI $'</p><p>  msg1DB'找不到Star PCI9052板卡 $'</p><p>  msg2DB'讀8位I/O空間基地址時(shí)出錯(cuò)$'</p><p>  COM_ADDDW00F3H ;控制口偏移量</p>

42、<p>  PA_ADDDW00F0H ;PA口偏移量</p><p>  PB_ADDDW00F1H ;PB口偏移量</p><p>  PC_ADDDW00F2H ;PC口偏移量</p><p>  len db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段碼表</p>

43、;<p>  time db 00h,00h,00h,00h,04h,02h</p><p>  len0 db 00h,40h,60h,20h,30h,70h</p><p>  len1 db 09h,05h,09h,05h,03h,02h</p><p><b>  .CODE</b></p><p

44、>  START:MOVAX,@DATA</p><p>  MOVDS,AX</p><p><b>  NOP</b></p><p>  CALLInitPCI</p><p>  CALLModifyAddress ;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址</p>&

45、lt;p>  ;*********************************************************************</p><p>  MOV al,89h ;10001001b初始化工作方式控制字 </p><p>  MOV dx,COM_ADD ;工作方式寄存器端口地址

46、</p><p><b>  OUT dx,al</b></p><p>  loop3: MOV dx,PC_ADD ;PC口端口地址</p><p>  IN al,dx ;讀入八位開(kāi)關(guān)量</p><p>  AND al,80h ;判斷最高位K8是否為1

47、 </p><p>  CMP al,80h ;為1時(shí)設(shè)置數(shù)據(jù)緩沖區(qū)初值</p><p>  JE setlen</p><p>  CALL display1 ;調(diào)用顯示子程序,顯示一秒 </p><p>  CALL alter ;調(diào)用數(shù)據(jù)緩沖區(qū)修改子程序</p>

48、<p>  JMP loop3 </p><p>  setlen: MOV bx,offset time ;數(shù)據(jù)緩沖區(qū)送BX </p><p>  MOV dx,PC_ADD ;PC口端口地址</p><p>  IN al,dx ;讀八位開(kāi)關(guān)量</p><p>  MO

49、V ah,al ;AH=AL 保存數(shù)據(jù),下面的操作會(huì)改變al的值</p><p>  AND ax,0f70h ;選取5 6 7進(jìn)行輸入選擇判斷,并保留ah中的低四位</p><p>  MOV si,offset len0 </p><p>  loop0: MOV cl,byte ptr [si]</p>

50、<p><b>  CMP al,cl</b></p><p>  JNE loop00</p><p>  MOV byte ptr [bx],ah ;讀入的開(kāi)關(guān)量低四位存入緩沖 </p><p>  CALL display1 ;調(diào)用顯示子程序</p><p><b>

51、;  JMP loop3</b></p><p>  loop00: INC si</p><p><b>  INC bx</b></p><p>  JMP loop0 </p><p>  ;************************************************

52、*********************</p><p>  display1 PROC ;顯示子程序</p><p>  PUSH si ;保護(hù)SI</p><p>  PUSH dx ;保護(hù)DX</p><p>  PUSH cx ;保護(hù)CX

53、 </p><p>  PUSH bx ;保護(hù)BX</p><p>  PUSH ax ;保護(hù)AX </p><p>  PUSH di ;保護(hù)DI </p><p>  MOV di,40h ;控制1s的計(jì)時(shí)</p>

54、;<p>  loop1: MOV si,offset time ;數(shù)據(jù)緩沖區(qū)首地址送SI</p><p>  MOV cx,6 </p><p>  MOV ah,0feh ;設(shè)置位選 選中秒的個(gè)位</p><p>  loop2: MOV al,byte ptr [si] ;位移量

55、</p><p>  MOV bx,offset len ;查表轉(zhuǎn)換</p><p>  XLAT ;查數(shù)據(jù)段表,[al+bx]->al</p><p>  MOV dx,PB_ADD ;PB口地址</p><p>  OUT dx,al ;送段選碼</p&

56、gt;<p>  MOV al,ah ;位選碼AL</p><p>  MOV dx,PA_ADD ;PA口地址</p><p>  OUT dx,al </p><p>  CALL delay ;調(diào)用延時(shí)子程序</p><p>  MOV al,

57、0ffh ;禁止顯示</p><p><b>  OUT dx,al</b></p><p>  ADD si,1 </p><p><b>  ROL ah,1 </b></p><p>  LOOP loop2</p><p>  D

58、EC di ;控制顯示一秒</p><p>  JNE loop1</p><p>  POP di </p><p><b>  POP ax</b></p><p><b>  POP bx </b></p><p>&l

59、t;b>  POP cx</b></p><p><b>  POP dx</b></p><p><b>  POP si</b></p><p><b>  RET</b></p><p>  display1 ENDP</p><p&

60、gt;  ;*********************************************************************</p><p>  alter PROC ;數(shù)據(jù)緩沖區(qū)子程序</p><p><b>  PUSH si</b></p><p><b>  P

61、USH ax</b></p><p>  PUSH bx </p><p><b>  PUSH dx</b></p><p>  MOV si,offset time ;數(shù)據(jù)緩沖區(qū)首值送BX</p><p>  MOV bx,offset len1</p><p&

62、gt;  loop7:MOV ax,[si] ;緩沖區(qū)中的秒值取入ax</p><p>  MOV dx,[bx]</p><p>  SUB al,1 </p><p>  CMP al,-1 </p><p><b>  JG loop6</b>

63、</p><p>  MOV al,dl </p><p>  SUB ah,1 </p><p><b>  CMP ah,-1</b></p><p>  JG loop6 </p><p><b>  MOV ah,dh

64、</b></p><p>  MOV [si],ax</p><p><b>  INC si</b></p><p><b>  INC si</b></p><p><b>  INC bx</b></p><p>  INC bx

65、 </p><p>  JMP loop7 </p><p>  loop6:MOV [si],ax ;修改后的值再保存回緩沖區(qū)</p><p><b>  POP dx</b></p><p><b>  POP bx </b></p>

66、<p><b>  POP ax</b></p><p><b>  POP si</b></p><p><b>  RET</b></p><p>  alter ENDP</p><p>  ;**********************************

67、***********************************</p><p>  delay PROC ;延時(shí)子程序</p><p><b>  PUSH cx</b></p><p>  MOV cx,0ffffh</p><p><b>  loop5: </b

68、></p><p>  LOOP loop5</p><p><b>  POP cx </b></p><p><b>  RET </b></p><p>  delay ENDP</p><p>  ;**************************

69、*******************************************</p><p>  InitPCIPROCNEAR</p><p>  MOVAH,00H</p><p>  MOVAL,03H</p><p>  INT10H;清屏</p><p>  MOVAH,0B1

70、H</p><p>  MOVAL,01H</p><p><b>  INT1AH</b></p><p><b>  CMPAH,0</b></p><p>  JZInitPCI2</p><p>  LEADX,msg0</p>&

71、lt;p>  InitPCI1:MOVAH,09H</p><p><b>  INT21H</b></p><p><b>  JMPExit</b></p><p>  InitPCI2:MOVAH,0B1H</p><p>  MOVAL,02H</p>

72、;<p>  MOVCX,Device_ID</p><p>  MOVDX,Vendor_ID</p><p><b>  MOVSI,0</b></p><p><b>  INT1AH</b></p><p>  JNCInitPCI3;是否存在Star PCI

73、9052板卡</p><p>  LEADX,msg1</p><p>  JMPInitPCI1</p><p>  InitPCI3:MOVDI,PCIBAR3</p><p>  MOVAH,0B1H</p><p>  MOVAL,09H</p><p>  INT

74、1AH;讀取該卡PCI9052基地址</p><p>  JNCInitPCI4</p><p>  LEADX,msg2</p><p>  JMPInitPCI1</p><p>  InitPCI4:ANDCX,0FFFCH</p><p>  MOVIO_Bit8_BaseAddres

75、s,CX</p><p><b>  RET</b></p><p>  InitPCIENDP</p><p>  ModifyAddressPROCNEAR</p><p>  ADDCOM_ADD,CX</p><p>  ADDPA_ADD,CX</p>

76、<p>  ADDPB_ADD,CX</p><p>  ADDPC_ADD,CX</p><p><b>  RET</b></p><p>  ModifyAddressENDP</p><p>  Exit:MOVAH,4CH</p><p><b&g

77、t;  INT21H</b></p><p>  ENDSTART</p><p><b>  五.上機(jī)調(diào)試過(guò)程</b></p><p>  1、硬件調(diào)試:本實(shí)驗(yàn)所用的硬件主要是實(shí)驗(yàn)箱和集成的七段LED顯示板。共有四個(gè)七段LED顯示器,采用的是共陰極接法,七段LED的共陰極接地,CE端接低電平,七段LED的陽(yáng)極接到八個(gè)模擬開(kāi)關(guān)

78、上。改變開(kāi)關(guān)量,則七段LED顯示出相應(yīng)的數(shù)字。將四個(gè)七段LED測(cè)試完后,全部正常。硬件調(diào)試成功。</p><p><b>  2、軟件調(diào)試: </b></p><p>  1)此次實(shí)驗(yàn)的設(shè)備原因,在正式編程之前要加入一段設(shè)備的初始化程序,檢查設(shè)備,讀取設(shè)備的一些信息,然后是自己設(shè)計(jì)代碼完成實(shí)驗(yàn)要求,</p><p>  2)來(lái)添加的新的任務(wù)中要

79、求初始值可以通過(guò)邏輯開(kāi)關(guān)隨意設(shè)置,這就要對(duì)C口的PC0~PC7另外編寫(xiě)一段程序進(jìn)行相應(yīng)的判斷和控制。這些都不是很困難,關(guān)鍵是編寫(xiě)的程序既要完成些功能又要簡(jiǎn)短才行。若程序太長(zhǎng),雖然可以編譯并且鏈接成功,但顯得很煩瑣,看起來(lái)也很費(fèi)力。所以,修改的程序時(shí)盡量使用循環(huán)控制語(yǔ)句來(lái)完成的。</p><p>  3)有太多的判斷,再根據(jù)判斷轉(zhuǎn)去執(zhí)行不同的操作,這就需要使用標(biāo)號(hào),但同樣的標(biāo)號(hào)如果使用太多就又會(huì)給程序產(chǎn)生邏輯上的混

80、亂,所以我使用查表法將要判斷的值存入緩沖區(qū)中,要判斷時(shí)就于與緩沖區(qū)中的值比較,這樣就使得程序簡(jiǎn)單明了。有語(yǔ)法錯(cuò)誤修改起來(lái)就比較容易了。</p><p>  3、聯(lián)機(jī)調(diào)試:在串口通訊成功時(shí),打開(kāi)程序文件,編譯后連接,程序結(jié)構(gòu)無(wú)問(wèn)題時(shí)連接成功,開(kāi)始單步運(yùn)行并調(diào)試,然后全速運(yùn)行。 </p><p>  六.設(shè)計(jì)結(jié)果分析及問(wèn)題討論</p><p>  1、課程設(shè)計(jì)結(jié)果及分析

81、:成功的完成了倒計(jì)1S的顯示及在時(shí)分秒之間的轉(zhuǎn)換,能循環(huán)倒計(jì)。 </p><p><b>  2、問(wèn)題討論:</b></p><p>  1)8255的工作方式</p><p><b>  2)程序的優(yōu)化</b></p><p>  3)輸入及運(yùn)行開(kāi)關(guān)的設(shè)置與確定 </p>

82、<p>  3、收獲,體會(huì)和建議:</p><p>  在微機(jī)原理理論課程的學(xué)習(xí)結(jié)束以后,感到自己學(xué)到的知識(shí)非常片面,而課程設(shè)計(jì)就是一個(gè)很好的機(jī)會(huì),不僅可以鞏固書(shū)本上的內(nèi)容,更可以讓知識(shí)和應(yīng)用結(jié)合起來(lái)。事實(shí)證明這確實(shí)對(duì)我的學(xué)習(xí)產(chǎn)生了很大的幫助,從剛開(kāi)始對(duì)理論知識(shí)的模糊到后來(lái)的逐漸清晰,這兩周我收獲了很多。</p><p>  在剛拿到課題時(shí),從學(xué)長(zhǎng)口中得知要用到8255A芯片

83、以及LED七段顯示器,而自己并沒(méi)有做太多的思考,于是在老師的第一次驗(yàn)收時(shí)發(fā)現(xiàn)自己根本不清楚為什么選擇這些硬件。后來(lái)比較了其他的一些芯片,才得出了結(jié)論。</p><p>  本設(shè)計(jì)的上機(jī)實(shí)驗(yàn)歷時(shí)兩個(gè)星期,此外還包括許多預(yù)習(xí)工作。由于課程設(shè)計(jì)涉及到的知識(shí)點(diǎn)比較多,所以我去圖書(shū)館查閱了很多有關(guān)自己的課題方面的資料。不僅鞏固了以前所學(xué)的知識(shí),也收獲了不少新的知識(shí)。在上機(jī)實(shí)驗(yàn)的過(guò)程中,也體會(huì)到了有強(qiáng)大的理論儲(chǔ)備是基礎(chǔ),但在

84、實(shí)踐過(guò)程中自己動(dòng)手操作又是另一回事。通過(guò)本課題,使我們對(duì)8255及LED內(nèi)部結(jié)構(gòu)與及應(yīng)用有了進(jìn)一步的認(rèn)識(shí)和理解,特別是8255A作為并行接口芯片其用途也很廣泛,可以用于鍵盤(pán)接口,LED顯示器接口,打印機(jī)接口等。同時(shí)通過(guò)對(duì)8255芯片的初始化程序的編寫(xiě),也提高了自己的編程能力;此外通過(guò)上機(jī)調(diào)試,也鍛煉了我們實(shí)際動(dòng)手的能力,以及如何分析問(wèn)題,解決問(wèn)題的能力,為將來(lái)走向工作崗位做鋪墊。</p><p>  另外就是增強(qiáng)

85、了我用匯編語(yǔ)言來(lái)編寫(xiě)程序的能力。以前學(xué)習(xí)匯編語(yǔ)言時(shí),學(xué)的很不扎實(shí),直接導(dǎo)致了在實(shí)驗(yàn)過(guò)程在中編寫(xiě)程序很不順利。出現(xiàn)了諸多錯(cuò)誤。好在通過(guò)與同學(xué)討論,以及查閱了大量的資料,糾正了錯(cuò)誤。使我對(duì)匯編語(yǔ)言實(shí)現(xiàn)了第二次的學(xué)習(xí),更深一層的理解并掌握了匯編語(yǔ)言。計(jì)算機(jī)語(yǔ)言,必須通過(guò)自己的親自編寫(xiě)來(lái)對(duì)實(shí)際問(wèn)題進(jìn)行解決。就比如說(shuō)這次實(shí)驗(yàn),雖然對(duì)匯編語(yǔ)言的指令及編寫(xiě)格式已經(jīng)有了很透徹的了解,但是在實(shí)際編寫(xiě)過(guò)程中,卻出現(xiàn)了不知如何表達(dá)的問(wèn)題。這種能力的強(qiáng)化是需要

86、經(jīng)常鍛煉的。本次課程設(shè)計(jì)正好給了我一次鍛煉的機(jī)會(huì),增強(qiáng)了我在理解的基礎(chǔ)上,能編寫(xiě)匯編語(yǔ)言解決實(shí)際問(wèn)題的能力。</p><p>  做實(shí)驗(yàn)千萬(wàn)要細(xì)心,避免由于粗心造成的錯(cuò)誤。如果調(diào)試不出理想的結(jié)果,千萬(wàn)不能急躁,要從硬件到軟件一步步仔細(xì)的檢查,找到錯(cuò)誤并糾正??傊?,做實(shí)驗(yàn)一定要戒急戒躁,一定要有耐心,要對(duì)自己的能力充滿信息。</p><p>  最后說(shuō)說(shuō)自己的一些小建議。學(xué)校應(yīng)多給學(xué)生這樣的

87、動(dòng)手實(shí)踐的機(jī)會(huì),理論課和實(shí)踐課應(yīng)該保持想?yún)f(xié)調(diào)的教學(xué)效果。多讓學(xué)生分組討論,共同完成某項(xiàng)實(shí)驗(yàn),這樣不僅可以使每個(gè)同學(xué)得到鍛煉,同時(shí)也培養(yǎng)了學(xué)生的團(tuán)隊(duì)精神。</p><p>  還有一定要謝謝老師的指導(dǎo)幫助,從而使我能順利的完成課程設(shè)計(jì),并受益匪淺。</p><p><b>  設(shè)計(jì)者:田元</b></p><p>  完成時(shí)間:2008年12月&

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論