版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)---60秒倒計(jì)時(shí)
- 24秒倒計(jì)時(shí)課程設(shè)計(jì)
- 籃球倒計(jì)時(shí)課程設(shè)計(jì)--籃球板倒計(jì)時(shí)設(shè)計(jì)
- 數(shù)字顯示30秒倒計(jì)時(shí)器課程設(shè)計(jì)報(bào)告
- 99倒計(jì)時(shí)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---倒計(jì)時(shí)器
- 課程設(shè)計(jì)報(bào)告(c語言)倒計(jì)時(shí)
- 倒計(jì)時(shí)鐘課程設(shè)計(jì)報(bào)告
- 60秒倒計(jì)時(shí)器-單片機(jī)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)----籃球競賽24秒倒計(jì)時(shí)器
- eda課程設(shè)計(jì)報(bào)告--籃球競賽30秒倒計(jì)時(shí)器
- eda課程設(shè)計(jì)報(bào)告---數(shù)字時(shí)鐘倒計(jì)時(shí)
- 倒計(jì)時(shí)器課程設(shè)計(jì)
- 45秒籃球倒計(jì)時(shí)數(shù)電課程設(shè)計(jì)
- 24秒籃球倒計(jì)時(shí)器課程設(shè)計(jì)
- 24秒籃球倒計(jì)時(shí)器課程設(shè)計(jì)
- 電子課程設(shè)計(jì)報(bào)告-----24秒籃球倒計(jì)時(shí)器
- 電子課程設(shè)計(jì)報(bào)告----籃球比賽24秒倒計(jì)時(shí)器
- 電子課程設(shè)計(jì)報(bào)告---籃球比賽24秒倒計(jì)時(shí)器
- 60秒倒計(jì)時(shí)器-單片機(jī)課程設(shè)計(jì)
評論
0/150
提交評論