基于51單片機(jī)的八路搶答器設(shè)計(jì)(1)
基于51單片機(jī)的八路搶答器設(shè)計(jì)(1),基于,51,單片機(jī),八路,搶答,設(shè)計(jì)
25
基于單片機(jī)的八路搶答器
編號(hào):
單片機(jī)課程設(shè)計(jì)報(bào)告
題 目:八路搶答器設(shè)計(jì)制作
院 (系): 電子工程系
專 業(yè): 電子信息工程技術(shù)
學(xué)生姓名:
學(xué) 號(hào):
指導(dǎo)教師單位:
姓 名:
題目類(lèi)型:¨理論研究 ¨實(shí)驗(yàn)研究 t工程設(shè)計(jì) ¨工程技術(shù)研究 ¨軟件開(kāi)發(fā)
2013年7月3日
摘 要
隨著社會(huì)的不斷進(jìn)步,電子技術(shù)也飛速的向前發(fā)展.特別是大規(guī)模集成電路的發(fā)展,把我們帶進(jìn)了電子化時(shí)代。電子產(chǎn)品的日益增多,也讓我們的生活越來(lái)越方便。特別是計(jì)算機(jī)的發(fā)展,真可謂是突飛猛進(jìn)。自從1946年世界上第一臺(tái)計(jì)算機(jī)的誕生以來(lái),還不到六十年的時(shí)間,計(jì)算機(jī)就取得了舉世矚目的成績(jī)。特別是在通信領(lǐng)域,實(shí)現(xiàn)了信息一體化的時(shí)代。作為大學(xué)生的我們,更需要加強(qiáng)實(shí)踐能力的培養(yǎng)。課程設(shè)計(jì)在一定程度上反映了我們對(duì)理論知識(shí)的理解程度,是理論與實(shí)踐的橋梁。它不僅能鍛煉我們的動(dòng)手能力,而且能夠培養(yǎng)我們對(duì)問(wèn)題的思考能力以及對(duì)知識(shí)的進(jìn)一步了解。當(dāng)你能把你所學(xué)到知識(shí)化作為現(xiàn)實(shí)的東西時(shí),我們能力就提升到一個(gè)新臺(tái)階。
很多人都認(rèn)為學(xué)習(xí)是枯燥無(wú)味的,有時(shí)覺(jué)得與現(xiàn)實(shí)太遙遠(yuǎn)。在學(xué)習(xí)之余,我們?nèi)匀豢梢哉业揭稽c(diǎn)有趣的事情,比如說(shuō)做一個(gè)聲控?zé)襞?、?shù)字鐘等等。生活中我們要找到自己感興趣的東西。這次綜合課程設(shè)計(jì)中,我制作了八路搶答器。
搶答器是為智力競(jìng)賽參賽者答題時(shí)進(jìn)行搶答而設(shè)計(jì)的一種優(yōu)先判決器電路,廣泛應(yīng)用于各種知識(shí)競(jìng)賽、文娛活動(dòng)等場(chǎng)合。能夠?qū)崿F(xiàn)搶答器功能的方式有多種,可以采用前期的模擬電路、數(shù)字電路或模擬與數(shù)字電路相結(jié)合的方式,但這種方式制作過(guò)程復(fù)雜,而且準(zhǔn)確性與可靠性不高,成品面積大,安裝、維護(hù)困難。本節(jié)介紹一種利用51單片機(jī)作為核心部件進(jìn)行邏輯控制及信號(hào)產(chǎn)生的八路搶答器。近年來(lái),隨著單片機(jī)檔次的不斷提高,功能的不斷完善,其應(yīng)用日趨成熟、應(yīng)用領(lǐng)域日趨擴(kuò)大,特別是工業(yè)測(cè)控、尖端武器和日用家電等領(lǐng)域更是因?yàn)橛辛藛纹瑱C(jī)而生輝增色。單片機(jī)應(yīng)用技術(shù)已成為一項(xiàng)新的工程應(yīng)用技術(shù)。本次課程設(shè)計(jì)我們做的是八路搶答器,我們采用STC89C51單片機(jī)實(shí)現(xiàn)搶答功能,性能更穩(wěn)定,更易操作調(diào)試。
關(guān)鍵詞:多路數(shù)字搶答器 STC89C51 PROTEUS
目 錄
·引 言 4
·緒 論 5
第1章 系統(tǒng)設(shè)計(jì)內(nèi)容 5
1.1系統(tǒng)設(shè)計(jì)依據(jù) 5
1.2設(shè)計(jì)任務(wù)和要求 5
1.3 設(shè)計(jì)目的 6
1.4 設(shè)計(jì)要點(diǎn) 6
第2章 硬件設(shè)計(jì) 7
2.1系統(tǒng)工作介紹 7
2.2 單片機(jī)控制原理 7
2.3 搶答器的原理 12
2.4 功能模塊電路 13
2.4.1開(kāi)始搶答電路 13
2.4.2 選手搶答鍵 13
2.4.3 顯示與顯示驅(qū)動(dòng)電路 14
2.4.4蜂鳴器音頻輸出電路 14
第3章 軟件設(shè)計(jì) 15
3.1程序設(shè)計(jì) 15
3.1.1 系統(tǒng)流程圖 15
3.1.2顯示搶答違規(guī)流程圖 16
3.1.3搶答成功流程圖 16
3.2 程序代碼 17
3.2.1 主程序 17
3.2.2 定時(shí)器子程序 21
3.2.3 延時(shí)子程序 22
3.2.4 顯示子程序 22
第4章 系統(tǒng)調(diào)試 23
第5章 結(jié)論 23
參考文獻(xiàn)資料 24
附錄一:搶答器原理圖 25
附錄二:仿真圖 25
·引 言
隨著電子技術(shù)的飛速發(fā)展,基于單片機(jī)的控制系統(tǒng)已經(jīng)廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、電力、電子、智能樓宇等行業(yè)。微型計(jì)算機(jī)作為嵌入式控制系統(tǒng)的主體與核心,代替了傳統(tǒng)的控制系統(tǒng)的常規(guī)電子線路。同時(shí)樓宇智能化的發(fā)展與成熟,也為基于單片機(jī)的照明控制系統(tǒng)的普及與應(yīng)用奠定了堅(jiān)實(shí)的基礎(chǔ)。
電子智能搶答器在搶答過(guò)程中,為了知道哪一組或哪一位選手先回答問(wèn)題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成這個(gè)任務(wù)。如果在搶答中,靠視覺(jué)是很難判斷出哪組先答題。利用單片機(jī)系統(tǒng)來(lái)設(shè)計(jì)搶答器,使以上問(wèn)題得以解決,即使兩組的搶答時(shí)間相差幾微秒也可以分辨出使哪組優(yōu)先回答問(wèn)題。搶答組數(shù)可以在八組以內(nèi)任意使用,本系統(tǒng)設(shè)計(jì)為模塊形式采用九針插頭進(jìn)行連接,系統(tǒng)工作原理本系統(tǒng)采用AT89C51單片機(jī)作為核心??刂葡到y(tǒng)的五個(gè)模塊分別為:?jiǎn)纹瑱C(jī)最小系統(tǒng)、顯示模塊、顯示驅(qū)動(dòng)模塊、搶答開(kāi)關(guān)模塊、音樂(lè)音頻輸出模塊。
多路數(shù)字搶答器在各種智力競(jìng)賽中經(jīng)常用到。在各校舉行的各種競(jìng)賽中我們也經(jīng)??吹接袚尨鸬沫h(huán)節(jié),舉辦方多數(shù)采用讓選手通過(guò)舉答題板的方法判斷選手的答題權(quán),這在某種程度上會(huì)因?yàn)橹鞒秩说闹饔^誤斷造成比賽的不公平性。為解決這個(gè)問(wèn)題,我準(zhǔn)備借本次課程設(shè)計(jì)的機(jī)會(huì)制作一個(gè)八路數(shù)顯搶答器。一方面加深我們對(duì)所學(xué)習(xí)的知識(shí)的了解,鞏固模擬、數(shù)字電路知識(shí),也提升我們解決日常生活中常見(jiàn)問(wèn)題的能力,掌握一般設(shè)計(jì)方法與設(shè)計(jì)步驟。積累實(shí)際設(shè)計(jì)制作經(jīng)驗(yàn),為走向更復(fù)雜更實(shí)用的應(yīng)用領(lǐng)域奠定基礎(chǔ)。控制系統(tǒng)主要由單片機(jī)控制電路、存儲(chǔ)器接口電路及顯示電路組成。具體以單片機(jī)為系統(tǒng)工作核心,負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作。在其外圍接上了復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚(yáng)聲器,其中用到了WAVE軟件,集成調(diào)試環(huán)境,集成編輯器、編譯器、調(diào)試器,支持軟件模擬等。同時(shí)也用到了PROTEUS軟件,通過(guò)仿真可完全實(shí)現(xiàn)對(duì)所設(shè)計(jì)系統(tǒng)的功能的模擬。
·緒 論
單片機(jī)作為計(jì)算機(jī)的一個(gè)重要分支,其應(yīng)用范圍很廣,發(fā)展也很快,它已成為在現(xiàn)代電子技術(shù)、計(jì)算機(jī)應(yīng)用、網(wǎng)絡(luò)、通信、自動(dòng)控制與計(jì)量測(cè)試、數(shù)據(jù)采集與信號(hào)處理等技術(shù)中日益普及的一項(xiàng)新興技術(shù),應(yīng)用范圍十分廣泛。對(duì)于計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō),即使暫時(shí)沒(méi)有從事單片機(jī)的應(yīng)用與開(kāi)發(fā),學(xué)習(xí)單片機(jī)也有很重要的意義。學(xué)習(xí)它,不僅為將來(lái)可能從事該方面的開(kāi)發(fā)打下基礎(chǔ),另一方面,由于單片機(jī)作為微型計(jì)算機(jī)的一個(gè)種類(lèi),麻雀雖小,五臟俱全,可以把它當(dāng)作微型計(jì)算機(jī)的一個(gè)簡(jiǎn)化模型來(lái)看待,學(xué)習(xí)單片機(jī)可以加深對(duì)微型計(jì)算機(jī)工作原理的理解,更加清楚計(jì)算機(jī)的脈絡(luò)。同時(shí),提供了一個(gè)實(shí)際應(yīng)用手段。21世紀(jì),是一個(gè)信息技術(shù)飛速發(fā)展的時(shí)代,智力競(jìng)賽是一種形式比較活潑的教育方式,是人們休閑娛樂(lè)生活的一部分。這些競(jìng)賽一方面充實(shí)了人們的娛樂(lè)生活,另一方面也提高了人們努力汲取相關(guān)領(lǐng)域的知識(shí)的興趣。智力競(jìng)賽,也就是幾個(gè)參賽選手之間在規(guī)定的時(shí)間,規(guī)定的地點(diǎn)相互競(jìng)爭(zhēng)的比賽。
搶答是各種競(jìng)賽常用的一種形式。在搶答賽中,往往要有主持人宣布搶答的開(kāi)始,還要確定是哪個(gè)選手搶到了答題權(quán),具體答題的時(shí)間有時(shí)也要設(shè)定。這些如果僅憑主持人的主觀判斷,很容易出現(xiàn)誤判的情況。因此,在競(jìng)賽中,搶答器就扮演了一個(gè)非常重要的角色。
第1章 系統(tǒng)設(shè)計(jì)內(nèi)容
1.1系統(tǒng)設(shè)計(jì)依據(jù)
搶答器由計(jì)數(shù)器、寄存器、集成定時(shí)器和譯碼顯示等組合、時(shí)序電路組成??煞譃閾尨痣娐罚〞r(shí)電路,報(bào)警電路等幾個(gè)單元部分。每個(gè)單元電路分別可以處理一些搶答競(jìng)賽中的基本問(wèn)題。
本次課程設(shè)計(jì)設(shè)計(jì)的是一個(gè)多路定時(shí)搶答器,是一個(gè)多于兩位選手參賽的一個(gè)搶答器,具有鎖存和顯示功能。同時(shí)有主持人控制系統(tǒng)的清零和搶答的開(kāi)始。搶答開(kāi)始后,若有任何一名選手按動(dòng)搶答按鈕,搶答器就會(huì)顯示該選手編號(hào)直至系統(tǒng)被主持人清零,并有揚(yáng)聲器發(fā)出提示,同時(shí)其他人再搶答就無(wú)效了。這次設(shè)計(jì)的搶答器還有自動(dòng)定時(shí)功能,主持人可以設(shè)定選手答題的時(shí)間。當(dāng)主持人啟動(dòng)“開(kāi)始”鍵后,定時(shí)器會(huì)自動(dòng)減計(jì)時(shí),這個(gè)會(huì)顯示在顯示器上。選手只有在搶答時(shí)間內(nèi)搶答才有效,若在答題時(shí)間內(nèi)沒(méi)有選手答題,時(shí)間到時(shí),報(bào)警電路就會(huì)發(fā)出警報(bào)亮燈并且禁止搶答。
1.2設(shè)計(jì)任務(wù)和要求
以單片機(jī)為核心,設(shè)計(jì)一個(gè)8位競(jìng)賽搶答器。
1)搶答器同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S0-S7表示。
2)設(shè)置一個(gè)系統(tǒng)清除和搶答控制開(kāi)關(guān)S,該開(kāi)關(guān)由主持人控制。
3)搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)的編號(hào),并在優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。
4)搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定(如30s等)。當(dāng)主持人啟動(dòng)“開(kāi)始”按鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)時(shí)間為0.5s左右。
5)參賽選手在設(shè)定時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手編號(hào)和搶答時(shí)間,并保持到主持人將系統(tǒng)清除為止。
6)如果定時(shí)時(shí)間到,無(wú)人搶答,本次搶答無(wú)效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00;
7)設(shè)計(jì)出軟件編程方法,并寫(xiě)出源代碼;
8)用PROTEUS進(jìn)行仿真;
9)論文格式要符合學(xué)院的統(tǒng)一規(guī)定,結(jié)構(gòu)要合符邏輯,表達(dá)要得體。
1.3 設(shè)計(jì)目的
通過(guò)設(shè)計(jì)學(xué)習(xí)單片機(jī)最小系統(tǒng)的基本設(shè)計(jì)方法,掌握單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)調(diào)試過(guò)程。
(1)學(xué)習(xí)單片機(jī)開(kāi)發(fā)工具功能、特點(diǎn)和使用方法。
(2)學(xué)會(huì)單片機(jī)控制系統(tǒng)程序的編制和編制和調(diào)試方法。
(3)設(shè)計(jì)單片機(jī)搶答器硬件電路,繪制出電路原理圖。
(4)編制并調(diào)試出鍵盤(pán)掃描程序和顯示驅(qū)動(dòng)程序。
(5)掌握單片機(jī)定時(shí)器的基本用法,編制出定時(shí)器的中斷程序。
1.4 設(shè)計(jì)要點(diǎn)
根據(jù)控制系統(tǒng)的工作原理和執(zhí)行裝置,可以將系統(tǒng)設(shè)計(jì)分為硬件和軟件兩大部分。硬件設(shè)計(jì)部分,包括編寫(xiě)電路原理圖、合理選擇元器件、焊接各個(gè)元器件,然后對(duì)硬件性能進(jìn)行調(diào)試、測(cè)試,以達(dá)到設(shè)計(jì)要求。軟件設(shè)計(jì)部分,首先在設(shè)計(jì)之前完成系統(tǒng)總框圖和確定各個(gè)功能模塊,然后進(jìn)行具體設(shè)計(jì),包括各模塊的流程圖,選擇合適的編程語(yǔ)言和軟件應(yīng)用程序,進(jìn)行編程設(shè)計(jì)等;最后是通過(guò)軟件對(duì)程序進(jìn)行調(diào)試、測(cè)試,以及仿真,以達(dá)到性能的最優(yōu)化。
下面是軟硬件設(shè)計(jì)方法確定的。軟件設(shè)計(jì)的方法與開(kāi)發(fā)環(huán)境的選取有著直接的關(guān)系,本系統(tǒng)由于是采用51系列單片機(jī),因此使用Keil C語(yǔ)言進(jìn)行開(kāi)發(fā)。此編程工具相比匯編語(yǔ)言具有結(jié)構(gòu)化、適用范圍大、可移植性好等特點(diǎn)。本系統(tǒng)軟件設(shè)計(jì)采用模塊化系統(tǒng)設(shè)計(jì)方法,先編寫(xiě)各個(gè)功能模塊子程序,然后進(jìn)行組合與調(diào)整,經(jīng)過(guò)調(diào)試后,可以進(jìn)行仿真測(cè)試,已達(dá)到設(shè)計(jì)功能要求。為配合軟件的靈活設(shè)計(jì),硬件電路是采用結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)方法,該方法保證設(shè)計(jì)電路的標(biāo)準(zhǔn)化、模塊化。硬件電路的設(shè)計(jì)最重要的選擇用于控制的單片機(jī),再確定與之配套的外圍芯片,使所設(shè)計(jì)的系統(tǒng)既經(jīng)濟(jì)又高性能。硬件電路設(shè)計(jì)可以在焊接元器件之前畫(huà)出詳細(xì)電路圖,標(biāo)出芯片的型號(hào)、器件參數(shù)值,根據(jù)電路圖在仿真軟件上進(jìn)行調(diào)試,發(fā)現(xiàn)設(shè)計(jì)錯(cuò)誤時(shí)立即修改,高效,準(zhǔn)確地完成硬件設(shè)計(jì)。
第2章 硬件設(shè)計(jì)
2.1系統(tǒng)工作介紹
本系統(tǒng)采用單片機(jī)作為整個(gè)控制核心??刂葡到y(tǒng)主要由:顯示模塊、控制模塊、報(bào)警模塊、搶答模塊組成。工作時(shí),該系統(tǒng)通過(guò)矩陣鍵盤(pán)輸入搶答信號(hào),經(jīng)單片機(jī)的處理后,輸出控制信號(hào),利用一個(gè)4位數(shù)碼管來(lái)完成顯示功能并伴隨蜂鳴器報(bào)警,用按鍵來(lái)讓選手進(jìn)行搶答,在數(shù)碼管上顯示哪一組先答題,從而實(shí)現(xiàn)整個(gè)搶答過(guò)程。
當(dāng)主持人按下開(kāi)始鍵時(shí),向單片機(jī)P3.2引腳輸入一個(gè)低電平信號(hào),表示整個(gè)電路開(kāi)始工作,此時(shí)數(shù)碼管前兩位顯示選手編號(hào)(無(wú)人搶答顯示00),后兩位顯示倒計(jì)時(shí)剩余時(shí)間。若在25秒內(nèi)仍然無(wú)人搶答,蜂鳴器在最后5秒發(fā)出連續(xù)報(bào)警,提示搶答時(shí)間快要結(jié)束;若在30秒內(nèi)有人搶答,并且搶答成功,則將選手編號(hào)顯示在數(shù)碼管前兩位上,后兩位顯示搶答剩余時(shí)間,同時(shí)蜂鳴器發(fā)出一聲報(bào)警,提示其他沒(méi)有搶答的選手此題已被人搶答成功。若在搶答過(guò)程中遇見(jiàn)特殊情況,主持人則可以通過(guò)時(shí)間加,時(shí)間減按鍵來(lái)進(jìn)行時(shí)間調(diào)節(jié)。若要開(kāi)始新的一輪搶答,主持人按下復(fù)位鍵再按開(kāi)始鍵即可。
此次用單片機(jī)控制的搶答器思路簡(jiǎn)單明了,可操作性強(qiáng),可靠性高,擴(kuò)展功能強(qiáng),能夠完全實(shí)現(xiàn)普通搶答器的基本功能。
圖2-1 單片機(jī)搶答器設(shè)計(jì)方案
2.2 單片機(jī)控制原理
單片機(jī)(SCM)是單片微型計(jì)算機(jī)(Single Chip Microcomputer)的簡(jiǎn)稱。它是把中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、I/O接口電路、定時(shí)/計(jì)數(shù)器以及輸入輸出適配器都集成在一塊芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。它的最大優(yōu)點(diǎn)是體積小,可放在儀表內(nèi)部。但存儲(chǔ)量小,輸入輸出適配器簡(jiǎn)單,功能較低。目前,單片機(jī)在民用和工業(yè)測(cè)控領(lǐng)域得到最廣泛的應(yīng)用,早已深深地融入人們的生活中。
簡(jiǎn)單的說(shuō),用單片機(jī)系統(tǒng)來(lái)設(shè)計(jì)搶答器,實(shí)現(xiàn)兩組的搶答時(shí)間即使是相差幾微秒,也可分辨出哪組優(yōu)先答題。
P0端口(P0.0-P0.7):P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。
P1端口(P1.0-P1.7):P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高電平,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。
P2端口(P2.0-P2.7):P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3端口(P3.0-P3.7):
P3口管腳是一個(gè)帶有內(nèi)部上拉電阻的8位的雙向I/O端口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時(shí),由于外部下拉為低電平,P3口將輸出電流(ILL)。
STC89C51是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門(mén)狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外 STC89X51 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35Mhz,6T/12T可選。
圖2-2 STC89C51單片機(jī)引腳圖
單片機(jī)是美國(guó)STC公司最新推出的一種新型51內(nèi)核的單片機(jī)。片內(nèi)含有Flash程序存儲(chǔ)器、SRAM、UART、SPI、PWM等模塊。
(一)STC89C51主要功能、性能參數(shù)如下:
(1)內(nèi)置標(biāo)準(zhǔn)51內(nèi)核,機(jī)器周期:增強(qiáng)型為6時(shí)鐘,普通型為12時(shí)鐘;
(2)工作頻率范圍:0~40MHZ,相當(dāng)于普通8051的0~80MHZ;
(3)STC89C51RC對(duì)應(yīng)Flash空間:4KB;
(4)內(nèi)部存儲(chǔ)器(RAM):512B;
(5)定時(shí)器\計(jì)數(shù)器:3個(gè)16位;
(6)通用異步通信口(UART)1個(gè);
(7)中斷源:8個(gè);
(8)有ISP(在系統(tǒng)可編程)\IAP(在應(yīng)用可編程),無(wú)需專用編程器\仿真器;
(9)通用I\O口:32\36個(gè);
(10)工作電壓:3.8~5.5V;
(11)外形封裝:40腳PDIP、44腳PLCC和PQFP等。
(二)STC89C51單片機(jī)的引腳說(shuō)明:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。
P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。
P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。
P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
I/O口作為輸入口時(shí)有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時(shí)實(shí)際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過(guò)某種運(yùn)算或變換后再寫(xiě)回到端口鎖存器。只有讀端口時(shí)才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。上面圖中的兩個(gè)三角形表示的就是輸入緩沖器CPU將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號(hào)以完成不同的操作。這是由硬件自動(dòng)完成的,不需要我們操心,1然后再實(shí)行讀引腳操作,否則就可能讀入出錯(cuò),為什么看上面的圖,如果不對(duì)端口置1端口鎖存器原來(lái)的狀態(tài)有可能為0Q端為0Q^為1加到場(chǎng)效應(yīng)管柵極的信號(hào)為1,該場(chǎng)效應(yīng)管就導(dǎo)通對(duì)地呈現(xiàn)低阻抗,此時(shí)即使引腳上輸入的信號(hào)為1,也會(huì)因端口的低阻抗而使信號(hào)變低使得外加的1信號(hào)讀入后不一定是1。若先執(zhí)行置1操作,則可以使場(chǎng)效應(yīng)管截止引腳信號(hào)直接加到三態(tài)緩沖器中實(shí)現(xiàn)正確的讀入,由于在輸入操作時(shí)還必須附加一個(gè)準(zhǔn)備動(dòng)作,所以這類(lèi)I/O口被稱為準(zhǔn)雙向口。89C51的P0/P1/P2/P3口作為輸入時(shí)都是準(zhǔn)雙向口。
RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。
ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。
/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。
/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
XTAL2:來(lái)自反向振蕩器的輸出。
(三)STC89C51單片機(jī)最小系統(tǒng):
最小系統(tǒng)包括單片機(jī)及其所需的必要的電源、時(shí)鐘、復(fù)位等部件,能使單片機(jī)始終處于正常的運(yùn)行狀態(tài)。電源、時(shí)鐘等電路是使單片機(jī)能運(yùn)行的必備條件,可以將最小系統(tǒng)作為應(yīng)用系統(tǒng)的核心部分,通過(guò)對(duì)其進(jìn)行存儲(chǔ)器擴(kuò)展、A/D擴(kuò)展等,使單片機(jī)完成較復(fù)雜的功能。
STC89C51是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡(jiǎn)單﹑可靠。用STC89C52單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可,結(jié)構(gòu)如圖2-3所示,由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。
時(shí)鐘電路
復(fù)位電路
51系列單片機(jī)
I/O
接口
時(shí)鐘電路
復(fù)位電路
STC89C51單片機(jī)
I/O口
圖2-3 單片機(jī)最小系統(tǒng)原理框圖
(1) 時(shí)鐘電路
STC89C51單片機(jī)的時(shí)鐘信號(hào)通常有兩種方式產(chǎn)生:一是內(nèi)部時(shí)鐘方式,二是外部時(shí)鐘方式。內(nèi)部時(shí)鐘方式如圖2-4所示。在STC89C51單片機(jī)內(nèi)部有一振蕩電路,只要在單片機(jī)的XTAL1(18)和XTAL2(19)引腳外接石英晶體(簡(jiǎn)稱晶振),就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5~30pF,典型值為30pF。晶振CYS的振蕩頻率范圍在1.2~12MHz間選擇,典型值為12MHz和6MHz。
圖2-4 STC89C51內(nèi)部時(shí)鐘電路
(2) 復(fù)位電路
當(dāng)在STC89C51單片機(jī)的RST引腳引入高電平并保持2個(gè)機(jī)器周期時(shí),單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài))。
復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。
最簡(jiǎn)單的上電自動(dòng)復(fù)位電路中上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充放電來(lái)實(shí)現(xiàn)的。只要Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。
除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。本設(shè)計(jì)就是用的按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過(guò)RST(9)端與電源Vcc接通而實(shí)現(xiàn)的。按鍵手動(dòng)復(fù)位電路見(jiàn)圖2-5。時(shí)鐘頻率用11.0592MHZ時(shí)C取10uF,R取10kΩ。
圖2-5 STC89C51復(fù)位電路
(3) STC89C51中斷技術(shù)概述
中斷技術(shù)主要用于實(shí)時(shí)監(jiān)測(cè)與控制,要求單片機(jī)能及時(shí)地響應(yīng)中斷請(qǐng)求源提出的服務(wù)請(qǐng)求,并作出快速響應(yīng)、及時(shí)處理。這是由片內(nèi)的中斷系統(tǒng)來(lái)實(shí)現(xiàn)的。當(dāng)中斷請(qǐng)求源發(fā)出中斷請(qǐng)求時(shí),如果中斷請(qǐng)求被允許,單片機(jī)暫時(shí)中止當(dāng)前正在執(zhí)行的主程序,轉(zhuǎn)到中斷服務(wù)處理程序處理中斷服務(wù)請(qǐng)求。中斷服務(wù)處理程序處理完中斷服務(wù)請(qǐng)求后,再回到原來(lái)被中止的程序之處(斷點(diǎn)),繼續(xù)執(zhí)行被中斷的主程序。
圖2-6為整個(gè)中斷響應(yīng)和處理過(guò)程。
如果單片機(jī)沒(méi)有中斷系統(tǒng),單片機(jī)的大量時(shí)間可能會(huì)浪費(fèi)在查詢是否有服務(wù)請(qǐng)求發(fā)生的定時(shí)查詢操作上。采用中斷技術(shù)完全消除了單片機(jī)在查詢方式中的等待現(xiàn)象,大大地提高了單片機(jī)的工作效率和實(shí)時(shí)性。
2.3 搶答器的原理
搶答器的工作原理是采用單片機(jī)最小系統(tǒng),用程序查詢方式采用動(dòng)態(tài)顯示組號(hào)。主持人按下開(kāi)始搶答鍵才可以搶答。主持人沒(méi)有按下開(kāi)始搶答按紐(P3.0),有人搶答則搶答違規(guī),報(bào)警并顯示組號(hào),主持人按下開(kāi)始搶答開(kāi)關(guān)重新?lián)尨?。主持人按下開(kāi)始搶答按紐(P3.0),蜂鳴響聲提示,數(shù)碼管30秒倒計(jì)時(shí)搶答,蜂鳴器響聲提示并顯示他的組號(hào),30秒內(nèi)有人搶答則開(kāi)始60秒倒計(jì)時(shí)(60秒內(nèi)必須回答完問(wèn)題),最后五秒倒計(jì)時(shí)警報(bào)。單片機(jī)最小系統(tǒng)、搶答按鍵模塊(四位并行數(shù)碼顯示)、顯示模塊、顯示驅(qū)動(dòng)模塊、搶答開(kāi)關(guān)模塊、蜂鳴器音頻輸出模塊。
圖2.3搶答器總原理圖
2.4 功能模塊電路
2.4.1開(kāi)始搶答電路
在此次課程設(shè)計(jì)電路中當(dāng)一個(gè)問(wèn)題結(jié)束主持人后按下復(fù)位開(kāi)關(guān)后進(jìn)行下一題的準(zhǔn)備。
圖2.4.1開(kāi)始搶答電路
2.4.2 選手搶答鍵
89C51的P1口做一個(gè)為選手搶答的輸入按鍵引腳,P1.0至P1.7輪流輸出低電位,給每一個(gè)選手編號(hào)1至8,當(dāng)選手按下按鈕時(shí),P1口個(gè)端口的電平變化從P1口輸入,經(jīng)單片機(jī)處理后從P0輸出由數(shù)碼管顯示搶答者編號(hào)。
圖2.4.2 選手搶答電路
2.4.3 顯示與顯示驅(qū)動(dòng)電路
此電路包括顯示和驅(qū)動(dòng),顯示采用數(shù)碼管,驅(qū)動(dòng)用P2口, 違規(guī)者編號(hào)、搶答30秒倒計(jì)時(shí)、正常搶答者編號(hào)和回答問(wèn)題時(shí)間60秒倒計(jì)時(shí),數(shù)碼管采用動(dòng)態(tài)顯示。驅(qū)動(dòng)電路P2口,查詢顯示程序利用P0口做段選碼口輸出P2低3位做位選碼輸出,當(dāng)為低電平則能驅(qū)動(dòng)數(shù)碼管使其顯示數(shù)字。在+5V電壓下接1k的電阻,保證正常壓降。
圖2.4.3 示與顯示驅(qū)動(dòng)電路
2.4.4蜂鳴器音頻輸出電路
通過(guò)控制不同頻率的矩形脈沖來(lái)控制蜂鳴器發(fā)聲。此次課程設(shè)計(jì)中只需要一些簡(jiǎn)單的提示聲音和稍微顯眼的燈控,有搶答違規(guī),開(kāi)始搶答,搶答時(shí)間結(jié)束和回答時(shí)間到得提示聲和亮燈提醒。
圖2.3.4蜂鳴器音頻輸出電路
第3章 軟件設(shè)計(jì)
3.1程序設(shè)計(jì)
3.1.1 系統(tǒng)流程圖
開(kāi) 始
初始化
讀鍵盤(pán)是否有鍵按下
中斷條件是否滿足
調(diào)用顯示搶答違
規(guī)并報(bào)警子程序
進(jìn)入中斷程序
開(kāi)中斷并響聲提示
設(shè)定定時(shí)器值
并啟動(dòng)定時(shí)器
30秒搶答時(shí)間并顯示
并顯示
調(diào)用讀鍵子程序?yàn)檠訒r(shí)程序
是否有鍵按下
60秒到中斷返回
調(diào)用搶答者獲得的回答問(wèn)題子程序
3.1.2顯示搶答違規(guī)流程圖
開(kāi) 始
報(bào)警一直提示
顯示違規(guī)者編號(hào)
3.1.3搶答成功流程圖
開(kāi) 始
響聲提示
設(shè)置定時(shí)器初值并啟動(dòng)
顯示搶答者后30秒倒計(jì)時(shí)
60秒答問(wèn)題時(shí)間到并響聲提示
RET
3.2 程序代碼
3.2.1 主程序
void main()
{
init();
if(k==0) //主持人按下開(kāi)始鍵
{
Timer();
delay(10);
while(!k);
while(1)
{
dis();
m=0;
n=0;
if(second==10){beep=1;delay(500);beep=0;}
if(second==0) {
TR0=0;n=1;
if(k==0)
{beep=1;delay(500);beep=0;second=29;TR0=1;m=1;}
}
if(n==0)
{
if(k1==0) {delay(5);if(k1==0);while(!k1);t=1;}
else if(k2==0) {delay(5);if(k2==0);while(!k2);t=2;}
else if(k3==0) {delay(5);if(k3==0);while(!k2);t=3;}
else if(k4==0) {delay(5);if(k4==0);while(!k2);t=4;}
else if(k5==0) {delay(5);if(k5==0);while(!k2);t=5;}
else if(k6==0) {delay(5);if(k6==0);while(!k2);t=6;}
else if(k7==0) {delay(5);if(k7==0);while(!k2);t=7;}
else if(k8==0) {delay(5);if(k8==0);while(!k2);t=8;}
else if(k==0) {delay(5);if(k==0);while(!k);t=0;i=0;second=29;beep=1;delay(500);beep=0;TR0=1;}
}
while(t)
{
if(m==0) //開(kāi)關(guān),保證程序只執(zhí)行一次
{
switch(t)
{
case 1:
{
TR0=0;i=1;second=0;beep=1;delay(500);beep=0;
a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
}
case 2:
{
TR0=0;i=2;second=0;beep=1;delay(500);beep=0;
a2=0;a1=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
}
case 3:
{
TR0=0;i=3;second=0;beep=1;delay(500);beep=0;
a3=0;a1=1;a2=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
}
case 4:
{
TR0=0;i=4;second=0;beep=1;delay(500);beep=0;
a4=0;a1=1;a2=1;a3=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
}
case 5:
{
TR0=0;i=5;second=0;beep=1;delay(500);beep=0;
a5=0;a1=1;a2=1;a3=1;a4=1;a6=1;a7=1;a8=1;m=1;break;
}
case 6:
{
TR0=0;i=6;second=0;beep=1;delay(500);beep=0;
a6=0;a1=1;a2=1;a3=1;a4=1;a5=1;a7=1;a8=1;m=1;break;
}
case 7:
{
TR0=0;i=7;second=0;beep=1;delay(500);beep=0;
a7=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a8=1;m=1;break;
}
case 8:
{
TR0=0;i=8;second=0;beep=1;delay(500);beep=0;
a8=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;m=1;break;
}
}
}
if(a1==0) //選手1的分?jǐn)?shù)
{ second=score1;
dis();
if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score1+=1;if(score1==99)score1=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score1-=1;if(score1==0)score1=60;}
dis();
}
else if(a2==0)
{ second=score2;
dis();
if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score2+=1;if(score2==99)score2=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score2-=1;if(score2==0)score2=60;}
dis();
}
else if(a3==0)
{ second=score3;
dis();
if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score3+=1;if(score3==99)score3=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score3-=1;if(score3==0)score3=60;}
second=score3;
dis();
}
else if(a4==0)
{
second=score4;
dis();
if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score4+=1;if(score4==99)score4=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score4-=1;if(score4==0)score4=60;}
second=score4;
dis();
}
else if(a5==0)
{
second=score5;
dis();
if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score5+=1;if(score5==99)score5=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score5-=1;if(score5==0)score5=60;}
second=score5;
dis();
}
else if(a6==0)
{
second=score6;
dis();
if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score6+=1;if(score6==99)score6=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score6-=1;if(score6==0)score6=60;}
second=score6;
dis();
}
else if(a7==0)
{
second=score7;
dis();
if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score7+=1;if(score7==99)score7=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score7-=1;if(score7==0)score7=60;}
second=score7;
dis();
}
else if(a8==0)
{
second=score8;
dis();
if(m1==0) {delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score8+=1;if(score8==99)score8=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score8-=1;if(score8==0)score8=60;}
second=score8;
dis();
}
if(k==0){i=0;t=0;second=29;beep=1;delay(500);beep=0;TR0=1;}
while(!k);
}
}
}
}
3.2.2 定時(shí)器子程序
void Timer()
{
TMOD|=0x01;
TH0=0xd8; //初值55536,計(jì)數(shù)10000次,每次1US,總計(jì)10ms
TL0=0xf0;
IE=0x82; //這里是中斷優(yōu)先級(jí)控制EA=1(開(kāi)總中斷),ET0=1(定時(shí)器0允許中斷),這里用定時(shí)器0來(lái)定時(shí)
TR0=1;
}
void tim(void) interrupt 1 using 1 //為定時(shí)中斷TR0
{
TH0=0xd8; //重新賦值
TL0=0xf0;
count++;
if(count==100) //100*10ms=1秒
{
count=0;
second--; //秒減1
}
}
3.2.3 延時(shí)子程序
void delay(uint z) //延時(shí)函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
3.2.4 顯示子程序
void display (uchar shiwei,gewei,xuanshou) //顯示函數(shù)
{
P2=0xfe; //打開(kāi)顯示時(shí)間十位的位選
P0=shiwei;//顯示十位
delay(5);
P2=0xfd; //個(gè)位位選
P0=gewei;
delay(5);
P2=0xf7; //選手位選
P0=xuanshou;
delay(5);
}
第4章 系統(tǒng)調(diào)試
軟件的設(shè)計(jì)與調(diào)試實(shí)行分模塊實(shí)現(xiàn)的方法。本設(shè)計(jì)軟件調(diào)試中的分模塊包括顯示功能模塊,調(diào)整時(shí)間功能模塊,搶答功能模塊以及報(bào)警功能模塊。各個(gè)獨(dú)立模塊功能調(diào)試成功后,將這些模塊程序通過(guò)主程序合并在一起,最后再對(duì)合并后的總程序進(jìn)行調(diào)試。各軟件模塊首先要通過(guò)PC和仿真器進(jìn)行軟件調(diào)試,當(dāng)仿真效果符合要求后在燒寫(xiě)進(jìn)單片機(jī)看是否在實(shí)際電路板上正常工作。本設(shè)計(jì)通過(guò)利用Proteus仿真,將所編寫(xiě)的程序用wave軟件編譯,所仿真原理圖見(jiàn)附錄。
第5章 結(jié)論
自接觸單片機(jī)以來(lái),一直覺(jué)得單片機(jī)非常難,這次的課程設(shè)計(jì)我開(kāi)始是以老師布置題目為主要選擇對(duì)象的,但是后面發(fā)現(xiàn),像八路搶答器在我腦海中根本沒(méi)得一點(diǎn)意象,上網(wǎng)搜了很多資料,也感覺(jué)不怎么很懂,于是問(wèn)老師怎么弄,后面發(fā)現(xiàn)老師的意見(jiàn)和我的原本的程序和圖只有幾個(gè)地方不同,于是便將兩者綜合了一下,經(jīng)調(diào)試和運(yùn)行后,發(fā)現(xiàn)還行的通,于是便開(kāi)始了忐忑的正文模版之路,以為快搞完了,后面發(fā)現(xiàn)其實(shí)程序和圖還是要細(xì)細(xì)的弄懂才能寫(xiě)好報(bào)告,于是我又將程序和圖細(xì)細(xì)的剖析了一遍,慢慢的畫(huà)出流程圖,然后慢慢將流程圖和proteus圖畫(huà)好和截取下來(lái),經(jīng)過(guò)最近這段時(shí)間的在電腦前面的駐守,覺(jué)得只要自己肯付出和努力,發(fā)現(xiàn)其實(shí)很多的東西不是那么難懂的,以后還是要好好提升自己的動(dòng)手能力和獨(dú)立思考的能力。
在此,還是非常感謝我們的指導(dǎo)老師,她是一位很負(fù)責(zé)和很細(xì)心的老師,謝謝她的輔導(dǎo)和鼓勵(lì),這次的課程設(shè)計(jì)給了我一個(gè)很好的開(kāi)始,我會(huì)好好努力的以后。縱然課程設(shè)計(jì)是學(xué)校所要求的科目,縱然每次都這么緊張和辛苦,但是我還是覺(jué)得有些東西做了,就一定會(huì)有一定的價(jià)值吧。
參考文獻(xiàn)資料
[1] 康華光,鄒壽彬編.電子技術(shù)基礎(chǔ)數(shù)字部分(第四版)[M].北京:高等教育出版社,2005
[2] 謝自美編.電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試 (第二版) [M].上海:電子工業(yè)出版社,2001
[3] 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1999年
[4] 陸坤,奚大順,李之權(quán)等,電子設(shè)計(jì)技術(shù)[M].成都:電子科技大學(xué)出版社1997年[5] 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1999年
[5] 胡學(xué)海.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:京電子工業(yè)出版社,2005年
[6] 林凌,李剛,丁茹,李小霞.新型單片機(jī)接口器件與技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005年
[7] 李朝青主編,《單片機(jī)原理與接口技術(shù)》.北京航天航空大學(xué)出版社,1994年
[8] 何立民主編,《單片機(jī)應(yīng)用與設(shè)計(jì)》.北京航天航空大學(xué)出版社,1990年
[9] 鄒逢興編著,《計(jì)算機(jī)硬件技術(shù)基礎(chǔ)實(shí)驗(yàn)教程》高等教育出版社,1994年
[10] 裴亞男,付智輝主編,《數(shù)字邏輯》,西南交通大學(xué)出版社,2005年
[11] 李海主編,《74系列芯片手冊(cè)》, 重慶大學(xué)出版社, 1999年
附錄一:搶答器原理圖
附錄二:仿真圖
收藏
編號(hào):3962083
類(lèi)型:共享資源
大小:1.21MB
格式:ZIP
上傳時(shí)間:2019-12-25
25
積分
- 關(guān) 鍵 詞:
-
基于
51
單片機(jī)
八路
搶答
設(shè)計(jì)
- 資源描述:
-
基于51單片機(jī)的八路搶答器設(shè)計(jì)(1),基于,51,單片機(jī),八路,搶答,設(shè)計(jì)
展開(kāi)閱讀全文
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書(shū)面授權(quán),請(qǐng)勿作他用。