版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計</b></p><p> 課程名稱 微機原理及應(yīng)用 _ ______</p><p> 題目名稱_ 微機原理及應(yīng)用課程設(shè)計 _</p><p> 學(xué)生學(xué)院_ 自 動 化 學(xué) 院__ </p><p> 專業(yè)班級_ 08 電氣(一)班 ________
2、</p><p> 學(xué) 號 </p><p> 學(xué)生姓名____ ___ ______</p><p> 指導(dǎo)教師_ __________</p><p> 2011 年 04 月 15 日</p><p><b>
3、 目 錄</b></p><p><b> 1設(shè)計目的2</b></p><p><b> 2設(shè)計要求2</b></p><p><b> 3方案選擇2</b></p><p> 4系統(tǒng)整體設(shè)計3</p><p&g
4、t; 5硬件電路設(shè)計4</p><p> 5.1Cpu與時鐘4</p><p> 5.2電源與復(fù)位4</p><p> 5.3存儲器設(shè)計5</p><p> 5.4接口設(shè)計6</p><p> 5.5外設(shè)電路設(shè)計10</p><p> 5.6系統(tǒng)抗干擾設(shè)計
5、10</p><p> 6程序框圖設(shè)計12</p><p> 6.1主程序設(shè)計13</p><p> 6.2主程序功能14</p><p> 6.3系統(tǒng)自檢設(shè)計15</p><p> 6.4LED顯示器15</p><p> 6.5KEY鍵盤16</p
6、><p> 7硬件電路原理圖17</p><p> 7.1系統(tǒng)查詢方式原理圖18</p><p> 7.2系統(tǒng)中斷方式原理圖18</p><p> 8系統(tǒng)實現(xiàn)指標(biāo)18</p><p> 8.1功能指標(biāo)19</p><p> 8.2性能指標(biāo)19</p>
7、<p> 9課程設(shè)計體會(自行撰寫)(*^__^*)19</p><p> 10附錄(圖紙&程序代碼)20</p><p> 11參考文獻30</p><p><b> 設(shè)計目的</b></p><p> 深對《微機原理》這門課程的理解,理解CPU8088/8086最小系統(tǒng)的工作
8、方式和基本功能,掌握常用芯片8255、8253、8259的功能和應(yīng)用以及存儲器的擴展方法。在課程設(shè)計中培養(yǎng)我們分析問題、解決問題的基本素質(zhì),進一步增強動手能力以及一定的微機系統(tǒng)的設(shè)計和調(diào)試能力。</p><p><b> 設(shè)計要求</b></p><p> 設(shè)計微機系統(tǒng)實現(xiàn)可編程作息時間控制器,利用微機系統(tǒng)時鐘,用匯編語言編寫作息時間控制程序。</p>
9、<p><b> 基本要求:</b></p><p> 按照給定的時間模擬控制實現(xiàn)廣播、上下課打鈴、燈光控制(屏幕顯示)。</p><p> 具備日期和時鐘的顯示。</p><p> 時間和日期顯示用8個LED.</p><p><b> 提高要求:</b></p&g
10、t;<p><b> 給定的時間可修改。</b></p><p><b> 可模擬手動控制。</b></p><p><b> 用揚聲器模擬打鈴。</b></p><p><b> 方案選擇</b></p><p> 首先要構(gòu)建一個
11、微型計算機最小系統(tǒng):由8088/8086+EPROM+RAM+8255+8253+8*LED+16*KEY組成。微處理器、存儲器和所有I/O設(shè)備之間的信息交換都通過總線進行??偩€包括地址總線、數(shù)據(jù)總線和控制總線,它們始于CPU或終于CPU,現(xiàn)代微機大部分都是這種以總線位中心的結(jié)構(gòu)。8088CPU的地址總線20條、數(shù)據(jù)總線AD7~AD0和地址、狀態(tài)總線A19/S6~A10/S3復(fù)用的,必須通過地址鎖存器把地址總線和數(shù)據(jù)總線分離??刂瓶偩€直
12、接和8088CPU相連,這樣,8088cpu就工作在最小工作方式。</p><p> 在最小系統(tǒng)的基礎(chǔ)上,通過外部接口器件連接LED和鍵盤,組成一個可編程作息時間控制系統(tǒng)。作息時間控制系統(tǒng)主要有四大子系統(tǒng)功能實現(xiàn):1.時間運行系統(tǒng) 2.報時時間值設(shè)置及調(diào)時系統(tǒng) 3.時分顯示系統(tǒng) 4.報時響應(yīng)系統(tǒng)。時間運行系統(tǒng)讓時間一直運行著;報時時間值設(shè)置及調(diào)時系統(tǒng)使得用戶可以隨時設(shè)置時間;時分顯示系統(tǒng)讓用戶可以清楚知曉當(dāng)前系
13、統(tǒng)時間,報時響應(yīng)系統(tǒng)完成當(dāng)當(dāng)前時間與報時時間值一致時進行響應(yīng)(如LED閃爍)。四大子系統(tǒng)的協(xié)調(diào)有序的運行,保證了作息時間控制系統(tǒng)具有報時,調(diào)時,顯時功能,還達到了與用戶可交互的目的.</p><p><b> 系統(tǒng)整體設(shè)計</b></p><p><b> 硬件電路設(shè)計</b></p><p><b> C
14、pu與時鐘</b></p><p> 圖中8284A為時鐘發(fā)生器。它除了給CPU提供頻率恒定的時鐘信號CLK外,還對外部來的準備好信號RDY及復(fù)位信號RESET進行同步,因外部對這兩個信號的發(fā)出是隨機的,經(jīng)8284內(nèi)部邏輯電路在時鐘脈沖下同步,被同步的準備好信號RDY和復(fù)位信號RESET從8284輸出,送至8088CPU。</p><p><b> 電源與復(fù)位&l
15、t;/b></p><p> 220V的交流電通過穩(wěn)壓器之后變成了18V電壓,而后再經(jīng)過芯片7805和其他電路元件組成的電路最后成為了+5V的電壓,電路圖如下圖所示。</p><p><b> 存儲器設(shè)計</b></p><p> 按照設(shè)計的要求,采用全譯碼的方式,存儲器地址從10000H開始,以上高位地址線的連接,輸出信號的選通滿
16、足要求。</p><p> ROM設(shè)計(2764*2)</p><p> 采用全譯碼的方式,2片2764EPROM地址范圍為10000~13FFFH。,A19~A16為0001,A16經(jīng)過非門后變?yōu)楦唠娖?,選中74LS138。當(dāng)A13~A15連接的A,B,C端是000的Y0=0相或后,2764(1)芯片的片選端低電平有效,2764(1)的地址是0001 0000 0000 0000 0
17、000~0001 0001 1111 1111 1111 即10000~11FFFH,在Y1=0時,2704(2)芯片的片選端低電平有效,此時地址空間為0001 0010 0000 0000 0000~0001 0011 1111 1111 1111 即12000H~13FFFH。</p><p> RAM設(shè)計(6264*2)</p><p> 采用全譯碼的方式,2片6264RAM地址
18、范圍為14000~17FFFH。,A19~A16為0001,A16經(jīng)過非門后變?yōu)楦唠娖?,選中74LS138。當(dāng)A13~A15連接的A,B,C端是001的Y2=0相或后,6264(1)芯片的片選端低電平有效,2764(1)的地址是0001 0100 0000 0000 0000~0001 0101 1111 1111 1111 即14000~15FFFH,在Y3=0時,6264(2)芯片的片選端低電平有效,此時地址空間為0001 0110
19、 0000 0000 0000~0001 0111 1111 1111 1111 即16000H~17FFFH。</p><p><b> 接口設(shè)計</b></p><p><b> 接口譯碼設(shè)計</b></p><p> 接口譯碼電路通過74LS138的片選來對8259進行選中,并對8259分配控制字地址。具體電路
20、圖詳見附表。74LS138的A,B,C分別于地址線A4-A2相連,A7經(jīng)過一個非門后與G1連接,M/IO,A6分別于GA,GB連接,74LS138的片選Y2與8259的片選信號CE連接,從而8259的C口控制字地址為10H,11H.</p><p> 接口譯碼電路通過74LS138的片選來對8253進行選中,并對8253分配控制字地址。具體電路圖詳見附表。74LS138的A,B,C分別于地址線A4-A2相連,A
21、7經(jīng)過一個非門后與G1連接,M/IO,A6分別經(jīng)過非門與GA,GB連接,74LS138的片選Y4與8253的片選信號CE連接,從而8253的C口控制字地址為20H,21H,22H,23H.</p><p> 接口譯碼電路通過74LS138的片選來對8255進行選中,并對8255分配控制字地址。具體電路圖詳見附表。74LS138的A,B,C分別于地址線A4-A2相連,A7經(jīng)過一個非門后與G1連接,M/IO,A6分
22、別經(jīng)過非門與GA,GB連接,74LS138的片選Y4與8253的片選信號CE連接,從而8255的C口控制字地址為60H,61H,62H,63H.</p><p><b> 8259設(shè)計</b></p><p> 8259中為片選端口,連接74LS138譯碼器的Y0引腳,數(shù)據(jù)線與總線連接,其它控制線分別與8088的各控制線連接,把IR0作為中斷信號輸出端口。<
23、/p><p><b> 8255設(shè)計</b></p><p> RESET:復(fù)位輸入線,當(dāng)該輸入端外于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 CS:片選信號線,當(dāng)這個輸入引腳為低電平時,表示芯片被選中,允許8255與CPU0進行通訊。 RD:讀信號線,當(dāng)這個輸入引腳為低電平時,允許8255通過數(shù)據(jù)總線向CPU
24、發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。 WR:寫入信號,當(dāng)這個輸入引腳為低電平時,允許CPU將數(shù)據(jù)或控制字寫入8255。 D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。 PA0~PA7:端口A輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入鎖存器。 PB0~P
25、B7:端口B輸入輸出線,一個8位的I/O鎖存器, 一個8位的輸入輸出緩沖器。 PC0~PC7:端口C輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個4位的端口, 每個4位的端口包含一個</p><p> PA口輸出八段數(shù)碼管的段碼到晶體管上,PB0-PB2接譯碼器選中晶體管,PC口接4*4鍵盤輸入。</p><p>&
26、lt;b> 8253設(shè)計</b></p><p> 8253選用計數(shù)器0和計數(shù)器1,兩者都用作定時器,且都工作在方式2,計數(shù)器1的定時時間是計數(shù)器0的定時時間的兩倍.因為時鐘發(fā)生器原先的時鐘頻率是16MHz,而8253的計數(shù)頻率最高為2.6MHz,所以要用進行分頻,之后再將時鐘信號送到8253。連接數(shù)據(jù)線,片選引腳與相連,地址線A1接A0和A2接A1聯(lián)合起來可選擇使用哪個計數(shù)器。像圖中所示的
27、為指定計數(shù)器0.</p><p><b> 外設(shè)電路設(shè)計</b></p><p><b> 8*LED設(shè)計</b></p><p> LED管的a,b,c,d,e,f,g,d,p引腳分別與PA0-PA7相連,而下端的則分別與PB0-PB2通過接74LS138譯碼器后輸出相連構(gòu)成了片選,可以根據(jù)需要選擇數(shù)碼管的亮與滅。
28、</p><p><b> 4*4KEY設(shè)計</b></p><p> 這是一個4*4鍵盤。4根行線與PC口的低地址相連,4根列線與PC口的高位地址相連。按鍵設(shè)置在行,列點出,行,列線分別連接到按鍵開關(guān)的兩端。當(dāng)列線通過上拉電阻接+5V時,就被搶住在高電平狀態(tài)。鍵盤中有無鍵按下時有行線送入全掃描字,列線讀入行線狀態(tài)來判斷的,這就是:給行線所有I/O線均置成低電平,
29、然后讀入列線電平狀態(tài)。如果有鍵按下,總會有一根列線電平被拉至低電平,從而使列線輸入不全為1。鍵盤中哪一個鍵按下時有行線逐行置低電平后,檢查列線輸入狀態(tài)予以確定。其方法是:依次給行線送低電平,然后查所有列線狀態(tài),如果全為1,則所按下之鍵不在此行。如果不全為1,則所按下之鍵必在此行。而且是在于0電平行線相交的交點上的那個鍵。鍵盤的工作方式采用編程掃描工作方式,即通過調(diào)用鍵盤子程序來響應(yīng)鍵輸入的要求,在鍵盤掃描子程序中完成:(1)判斷鍵盤上是
30、否有鍵按下;(2)去除按鍵的機械抖動影響;(3)求按下鍵的鍵值和鍵號。</p><p><b> 系統(tǒng)抗干擾設(shè)計</b></p><p><b> 地線處理</b></p><p> 使用帶有屏蔽層的線路,該接地線的設(shè)備要接地線抗干擾接地處理的主要內(nèi)容:(1)避開地環(huán)電流的干擾;(2)降低公共地線阻抗的耦合干擾。&l
31、t;/p><p> “一點接地”有效地避開了地環(huán)電流;而在“一點接地”前提下,并聯(lián)接地則是降低公共地線阻抗的耦合干擾的有效措施;它們是工業(yè)控制系統(tǒng)采用的最基本的接地方法。在本電路中高頻地線和低頻地線采用一點接地的方法,從而有效避開了地環(huán)電流,避免了導(dǎo)線接入地時產(chǎn)生的電流波動。</p><p> 在電路圖中的模擬通道和數(shù)字通道采用并聯(lián)接地。并聯(lián)接地中各個電路的地電位只與其自身的地線阻抗和地電
32、流有關(guān),互相之間不會造成耦合干擾。因此,有效地克服了公共地線阻抗的耦合干擾問題,工業(yè)控制機應(yīng)當(dāng)盡量采用并聯(lián)接地方式。值得注意的是,雖然采用了并聯(lián)接地方式,但是地線仍然要粗一些,以使各個電路部件之間的地電位差盡量減小。這樣,當(dāng)各個部件之間有信號傳送時,地線環(huán)流干擾將減小。</p><p><b> 芯片抗干擾處理</b></p><p> 對于存儲器上的EPRON2
33、764和RAM6264應(yīng)采用(1)數(shù)據(jù)線,地址線,控制線盡量縮短,以減少對地電容。尤其是地址線,各條線的長短,布線方式應(yīng)盡量一致,以免造成各線的阻抗差異過大,使地址信號傳輸過程中到達終端時波形差異過大,形成控制信息的非同步干擾。(2)由于開關(guān)噪聲嚴重,要在電源入口處,以及每片存儲器芯片的VCC與GND之間接入去耦電容。(3)由于負載電流大,電源線和地線要加粗,走線盡量短,印制板兩面的三總線互相垂直,以防總線之間的電磁干擾。(4)總線的始
34、端和終端要配置合適的上拉電阻,一提高高電平噪聲容限,增加存儲器端口在高阻狀態(tài)下抗干擾能力和削弱反射波干擾。因此,可將配置上拉電阻視為一種常規(guī)做法?!?lt;/p><p> 程序存儲器數(shù)據(jù)存儲器和I/O接口芯片的讀/寫時序過程:地址總線先出現(xiàn)地址數(shù)碼,待地址穩(wěn)定后,出現(xiàn)數(shù)據(jù)信息麻袋數(shù)據(jù)信息穩(wěn)定后,在讀/寫控制信號作用下,完成讀/寫過程。這種譯碼選通和讀/寫分時作用的操作方式,有效地抑制地址/數(shù)據(jù)信息的過度干擾。<
35、;/p><p> 時鐘芯片的抗干擾主要措施有:(1)時鐘脈沖電路配置是壓迫注意靠近CPU,引線要短而粗。(2)外部時鐘源用的芯片的VCC與GND之間可接1uF作右的去耦電容。(3)在可能的情況下,用地線包圍振蕩電路,晶體外殼接地。(4)若時鐘電路還在做其他芯片的脈沖源,要注意隔離和驅(qū)動措施。(5)晶振電路的電容器要性能穩(wěn)定,容量值準確,且遠離發(fā)熱的元器件。(6)印刷版上的大電流信號線,電源變壓器要遠離晶振信號的連線
36、。</p><p><b> 程序框圖設(shè)計</b></p><p><b> 主程序設(shè)計</b></p><p><b> 主程序功能</b></p><p> 主程序框圖(自行加入手動控制,模擬打鈴)</p><p><b> 系統(tǒng)
37、自檢設(shè)計</b></p><p><b> 系統(tǒng)自檢功能</b></p><p> 基于自檢的容錯設(shè)計方法的實質(zhì)就是對被檢測微機系統(tǒng)故障的自檢部件的冗余設(shè)計,在自檢設(shè)計中,起關(guān)鍵作用的自檢部件自身的故障可以通過冗余設(shè)計來屏蔽,從而克服了傳統(tǒng)的沒有冗余的自檢部件自身故障造成的系統(tǒng)自檢功能喪失的問題。</p><p> 自檢部件是
38、指存放自檢程序的ROM 區(qū);在一般的自檢設(shè)計中,都把自檢程序作為子程序放在程序存儲器的最后區(qū)域,并且自檢的范圍也不包括這個自檢程序本身。這樣的自檢部件地址空間安排給該自檢部件的冗余設(shè)計帶來了困難,而且是以增加大量的外圍冗余硬件電路為代價的。針對這一缺點,本文根據(jù)微機的存儲體系結(jié)構(gòu)的特點,提出了一種簡單有效的容錯設(shè)計方法。</p><p><b> FLASH讀寫框圖</b></p&g
39、t;<p><b> LED顯示器</b></p><p><b> LED查詢方式</b></p><p><b> LED中斷方式</b></p><p><b> KEY鍵盤</b></p><p><b> KEY
40、查詢方式</b></p><p> KEY的查詢方式采用行反轉(zhuǎn)法:</p><p> ?。?)先對8255進行初始化設(shè)置,將行線的A端口設(shè)置為輸出方式,接列線的B端口設(shè)中斷程序的結(jié)構(gòu)框圖如下圖所示。流程圖中判斷是否為抖動就是去抖動。30H 單元中存放需顯示的數(shù)據(jù),主程序顯示該單元的內(nèi)容即可。由于30H 單元用于實現(xiàn)主程序和中斷程序間的數(shù)據(jù)交換,因此就不能被保護。置為輸入方式
41、。</p><p> ?。?)重新對8255進行初始化設(shè)置,將第一步傳送的方向反過來,接行線的A端口設(shè)置為輸入方式,接列線的B端口設(shè)置為輸出方式。</p><p> 行反轉(zhuǎn)法的流程圖如下:</p><p><b> KEY中斷方式</b></p><p><b> 硬件電路原理圖</b><
42、;/p><p><b> 系統(tǒng)查詢方式原理圖</b></p><p><b> 系統(tǒng)中斷方式原理圖</b></p><p><b> 系統(tǒng)實現(xiàn)指標(biāo)</b></p><p><b> 功能指標(biāo)</b></p><p> 1.時間
43、運行系統(tǒng)功能實現(xiàn)</p><p> 時間運行與調(diào)節(jié)利用可編程的計數(shù)器/定時器8255芯片的可編程使時鐘頻率經(jīng)過在8253的處理而產(chǎn)生符合要求的脈沖送入8255,進而執(zhí)行計時子程序使得改變時間參數(shù)而計時,進行時間計算,并用實時檢測程序?qū)r間參數(shù)用數(shù)碼管顯示電路顯示出日期及時間。與此同時也進行與報時時間段程序的不斷調(diào)用,使得在規(guī)定時刻進行報時。</p><p> 可選擇5253通道0與通道
44、1實現(xiàn)60秒定時,通道1輸出out1接8255的輸出端口,完成上述連接后,編程實現(xiàn)小時,分鐘的變化的子程序,以及對8253,8255進行初始化編程,計時程序?qū)崿F(xiàn)時間運行(每次執(zhí)行中斷服務(wù)程序時,使得MINUTE參數(shù)+1,當(dāng)?shù)竭_59時,重新返回到零,并使得hour參數(shù)+1,)</p><p> 2.報時時間設(shè)置及調(diào)時功能實現(xiàn)</p><p> 1)每次程序運行前,徹底清除以前的報時時間
45、設(shè)置值,恢復(fù)系統(tǒng)默認報時時間值。 </p><p> 2)程序運行后,用戶可一次性設(shè)定報時時間值(一旦有設(shè)定操作,則原有的默認報時時間值全部清零)。此為最新值,報時以新時間為準。報時時間設(shè)置結(jié)束以后要進行一次校時設(shè)置。</p><p> 3) 設(shè)定完所有報時時間值后,可通過按“D”(display)顯示已經(jīng)設(shè)定好的完整的報時時間值,要求每間隔1小時依次顯示報時時間值。用戶可通過此鍵來
46、查看所有的報時時間值,以避免有錯誤的報時時間值存在而產(chǎn)生錯誤的響應(yīng)。</p><p><b> 3.時分顯示系統(tǒng)</b></p><p> 時分顯示系統(tǒng)只顯示小時和分鐘,每當(dāng)將內(nèi)存中的時分參數(shù)通過I/O端口傳送給LED顯示電路,這樣即可以實現(xiàn)(具體實現(xiàn)有待進一步完善)。數(shù)碼管顯示電路的顯示具有存儲功能,只要將其輸入端口的數(shù)值改變就可以實現(xiàn)變化數(shù)字的顯示了,這可以在
47、計數(shù)器發(fā)出MINUTE加1脈沖時在程序中實現(xiàn)。設(shè)定完所有報時時間值后,可通過按“D”(display)顯示已經(jīng)設(shè)定好的完整的報時時間值,要求每間隔5秒鐘依次顯示報時時間值。用戶可通過此鍵來查看所有的報時時間值,以避免有錯誤的報時時間值存在而產(chǎn)生錯誤的響應(yīng)。</p><p> 多路轉(zhuǎn)換LED顯示器驅(qū)動電路及數(shù)碼管顯示電路所示本系統(tǒng)采用七段LED顯示器顯示時分參數(shù)。七段LED顯示器由七個發(fā)光段構(gòu)成,每段均是一個LE
48、D二極管,可顯示16進制的0~9與ABCDE。此外數(shù)碼管顯示電路中還有一個小數(shù)點DP位段,用來分隔小時與分鐘。8255的A口與C口都作為輸出口,CPU輸出的時間參數(shù),經(jīng)A口送到74LS240的8個輸入端,且并行地接到4個LED顯示的各輸入端(也稱為段總線),同名端聯(lián)在一起。每一位共陽極LED的陽極電路中都串接一個晶體管Q,晶體管起開關(guān)作用,并由8255A來控制其導(dǎo)通,是相應(yīng)的LED顯示器的陽極與+5V電壓接通,LED顯示器才有可能點亮;
49、基極的高電平輸入使晶體管截止,+5V斷開,LED顯示器不能點亮。通過編程,可以使各個晶體管輪流導(dǎo)通,讓7個LED輪流點亮。但任何時候只讓一個晶體管導(dǎo)通,即只有一個LED點亮,這樣可使功耗顯著降低。</p><p><b> 性能指標(biāo)</b></p><p> 系統(tǒng)具有16KB的EPROM和16KB的RAM</p><p> 8位七段數(shù)碼管
50、可以顯示8位十進制數(shù)來表示日期與時間</p><p> 系統(tǒng)配備一個4*4鍵盤</p><p> 課程設(shè)計體會(自行撰寫)(*^__^*) </p><p> 在一開始,對系統(tǒng)的概念還很模糊,不知道從何下手,從書本上也找不到相關(guān)的比較明確的解釋,在網(wǎng)上和圖書館里查閱了相關(guān)的資料之后,有了相應(yīng)的認識,但是在腦海中依舊沒有多少頭緒,不知道從何下手,后來在跟同學(xué)的交
51、流,自己的理解下,逐步開始動手畫圖,雖然進展得很慢,但是當(dāng)對各個芯片的接口,功能,地址有一定的認識后,連線上也就慢慢上手了,從RAM,ROM,到8285,8253,8259等的連接,74ls138的譯碼選通等,雖然還是不知道全部的功能要怎么樣才能實現(xiàn),但是至少對系統(tǒng)里面的各個組成部分都有了一定的認識,慢慢地,在請教同學(xué)后,基本的圖形也就畫出來了。</p><p> 附錄(圖紙&程序代碼)</p&g
52、t;<p><b> 程序代碼:</b></p><p><b> 鍵盤的工作子程序:</b></p><p> IR0中斷服務(wù)程序:</p><p><b> STI</b></p><p><b> PUSH AX</b>&l
53、t;/p><p> NEXT: IN AL,61H ;讀B口的狀態(tài)</p><p> AND AL,0F0H </p><p> CMP AL,0F0H</p><p> JNZ KEYABC</p><p><b> CALL
54、 DISP</b></p><p><b> JMP STT</b></p><p> KEYABC:CALL TIME ;調(diào)用延時,去抖動</p><p> IN AL,61H;讀B口的狀態(tài)</p><p> AND AL,0F0H</p>
55、<p> CMP AL,0F0H</p><p> JNZ KEY_0 ;轉(zhuǎn)移到檢測按下哪個數(shù)字鍵</p><p> JMP STT ;返回檢測鍵盤</p><p><b> 。</b></p><p><b
56、> 。</b></p><p><b> 。</b></p><p> STTK: CALL DISP;放鍵測試子程序</p><p> IN AL,41H</p><p> AND AL,0F0H</p><p> CMP A
57、L,0F0H</p><p> JNZ STTK</p><p> JMP STT</p><p><b> POP AX</b></p><p><b> IRET</b></p><p> LED移位顯示子程序:</
58、p><p> LP1: MOV CX,0005H ;數(shù)據(jù)移位保存子程序(前進五位)</p><p> MOV SI,OFFSET VAR2 ;SI指向顯示代碼緩沖區(qū)首址</p><p> LP2: MOV AL,[SI+4];顯示代碼移位</p><p> MOV [SI+5
59、],AL ;顯示數(shù)字移位</p><p><b> DEC SI</b></p><p><b> LOOP LP2</b></p><p> RET;移位返回</p><p> DISP: LEA SI,VAR1
60、 </p><p> LEA DI,VAR2</p><p> MOV DL,[DI+5]</p><p> CMP DL,0FCH</p><p><b> JNZ DIR6</b></p><p> MOV DL,[DI+4]</p&g
61、t;<p> CMP DL,0FCH</p><p><b> JNZ DIR5</b></p><p> MOV DL,[DI+3]</p><p> CMP DL,0FCH</p><p><b> JNZ DIR4</b></p><p> M
62、OV DL,[DI+2]</p><p> CMP DL,0FCH</p><p><b> JNZ DIR3</b></p><p> MOV DL,[DI+1]</p><p> CMP DL,0FCH</p><p><b> JNZ DIR2</b><
63、/p><p><b> JNZ DIR1</b></p><p> DIR6:MOV CX,0006H</p><p><b> JMP DIR</b></p><p> DIR5:MOV CX,0005H</p><p><b> JMP DIR</b
64、></p><p> DIR4:MOV CX,0004H</p><p><b> JMP DIR</b></p><p> DIR3:MOV CX,0003H</p><p><b> JMP DIR</b></p><p> DIR2:MOV CX,000
65、2H</p><p><b> JMP DIR </b></p><p> DIR1:MOV CX,0001H</p><p><b> JMP DIR</b></p><p> DIR: MOV AL,[SI]</p><p> OUT 60H,AL<
66、/p><p> MOV AL,[DI]</p><p> OUT 42H,AL</p><p><b> CALL TIME</b></p><p><b> INC SI</b></p><p><b> INC DI</b></p>
67、<p><b> LOOP DIR</b></p><p> RET </p><p> TIME: PUSH AX ;延時子程序</p><p> PUSH CX</p><p>
68、 MOV CX,0040H</p><p> TIME1: MOV AX,0003H</p><p> TIME2: DEC AX</p><p><b> JNZ TIME2</b></p><p> LOOP TIME1</p><p><b> POP CX</b
69、></p><p><b> POP AX</b></p><p><b> RET</b></p><p><b> 定時控制部分</b></p><p> L0: MOV CX,1 ;上課鈴聲第一次打響,驅(qū)動揚聲器</p>&l
70、t;p> MOV AL,40H</p><p> MOV DX,200H</p><p><b> NOT AL</b></p><p><b> OUT DX,AL</b></p><p> MOV DX,210H </p><p&
71、gt; MOV AL,0FH</p><p><b> OUT DX,AL</b></p><p><b> CALL Y</b></p><p><b> DEC CX</b></p><p><b> JZ L1</b></p>
72、<p> L1:MOV CX,5 ;定時5秒后實現(xiàn)下課鈴聲,再次驅(qū)動揚聲器</p><p> S0:MOV AL,00H</p><p> MOV DX,200H</p><p><b> NOT AL</b></p><p><b> OUT DX,AL</
73、b></p><p> MOV DX,210H</p><p> MOV AL,2FH</p><p><b> OUT DX,AL</b></p><p><b> CALL Y</b></p><p><b> DEC CX</b>&
74、lt;/p><p> JNZ S0 ;當(dāng)CX不為0是跳轉(zhuǎn)</p><p> L2: MOV CX,2 ;定時2秒后實現(xiàn)上課鈴聲</p><p> S1: MOV AL,20H</p><p> MOV DX,200H</p><p><b> NOT AL
75、</b></p><p><b> OUT DX,AL</b></p><p> MOV DX,210H</p><p> MOV AL,1FH</p><p><b> OUT DX,AL</b></p><p><b> CALL Y<
76、;/b></p><p><b> DEC CX</b></p><p><b> JNZ S1</b></p><p> JZ L0 ;當(dāng)CX為0是跳轉(zhuǎn)到L0,及循環(huán)執(zhí)行</p><p> Y PROC ;延時子程序,延時1秒,8253
77、實現(xiàn)</p><p><b> PUSH AX</b></p><p> MOV DX,20BH</p><p> MOV AL,35H ;方式2</p><p><b> OUT DX,AL</b></p><p> MOV AL,00H ;計數(shù)初值<
78、;/p><p> MOV DX,208H</p><p><b> OUT DX,AL</b></p><p> MOV AL,50H</p><p><b> OUT DX,AL</b></p><p> MOV DX,20BH</p><p>
79、; MOV AL,71H ;方式0 </p><p><b> OUT DX,AL</b></p><p> MOV
80、 DX,209H</p><p> MOV AL,00H</p><p><b> OUT DX,AL</b></p><p> MOV AL,04H</p><p><b> OUT DX,AL</b></p><p> KK:
81、 ;不是高電平就繼續(xù)檢測</p><p> MOV DX,202H</p><p><b> IN AL,DX</b></p><p> AND AL,02H</p><p><b> JZ KK</b></p><p><b> PO
82、P AX</b></p><p><b> RET</b></p><p><b> Y ENDP</b></p><p> 計時器一些子程序塊如下:</p><p> A1: LEA SI,VAR ;SI指向顯示緩沖區(qū)首地址VAR</p><p>
83、; MOV CX,000CH ;設(shè)定時間常數(shù)約為1s</p><p> A2: CALL STT ;鍵盤測試</p><p> CMP HAVEKEY,0FFH</p><p><b> JNZ A3</b></p><p> CALL KABC ;鍵盤掃描&l
84、t;/p><p> A3: CALL DISP ;顯示時間</p><p> CMP SET,0FFH</p><p><b> JZ A2</b></p><p><b> LOOP A2</b></p><p> MOV AL,SECOND
85、 ;設(shè)定時間(1s)到,秒鐘處理</p><p> MOV [SI],AL</p><p> ADD AL,01H</p><p><b> DAA</b></p><p> MOV [SI+1],AL</p><p> CMP AL,60H</p><p>
86、; JNZ NO_HOUR</p><p> MOV SECOND,00H;60秒進分</p><p> MOV AX,[SI+2]</p><p> MOV BX,[SI+4]</p><p> ADD AL,01H</p><p><b> AAA</b></p>
87、;<p> MOV [SI+2],AX</p><p> CMP AX,0600H</p><p> JS NO_HOUR</p><p> MOV [SI+2],00H;60分進時</p><p> MOV [SI+3],00H</p><p><b> MOV AX,BX&
88、lt;/b></p><p> ADD AL,01H</p><p><b> AAA</b></p><p> MOV [SI+4],AX</p><p> CMP AX,0204H</p><p> JS NO_HOUR</p><p> MOV
89、[SI+4],00H ;24小時清零</p><p> MOV [SI+5],00H</p><p> NO_HOUR: JMP A1</p><p> FUZHI:PUSH AX ;數(shù)字處理子程序</p><p> CMP SET,0FFH ;判斷功能標(biāo)志</p>&
90、lt;p><b> JNZ F_OUT</b></p><p> LEA SI,VAR</p><p> MOV AL,[SI+4]</p><p> MOV [SI+5],AL</p><p> MOV AL,[SI+3]</p><p> MOV [SI+4],AL</
91、p><p> MOV AL,[SI+2]</p><p> MOV [SI+3],AL</p><p> MOV AL,[SI+1]</p><p> MOV [SI+2],AL</p><p> MOV AL,[SI]</p><p> MOV [SI+1],AL</p>
92、<p> MOV [SI],DL</p><p> F_OUT: POP AX</p><p><b> RET</b></p><p> DELAY: PUSH CX ;延時子程序</p><p> MOV CX,0050H</p><p> DX
93、MS: LOOP DXMS</p><p><b> POP CX</b></p><p><b> RET</b></p><p> TIME: PUSH AX ;去抖動子程序</p><p><b> PUSH CX</b></p>
94、<p> MOV CX,0004H</p><p> TIME1: MOV AX,0010H</p><p> TIME2: DEC AX</p><p> JNZ TIME2</p><p> LOOP TIME1</p><p><b> POP CX</b>&
95、lt;/p><p><b> POP AX</b></p><p><b> RET</b></p><p> CLEAR:PUSH AX ;定時清零子程序</p><p><b> PUSH BX</b></p><p&
96、gt; LEA SI,VAR</p><p> MOV AX,[SI]</p><p> MOV BX,[SI+2]</p><p> CMP AL,0AH</p><p><b> JNS C1</b></p><p> CMP AH,06H</p><
97、;p><b> JNS C1</b></p><p> CMP BX,0204H</p><p><b> JNS C1</b></p><p><b> JMP C2</b></p><p> C1:MOV [SI],08H</p>&
98、lt;p> MOV [SI+1],08H</p><p> MOV [SI+2],08H</p><p> MOV [SI+3],08H</p><p> MOV [SI+4],08H</p><p> MOV [SI+5],08H</p><p> C2: POP BX</p><
99、;p><b> POP AX</b></p><p><b> RET</b></p><p><b> (圖5.1)</b></p><p><b> ?。▓D5.2)</b></p><p><b> ?。▓D5.3)</b&g
100、t;</p><p><b> ?。▓D5.3.1)</b></p><p><b> ?。▓D5.3.2)</b></p><p> ?。▓D5.4.1)(1)</p><p> ?。▓D5.4.1)(2)</p><p> ?。▓D5.4.1)(3)</p><
101、p><b> (圖5.4.2)</b></p><p><b> ?。▓D5.4.3)</b></p><p><b> ?。▓D5.4.4)</b></p><p><b> (圖5.5.1)</b></p><p><b> ?。▓D5.
102、5.2)</b></p><p><b> ?。▓D7.1)</b></p><p><b> ?。▓D7.2)</b></p><p><b> 參考文獻</b></p><p> 《微型計算機原理及應(yīng)用》---------------</p>&l
103、t;p> 許立梓等編-北京:機械工業(yè)出版社2003年</p><p> 《微型計算機原理及應(yīng)用--習(xí)題解答、實驗指導(dǎo)及課程設(shè)計》---------------</p><p> 許立梓等編-北京:機械工業(yè)出版社 2004年</p><p> 《微型計算機常用芯片手冊》---------------</p><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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計--樂曲硬件演奏電路設(shè)計
- 微機課程設(shè)計---硬件中斷時鐘設(shè)計
- 微機原理課程設(shè)計---鍵控數(shù)據(jù)采集及數(shù)值顯示電路設(shè)計
- 流量檢測電路設(shè)計課程設(shè)計
- 課程設(shè)計--家庭照明電路設(shè)計
- 課程設(shè)計---同步解調(diào)電路設(shè)計
- 循環(huán)彩燈電路設(shè)計 課程設(shè)計
- 微機原理課程設(shè)計——發(fā)光二極管顯示設(shè)計電路設(shè)計
- 典型射頻電路設(shè)計-微波電路課程設(shè)計報告
- 課程設(shè)計---降壓斬波電路設(shè)計
- 課程設(shè)計---溫度測量顯示電路設(shè)計
- 課程設(shè)計---彩燈控制電路設(shè)計
- 課程設(shè)計報告數(shù)字秒表電路設(shè)計
- 課程設(shè)計---數(shù)字鐘電路設(shè)計
- 課程設(shè)計--可預(yù)置定時電路設(shè)計
- 數(shù)字溫度計電路設(shè)計與調(diào)試 杭電微機原理課程設(shè)計
- 課程設(shè)計--煤氣計費電路設(shè)計
- 課程設(shè)計---直流斬波電路設(shè)計
- vhdl課程設(shè)計---樂曲演奏電路設(shè)計
- 課程設(shè)計 多級放大電路設(shè)計報告
評論
0/150
提交評論