久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 14702|回復(fù): 9
收起左側(cè)

8086 4路競(jìng)賽搶答器設(shè)計(jì)實(shí)習(xí)報(bào)告與源程序(8255+8259+8253+8086)

[復(fù)制鏈接]
ID:270563 發(fā)表于 2018-1-3 09:16 | 顯示全部樓層 |閱讀模式
word中有詳細(xì)的4路競(jìng)賽搶答器的具體實(shí)驗(yàn)流程圖,關(guān)于8086詳細(xì)解釋,8255等
微機(jī)原理與接口技術(shù)硬件實(shí)習(xí)報(bào)告

題        目:   競(jìng)賽搶答器設(shè)計(jì)        

學(xué) 生 姓 名:卓*強(qiáng)

學(xué)  院(系):信息數(shù)理學(xué)院專 業(yè) 班 級(jí):計(jì)算機(jī)141

校內(nèi)指導(dǎo)教師:       潘*     專業(yè)技術(shù)職務(wù):副教授

實(shí) 習(xí) 時(shí) 間:2017619 201777

硬件實(shí)習(xí)任務(wù)書

一、設(shè)計(jì)題目

4路競(jìng)賽搶答器設(shè)計(jì)

二、設(shè)計(jì)背景

隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,基于微處理器的控制系統(tǒng)應(yīng)用非常廣泛,通過自己動(dòng)手設(shè)計(jì)一個(gè)基于8086CPU的競(jìng)賽搶答器,進(jìn)一步了解計(jì)算機(jī)的工作原理,接口技術(shù),提高軟硬件綜合應(yīng)用能力,即對(duì)微機(jī)原理,接口技術(shù),匯編語(yǔ)言程序設(shè)計(jì)進(jìn)行綜合訓(xùn)練。

三、設(shè)計(jì)內(nèi)容及目標(biāo)

設(shè)計(jì)內(nèi)容:
設(shè)計(jì)一個(gè)4路競(jìng)賽搶答器,綜合應(yīng)用8255并行接口、8259中斷和8253定時(shí)器等知識(shí)。邏輯開關(guān)K0---K3代表?yè)尨鸢粹o,當(dāng)某個(gè)邏輯開關(guān)閉合時(shí),相當(dāng)于搶答按鈕按下,此時(shí)在七段數(shù)碼管上將其號(hào)碼顯示出來(lái),并使喇叭響一聲(或者以發(fā)光二極管代替),包括開始搶答信號(hào)的接收;計(jì)時(shí)器的倒計(jì)時(shí);檢查搶答按鈕并顯示在數(shù)碼管上;任意鍵退出程序。
設(shè)計(jì)目標(biāo):
1、綜合運(yùn)用相關(guān)課程中所學(xué)到的理論知識(shí)去獨(dú)立完成某一設(shè)計(jì)課題;
2、通過查閱手冊(cè)和相關(guān)文獻(xiàn)資料,培養(yǎng)學(xué)生獨(dú)立分析和解決問題的能力;
3、進(jìn)一步熟悉8086CPU和常用接口電路,加深對(duì)專業(yè)知識(shí)和理論知識(shí)學(xué)習(xí)的認(rèn)識(shí)和理解
4、學(xué)會(huì)撰寫硬件實(shí)習(xí)的總結(jié)報(bào)告;
5、培養(yǎng)嚴(yán)肅認(rèn)真的工作作風(fēng)和嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度。

四、進(jìn)度安排

周次
工 作 內(nèi) 容
預(yù) 定 目 標(biāo)
第17周周一
題目安排;圖書館查相關(guān)資料
查閱相關(guān)資料
第17周周二、周三
系統(tǒng)硬件設(shè)計(jì)及軟件設(shè)計(jì)
實(shí)現(xiàn)系統(tǒng)硬件和軟件設(shè)計(jì)
第17周周四
設(shè)計(jì)成果檢查及指導(dǎo)
確定設(shè)計(jì)成果
第17周周五
完善硬件及軟件設(shè)計(jì);開始準(zhǔn)備實(shí)習(xí)報(bào)告初稿。
完善軟件硬件設(shè)計(jì)
第18周
學(xué)習(xí)Proteus仿真軟件,并仿真系統(tǒng)
熟悉Proteus仿真軟件,并成功仿真系統(tǒng)
第19周周一至周四
完成實(shí)習(xí)任務(wù);完善實(shí)習(xí)報(bào)告。
寫好硬件實(shí)習(xí)報(bào)告,調(diào)試好系統(tǒng)
第19周周五
答辯并且驗(yàn)收實(shí)習(xí)報(bào)告
答辯并且驗(yàn)收實(shí)習(xí)報(bào)告

五、設(shè)計(jì)時(shí)間:2017619日到  201777


  計(jì)算機(jī)科學(xué)與技術(shù)  系               指導(dǎo)教師    潘 操                                            



微機(jī)原理與接口技術(shù)硬件實(shí)習(xí)報(bào)告


目 錄

1 實(shí)習(xí)目的
2 課題方案原理
2.1 主要工程問題
2.2 解決方案
2.2.1提出方案
2.2.2方案選擇
2.3 相關(guān)核心模塊(技術(shù))介紹
2.3.1并行接口芯片8255A
2.3.2中斷控制芯片8259A
2.3.3可編程定時(shí)芯片8253
3 課題設(shè)計(jì)及實(shí)現(xiàn)
3.1硬件設(shè)計(jì)
3.1.1硬件設(shè)計(jì)原理
3.1.2顯示選手電路設(shè)計(jì)
3.1.3計(jì)時(shí)電路設(shè)計(jì)
3.1.4中斷電路設(shè)計(jì)
3.2 軟件設(shè)計(jì)
3.2.1 軟件設(shè)計(jì)程序流程圖
3.2.2 軟件設(shè)計(jì)程序代碼及分析
4 實(shí)習(xí)結(jié)果分析
5 實(shí)習(xí)心得
5.1 實(shí)習(xí)日記
5.2 心得體會(huì)
參 考 文 獻(xiàn)



微機(jī)原理與接口技術(shù)硬件實(shí)習(xí)報(bào)告


1 實(shí)習(xí)目的
(1)進(jìn)一步掌握8255、8253以及8259顯示電路的編程方法。
(2)進(jìn)一步掌握定時(shí)器的使用和編程以及中斷處理程序的編程方法。
(3)進(jìn)一步熟悉8086CPU和常用接口電路,加深對(duì)專業(yè)知識(shí)和理論知識(shí)學(xué)習(xí)的認(rèn)識(shí)和理解。
(4)程序功能按照要求實(shí)現(xiàn),程序能夠自由開始競(jìng)賽,競(jìng)賽開始后選手進(jìn)行搶答,搶答選手號(hào)碼通過數(shù)碼管顯示出來(lái),選手回答時(shí)間進(jìn)行計(jì)時(shí),選手回答完畢重新開始下一輪搶答。
2 課題方案原理2.1 主要工程問題
此次實(shí)習(xí)利用8086芯片、并行接口芯片8255A、中斷接口芯片8259和定時(shí)芯片8253,設(shè)計(jì)一個(gè)4人競(jìng)賽搶答器。通過8255A芯片要實(shí)現(xiàn)主持人的競(jìng)賽控制、選手的搶答按鈕、選手號(hào)碼的顯示和倒計(jì)時(shí)顯示,顯然這通過一個(gè)8255A芯片是行不通的,所以本次實(shí)驗(yàn)用到了2個(gè)8255A芯片分別來(lái)實(shí)現(xiàn)功能。
主持人能夠中斷計(jì)時(shí),需要用8259芯片來(lái)實(shí)現(xiàn)比賽的中斷,這加大了程序的復(fù)雜度,需要用到不同的中斷類型去響應(yīng)中斷。比賽要能夠計(jì)時(shí),這需要將8255A芯片與8253芯片結(jié)合在一起。
2.2 解決方案2.2.1提出方案
方案一 選用8255A,8253,8259,數(shù)碼管
1.8253作為定時(shí)器使用。
2.8259利用IR0端作為計(jì)時(shí)暫停的中斷引入端。
3. 8255 作為并行輸入輸出,A口接4個(gè)搶答開關(guān),B口接準(zhǔn)備鍵、開始計(jì)時(shí)鍵、暫停鍵和關(guān)閉鍵,C口數(shù)碼管顯示。
  • 顯示區(qū)由3個(gè)LED數(shù)碼管8個(gè)按鈕組成。
方案二 自鎖開關(guān)、NE555定時(shí)器、共陽(yáng)極數(shù)碼管
  • 鎖存器鎖存號(hào)碼。
  • NE555定時(shí)器作為定時(shí)器使用。
  • 共陽(yáng)極數(shù)碼管作為顯示數(shù)字使用。
方案三 采用AT89C51作為系統(tǒng)控制器的方案。單片機(jī)可以通過編程實(shí)現(xiàn)各種不同的功能,同時(shí)經(jīng)過多年發(fā)展越來(lái)越多的型號(hào)被制造出來(lái)滿足大多數(shù)使用需求。在方案中用模塊化設(shè)計(jì)思想,設(shè)計(jì)出各種所需要的模塊,再通過單片機(jī)聯(lián)系起來(lái),從而形成一個(gè)整體,實(shí)現(xiàn)所需要的功能。
方案四 獨(dú)立式鍵盤、單片機(jī)、數(shù)碼管、蜂鳴器
系統(tǒng)采用6個(gè)獨(dú)立式鍵盤作為按鍵,通過單片機(jī)不停地掃描按鍵來(lái)控制LED數(shù)碼管的顯示以及蜂鳴器,當(dāng)按下啟動(dòng)按鍵后,經(jīng)單片機(jī)處理,輸出控制信號(hào),數(shù)碼管從30開始進(jìn)入減計(jì)時(shí)并在數(shù)碼管上顯示剩余時(shí)間,在有選手按下按鍵時(shí),就會(huì)有對(duì)應(yīng)于這個(gè)按鍵的編碼在數(shù)碼管上顯示,同時(shí)蜂鳴器給出聲響來(lái)提示主持人和選手,如果在30秒內(nèi)沒有選手搶答,則本次搶答無(wú)效,系統(tǒng)封鎖輸
入電路,禁止選手超時(shí)搶答,定時(shí)器上顯示00。
用一片四D觸發(fā)器74LS175和四輸入2或非門CD4002實(shí)現(xiàn)。四D觸發(fā)器輸出經(jīng)四輸入或非門到四路搶答按鍵開關(guān),加到觸發(fā)器的四個(gè)輸入端,同時(shí)經(jīng)四輸入或非門和反相器作為四D觸發(fā)器的時(shí)鐘信號(hào),四D觸發(fā)器清零端經(jīng)上拉電阻接電源,同時(shí)經(jīng)過清零控制開關(guān)到地。電路簡(jiǎn)單成本低,稍加擴(kuò)展就能達(dá)到實(shí)用化。
2.2.2方案選擇
方案一采用中斷,程序結(jié)構(gòu)化更為清晰,且cpu少了循環(huán)掃描的時(shí)間,效率較高。而且多用了一個(gè)8259中斷控制芯片,一個(gè)8253定時(shí)/計(jì)時(shí)芯片,程序編制上涉及到中斷服務(wù)子程序的編寫,雖然稍顯復(fù)雜,但是能夠很好的實(shí)現(xiàn)實(shí)驗(yàn)要求。電路所需的器件較少,電路連接簡(jiǎn)單化,調(diào)試更方便,布局美觀。
方案二采用74LS375、74LS148、CD4511分別作為搶答信號(hào)的鎖存、編碼和譯碼輸出,來(lái)完成搶答部分,所需的元件較多且實(shí)際中實(shí)現(xiàn)鎖存功能時(shí)也比較繁瑣難實(shí)現(xiàn),所需器件都是純電子器件,沒有軟件的參與,不易擴(kuò)展和修改而且電路結(jié)構(gòu)復(fù)雜、調(diào)試?yán)щy,電子器件管腳很多,實(shí)際搭建起來(lái)費(fèi)時(shí)費(fèi)力,連電路容易出錯(cuò),再就是學(xué)院器材庫(kù)中并沒有NE555定時(shí)器、74LS375鎖存器以及自鎖開關(guān),找別的器材替換會(huì)導(dǎo)致電路連接更復(fù)雜。
方案三是選用了單片機(jī),該方案不需要軟件編程,只需要硬件電路不出錯(cuò)就可以實(shí)現(xiàn)需要的功能。但是電路結(jié)構(gòu)復(fù)雜,不利于調(diào)試,成本較高,實(shí)際接線的時(shí)候會(huì)因?qū)Ь連接混亂造成干擾和短路等故障,而且我們根本毫無(wú)頭緒。
方案四采用單片機(jī),體積小、價(jià)格低、應(yīng)用方便、穩(wěn)定可靠、單片機(jī)將很多任務(wù)交給軟件編程去實(shí)現(xiàn),大大簡(jiǎn)化了外圍硬件電路,使外圍電路的實(shí)現(xiàn)簡(jiǎn)單方便,電路所需的器件較少,電路連接簡(jiǎn)單化,調(diào)試更方便,布局美觀。然而目前對(duì)于單片機(jī)的編程還不熟悉,無(wú)法單獨(dú)實(shí)現(xiàn)。
經(jīng)過我們深思熟慮討論,決定采用效率更高、程序結(jié)構(gòu)化更清晰的方案一,完成基本和擴(kuò)展功能。用Proteus畫電路來(lái)進(jìn)行仿真調(diào)試,再進(jìn)行逐步改進(jìn)、調(diào)試好后連接電路。
2.3 相關(guān)核心模塊(技術(shù))介紹2.3.1并行接口芯片8255A
8255A芯片具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強(qiáng),使用靈活,通過它CPU可直接與外設(shè)相連接。
8255A在使用前要寫入一個(gè)方式控制字,選擇A、B、C三個(gè)端口各自的工作方式,共有三種;
方式0 :基本的輸入輸出方式,即無(wú)須聯(lián)絡(luò)就可以直接進(jìn)行的 I/O方式。其中A、B、C口的高四位或低四位可分別設(shè)置成輸入或輸出。
方式1 :選通I/O,此時(shí)接口和外圍設(shè)備需聯(lián)絡(luò)信號(hào)進(jìn)行協(xié)調(diào),只有A口和B口可以工作在方式1,此時(shí)C口的某些線被規(guī)定為A口或B口與外圍設(shè)備的聯(lián)絡(luò)信號(hào),余下的線只有基本的I/O功能,即只工作在方式0.
方式2: 雙向I/O方式,只有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時(shí)C口有5條線被規(guī)定為A口和外圍設(shè)備的雙向聯(lián)絡(luò)線,C口剩下的三條線可作為B口方式1的聯(lián)絡(luò)線,也可以和B口一起方式0的I/O線。
8255A是一個(gè)并行輸入、輸出器件,具有24個(gè)可編程設(shè)置的I/O口,包括3組8位的I/O為PA口、PB口、PC口,又可分為2組12位的I/O口:A組包括A口及C口高4位,B組包括B口及C組的低4位。8255A引腳圖如下所示:

圖1  8255A引腳圖
2.3.2中斷控制芯片8259A
8259A是專門為了對(duì)8085A和8086/8088進(jìn)行中斷控制而設(shè)計(jì)的芯片,它是可以用程序控制的中斷控制器。單個(gè)的8259A能管理8級(jí)向量?jī)?yōu)先級(jí)中斷。在不增加其他電路的情況下,最多可以級(jí)聯(lián)成64級(jí)的向量?jī)?yōu)級(jí)中斷系統(tǒng)。8259A有多種工作方式,能用于各種系統(tǒng)。各種工作方式的設(shè)定是在初始化時(shí)通過軟件進(jìn)行的。 在總線控制器的控制下,8259A芯片可以處于編程狀態(tài)和操作狀態(tài),編程狀態(tài)是CPU使用IN或OUT指令對(duì)8259A芯片進(jìn)行初始化編程的狀態(tài)。
功能:就是在有多個(gè)中斷源的系統(tǒng)中,接受外部的中斷請(qǐng)求,并進(jìn)行判斷,選中當(dāng)前優(yōu)先級(jí)最高的中斷請(qǐng)求,再將此請(qǐng)求送到cpu的INTR端;當(dāng)cpu響應(yīng)中斷并進(jìn)入中斷子程序的處理過程后,中斷控制器仍負(fù)責(zé)對(duì)外部中斷請(qǐng)求的管理。
8259A的主要功能如下:
①一片8259A可以接受并管理8級(jí)可屏蔽中斷請(qǐng)求,通過8片8259A級(jí)聯(lián)可擴(kuò)展至63級(jí)可屏蔽中斷優(yōu)先控制。
②對(duì)每一級(jí)中斷都可以通過程序來(lái)屏蔽或允許。
③在中斷響應(yīng)周期,8259A可為CPU提供相應(yīng)的中斷類型碼。
④具有多種工作方式,并可通過編程來(lái)加以選擇。
8259A引腳圖如下所示:

圖2  8259A引腳圖
2.3.3可編程定時(shí)芯片8253
8253芯片是可編程計(jì)數(shù)器/定時(shí)器。8253內(nèi)部有三個(gè)計(jì)數(shù)器,分別稱為計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2,他們的機(jī)構(gòu)完全相同。每個(gè)計(jì)數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨(dú)立。每個(gè)計(jì)數(shù)器通過三個(gè)引腳和外部聯(lián)系,一個(gè)為時(shí)鐘輸入端CLK,一個(gè)為門控信號(hào)輸入端GATE,另一個(gè)為輸出端OUT。每個(gè)計(jì)數(shù)器內(nèi)部有一個(gè)8位的控制寄存器,還有一個(gè)16位的計(jì)數(shù)初值寄存器CR、一個(gè)計(jì)數(shù)執(zhí)行部件CE和一個(gè)輸出鎖存器OL。
本次實(shí)驗(yàn)8253作為定時(shí)器,作定時(shí)器時(shí), 計(jì)數(shù)器的初值即定時(shí)系數(shù)應(yīng)根據(jù)要求定時(shí)的時(shí)間進(jìn)行如下運(yùn)算才能得到:
定時(shí)系數(shù)=需要定時(shí)的時(shí)間/時(shí)鐘脈沖周期
①設(shè)置通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設(shè)置的通道及工作方式;
②計(jì)數(shù)/定時(shí):向通道寫入計(jì)數(shù)值,啟動(dòng)計(jì)數(shù)操作;
③讀取當(dāng)前的計(jì)數(shù)值:向指定通道讀取當(dāng)前計(jì)數(shù)器值時(shí),8253將計(jì)數(shù)器值存入鎖存器,從鎖存器向外提供當(dāng)前的計(jì)數(shù)器值,計(jì)數(shù)器則繼續(xù)作計(jì)數(shù)操作。
④計(jì)數(shù)到:當(dāng)計(jì)數(shù)器減1為0時(shí),通過引腳OUTi向外輸出“到”的脈沖信號(hào)。
計(jì)數(shù)初值輸入存放在初值寄存器中,計(jì)數(shù)開始或重裝入時(shí)被復(fù)制到計(jì)數(shù)器中。
鎖存器在非鎖存狀態(tài),其值隨計(jì)數(shù)器的變化而變化;一旦鎖存了計(jì)數(shù)器的當(dāng)前值,直到鎖存器值被讀取后才能解除鎖存狀態(tài)。


圖3 8253引腳圖

3 課題設(shè)計(jì)及實(shí)現(xiàn)3.1硬件設(shè)計(jì)3.1.1硬件設(shè)計(jì)原理
本實(shí)驗(yàn)用到了兩個(gè)8255芯片,第一個(gè)8255芯片的PC0至PC7分別與數(shù)碼管的八個(gè)引腳相連,將8255芯片中需要顯示的信息通過C口送入數(shù)碼顯示區(qū),由顯示電路設(shè)計(jì)數(shù)碼管的亮滅顯示出來(lái)。8255芯片的PA0至PA7分別與4個(gè)撥碼開關(guān)相連,將四位選手的搶答信號(hào)(由撥碼開關(guān)控制)通過A口送入8255芯片。8255芯片的PB0口對(duì)應(yīng)準(zhǔn)備按鍵,PB3口對(duì)應(yīng)結(jié)束按鍵,PB5口對(duì)應(yīng)著開始計(jì)時(shí)按鍵,PB7口對(duì)應(yīng)著重置系統(tǒng)按鍵。將搶答開始和結(jié)束等信號(hào)(由開始按鍵和結(jié)束按鍵控制)通過B口送入8255芯片。第二個(gè)8255芯片的PB0至PB7通過74L373譯碼電路分別與兩個(gè)數(shù)碼管的八個(gè)引腳相連,將8253芯片中的計(jì)時(shí)方式通過芯片的B口入數(shù)碼顯示區(qū),由顯示電路設(shè)計(jì)數(shù)碼管的亮滅顯示出來(lái)。系統(tǒng)硬件原理圖如下圖所示:


圖4 系統(tǒng)硬件原理圖

3.1.2顯示選手電路設(shè)計(jì)
本實(shí)驗(yàn)的其中一個(gè)8255芯片實(shí)現(xiàn)了數(shù)碼管的顯示、選手的搶答功能和主持人對(duì)本次搶答的控制。8255芯片工作在方式0,A端口與B端口輸入,C端口輸出。
8255芯片的A口與8個(gè)選手按鍵相連接,當(dāng)選手搶答成功時(shí),將選手號(hào)碼傳遞給芯片。而8255芯片的C口分別與數(shù)碼管的八個(gè)引腳相連,將A口傳遞過來(lái)的信息通過C口送入數(shù)碼顯示區(qū),由數(shù)碼管的亮滅顯示出來(lái)。顯示選手電路原理圖如下圖所示:


圖5 顯示選手電路原理圖

3.1.3計(jì)時(shí)電路設(shè)計(jì)
本次試驗(yàn)的匯編程序中設(shè)立了一個(gè)flag變量(初始值為0H),當(dāng)程序掃描到有選手搶答后,flag加1,其他選手不能進(jìn)行搶答。此時(shí)等待主持人按下第一個(gè)8255芯片上的開始計(jì)時(shí)按鍵,若按下計(jì)時(shí)鍵,程序?qū)⑼ㄟ^8253芯片的計(jì)時(shí)功能將片選信號(hào)由第二個(gè)8255芯片的B口送入數(shù)碼顯示區(qū),可以從數(shù)碼管的亮滅顯示出來(lái)。計(jì)時(shí)電路原理圖如下圖所示:


圖6計(jì)時(shí)電路原理圖

3.1.4中斷電路設(shè)計(jì)
當(dāng)主持人按下8255芯片上的結(jié)束按鍵或重置系統(tǒng)按鍵時(shí),8255芯片將中斷信號(hào)傳遞給8259芯片,搶答結(jié)束。中斷電路原理圖如下圖所示:

圖7 中斷電路原理圖

3.2 軟件設(shè)計(jì)3.2.1 軟件設(shè)計(jì)程序流程圖
圖8 系統(tǒng)主程序流程圖
3.2.2 軟件設(shè)計(jì)程序代碼及分析

4 實(shí)習(xí)結(jié)果分析

本次實(shí)習(xí)我們組是設(shè)計(jì)一個(gè)競(jìng)賽搶答器,能夠?qū)崿F(xiàn)搶答、計(jì)時(shí)以及顯示的功能。我們運(yùn)用兩個(gè)8255A芯片、一個(gè)8253芯片以及一個(gè)8259芯片來(lái)控制搶答過程的各項(xiàng)功能的實(shí)現(xiàn)。第一個(gè)8255A芯片A口控制搶答器的按鈕,B口控制準(zhǔn)備、關(guān)閉、暫停以及計(jì)時(shí)按鈕,C口控制一個(gè)7段數(shù)碼管,用來(lái)顯示搶答的號(hào)碼。第二個(gè)8255A芯片A口控制片選信號(hào),B口控制兩個(gè)7段數(shù)碼管用來(lái)顯示倒計(jì)時(shí)的時(shí)間,C口控制倒計(jì)時(shí)的開始和終止。8259芯片控制搶答器系統(tǒng)的中斷。

我們這個(gè)搶答器操作簡(jiǎn)單,用戶能夠很快的了解其功能,使用方便。仿真效果如下圖所示,開始仿真后如圖9所示。開始使用時(shí)只要按下準(zhǔn)備鍵,數(shù)碼管亮起“0”,如圖10所示,此時(shí)如果沒人搶答可按關(guān)閉鍵終止搶答回到如圖9時(shí)的狀態(tài),如果有人搶答就會(huì)在數(shù)碼管顯示所搶答選手的號(hào)碼,如圖11所示。有人搶答成功后便可以按下計(jì)時(shí)按鈕開始進(jìn)行30秒倒計(jì)時(shí),如圖12所示。在倒計(jì)時(shí)期間內(nèi),按下暫停按鈕可以終止倒計(jì)時(shí),之后重新按下準(zhǔn)備鍵就可以開始新一輪的搶答。





圖 9

圖 10

圖11

圖12





5 實(shí)習(xí)心得5.1 實(shí)習(xí)日記

2017年6月19日-22日   十七周星期一至十七周星期四


卓長(zhǎng)強(qiáng)(組長(zhǎng))
張遲
仲文
吳智文
6月19日
圖書館查閱資料
6月20日
網(wǎng)上查閱資料,構(gòu)思電路和主程序流程圖
6月21日
構(gòu)思及完成主程序流程圖
構(gòu)思及完成硬件電路圖

6月22日

老師檢查,提出問題
思考老師提出的問題及修改方案

2017年6月23日-30日   十七周星期五至十八周星期五


卓長(zhǎng)強(qiáng)
張遲(組長(zhǎng))
仲文(組長(zhǎng))
吳智文
6月23日
修改主程序流程圖
修改硬件電路圖
6月26日

編寫搶答部分代碼段

編寫計(jì)時(shí)部分代碼段

6月27日
6月28日
合并代碼段,運(yùn)行、仿真、調(diào)試及連線
6月29日

修改完善代碼,并嘗試拓展功能

6月30日

2017年7月3日-4日   十八周星期五至十九周星期二


卓長(zhǎng)強(qiáng)
張遲
仲文
吳智文(組長(zhǎng))
7月3日

編寫、檢查和完善報(bào)告

7月4日

5.2 心得體會(huì)

本次實(shí)習(xí)是針對(duì)我們所學(xué)的知識(shí)完成一個(gè)搶答器的設(shè)計(jì),綜合應(yīng)用8255并行接口、8259中斷和8253定時(shí)器等學(xué)過的知識(shí)進(jìn)行設(shè)計(jì),在我們組員的共同努力下最終完成了這次實(shí)習(xí)任務(wù),搶答器能夠正常工作,實(shí)現(xiàn)了搶答、計(jì)時(shí)、重置等功能。

通過這次實(shí)習(xí),我對(duì)所學(xué)的知識(shí)掌握的更加透徹了,讓我更好的掌握了8259A、8255A、8253芯片的工作原理、方式及其應(yīng)用。在這次實(shí)習(xí)中我們也遇到了很多困難,但是在我們組員的互相協(xié)助下克服了一個(gè)個(gè)難題,這讓我們意識(shí)到了團(tuán)隊(duì)的重要性,在組員的團(tuán)結(jié)合作下,工作效率越來(lái)越高,很多問題都能迎刃而解,最終完成了搶答器的設(shè)計(jì)。此次設(shè)計(jì)中,我深刻的體會(huì)到了知識(shí)的重要性,還要求我們要善于思考。同時(shí)設(shè)計(jì)不能單純的考慮設(shè)計(jì)本身,要想到它是否切合實(shí)際,能否適用,我們的這個(gè)搶答器功能還不是很完善,但是也能很好實(shí)現(xiàn)搶答的功能,希望經(jīng)過進(jìn)一步的努力讓這個(gè)作品更加完美。

參 考 文 獻(xiàn)
[1]仁向民·《微機(jī)接口技術(shù)實(shí)用教程》[M].北京:清華大學(xué)出版社
[2]周荷琴,吳秀清.微型計(jì)算機(jī)原理與接口技術(shù)[M].合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2008年6月.
[3]張雪蘭、譚毓安·《匯編語(yǔ)言程序設(shè)計(jì)》[M].北京:清華大學(xué)出版社
[4]寧飛,王維華,孔宇.微型計(jì)算機(jī)原于是與接口實(shí)踐[M].北京:清華大學(xué)出版社,2006.
[5]裘雪紅,李伯成,劉凱.微型計(jì)算機(jī)原理及接口技術(shù)[M].西安:西安電子科技大學(xué)出版社.2007年3月.
[6]劉紅玲、邵曉根·《微機(jī)原理與接口技術(shù)》[M].北京:中國(guó)電力出版社

單片機(jī)源程序如下:
  1. ;...............................................設(shè)置各個(gè)芯片的端口
  2. C8255 EQU 306H                            ;0011 0000 0110b
  3. IPA EQU 300H                            ;0011 0000 0000b
  4. IPB EQU 302H                            ;0011 0000 0010b
  5. IPC EQU 304H                            ;0011 0000 0100b

  6. A8255 EQU 206H                            ;0010 0000 0110b
  7. APA EQU 200H                            ;0010 0000 0000b
  8. APB EQU 202H                            ;0010 0000 0010b
  9. APC EQU 204H                            ;0010 0000 0100b

  10. C8253 EQU 106H                            ;0001 0000 0110b
  11. CPA EQU 100H                            ;0001 0000 0000b
  12. CPB EQU 102H                            ;0001 0000 0010b
  13. CPC EQU 104H                            ;0001 0000 0100b
  14.             

  15. code              segment 'code' ;定義代碼段
  16.               assume cs:code,ds:code
  17. ;.............................................偽指令(DB定義字節(jié),DW定義字)
  18.                   TEMP DB 100 DUP(11)
  19.     LED DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
  20.     HH  DB 00H
  21.     HL  DB 00H
  22.     LP  DB 0H
  23.     MS  DW 0H
  24.             
  25. main proc far
  26. start:            
  27.               mov ax,code              ;建立DS段地址
  28.               mov ds,ax

  29. ;寫中斷***************************************************
  30.               cli;關(guān)中斷,防止有些硬件中斷對(duì)程序的干擾
  31.               mov cx,100h
  32. ini:
  33.               mov ax,0
  34.               mov es,ax  ; 附加段寄存器置0
  35.               mov dx,cx
  36.               dec dx
  37.               shl dx,1
  38.               shl dx,1
  39.               mov si,dx              ;設(shè)置中斷向量   源變址寄存器,用于存放源操作數(shù)的偏移地址
  40.               mov ax,offset int0 ;取中斷號(hào)0的偏移地址
  41.               ;stosw              ;存入串指令的字操作
  42.               mov es:[si],ax
  43.               mov ax,cs              ;seg int0
  44.               ;stosw              ;
  45.               mov es:[si+2],ax
  46.               loop ini

  47.                                           ;初始化8259
  48.         mov al,00010011b  ;000 1 0 0 1 1 8086不用,標(biāo)志位,邊沿觸發(fā),8086不用,單級(jí)使用,需要設(shè)置ICW4
  49.               mov dx,400H
  50.               out dx,al
  51.             
  52.               mov al,060h  ;01100 000 中斷類型號(hào)n的高5位  IR0
  53.               mov dx,402h
  54.               out dx,al

  55.               mov al,1bh  ;000 1  10 1 1 標(biāo)志位,特殊全嵌套方式,8259A為從片,AEOI自動(dòng)結(jié)束中斷,8086配置
  56.               out dx,al

  57.                      MOV DX,402h
  58.         MOV AL,00H               ;OCW1,八個(gè)中斷全部開放
  59.         OUT DX,AL

  60.         MOV DX,400h
  61.         MOV AL,60H              ;OCW2,非特殊EOI結(jié)束中斷
  62.         OUT DX,AL
  63.               ;完成8259初始化

  64.               mov al,cnt;控制操作次數(shù)
  65.         mov dx,0600h
  66.               out dx,al
  67.               sti;開中斷,允許硬件中斷
  68. ;*********************************************************


  69.               xor ax,ax
  70.                   mov es,ax
  71.             
  72.               mov ax,offset IT
  73.               mov es:[8H],ax

  74.               mov ax,seg IT
  75.               mov es:[0AH],ax
  76.                            
  77. ;**********************************初始化C8255            
  78. LL:
  79.               cli
  80.               mov dx,306H              ;指向控制寄存器
  81.               mov al,92h  ;A口方式0輸入,B口方式0輸入,C口輸出
  82.               out dx,al
  83.               mov dx,304h;指向C口
  84.               mov al,0FFh
  85.               out dx,al;數(shù)碼管不亮
  86. ;**********************************程序初始化
  87. L:
  88.               mov dx,302h;指向B口
  89.               in al,dx;獲取B口內(nèi)容
  90.               cmp al,0ffh;判斷是否什么都沒按
  91.               jz L
  92.               call delay10
  93.               cmp al,011111110b              ;判斷是不是按下準(zhǔn)備鍵
  94.               jz  L1;跳轉(zhuǎn)到開始段代碼
  95.               jmp L
  96. ;**********************************復(fù)位()
  97. L3:            
  98.               mov dx,IPC;指向A8255C口
  99.               mov al,011000000b
  100.               out dx,al                            ;數(shù)碼管復(fù)位為0
  101.             
  102. ;***********************************開始 數(shù)碼管顯示為0
  103. L1:            
  104.               mov dx,304h;指向C口
  105.               mov al,0c0h
  106.               mov flag,0;無(wú)人搶答
  107.               nop;產(chǎn)生微小延遲


  108. ;***********************************初始化A8255并進(jìn)行按鍵檢測(cè)            
  109. AGAIN:
  110.               mov dx,0206h;指向A8255寄存器端口
  111.               mov al,92h ;A口方式0輸入,B口方式0輸入,C口輸出
  112.               out dx,al
  113.               mov dx,0204h;指向C口
  114.               mov al,0c0h;不可計(jì)時(shí)
  115.               out dx,al
  116.               mov dx,0302h;指向C8255的B口
  117.               in al,dx;獲取內(nèi)容
  118.               cmp al,7fh;判斷是否按了重置系統(tǒng)按鍵
  119.               jz L3;跳到復(fù)位段
  120.               cmp al,0F7h;判斷是否按了結(jié)束按鍵
  121.               jz LL
  122.             
  123.               mov dx,0300h;指向C8255A端口
  124.               in al,dx
  125.               cmp al,0FFh;判斷是否沒有人搶答
  126.               jz AGAIN


  127.               call delay10                            ;延時(shí)防抖動(dòng)
  128.               in al,dx;將選手號(hào)賦給al
  129.               cmp flag,1                            ;按下鍵后,判斷flag是否為1
  130.               jz AGAIN

  131.               inc flag;flag加1,其他選手不能再按
  132.               mov bx,0
  133. ;**********************************根據(jù)按下的值查表
  134. GKEY:
  135.               mov               ah,keydata[bx];查0-7數(shù)據(jù)表
  136.               cmp               al,ah;比較是否與選手號(hào)相同
  137.               jz               DISP;相同跳轉(zhuǎn)到DISP
  138.               inc               bl;不相同加1繼續(xù)比較
  139.               LOOP               GKEY
  140. ;**********************************再查表并顯示搶答的一組
  141. DISP:
  142.               inc bl
  143.               mov al,segdata[bx]
  144.               mov dx,IPC;指向C8255C口
  145.               not al
  146.               out dx,al;數(shù)碼管輸出選手號(hào)
  147.               mov tmp,al;將選手號(hào)賦給tmp(3fh)
  148.               mov dx,IPB;指向C8255B口
  149. ;*********************************延時(shí)等待計(jì)時(shí)
  150. waits:
  151.               call delay10
  152.               in al,dx;獲取B口內(nèi)容
  153.               cmp al,11011111b              ;判斷是不是按下計(jì)時(shí)鍵
  154.               jz L4;若按下計(jì)時(shí)鍵跳轉(zhuǎn)到L4
  155.         jmp waits;等待按下計(jì)時(shí)鍵
  156. ;*********************************開始計(jì)時(shí),計(jì)時(shí)完跳回程序最初位置
  157. L4:            
  158. ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  159. mov sxh,0
  160. mov sss,1
  161. ;*********************************初始化
  162.        mov dx,A8255    ;選中控制寄存器  
  163.        mov al,80H   ;命令字 10000000(A、B、C口輸出)
  164.        out dx,al    ;初始化A8255

  165.        mov dx,C8253   ;00010110
  166.        mov al,00010100B;通道0、只讀低字節(jié)、方式2(二進(jìn)制)
  167.        out dx,al   ;初始化8253   

  168.        mov ax,03E8H  ;十進(jìn)制為1000   

  169.        mov dx,CPA                            ;指向8253通道0
  170.        mov al,0H
  171.        out dx,al

  172.        mov dx,C8253   ;001000              *****
  173.        mov al,00100100B;通道0、只讀高字節(jié)、方式2
  174.        out dx,al

  175.        mov dx,CPA   ;指向8253通道0
  176.        mov al,ah
  177.        out dx,al

  178.        mov dx,APC              ;              指向A8255C口
  179.        mov al,00010000B;與8253的start連接,開始計(jì)時(shí)
  180.        out dx,al
  181.               mov HH,00H;第二位計(jì)時(shí)器初值
  182.               mov HL,03H;第一位計(jì)時(shí)器初值
  183.               sti;打開中斷
  184. ;********************************初始賦值
  185. LOP1:
  186.        mov ah,00000010B;連接第二個(gè)計(jì)時(shí)器
  187.        mov LP,0
  188. ;********************************數(shù)碼管計(jì)數(shù)的顯示
  189. LSP:     

  190.        mov bx,offset HH
  191.        mov al,LP
  192.        xlat
  193.        mov bx,offset LED;數(shù)碼管數(shù)據(jù)表首地址
  194.        xlat ;查表,AL<-(BX+AL)
  195.             
  196.        mov dx,APB              ;              指向A8255B口
  197.        out dx,al ;輸出數(shù)據(jù)

  198.        mov dx,APA              ;              指向A8255A口
  199.        mov al,ah;(00000010B)與SB1數(shù)碼管相連
  200.        out dx,al

  201.        mov dx,APA              ;指向A8255A口
  202.        mov al,0H
  203.        out dx,al


  204.        shr ah,1;向右移1(00000001B)
  205.        inc LP

  206.        cmp ah,0H
  207.        jz  LOP1
  208.        loop LSP            
  209. ;.....................................結(jié)束計(jì)時(shí)
  210. ire:
  211.               mov dx,APC;指向A8255C口
  212.               mov al,0
  213.               out dx,al;結(jié)束與8253的連接

  214.               mov sss,0
  215. ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  216.               jmp LL
  217. ;********************************延時(shí)循環(huán)
  218. ;loop1:
  219.               ;loop $
  220.               ;loop AGAIN
  221.               ret
  222. main endp


  223. IT proc
  224.        cli;關(guān)閉中斷
  225. ;********************************計(jì)時(shí)100ms   
  226.        inc MS;初始為0H
  227.        cmp MS,200H;調(diào)節(jié)時(shí)間快慢
  228.        jne re;相等跳轉(zhuǎn)(打開中斷)
  229.        mov MS,0H
  230.        jmp ad
  231. ;********************************秒的第二位減為0時(shí)重新賦值為9
  232. init:
  233.        mov HH,0aH;第二位計(jì)時(shí)器變?yōu)?
  234.        DEC HL;第一位計(jì)時(shí)器減1
  235.        jmp ad
  236. ;*******************************倒計(jì)時(shí)計(jì)數(shù) C8255實(shí)時(shí)顯示搶答組號(hào)
  237. ad:
  238.               push dx
  239.               push ax
  240.               push bx
  241.               push cx
  242.               mov dx,C8255              ;0111 0000 0000b,8255A控制端口地址
  243.               mov al,92H              ;10010010b,方式選擇字:PA,PB輸入、PC輸出
  244.               out dx,al
  245.             
  246.               mov al,tmp
  247.               mov dx,IPC;指向C8255C口
  248.               out dx,al;輸出選手號(hào)
  249.             
  250.               pop cx
  251.               pop bx
  252.               pop ax
  253.               pop dx
  254.               out dx,al
  255.               mov dx,IPB;指向C8255B口
  256.               in al,dx;獲取內(nèi)容
  257.               cmp al,7fh;判斷是否按重置系統(tǒng)鍵
  258.               jz start;回到start

  259.               cmp sxh,01h
  260.               jnz FH
  261. RES:
  262.               mov HH,0
  263.               mov HL,0
  264.               mov cx,0

  265. FH:
  266.     cmp HL,0;比較第一位計(jì)時(shí)器是否為0(初始為3)
  267.               JZ  out1;若為0跳轉(zhuǎn)到out1
  268.               cmp HH,0;比較第二位計(jì)時(shí)器是否為0
  269.               jz  init;第二位計(jì)時(shí)器變?yōu)?,第一位計(jì)時(shí)器減一(數(shù)碼管輸出)
  270.               jmp oend
  271. ;******************************計(jì)數(shù)判斷以及跳轉(zhuǎn)
  272. oend:
  273.        DEC HH              ;第二位計(jì)時(shí)器減一
  274.        cmp HH,00H
  275.        jne re
  276.        cmp HL,00H;判斷第一位計(jì)時(shí)器是否為0
  277.        jz out2
  278.        cmp HL,00H
  279.        jz re
  280.        jmp re
  281. out1:
  282.               cmp HH,0;判斷第二位計(jì)時(shí)器是否為0
  283.   jnz oend;不為0跳轉(zhuǎn)oend
  284.               jmp ire;若為0結(jié)束計(jì)時(shí)
  285. ……………………

  286. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

完整的word格式實(shí)驗(yàn)報(bào)告文檔51黑下載地址(內(nèi)含清晰圖片與完整程序):
競(jìng)賽搶答器設(shè)計(jì).doc (1.67 MB, 下載次數(shù): 181)
回復(fù)

使用道具 舉報(bào)

ID:271823 發(fā)表于 2018-1-5 13:17 | 顯示全部樓層
請(qǐng)問你這個(gè)項(xiàng)目源碼包還有備份保留嗎
回復(fù)

使用道具 舉報(bào)

ID:271823 發(fā)表于 2018-1-5 13:52 | 顯示全部樓層
請(qǐng)問這個(gè)項(xiàng)目的源碼包還有備份存在嗎?可不可以給我發(fā)一份呢
回復(fù)

使用道具 舉報(bào)

ID:282852 發(fā)表于 2018-2-7 20:19 | 顯示全部樓層
有最后50多行的代碼嗎
回復(fù)

使用道具 舉報(bào)

ID:334927 發(fā)表于 2018-6-9 22:26 | 顯示全部樓層
為什么按文件里的程序和硬件連接仿真不出結(jié)果呢
回復(fù)

使用道具 舉報(bào)

ID:451030 發(fā)表于 2018-12-24 16:46 | 顯示全部樓層
浚宇y 發(fā)表于 2018-6-9 22:26
為什么按文件里的程序和硬件連接仿真不出結(jié)果呢

你知道原因了嗎?
回復(fù)

使用道具 舉報(bào)

ID:479827 發(fā)表于 2019-2-24 15:45 | 顯示全部樓層
你的Proteus仿真文件還在嗎
回復(fù)

使用道具 舉報(bào)

ID:566282 發(fā)表于 2019-6-18 23:57 | 顯示全部樓層
有人知道原因了嗎,我查了可能是cpu的問題
回復(fù)

使用道具 舉報(bào)

ID:373720 發(fā)表于 2019-6-23 15:04 來(lái)自手機(jī) | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報(bào)

ID:1104687 發(fā)表于 2023-12-17 17:44 | 顯示全部樓層
學(xué)長(zhǎng)唉。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩免费一区二区 | 自拍偷拍中文字幕 | 久久久久久99 | 欧美v日韩v | 四虎影院免费在线 | 中文字幕第二区 | 一级片免费视频 | 亚洲一区二区av | 国产一区二区三区不卡av | 日韩欧美精品一区 | 午夜成人免费视频 | 日本福利在线观看 | 一区二区三区不卡视频 | 日韩电影中文字幕 | 久久激情av| 亚州春色| 欧美视频二区 | 伊人网综合在线 | 亚洲一页| 国产精品久久久久久久久久久久冷 | 91视频免费黄| 日韩欧美三区 | 精品国产一区二区三区在线观看 | 欧美一级片在线观看 | 亚洲欧美日韩一区二区 | 黄视频国产 | 一区视频在线免费观看 | 国产成人免费 | 怡红院成人在线视频 | 久久一区二区三区四区 | 国产精品99久久久久久人 | 99re热精品视频| 日本中文字幕在线观看 | 国产一区二区三区色淫影院 | 91精品国产一区二区三区香蕉 | 亚洲第一在线 | 免费在线成人网 | 一区视频 | 日本精品久久久久久久 | 免费在线观看av片 | 一级大片免费 |