課程設(shè)計(jì)報(bào)告“9秒倒計(jì)時(shí)設(shè)計(jì)”_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  微機(jī)原理及應(yīng)用</b></p><p>  課 程 設(shè) 計(jì)</p><p>  課程設(shè)計(jì)題目:9秒倒計(jì)時(shí)設(shè)計(jì)</p><p><b>  一、設(shè)計(jì)目的</b></p><p>  通過課程設(shè)計(jì)使學(xué)生更進(jìn)一步掌握微機(jī)原理及應(yīng)用課程的有關(guān)知識,提高應(yīng)用微機(jī)解決問題的能

2、力,加深對微機(jī)應(yīng)用的理解。通過查閱資料,結(jié)合所學(xué)知識進(jìn)行軟、硬件的設(shè)計(jì),使學(xué)生初步掌握應(yīng)用微機(jī)解決問題的步驟及方法。為以后學(xué)生結(jié)合專業(yè)從事微機(jī)應(yīng)用設(shè)計(jì)奠定基礎(chǔ)。</p><p>  二、設(shè)計(jì)的原始資料及依據(jù)</p><p>  查閱可編程并行芯片8255、中斷控制等其他相關(guān)資料。</p><p>  用簡單的輸入輸出端口等硬件,結(jié)合LED顯示計(jì)時(shí)秒數(shù)。 </p

3、><p>  三、設(shè)計(jì)的主要內(nèi)容及要求</p><p>  內(nèi)容:利用微機(jī)原理實(shí)驗(yàn)箱,采用一組發(fā)光二極管來模擬報(bào)警燈。</p><p><b>  要求:</b></p><p>  1.采用8253對307200HZ信號進(jìn)行分頻作為秒脈沖。</p><p>  2.采用8259中斷管理器對輸入的秒脈

4、沖信號進(jìn)行管理,及時(shí)更新8255的控制1個(gè)數(shù)碼管,讓其從9減到0,然后通過揚(yáng)聲器發(fā)出警報(bào)</p><p>  *3.可通過8個(gè)開關(guān)任意設(shè)置初值。</p><p>  四、對設(shè)計(jì)說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求 </p><p>  1.課程設(shè)計(jì)說明書(論文)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少于3000字。</p><p>  2.學(xué)

5、生應(yīng)撰寫的內(nèi)容為:目錄、正文、參考文獻(xiàn)等。課程設(shè)計(jì)說明書(論文)的結(jié)構(gòu)及各部分內(nèi)容要求可參照《沈陽工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范》執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。</p><p>  3.說明書(論文)手寫或打印均可。手寫要用學(xué)校統(tǒng)一的課程設(shè)計(jì)用紙,用黑或藍(lán)黑墨水工整書寫;打印時(shí)按《沈陽工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范》的要求進(jìn)行打印。</p><p>  4.

6、課程設(shè)計(jì)說明書(論文)裝訂順序?yàn)椋悍饷?、任?wù)書、成績評定表、目錄、正文、參考文獻(xiàn)。</p><p>  五、 設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求;</p><p>  交課程設(shè)計(jì)說明書一份。在說明書中要有設(shè)計(jì)原理、硬件電路接線圖、設(shè)計(jì)的程序及必要注釋等。</p><p><b>  六、時(shí)間進(jìn)度安排;</b></p>

7、<p>  七、主要參考資料(文獻(xiàn))。</p><p>  [1] 王惠中. 微機(jī)原理及應(yīng)用.武漢:武漢大學(xué)出版社,2011</p><p>  [2] 鄒逢興. 微型計(jì)算機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo). 北京:清華大學(xué)出版社,2009</p><p>  [3] 趙全利, 呂建平, 鄒雪艷.微型計(jì)算機(jī)原理及接口技術(shù).北京: 機(jī)械工業(yè)出版社,2009<

8、/p><p>  [4] 何宏.微型計(jì)算機(jī)原理與接口技術(shù).陜西:西安電子科技大學(xué)出版社,2009</p><p><b>  摘 要</b></p><p>  本次設(shè)計(jì)的程序?yàn)?秒倒計(jì)時(shí)設(shè)計(jì),是通過并行接口芯片8255、定時(shí)/計(jì)數(shù)器8254芯片與8086計(jì)算機(jī)的硬件連接,以及延時(shí)方法,來實(shí)現(xiàn)倒計(jì)時(shí)秒表的功能。</p><p&g

9、t;  選用8255A與LED數(shù)碼管相連,構(gòu)成顯示電路。其中B端口與LED的位線相連,用于控制數(shù)字的輸入,A端口與LED顯示器的段控制口相連,并且通過循環(huán)右移來完成動態(tài)顯示的效果。</p><p>  其中片選接到系統(tǒng)總線的IOY0口。利用8254定時(shí)器控制一秒的時(shí)間進(jìn)行倒計(jì)時(shí),8254采用方式3輸出方波,用兩個(gè)計(jì)數(shù)器進(jìn)行分頻,將有系統(tǒng)提供的1MHZ進(jìn)行兩次分頻得到1HZ的頻率,即1s。通過尋找上升沿得到1s鐘的

10、時(shí)間,完成每過1s減一次數(shù)的效果。再將8254輸出的方波接到8255的PC0接口,即8255采用81H工作方式字,A、B端口輸出,C端口輸入。</p><p>  再利用8259產(chǎn)生中斷,每次按一次開關(guān)就進(jìn)入循環(huán)延時(shí)程序,再按一次開關(guān)中斷結(jié)束,跳出循環(huán)程序。即通過開關(guān)控制倒計(jì)時(shí)的暫停和繼續(xù)。</p><p>  關(guān)鍵詞 :循環(huán)、延時(shí)、中斷、分頻</p><p>&l

11、t;b>  目 錄</b></p><p><b>  摘 要I</b></p><p><b>  第一章 概述1</b></p><p>  1.1 CPU發(fā)展史1</p><p>  1.2 設(shè)計(jì)題目1</p><p>  1.3 設(shè)計(jì)目的1

12、</p><p>  1.4 設(shè)計(jì)要求2</p><p>  1.5 設(shè)計(jì)內(nèi)容2</p><p>  第二章 設(shè)計(jì)器材與芯片3</p><p><b>  2.1設(shè)計(jì)器材3</b></p><p>  2.2芯片功能介紹3</p><p>  2.2.1 8255

13、A芯片主要功能3</p><p>  2.2.2 8254芯片主要功能5</p><p>  2.2.3 8259芯片主要功能…………………………………………………………………………….7</p><p>  第三章 硬件設(shè)計(jì)11</p><p>  3.1 設(shè)計(jì)思路11</p><p>  3.2 電路原理圖

14、12</p><p>  第四章 軟件設(shè)計(jì)13</p><p>  4.1 顯示電路流程圖13</p><p>  4.2 秒控制電路流程圖14</p><p>  4.3 匯編指令介紹15</p><p>  4.4 源程序清單及注釋22</p><p><b>  結(jié)

15、論27</b></p><p><b>  致 謝28</b></p><p><b>  參考文獻(xiàn)29</b></p><p><b>  第一章 概述</b></p><p>  1.1 CPU發(fā)展史</p><p>  CPU(C

16、entral Processing Unit)被稱呼為微處理器。微處理器是微型計(jì)算機(jī)的核心部件,它的性能在很大程度上決定了微型計(jì)算機(jī)的性能。目前,以Pentium Pro(P6)為代表的微處理器已經(jīng)進(jìn)入第六代。下面介紹一下CPU的發(fā)展史:第一代(1971-1973年):4位或低檔8位微處理器。第一代微處理器的芯片采用PMOS(Metal-Oxide Semicondutor,金屬氧化物半導(dǎo)體)工藝。第二代(1974-1978年):中高檔

17、8位微處理器。第二代微處理器的芯片采用NMOS工藝。第三代(1978-1983年):16位微處理器。第三代微處理器采用HMOS高密度集成工藝技術(shù)。第四代(1983-1993年):32位高檔微處理器。第四代微處理器采用先進(jìn)的高速CMOS(HCMOS)工藝。第五代(1993年后):準(zhǔn)64位高檔微處理器。第五代微處理器采用亞微米的CMOS工藝制造。第六代(1995年后):64位微處理器。第六代微處理器性能優(yōu)異,適應(yīng)當(dāng)前對多媒體、網(wǎng)絡(luò)、通信等多

18、方面的要求。</p><p>  隨著科學(xué)技術(shù)的發(fā)展,會不斷地對微處理器提出新的要求,新型、新概念的微處理器定會層出不窮。</p><p><b>  1.2 設(shè)計(jì)題目</b></p><p>  用七段LED數(shù)碼管顯示9秒倒計(jì)時(shí)</p><p><b>  1.3 設(shè)計(jì)目的</b></p&

19、gt;<p>  通過本學(xué)期對微機(jī)原理的學(xué)習(xí),掌握的知識還停留在理論的上。但是這是一門實(shí)踐性較強(qiáng)的課程,讓學(xué)生在學(xué)完該課程之后,進(jìn)行一次課程設(shè)計(jì),使學(xué)生將課堂所學(xué)的知識和實(shí)踐有機(jī)結(jié)合起來,初步掌握計(jì)算機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的步驟和接口設(shè)計(jì)的方法,提高分析和解決實(shí)際問題的能力。</p><p>  通過設(shè)計(jì)實(shí)踐,培養(yǎng)學(xué)生查閱專業(yè)資料,工具書或參考書,了解有關(guān)工業(yè)標(biāo)準(zhǔn),掌握現(xiàn)代設(shè)計(jì)手段和軟件工具,并能以圖紙和說

20、明書表達(dá)設(shè)計(jì)思想和結(jié)果的能力。</p><p>  通過設(shè)計(jì),不但要培養(yǎng)和提高學(xué)生解決工程具體問題,動腦動手的技術(shù)工作能力,而且還要逐步建立科學(xué)正確的設(shè)計(jì)和科研思想,培養(yǎng)良好的設(shè)計(jì)習(xí)慣,牢固樹立實(shí)事求是和嚴(yán)肅認(rèn)真的工作態(tài)度。具體要求如下:</p><p>  1、中斷工作原理,定時(shí)計(jì)數(shù)原理,并行通信原理工作原理。</p><p>  2、掌握8255芯片,8254芯

21、片功能,結(jié)構(gòu)。</p><p>  3、掌握8255芯片,8254芯片的編程。</p><p>  4、能運(yùn)用所提到的芯片,設(shè)計(jì)系統(tǒng)并進(jìn)行程序開發(fā),滿足用戶需求。</p><p><b>  1.4 設(shè)計(jì)要求</b></p><p>  1、總體內(nèi)容:設(shè)計(jì)一電子時(shí)鐘,能在數(shù)碼管上顯示時(shí)間并實(shí)現(xiàn)倒計(jì)時(shí)。</p>

22、<p>  2、接口設(shè)計(jì):根據(jù)題目和所用的接口電路芯片設(shè)計(jì)出完整的接口電路,并在實(shí)驗(yàn)系統(tǒng)上完成電路的連接和調(diào)試通過.</p><p>  3、程序設(shè)計(jì):要求畫出程序框圖,設(shè)計(jì)出全部程序并給出程序設(shè)計(jì)說明和程序注釋。</p><p>  4、前期完成的實(shí)驗(yàn)有:8259A中斷控制器實(shí)驗(yàn),8255并行接口實(shí)驗(yàn),8254定時(shí)器實(shí)驗(yàn)。</p><p><b

23、>  1.5 設(shè)計(jì)內(nèi)容</b></p><p>  用七段LED數(shù)碼管顯示倒計(jì)時(shí)從原理上講是一種典型的數(shù)字電路,其中包括了組合邏輯電路和倒時(shí)序電路。</p><p>  傳統(tǒng)的設(shè)計(jì)方法有兩種,一是利用組合邏輯電路和時(shí)序電路等中小規(guī)模集成電路來設(shè)計(jì);一是利用單片機(jī)編程技術(shù)來設(shè)計(jì)。這兩種設(shè)計(jì)都存在硬件復(fù)雜,設(shè)計(jì)周期長,成本高等缺點(diǎn)。并且本學(xué)期通過對《微型計(jì)算機(jī)原理及應(yīng)用》的學(xué)

24、習(xí),利用掌握的知識進(jìn)行實(shí)踐是必要的,以鞏固基礎(chǔ)知識,培養(yǎng)獨(dú)立操作能力。</p><p>  本次課程設(shè)計(jì)要實(shí)現(xiàn)的功能為:利用8255A與LED數(shù)碼顯示器連接,開始時(shí)輸入初值9秒,利用8254定時(shí)器的分頻功能將CPU提供的系統(tǒng)時(shí)鐘頻率1.041667MHz,分頻為1HZ,以此來得到1s的準(zhǔn)確時(shí)間。然后每隔1秒,秒鐘計(jì)時(shí)減一。在其中又通過對8259中斷程序的應(yīng)用,來實(shí)現(xiàn)通過開關(guān)控制暫停計(jì)時(shí)、繼續(xù)計(jì)時(shí)的功能。</

25、p><p>  第二章 設(shè)計(jì)器材與芯片</p><p><b>  2.1設(shè)計(jì)器材</b></p><p>  1、PC微機(jī)一臺:用于對程序的編譯測試等,同時(shí)還需要對實(shí)驗(yàn)設(shè)備進(jìn)行控制,提供整個(gè)程序的運(yùn)行平臺,并且收集和釋放硬件信號,實(shí)現(xiàn)程序功能。</p><p>  2、微機(jī)原理實(shí)驗(yàn)箱一臺:此設(shè)備必須能提8255A、8254

26、芯片和數(shù)碼管等必要芯片。并且能通過接受PC機(jī)傳來的信息,顯示出相應(yīng)的功能。以支持LED顯示管倒計(jì)時(shí)的實(shí)現(xiàn)。</p><p>  3、導(dǎo)線若干條:用于電路和芯片之間的連接。</p><p><b>  2.2芯片功能介紹</b></p><p>  2.2 .1 8255簡介</p><p>  8255可編程外圍接口芯片

27、是Intel公司生產(chǎn)的通用并行I/O接口芯片,它具有A、B、C三個(gè)并行接口,用+5V單電源供電,能在以下三種工作方式下工作,下面將具體說明這三種工作方式:</p><p>  方式0—基本輸入/輸出方式;</p><p>  方式1—選通輸入/輸出方式;</p><p>  方式2—雙向選通輸入/輸出方式。</p><p>  1 . 825

28、5工作方式</p><p>  工作方式分別為工作方式0,工作方式1和工作方式2。</p><p>  1、工作方式0,又稱為基本工作方式。在此方式下,可分別將A口的8條線,B口的8條線,C口高4位對應(yīng)的4條線和C口的低四位對應(yīng)的四條線定義為輸入或輸出。故它們的輸入輸出共有16種不同的組合。</p><p>  表2.1 8255輸入輸出組合</p>

29、<p>  2:工作方式1,既選通輸入輸出方式。在這種方式下,A口和B口仍作為數(shù)據(jù)的輸出口和輸入口,同時(shí)還要利用C口的某些位作為控制和狀態(tài)信號。</p><p>  3:工作方式2,又稱雙向輸入輸出方式。這種方式只有8255的口A才有。在A口工作于雙向輸入輸出方式時(shí),要利用C口的5條線才能實(shí)現(xiàn)。因此,B口只能工作在工作方式0或工作方式1,而C口剩下的3條線可以作為輸入輸出線使用或B口方式1下的控制線。

30、</p><p>  2 . 8255的控制字</p><p>  圖2.2 8255的控制字</p><p>  8255 工作方式控制字和C口按位置位/復(fù)位控制字格式</p><p>  說明:當(dāng)控制字BIT7=1時(shí),控制字的BIT6~BIT3這4位用來控制A組,即A口的8位和C口的高4位,而控制字的低3位BIT2~BIT0用來控制B

31、組,包括B口的8位和C口的低4位。</p><p>  8255的C口具有位控功能,即端口C的8位中的任一位都可通過CPU向8255的控制寄存器寫入一個(gè)按位置位/復(fù)位控制字來置1或清0,而C口中其他位的狀態(tài)不變。其格式注意8255的C口按位置位/復(fù)位控制字的最高位D7(特征位)應(yīng)為0。</p><p>  2.2.2 8254芯片主要功能</p><p> ?。ㄒ唬?/p>

32、8254定時(shí)/計(jì)數(shù)器的引腳及功能</p><p>  8254是NMOS工藝制成,采用單一+5V電源,24引腳雙列直插式封裝,外部引腳如下所示:</p><p>  圖2.3 8254定時(shí)/計(jì)數(shù)器的引腳</p><p>  1、8254與CPU的接口引線</p><p>  D7~D0:雙向數(shù)據(jù)線:可直接與數(shù)據(jù)總線相連,用于傳遞各種數(shù)據(jù)信息;

33、</p><p>  /WR:寫信號,輸入,低電平有效,用于控制CPU對8254的寫操作;</p><p>  /RD:讀信號,輸入低電平有效。用于控制CPU對8254的讀操作;</p><p>  A1、A0:地址線,輸入信號;</p><p>  /CS:片選信號,輸入信號,低電平有效。當(dāng)/CS為0時(shí),8254被選中,允許CPU對其進(jìn)行讀

34、/寫操作。</p><p>  2、8254與外設(shè)的接口引線</p><p>  CLKO~CLK2:時(shí)鐘輸入信號;GATE0~GATE2:門控輸入信號;OUT0~OUT2:計(jì)數(shù)輸出端。</p><p><b>  3、定時(shí)與計(jì)數(shù)方式</b></p><p><b> ?。ǘ﹥?nèi)部結(jié)構(gòu)</b><

35、;/p><p>  數(shù)據(jù)總線緩沖器 讀/寫邏輯電路 控制字寄存器 計(jì)數(shù)器。</p><p> ?。ㄈ?254方式控制字</p><p>  定時(shí)/計(jì)數(shù)器8254的每個(gè)計(jì)數(shù)通道根據(jù)CPU發(fā)命令寫入控制寄存器的控制字確定工作方式和計(jì)數(shù)格式。8254控制字的格式如下所示:</p><p>  D7、D6:計(jì)數(shù)器選擇位SC1、SC0。8254的3

36、個(gè)計(jì)數(shù)器相互獨(dú)立,并且都有一個(gè)控制寄存器。但這三個(gè)控制寄存器占用同一個(gè)端口地址,即A1A0=11;</p><p>  D5、D4:讀/寫指示位RW1、RW0。CPU向某個(gè)計(jì)數(shù)器寫入初值和讀取它們的當(dāng)前值時(shí)不同的格式;</p><p>  D3、D2、D1:工作方式選擇位M2、M1、M0。8254有6種工作方式,選擇哪種工作方式由M2、M1、M0編碼確定;</p><p

37、>  DO:數(shù)值計(jì)數(shù)格式,用來選擇計(jì)數(shù)格式。DO=O,計(jì)數(shù)器按二進(jìn)制格式計(jì)數(shù);D0=1,計(jì)數(shù)器按BCD碼格式計(jì)數(shù)。</p><p>  2.2.3 8259簡介</p><p>  8259是一種可編程的中斷控制器。每塊芯片可管理8級向量中斷,同時(shí),可通過多片級連實(shí)現(xiàn)多達(dá)64級的中斷管理。 中斷控制器8259有四種主要工作方式,即全嵌套、循環(huán)優(yōu)先級、特定屏蔽和程序查詢方式。

38、同時(shí),它還有一4種從屬工作方式,即結(jié)束中斷、讀狀態(tài)、中斷請求觸發(fā)和數(shù)據(jù)緩沖方式。</p><p>  1. 8259的工作方式</p><p><b> ?。?)特殊屏蔽方式</b></p><p>  在正常情況下,當(dāng)一個(gè)中斷請求被響應(yīng)時(shí),8259將被禁止所有同級及更低優(yōu)先級中斷請求這就稱為一般屏蔽方式。但是,在一特殊情況下,希望也允許較低

39、優(yōu)先級的中斷請求產(chǎn)生中斷。</p><p><b> ?。?)中斷結(jié)束</b></p><p>  中斷結(jié)束分自動結(jié)束和利用命令結(jié)束</p><p><b> ?。?)優(yōu)先級循環(huán)</b></p><p>  它有兩種優(yōu)先級規(guī)定:循環(huán)優(yōu)先級和固定優(yōu)先級。</p><p>  固

40、定優(yōu)先級規(guī)定8個(gè)中斷源以IR0的優(yōu)先級最高依次降低。</p><p>  循環(huán)優(yōu)先級有3個(gè)結(jié)構(gòu):</p><p>  自動優(yōu)先級循環(huán)用于中斷源具有相等優(yōu)先級的情況。</p><p>  指定優(yōu)先級循環(huán)可以利用命令一次性改變優(yōu)先級。</p><p>  自動結(jié)束方式下的優(yōu)先級循環(huán),其優(yōu)先權(quán)控制方式與自動優(yōu)先級循環(huán)的相同。</p>

41、<p><b> ?。?)查詢狀態(tài)</b></p><p>  通過將操作命令字OCW3中的P位置1,可以查詢8259的狀態(tài)。</p><p>  2 . 8259的內(nèi)部控制字</p><p>  8259工作之前必須通過CPU來命令它。</p><p>  CPU命令分為兩大類:一類是初始化命令字(ICW),

42、主要是為了讓8259處于初始化狀態(tài);另一類是操作命令字(OCW),使初始化的8259去執(zhí)行具體的某種操作方式。</p><p><b> ?、懦跏蓟钭?lt;/b></p><p>  初始化命令字ICW1(寫入偶地址)</p><p><b>  1:需要ICW4</b></p><p><b

43、>  0:不需要ICW4</b></p><p>  1:單片8259 </p><p>  0:多片8259級聯(lián)</p><p><b>  1:間隔為4</b></p><p><b>  0:間隔為8</b></p><p><b&g

44、t;  1:電平觸發(fā)</b></p><p><b>  0:邊沿觸發(fā)</b></p><p>  8080/85模式下,中斷</p><p><b>  低口低8編程位</b></p><p>  圖2.4 8259初始化命令字ICW1</p><p>  ②

45、 初始化命令字ICW2(寫入奇地址)</p><p>  8086/88模式下,僅用ICW2提供不同中斷源的中斷向量碼。當(dāng)中斷響應(yīng)時(shí),根據(jù)中斷向量表獲得入口地址。</p><p> ?、?初始化命令字ICW3(寫入奇地址)</p><p>  該命令字用于多片8259的級聯(lián)。</p><p>  1:相應(yīng)IR接從屬8259</p>

46、<p><b>  0:不接8259</b></p><p><b>  主控ICW3</b></p><p><b>  3位編碼對應(yīng)從屬</b></p><p>  8259接主控的IR編號 </p><p><b>  從屬ICW3</b&g

47、t;</p><p>  圖2.5 8259初始化命令字ICW3</p><p> ?、?初始化命令字ICW4(寫入奇地址)</p><p>  [2] 操作命令字OCW (可單獨(dú)使用)</p><p>  對8259初始化之后,該芯片就進(jìn)入工作狀態(tài),準(zhǔn)備好接收IR端進(jìn)入的中斷請求。</p><p>  操作命令字O

48、CW1(寫入奇地址)</p><p>  它用于設(shè)置對8259中斷的屏蔽操作。該八位的操作字的某一位為1時(shí),它就屏蔽相對應(yīng)的IR輸入。</p><p>  操作命令字OCW2(寫入偶地址)</p><p>  該命令字用來設(shè)置優(yōu)先級是否循環(huán)、循環(huán)的方式及中斷結(jié)束的方式。</p><p><b>  編碼對應(yīng)IR的</b>

49、</p><p><b>  最低優(yōu)先級</b></p><p>  0 0 1 一般EOI</p><p>  0 1 1 特殊EOI 中斷結(jié)束命令</p><p>  1 0 1 循環(huán)優(yōu)先級的一般EOI命令</p><p&

50、gt;  1 0 0 在自動EOI下置循環(huán)優(yōu)先級 自動循環(huán) </p><p>  0 0 0 在自動EOI下清循環(huán)優(yōu)先級</p><p>  1 1 1 循環(huán)優(yōu)先級的特殊EOI命令</p><p>  1 1 0 設(shè)置優(yōu)先級 特殊

51、循環(huán)</p><p>  0 1 無效</p><p>  圖2.6 8259初始化命令字OCW2</p><p><b>  第三章 硬件設(shè)計(jì)</b></p><p><b>  3.1 設(shè)計(jì)思路</b></p><p>  設(shè)計(jì)倒計(jì)時(shí)秒表,利用8255A

52、與LED數(shù)碼管相連,構(gòu)成顯示電路。其中B端口與LED的位線相連,用于控制數(shù)字的輸入,A端口與LED顯示器的段控制口相連,并且通過循環(huán)右移來完成動態(tài)顯示的效果。</p><p>  其中片選接到系統(tǒng)總線的IOY0口。利用8254定時(shí)器控制一秒的時(shí)間進(jìn)行倒計(jì)時(shí),8254采用方式3輸出方波,用兩個(gè)計(jì)數(shù)器進(jìn)行分頻,將有系統(tǒng)提供的1MHZ進(jìn)行兩次分頻得到1HZ的頻率,即1s。通過尋找上升沿得到1s鐘的時(shí)間,完成每過1s減一

53、次數(shù)的效果。再將8254輸出的方波接到8255的PC0接口,即8255采用81H工作方式字,A、B端口輸出,C端口輸入。</p><p>  再利用8259產(chǎn)生中斷,每次按一次開關(guān)就進(jìn)入循環(huán)延時(shí)程序,再按一次開關(guān)中斷結(jié)束,跳出循環(huán)程序。即通過開關(guān)控制倒計(jì)時(shí)的暫停和繼續(xù)。</p><p><b>  3.2 電路原理圖</b></p><p>&

54、lt;b>  8254</b></p><p>  8255A LED顯示器</p><p><b>  圖3.1電路原理圖</b></p><p><b>  第四章 軟件設(shè)計(jì)</b></p><p>  4.1 顯示電路流程圖</p>

55、<p>  圖4.1顯示電路流程圖</p><p>  4.2 秒控制電路流程圖</p><p>  圖4.1 秒控制電路流程圖</p><p>  4.3 匯編指令介紹</p><p><b>  一、數(shù)據(jù)傳送指令</b></p><p>  1、通用數(shù)據(jù)傳送指令</p>

56、;<p>  MOV(Move)傳送</p><p>  PUSH(Push onto the stack)進(jìn)棧</p><p>  POP(Pop from the stack)出棧</p><p><b>  MOV指令</b></p><p>  格式為:MOV  DST,SRC</p

57、><p>  執(zhí)行的操作:(DST)<-(SRC)</p><p><b>  PUSH進(jìn)棧指令</b></p><p>  格式:PUSH  SRC</p><p>  執(zhí)行的操作:(SP)<-(SP)-2</p><p>  ((SP)+1,(SP))<-(SRC)&l

58、t;/p><p><b>  .POP出棧指令</b></p><p>  格式為:POP  DST</p><p>  執(zhí)行的操作:(DST)<-((SP+1),(SP))</p><p>  (SP)<-(SP)+2</p><p>  2、累加器專用傳送指令</p&g

59、t;<p>  IN(Input)  輸入</p><p>  OUT(Output)  輸出</p><p>  這組指令只限于使用累加器AX或AL傳送信息.</p><p><b>  IN 輸入指令</b></p><p>  長格式為: IN  AL,PORT(字節(jié))&

60、lt;/p><p>  IN  AX,PORT(字)</p><p>  執(zhí)行的操作: (AL)<-(PORT)(字節(jié))</p><p>  (AX)<-(PORT+1,PORT)(字)</p><p>  短格式為:IN  AL,DX(字節(jié))</p><p>  IN  AX,D

61、X(字)</p><p>  執(zhí)行的操作: AL<-((DX))(字節(jié))</p><p>  AX<-((DX)+1,DX)(字)</p><p><b>  OUT 輸出指令</b></p><p>  長格式為: OUT  PORT,AL(字節(jié))</p><p>  OU

62、T   PORT,AX(字)</p><p>  執(zhí)行的操作:(PORT)<-(AL)(字節(jié))</p><p>  (PORT+1,PORT)<-(AX)(字)</p><p>  短格式為: OUT  DX,AL(字節(jié))</p><p>  OUT  DX,AX(字)</p

63、><p>  執(zhí)行的操作:((DX))<-(AL)(字節(jié))</p><p>  ((DX)+1,(DX))<-AX(字)</p><p>  3、有效地址送寄存器指令</p><p>  LEA(Load effective address)有效地址送寄存器</p><p>  LDS(Load DS with

64、 Pointer)指針?biāo)图拇嫫骱虳S</p><p>  LES(Load ES with Pointer)指針?biāo)图拇嫫骱虴S</p><p>  LEA 有效地址送寄存器</p><p>  格式為: LEA   REG,SRC</p><p>  執(zhí)行的操作:(REG)<-SRC</p><p

65、>  指令把源操作數(shù)的有效地址送到指定的寄存器中</p><p>  LDS 指針?biāo)图拇嫫骱虳S指令</p><p>  格式為: LDS  REG,SRC</p><p>  執(zhí)行的操作:(REG)<-(SRC)</p><p>  (DS)<-(SRC+2)</p><p>  把源操作

66、數(shù)指定的4個(gè)相繼字節(jié)送到由指令指定的寄存器及DS寄存器中.該指令常指定SI寄存器。</p><p>  LES 指針?biāo)图拇嫫骱虴S指令</p><p>  格式為: LES  REG,SRC</p><p>  執(zhí)行的操作:(REG)<-(SRC)</p><p>  (ES)<-(SRC+2)</p>&

67、lt;p>  把源操作數(shù)指定的4個(gè)相繼字節(jié)送到由指令指定的寄存器及ES寄存器中.該指令常指定DI寄存器</p><p>  4、標(biāo)志寄存器傳送指令</p><p>  LAHF(Load AH with flags)標(biāo)志送AH</p><p>  SAHF(store AH into flags)AH送標(biāo)志寄存器</p><p>  P

68、USHF(push the flags) 標(biāo)志進(jìn)棧</p><p>  POPF(pop the flags) 標(biāo)志出棧</p><p>  LAHF 標(biāo)志送AH</p><p><b>  格式為:LAHF</b></p><p>  執(zhí)行的操作:(AH)<-(PWS的低字節(jié))</p><p&

69、gt;  SAHF AH送標(biāo)志寄存器格式為:SAHF</p><p>  執(zhí)行的操作:(PWS的低字節(jié))<-(AH)</p><p>  PUSHF 標(biāo)志進(jìn)棧</p><p><b>  格式為:PUSHF</b></p><p>  執(zhí)行的操作:(SP)<-(SP)-2</p><p&

70、gt;  ((SP)+1(SP))<-(PSW)</p><p><b>  POPF 標(biāo)志出棧</b></p><p><b>  格式為: POPF</b></p><p>  執(zhí)行的操作:(PWS)<-((SP)+1,(SP))</p><p>  (SP)<-(SP+2)&

71、lt;/p><p><b>  二、算術(shù)指令</b></p><p><b>  1、加法指令</b></p><p>  ADD(add)加法</p><p>  ADC(add with carry)帶進(jìn)位加法</p><p>  INC(increment)加1</p

72、><p><b>  ADD  加法指令</b></p><p>  格式:ADD   DST,SRC</p><p>  執(zhí)行的操作:(DST)<-(SRC)+(DST)</p><p>  ADC  帶進(jìn)位加法指令</p><p>  格式: 

73、;ADC   DST,SRC</p><p>  執(zhí)行的操作:(DST)<-(SRC)+(DST)+CF</p><p>  .ADD  加1指令</p><p>  格式:INC   OPR</p><p>  執(zhí)行的操作:(OPR)<-(OPR)+1</p>&l

74、t;p><b>  2、減法指令</b></p><p>  SUB(subtract)減法</p><p>  SBB(subtract with borrow)帶借位減法</p><p>  DEC(Decrement)減1</p><p>  NEG(Negate)求補(bǔ)</p><p>

75、;  CMP(Compare)比較</p><p><b>  SUB  減法指令</b></p><p>  格式: SUB  DST,SRC</p><p>  執(zhí)行的操作:(DST)<-(DST)-(SRC)</p><p>  SBB  帶借位減法指令</p>&

76、lt;p>  格式: SBB  DST,SRC</p><p>  執(zhí)行的操作:(DST)<-(DST)-(SRC)-CF</p><p>  DEC  減1指令格式:  DEC  OPR</p><p>  執(zhí)行的操作:(OPR)<-(OPR)-1</p><p><b>

77、  NEG  求補(bǔ)指令</b></p><p>  格式:NEG  OPR</p><p>  執(zhí)行的操作:(OPR)<- -(OPR)</p><p><b>  CMP  比較指令</b></p><p>  格式:CMP  OPR1,OPR2</p&g

78、t;<p>  執(zhí)行的操作:(OPR1)-(OPR2)</p><p>  該指令與SUB指令一樣執(zhí)行減法操作,但不保存結(jié)果,只是根據(jù)結(jié)果設(shè)置條件標(biāo)志。</p><p><b>  3、乘法指令</b></p><p>  MUL(Unsigned Multiple)無符號數(shù)乘法</p><p>  IMU

79、L(Signed Multiple)帶符號數(shù)乘法</p><p>  MUL 無符號數(shù)乘法指令</p><p>  格式: MUL  SRC</p><p><b>  執(zhí)行的操作:</b></p><p>  字節(jié)操作數(shù):(AX)<-(AL)*(SRC)</p><p>  字操

80、作數(shù):(DX,AX)<-(AX)*(SRC)</p><p>  IMUL 帶符號數(shù)乘法指令</p><p>  格式: IMUL  SRC</p><p>  執(zhí)行的操作:與MUL相同,但必須是帶符號數(shù),而MUL是無符號數(shù)。</p><p><b>  4、除法指令</b></p><

81、;p>  DIV(Unsigned divide)無符號數(shù)除法</p><p>  IDIV(Signed divide)帶符號數(shù)除法CBW(Convert byte to word)字節(jié)轉(zhuǎn)換為字</p><p>  CWD(Contert word to double word)字轉(zhuǎn)換為雙字</p><p>  DIV  無符號數(shù)除法指令</

82、p><p>  格式:DIV  SRC</p><p><b>  執(zhí)行的操作:</b></p><p>  字節(jié)操作:(AL)<-(AX)/(SRC)的商</p><p>  (AH)<-(AX)/(SRC)的余數(shù)</p><p>  字操作:(AX)<-(DX,AX)/

83、(SRC)的商</p><p>  (AX)<-(DX,AX)/(SRC)的余數(shù)</p><p>  IDIV  帶符號數(shù)除法指令</p><p>  格式:DIV  SRC</p><p>  執(zhí)行的操作與DIV相同,但操作數(shù)必須是帶符號數(shù),商和余數(shù)也均為帶符號數(shù),且余數(shù)的符號與被除數(shù)的符號相同。</p>

84、;<p>  CBW 字節(jié)轉(zhuǎn)換為字指令</p><p><b>  格式:CBW</b></p><p>  執(zhí)行的操作:AL的內(nèi)容符號擴(kuò)展到AH.即如果(AL)的最高有效位為0,則(AH)=00;如(AL)的最高有效位為1。則(AH)=0FFH</p><p>  CWD 字轉(zhuǎn)換為雙字指令</p><p>

85、;<b>  格式:CWD</b></p><p>  執(zhí)行的操作:AX的內(nèi)容符號擴(kuò)展到DX,即如(AX)的最高有效位為0,則(DX)=0;否則(DX)=0FFFFH。</p><p><b>  三、邏輯指令</b></p><p><b>  1、邏輯運(yùn)算指令</b></p><

86、;p>  AND(and)          邏輯與</p><p>  OR(or)           邏輯或</p><p>  NOT(not)   

87、0;     邏輯非</p><p>  XOR(exclusive or)異或</p><p>  TEST(test)       測試</p><p>  AND  邏輯與指令</p><p>  格式:AND 

88、60; DST,SRC</p><p>  執(zhí)行的操作:(DST)<-(DST)^(SRC)</p><p><b>  OR  邏輯或指令</b></p><p>  格式:OR   DST,SRC</p><p>  執(zhí)行的操作:(DST)<-(DST)V(SRC)</

89、p><p>  NOT  邏輯非指令</p><p>  格式:  NOT   OPR</p><p>  執(zhí)行的操作:(OPR)<-(OPR)</p><p><b>  XOR  異或指令</b></p><p>  格式:XOR 

90、  DST,SRC</p><p>  執(zhí)行的操作:(DST)<-(DST)V(SRC)</p><p>  TEST  測試指令</p><p>  格式:TEST   OPR1,OPR2</p><p>  執(zhí)行的操作:(DST)^(SRC)</p><p>  兩個(gè)操

91、作數(shù)相與的結(jié)果不保存,只根據(jù)其特征置條件碼</p><p><b>  2、移位指令</b></p><p>  SHL(shift logical left)          邏輯左移</p><p>  SAL(shift arithmetic le

92、ft)      算術(shù)左移</p><p>  SHR(shift logical right)        邏輯右移</p><p>  SAR(shift arithmetic right)     算術(shù)右移</p>

93、;<p>  ROL(Rotate left)                 循環(huán)左移</p><p>  ROR(Rotate right)        &

94、#160;       循環(huán)右移</p><p>  RCL(Rotate left through carry)  帶進(jìn)位循環(huán)左移</p><p>  RCR(Rotate right through carry) 帶進(jìn)位循環(huán)右移</p><p><b>  3、循環(huán)指令</b&

95、gt;</p><p><b>  LOOP 循環(huán)指令</b></p><p>  格式:LOOP  OPR</p><p>  測試條件:(CX)<>0</p><p>  LOOPZ/LOOPE 當(dāng)為零或相等時(shí)循環(huán)指令</p><p>  格式: LOOPZ(或LOOPE

96、)  OPR</p><p>  測試條件:(CX)<>0且ZF=1</p><p>  LOOPNZ/LOOPNE 當(dāng)不為零或不相等時(shí)循環(huán)指令</p><p>  格式: LOOPNZ(或LOOPNE)  OPR</p><p>  測試條件: (CX)<>0且ZF=0</p>&l

97、t;p>  這三條指令的步驟是:</p><p>  1) (CX)<-(CX)-1</p><p>  2) 檢查是否滿足測試條件,如滿足則(IP)<-(IP)+D8的符號擴(kuò)充.</p><p><b>  4、子程序</b></p><p><b>  CALL調(diào)用指令</b>

98、</p><p><b>  RET返回指令</b></p><p><b>  5、中斷</b></p><p><b>  INT指令</b></p><p>  格式:INT TYPE或 INT</p><p>  執(zhí)行的操作:

99、(SP)<-(SP)-2</p><p>  ((SP)+1,(SP))<-(PSW)</p><p>  (SP)<-(SP)-2</p><p>  ((SP)+1,(SP))<-(CS)</p><p>  (SP)<-(SP)-2</p><p>  ((SP)+1,(SP))&l

100、t;-(IP)</p><p>  (IP)<-(TYPE*4)</p><p>  (CS)<-(TYPE*4+2)</p><p>  4.4 源程序清單及注釋</p><p>  MY8255_MODE EQU 0606H ;宏定義</p><p>  

101、MY8255_A EQU 0600H </p><p>  MY8255_B EQU 0602H </p><p>  MY8255_C EQU 0604H</p><p>  A8254 EQU

102、06C0H</p><p>  B8254 EQU 06C2H</p><p>  C8254 EQU 06C4H</p><p>  CON8254 EQU 06C6H</p><p>  SSTACKSEGMENT STACK ;堆棧段</p><p&

103、gt;  DW 32 DUP(?)</p><p>  SSTACKENDS </p><p>  DATA SEGMENT ;數(shù)據(jù)段</p><p>  GF DB 9 </p><p>  TT DB

104、(?) </p><p>  QDXSDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;七段顯示定義</p><p>  DB 7FH,6FH</p><p>  DATA ENDS ;代碼段

105、 </p><p>  CODE SEGMENT </p><p>  ASSUME CS:CODE,DS:DATA</p><p>  START: MOV AX,DATA ;初始化

106、</p><p><b>  MOV DS,AX</b></p><p>  MOV BP,00H </p><p>  MOV DX,MY8255_MODE ;選擇8255工作方式</p><p>  MOV AL

107、,81H ;A、B端口輸出C口輸入</p><p>  OUT DX,AL </p><p>  MOV BX,OFFSET QDXS ;將QDXS首地址送入BX</p><p>  MOV DX, CON8254

108、 ;初始化8254</p><p>  MOV AL, 36H ;計(jì)數(shù)器0,方式3</p><p>  OUT DX, AL</p><p>  MOV DX, A8254 ;A端口分頻一次</p><p&g

109、t;  MOV AL, 0E8H ;送出1000HZ</p><p>  OUT DX, AL</p><p>  MOV AL, 03H</p><p>  OUT DX, AL</p><p>  MOV DX, CON8254 </p

110、><p>  MOV AL, 76H ;計(jì)數(shù)器1,方式3</p><p>  OUT DX, AL </p><p>  MOV DX, B8254 ;B端口第二次分頻</p><p>  MOV AL, 0E8H

111、 ;送出1HZ</p><p>  OUT DX, AL</p><p>  MOV AL, 03H</p><p>  OUT DX, AL</p><p>  PUSH DS ;8259中斷向量表初始化</p><p&g

112、t;  MOV AX, 0000H</p><p>  MOV DS, AX</p><p>  MOV SI, 003CH</p><p>  MOV DX, OFFSET JJSGIR7 ;中斷矢量地址</p><p>  MOV [SI], DX ;填I(lǐng)R

113、Q7的偏移矢量</p><p>  MOV AX, SEG JJSGIR7 ;段地址</p><p>  MOV SI, 003EH</p><p>  MOV [SI], AX ;填I(lǐng)RQ7的段地址矢量</p><p><b>  CLI</b&

114、gt;</p><p><b>  POP DS</b></p><p>  MOV AL, 11H ;初始化主片8259</p><p>  OUT 20H, AL ;ICW1</p><p>  MOV A

115、L, 08H</p><p>  OUT 21H, AL ;ICW2</p><p>  MOV AL, 04H</p><p>  OUT 21H, AL ;ICW3</p><p>  MOV AL, 01H</p><p&

116、gt;  OUT 21H, AL ;ICW4</p><p>  MOV AL, 6FH ;OCW1</p><p>  OUT 21H, AL</p><p>  STI ;中斷開始<

117、;/p><p>  A2: AND BP,01H ;取BP最后一位</p><p>  JZ KZ ;結(jié)果為0開始程序</p><p>  JMP REX ;

118、結(jié)果不為0進(jìn)入中斷</p><p>  KZ: CALL DIS ;調(diào)用子程序DIS</p><p>  MOV DX,MY8255_C ;讀取C端口</p><p>  IN AL,DX

119、 </p><p>  AND AL,01H ;取最后一位</p><p>  CMP AL,1 ;AL進(jìn)行減1指令</p><p>  JNZ ABC

120、 ;結(jié)果不為零,跳轉(zhuǎn)到ABC</p><p>  MOV AH,TT ;TT值送入AH</p><p>  CMP AH,0 ;AH進(jìn)行減1指令</p><p>  JNZ ABC

121、 ;結(jié)果不為零送到ABC</p><p>  PUSH AX ;保護(hù)現(xiàn)場</p><p>  DEC GF ;秒個(gè)位減1</p><p>  CMP GF,BYTE PTR 0

122、 ;結(jié)果與0比</p><p>  JNL ABB ;不小于0跳到ABB</p><p>  MOV GF, 9 ;小于0,秒個(gè)位置9</p><p>  ABB: POP AX

123、 ;恢復(fù)現(xiàn)場</p><p>  ABC: MOV TT,AL ;AL值給TT</p><p>  JMP A2 ;跳轉(zhuǎn)到A2</p><p>  DIS: MOV SI,

124、OFFSET GF ;GF的首地址送到SI中</p><p>  MOV CL,0F7H ;CL置11110111H</p><p>  LP1: MOV DX,MY8255_B ;初始8255B端口</p>

125、;<p>  MOV AL,[SI] ;將SI送到第8位</p><p>  MOV AH,0 ;高8位清零</p><p>  MOV DI,BX <

126、/p><p><b>  ADD DI,AX</b></p><p>  MOV AL,[DI] ;B端口控制LED的線控制</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,MY8255_A

127、 ;初始化8255A端口</p><p>  MOV AL,CL ;CL送入AL</p><p><b>  OUT DX,AL</b></p><p>  CALL DLY

128、 ;調(diào)用延時(shí)子程序</p><p>  ROR CL,1 ;循環(huán)右移</p><p>  TEST CL,80H ;檢測</p><p>  JZ LP2

129、 ;結(jié)果為零,重新開始顯示</p><p>  INC SI ;結(jié)果不為零,顯示下一個(gè)數(shù)</p><p><b>  JMP LP1</b></p><p><b>  LP2:RET</b></p><p>  DLY:PU

130、SH CX ;延時(shí)程序</p><p><b>  PUSH AX</b></p><p>  LP3:MOV CX,000FH</p><p>  T1:MOV AX,009FH</p><p>  T2:DEC AX</p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論