freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)基于fpga的電子搶答器的設(shè)計(jì)(編輯修改稿)

2025-08-23 03:45 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ROM,故內(nèi)部程序不能改寫,不用于實(shí)驗(yàn)開(kāi)發(fā)。87C51 具有片內(nèi) EPROM,是真正的單片微機(jī),但由于價(jià)格較貴,且程序改寫時(shí)要用紫外線擦除,時(shí)間較長(zhǎng),所以用得較少。80C31 在市場(chǎng)上的價(jià)格很低,但片內(nèi)沒(méi)有 ROM,必須在片外擴(kuò)展一片 EPROM,非常不便。AT89C51 片內(nèi)具有可電擦除的 FPEROM,可以快速、多次地編程,且價(jià)格不高,所以用得非常廣泛,目前開(kāi)發(fā)用的 MCS—51 產(chǎn)品絕大多數(shù)用 89C51[4]。表 23 單片機(jī)主要性能的比較型號(hào) ROM形式片內(nèi)ROM片內(nèi)RAM尋址范圍定時(shí)計(jì)數(shù)I/O口串行I/O 口外部中斷80C31 接ROM4K 128 2*64 K2*16 4 UART 280C51 ROM 4K 128 2*64 K2*16 4 UART 287C51 EPROM4K 128 2*64 K2*16 4 UART 289C51 FPEROM4K 128 2*64 K2*16 4 UART 2 AT89C51 單片機(jī)AT89C51 是一種低功耗、高性能的含有 4KB 閃速可編程電擦除只讀存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的 8 位CMOS 微控制器,使用高密度、非易失存儲(chǔ)技術(shù)制造,并且與 80C51 指令系統(tǒng)和引腳完成兼容。芯片上的 FPEROM 允許在線或采用通用的非易失存儲(chǔ)編程器對(duì)程序存儲(chǔ)器重復(fù)編程。(1)AT89C51 的主要性能包括:AT89C51 與 MCS—51 控制器系列產(chǎn)品兼容,片內(nèi)有 4K 可在線重復(fù)編程閃速電擦除存儲(chǔ)器(Flash Memory) ,存儲(chǔ)器可循環(huán)寫入/擦除 1000 次;存儲(chǔ)器數(shù)據(jù)保存時(shí)間可達(dá) 10 年;工作電壓范圍寬:Vcc可由 到 6V;全靜態(tài)工作可由 0Hz 到 16MHz;程序存儲(chǔ)器具有 3 級(jí)鎖存保護(hù);128*8 位內(nèi)部 RAM;32 條可編程 I/O 線;兩個(gè) 16 位定時(shí)器/計(jì)數(shù)器;中斷結(jié)構(gòu)具有 5 個(gè)中斷源和 2 個(gè)中斷優(yōu)先級(jí);可編程全雙工串行通信;空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲(chǔ)內(nèi)容。(2)FPEROM 的編程:AT89C51 的 I/O 口 P0、PP2 和 P3 除具有與 80C51相同的一些性能和用途外,在 FPEROM 編程時(shí),P0 口接收代碼字節(jié),并在程序檢驗(yàn)時(shí)輸出代碼字節(jié),但在程序校驗(yàn)時(shí)需要外部上拉負(fù)載電阻,在 FPEROM 編程和程序校驗(yàn)期間,P1 口接收低位地址字節(jié),P2 口接收高位地址字節(jié)和一些控制信號(hào),P3 口也接收一些 FPEROM 編程和校驗(yàn)用的信號(hào),此時(shí) ALE/PROG 引腳是編程脈沖輸入(PROG)端,在 FPEROM 編程期間,如果選擇 12V 編程電壓、那么 EA/Vpp 引腳也允許接受 12V 編程電壓(Vpp) 。 搶答器的優(yōu)點(diǎn)及組成在知識(shí)比賽中,特別是做搶答題目的時(shí)候,在搶答過(guò)程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成這個(gè)任務(wù)。如果在搶答中,靠視覺(jué)是很難判斷出哪組先答題。利用單片機(jī)系統(tǒng)來(lái)設(shè)計(jì)搶答器,使以上問(wèn)題得以解決,即使兩組的搶答時(shí)間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機(jī)搶答器設(shè)計(jì)及工作原理,以及它的實(shí)際用途。系統(tǒng)工作原理本系統(tǒng)采用 AT89C51 單片機(jī)作為核心??刂葡到y(tǒng)的四個(gè)模塊分別為:存儲(chǔ)模塊、顯示模塊、語(yǔ)音模塊、搶答開(kāi)關(guān)模塊。該搶答器系統(tǒng)通過(guò)開(kāi)關(guān)電路六個(gè)按鍵輸入搶答信號(hào);利用存儲(chǔ)程序來(lái)完成軟件的設(shè)計(jì);利用一個(gè)數(shù)碼管來(lái)完成顯示功能。工作時(shí),用按鍵通過(guò)開(kāi)關(guān)電路輸入各路的搶答信號(hào),經(jīng)單片機(jī)的處理,輸出控制信號(hào),控制數(shù)碼管和語(yǔ)音芯片工作。在數(shù)碼管上顯示哪一組先答題,并通過(guò)語(yǔ)音系統(tǒng)讀出第 N 組請(qǐng)答題,從而實(shí)現(xiàn)整個(gè)搶答過(guò)程。第三章 系統(tǒng)總體方案的設(shè)計(jì) 硬件電路的設(shè)計(jì)與原理圖本設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì) [5],這兩者相互結(jié)合,不可分離;從時(shí)間上看,硬件設(shè)計(jì)的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術(shù)準(zhǔn)備充分,硬件設(shè)計(jì)的大返工是比較少的,軟件設(shè)計(jì)的任務(wù)貫徹始終,到中后期基本上都是軟件設(shè)計(jì)任務(wù),隨著集成電路技術(shù)的飛速發(fā)展,各種功能很強(qiáng)的芯片不斷出現(xiàn),使硬件電路的集成度越來(lái)越高,硬件設(shè)計(jì)的工作量在整個(gè)項(xiàng)目中的所占的比重逐漸下降。為使硬件電路設(shè)計(jì)盡可能合理,應(yīng)注意以下幾方面:(1) 盡可能采用功能強(qiáng)的芯片,以簡(jiǎn)化電路,功能強(qiáng)的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價(jià)格不斷下降,并不一定比若干普通芯片價(jià)格的總和高。(2) 留有設(shè)計(jì)余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來(lái)修改擴(kuò)展的方便。因?yàn)楹苌儆幸诲N定音的電路設(shè)計(jì),如果現(xiàn)在不留余地,將來(lái)可能要為一點(diǎn)小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。(3) 程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),本設(shè)計(jì)采用 AT89C51單片機(jī)。(4) RAM 空間,AT89C51 內(nèi)部 RAM 不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時(shí),往往覺(jué)得不足。如果系統(tǒng)配置了外部 RAM,則建議多留一些空間。如選用 8155作 I/O 接口,就可以增強(qiáng) 256 字節(jié) ,則應(yīng)配置足夠的 RAM,如 6264,62256 等。隨著軟件設(shè)計(jì)水平的提高,往往只要改變或增加軟件中的數(shù)據(jù)處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升級(jí)換代。只要在硬件電路設(shè)計(jì)初期考慮到這一點(diǎn),就應(yīng)該為系統(tǒng)將來(lái)升級(jí)留足夠的 RAM 空間,哪怕多設(shè)計(jì)一個(gè) RAM 的插座,暫不插芯片也好。(5) I/O 端口:在樣機(jī)研制出來(lái)后進(jìn)行現(xiàn)場(chǎng)試用時(shí),往往會(huì)發(fā)現(xiàn)一些被忽視的問(wèn)題,而這些問(wèn)題不是靠單純的軟件措施來(lái)解決的。如有些新的信號(hào)需要采集,就必須增加輸入檢測(cè)端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計(jì)就預(yù)留出一些 I/O 端口,雖然當(dāng)時(shí)空著沒(méi)用,那么用的時(shí)候就派上用場(chǎng)了。圖 31 系統(tǒng)原理圖 為開(kāi)始搶答 [9], 為停止, 為六路搶答輸入,數(shù)碼管段選 P0 口,位選 P2 口低 3 位,蜂鳴器輸出為 口。 為時(shí)間加 1 調(diào)整, 為時(shí)間減 1 調(diào)整。 時(shí)鐘頻率電路的設(shè)計(jì),只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。圖 32 為外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲 10ms 后振蕩器起振,在XTAL2 引腳產(chǎn)生幅度為 3V 左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容 C1,C2 的作用有兩個(gè):一是幫助振蕩器起振。二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1,C2 的典型值為 30PF。單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù),常用 fosc表示。如時(shí)鐘頻率為 12MHz,即 fosc=12MHz,則時(shí)鐘周期為 1/12181。s。 復(fù)位電路與顯示電路的設(shè)計(jì)單片機(jī)的第 9 腳 RST 為硬件復(fù)位端,只要將該端持續(xù) 4 個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖4 所示:圖 33 復(fù)位電路值得注意的是,在設(shè)計(jì)當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲(chǔ)器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計(jì)時(shí)時(shí)間的記憶功能,該功能的實(shí)現(xiàn)的前提條件就是不能對(duì)單片機(jī)進(jìn)行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過(guò)一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來(lái)解決。顯示模塊在系統(tǒng)軟件中的安排操作者主要設(shè)計(jì)從顯示設(shè)備上獲取微機(jī)系統(tǒng)的信息的,因此,操作者每操作一下,顯示設(shè)備商都應(yīng)該有一定的反應(yīng)。這說(shuō)明,顯示模塊與操作有關(guān),即監(jiān)控程序是需要調(diào)用顯示模塊。不同的操作需要顯示不同的內(nèi)容,這又說(shuō)明各執(zhí)行模塊對(duì)顯示模塊的驅(qū)動(dòng)方式是不同的。另一方面,在操作者沒(méi)有進(jìn)行操作時(shí),顯示內(nèi)容也是變化的,如顯示現(xiàn)場(chǎng)各物理量的變化情況。這時(shí)顯示模塊不是由操作者通過(guò)命令鍵來(lái)驅(qū)動(dòng),而是由各類自動(dòng)執(zhí)行的功能模塊來(lái)驅(qū)動(dòng)。自動(dòng)執(zhí)行的各類模塊在安排在各種中斷子程序中,這就是說(shuō),各種中斷子程序也要調(diào)用顯示模塊。如果監(jiān)控安排在中斷子程序中,兩者的要求就統(tǒng)一了,問(wèn)題比較好解決,如果監(jiān)控程序安排在主程序中,在監(jiān)控程序調(diào)用顯示模塊的過(guò)程中發(fā)生了中斷,中斷子程序也調(diào)用顯示模塊,這時(shí)就容易出問(wèn)題。一種比較妥善的辦法是只讓一處調(diào)用顯示模塊,其他各處均不得直接調(diào)用顯示模塊,但有權(quán)申請(qǐng)顯示。這就要設(shè)置一個(gè)顯示申請(qǐng)標(biāo)志,當(dāng)某模塊需要顯示時(shí),將申請(qǐng)標(biāo)志置位,同時(shí)設(shè)定有關(guān)顯示內(nèi)容(或指針) 。由于一處調(diào)用顯示模塊,故不會(huì)發(fā)生沖突。為了使顯示模塊能及時(shí)反應(yīng)系統(tǒng)需要,應(yīng)將顯示模塊安排在一個(gè)重復(fù)執(zhí)行的循環(huán)(如監(jiān)控循環(huán)或時(shí)鐘中斷子程序)中。當(dāng)監(jiān)控程序(鍵盤解釋程序)安排在時(shí)鐘中斷子程序中時(shí),處理比較方便,只要在監(jiān)控程序的匯合處調(diào)用顯示模塊就可以了。例如用 DISP 作顯示申請(qǐng)標(biāo)志,就可以這樣安排顯示模塊的調(diào)用,即DISP BIT ;顯示申請(qǐng)標(biāo)志SKEYEND: JNB DISP,RETI0 ;有顯示申請(qǐng)否? LCALL DISPLAY ;調(diào)用顯示模塊,更新顯示內(nèi)容 CLR DISP ;清除申請(qǐng)RETI0: .. RETI ;中斷返回KEYEND 為鍵盤解釋程序的最后匯集點(diǎn),這時(shí)如果發(fā)現(xiàn)有顯示申請(qǐng),就進(jìn)行集中操作,更新顯示內(nèi)容,否則就跳過(guò)這一步。這里將顯示功能集中到一起,作為一個(gè)功能模塊,就要求它的功能全面,能根據(jù)系統(tǒng)軟件提供的信息自動(dòng)完成顯示內(nèi)容的查找,變換和輸出驅(qū)動(dòng)。這樣設(shè)計(jì)使得各功能模塊都不必考慮顯示問(wèn)題,只要給出一個(gè)簡(jiǎn)單的信息(如顯示格式編碼)甚至不用再提供額外信息,直接利用當(dāng)前狀態(tài)變量和軟件標(biāo)志就可以完成所需的顯示要求。如果編寫這樣一個(gè)集中顯示模塊有困難,也可以將顯示模塊編小一些,只完成顯示緩沖區(qū)的內(nèi)容輸出到顯示器件上的工作。這時(shí)各功能模塊在提出顯示申請(qǐng)時(shí),還需要將顯示內(nèi)容按需要的格式送入顯示緩沖區(qū)中。這樣分而治之比較容易編程,但要小心出現(xiàn)顯示混亂。例如后臺(tái)程序需要調(diào)用顯示,將有關(guān)信息送入到現(xiàn)實(shí)緩沖區(qū)進(jìn)行顯示;中斷返回后,后臺(tái)程序繼續(xù)送完后半部分顯示內(nèi)容,但前半部分內(nèi)容已經(jīng)變了,這樣就出現(xiàn)了顯示錯(cuò)誤。解決的辦法是,在申請(qǐng)顯示前,先檢查是否已經(jīng)有顯示申請(qǐng),如果有,就不再申請(qǐng),等待下次機(jī)會(huì);如果沒(méi)有,則先申請(qǐng)標(biāo)志位,再將顯示內(nèi)容送入顯示緩沖區(qū)。這時(shí)就不必?fù)?dān)心其他前臺(tái)模塊來(lái)打擾了,就可以得到一次完整的顯示機(jī)會(huì)。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示 [6]上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動(dòng)態(tài)顯示。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫簡(jiǎn)單,但占用端口資源多;動(dòng)態(tài)顯示的特點(diǎn)是顯示穩(wěn)定性沒(méi)靜態(tài)好,程序編寫復(fù)雜,但是相對(duì)靜態(tài)顯示而言占用端口資源少。在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法。并通過(guò)查表法,將其在數(shù)碼管上顯示出來(lái),其中 P0 口為字型碼輸入端,P2 口低 3 位為字選段輸入端。在這里我們通過(guò)查表將字型碼送給 7 段數(shù)碼管顯示的數(shù)字,數(shù)碼管顯示原理如下: MOV A,R5 MOVC A,@A+DPTR ;查字型碼MOV P2,01H ;送位選碼MOV P0,A ;送字型碼ACALL DELAY ;調(diào)延時(shí),去閃爍圖 34 共陰極數(shù)碼管在七段數(shù)碼管顯示中可分為共陽(yáng)極和共陰極兩種類型極。以共陰為例,要想 a 段亮,向 a 段送 1 就是,返之送 0,共陽(yáng)剛好相反。 鍵盤掃描電路的設(shè)計(jì)鍵盤是人與微機(jī)系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計(jì)方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計(jì)的立場(chǎng)上來(lái)看,僅僅完成鍵盤掃描,讀取當(dāng)前時(shí)刻的鍵盤狀態(tài)是不夠的,還有不少問(wèn)題需要妥善解決,否則,人們?cè)诓僮麈I盤就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤。圖 35 獨(dú)立鍵盤它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡(jiǎn)單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對(duì)硬件電路要求不高的簡(jiǎn)單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢(shì)得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過(guò)程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時(shí)重復(fù)掃描法,延時(shí)法的原理為:因?yàn)椤懊獭泵}沖一般持續(xù)時(shí)間短,約為幾 ms,而我們按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)大于這個(gè)時(shí)間,所以當(dāng)單片機(jī)檢測(cè)到有按鍵動(dòng)靜后再延時(shí)一段時(shí)間(這里我們?nèi)?10ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無(wú)效。鍵盤抖動(dòng)的軟件處理:按鍵的觸點(diǎn)在閉合和斷開(kāi)時(shí)均會(huì)產(chǎn)生抖動(dòng),這是觸點(diǎn)的邏輯電平是不穩(wěn)定的,如不妥善處理,將會(huì)引起按鍵命令的錯(cuò)誤執(zhí)行或重復(fù)執(zhí)行?,F(xiàn)在一般均用軟件延時(shí)的方法來(lái)避開(kāi)抖動(dòng)階段,這一延時(shí)過(guò)程一般大于 5ms,例如取 1020ms。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺(tái)程序)或鍵盤中斷(外
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1