畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的籃球賽計(jì)時(shí)計(jì)分器_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的籃球賽計(jì)時(shí)計(jì)分器_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的籃球賽計(jì)時(shí)計(jì)分器_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的籃球賽計(jì)時(shí)計(jì)分器_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的籃球賽計(jì)時(shí)計(jì)分器_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2009屆畢業(yè)設(shè)計(jì)(論文) 題 目 : 基于單片機(jī)的籃球賽計(jì)時(shí)計(jì)分器 學(xué)院、系 : 電子技術(shù)系 專 業(yè) : 電子科學(xué)與技術(shù) 學(xué)生姓名 : 班 級(jí) : 電科07521 學(xué) 號(hào) : 指導(dǎo)老師 : 摘要 本設(shè)計(jì)是籃球計(jì)時(shí)計(jì)分器,主要在籃球比賽中用于記錄整個(gè)賽程的比賽時(shí)間和顯示甲、乙兩隊(duì)在比賽過程中的比分情況。該計(jì)時(shí)計(jì)分器有部分組成:一部分用來實(shí)現(xiàn)計(jì)時(shí)功能,其基本原理和定時(shí)鬧相似;另一部分用來實(shí)現(xiàn)計(jì)分功能,其基本原理和計(jì)數(shù)器相似,只不過所要記錄和顯示的對(duì)象是按鍵按下的次數(shù),每按下一次計(jì)數(shù)值加一。該設(shè)計(jì)能夠?qū)崿F(xiàn)計(jì)時(shí)和計(jì)分功能,采用共陰極數(shù)碼管進(jìn)行動(dòng)態(tài)顯示,加分的部分用按鍵來完成,每按一次發(fā)送一個(gè)計(jì)數(shù)脈沖

2、,計(jì)數(shù)值加一。關(guān)鍵詞: 計(jì)時(shí) 計(jì)分 動(dòng)態(tài)顯示 abstract this design is time basketball scoring device, mainly for recording in the basketball game of playing time throughout the race and display a and b teams score during the game situation.this time scoring machine has parts: used to achieve the timing function, the basic

3、 principles and similar time downtown; another part of the scoring functions used to implement the basic principles and counter similar to, but want to record and display the objects are keypress the number of times, each time you press the count plus one.the design can achieve timing and scoring fu

4、nctions, the use of dynamic common cathode led display, plus some to complete with buttons, each time sending a pulse count, the count plus one. key words: to keep time to keep score dynamic to show目 錄 中文摘要i英文摘要 第一章 緒論11.1 發(fā)展背景.11.2 系統(tǒng)功能101.3 課題運(yùn)用的知識(shí)點(diǎn)101.4 課題組成 10第二章 課論基礎(chǔ)92.1 單片機(jī)概述 2.1.1 at89c51性能介紹

5、2.2 七段數(shù)碼管的基本介紹2.2.1簡(jiǎn)介 2.2.2硬件譯碼 2.2.3軟件譯碼 2.2.4顯示方法第三章 系統(tǒng)原理的設(shè)計(jì) 3.1課題的技術(shù)和量化要求3.2 系統(tǒng)的組成框圖第4章 硬件部分的設(shè)計(jì)4.1 單片機(jī)接口電路4.2 數(shù)碼顯示電路 第5章 軟件部分設(shè)計(jì) 5.1 按鍵模塊 5.1.1 簡(jiǎn)介 5.1.2 鍵盤處理的流程圖 5.1.3 源代碼 5.2 顯示模塊 5.2.1 簡(jiǎn)介 5.2.2 顯示的流程圖 5.2.3 源代碼 5.3 成績(jī)調(diào)整模塊 5.3.1 簡(jiǎn)介 5.3.2 成績(jī)調(diào)整流程圖 5.3.3 源代碼 5.4 延時(shí)模塊 5.4.1 簡(jiǎn)介 5.4.2 延時(shí)的流程圖 5.4.3 源代碼

6、課題設(shè)計(jì)總結(jié)附錄一 原理圖附錄二 源程序設(shè)計(jì)參考文獻(xiàn)致謝 第一章 緒論1.1發(fā)展背景體育比賽計(jì)時(shí)記分系統(tǒng)是對(duì)體育比賽過程中所產(chǎn)生的時(shí)間、比分等數(shù)據(jù)進(jìn)行快速采集記錄、加工處理、傳遞利用的信息系統(tǒng)。根據(jù)不同運(yùn)動(dòng)項(xiàng)目的不同比賽規(guī)則要求, 體育比賽的計(jì)時(shí)記分系統(tǒng)包括測(cè)量類、評(píng)分類、命中類、制勝類、得分類等多種類型?;@球比賽是根據(jù)運(yùn)動(dòng)隊(duì)在規(guī)定的比賽時(shí)間里得分多少來決定勝負(fù)的, 因此, 足球比賽的計(jì)時(shí)記分系統(tǒng)是一種得分類型的系統(tǒng)?;@球比賽的計(jì)時(shí)記分系統(tǒng)由計(jì)時(shí)器、記分器等多種電子設(shè)備組成。同時(shí), 根據(jù)目前高水平足球比賽要求, 完善的足球比賽計(jì)時(shí)記分系統(tǒng)設(shè)備應(yīng)該能夠與現(xiàn)場(chǎng)成績(jī)處理、現(xiàn)場(chǎng)大屏幕、電視轉(zhuǎn)播車等多種

7、設(shè)備相聯(lián), 以便實(shí)現(xiàn)提高比賽現(xiàn)場(chǎng)感、表演娛樂觀眾等功能。1.2系統(tǒng)功能隨著科技的迅猛發(fā)展,單片機(jī)在計(jì)算機(jī)應(yīng)用領(lǐng)域中起到了越來越重要的作用. 單片機(jī)體積小,功能強(qiáng),集成了微型機(jī)的各部件,大大縮短了系統(tǒng)內(nèi)信號(hào)傳送的距離,從而提高了系統(tǒng)的可靠性及運(yùn)行速度。該系統(tǒng)主要是線以下兩種功能: 1 計(jì)分:能同時(shí)顯示甲、乙兩隊(duì)比分,最大計(jì)分?jǐn)?shù)為99。能分別對(duì)甲、乙兩隊(duì)比分進(jìn)行加分。2 計(jì)時(shí):從比賽開始時(shí)啟動(dòng)計(jì)時(shí)工作方式,初始時(shí)間為00,最大計(jì)時(shí)為99 分鐘, 經(jīng)過修改后應(yīng)該還能實(shí)施計(jì)時(shí)暫停,還能設(shè)定為倒計(jì)時(shí)。3 交換比分:中場(chǎng)交換比賽場(chǎng)地時(shí),能交換甲、乙兩隊(duì)比分的位置。4 哨音提示:設(shè)定的比賽時(shí)間到了,能自動(dòng)哨

8、音提示比賽結(jié)束.1.3 課題運(yùn)用的知識(shí)點(diǎn) 本課題主要運(yùn)用單片機(jī)設(shè)計(jì)知識(shí)設(shè)計(jì)籃球賽記時(shí)計(jì)分器,因此涉及到的知識(shí)點(diǎn)主要有以下幾點(diǎn):(1)at89c51單片機(jī)的運(yùn)用(2)led數(shù)碼管的運(yùn)用(3)人機(jī)接口1.4 課題組成(1)課題的理論基礎(chǔ)(2)系統(tǒng)原理的設(shè)計(jì)(3)硬件部分的設(shè)計(jì)(4)軟件部分的設(shè)計(jì)(5)仿真調(diào)試 第二章 課論基礎(chǔ)2.1 單片機(jī)概述 單片化是把計(jì)算機(jī)系統(tǒng)盡可能集成在一塊半導(dǎo)體芯片上,其目的在于計(jì)算機(jī)微型化和提高系統(tǒng)的可靠性,這種單片計(jì)算機(jī)簡(jiǎn)稱單片機(jī)。單片機(jī)的內(nèi)部硬件結(jié)構(gòu)和指令系統(tǒng)主要是針對(duì)自動(dòng)控制應(yīng)用而設(shè)計(jì)的,所以單片機(jī)又稱微控制器mcu(micro controller unit),

9、用它可以很容易的將計(jì)算機(jī)嵌入到各種儀器和現(xiàn)場(chǎng)控制設(shè)備中,因此單片機(jī)又叫做嵌入式微控制器(embedded mcu)。 mcs51單片機(jī)是美國(guó)intel司于1980年推出的產(chǎn)品,典型產(chǎn)品有 8031(內(nèi)部沒有程序存儲(chǔ)器,實(shí)際使用方面已經(jīng)被市場(chǎng)淘汰)、8051(芯片采用hmos,功耗是630mw,是89c5的5倍,實(shí)際使用方面已經(jīng)被市場(chǎng)淘汰)和8751等通用產(chǎn)品,一直到現(xiàn)在,mcs-51內(nèi)核系列兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品(比如目前流行的89s51、已經(jīng)停產(chǎn)的89c51等),atmel公司的 at89c51 8位單片機(jī),同時(shí)是在原基礎(chǔ)上增強(qiáng)了許多特性,如時(shí)鐘,更優(yōu)秀的是由flash(程序存儲(chǔ)器的

10、內(nèi)容至少可以改寫1000次)存儲(chǔ)器取帶了原來的rom(一次性寫入),at89c51的性能相對(duì)于8051已經(jīng)算是非常優(yōu)越的了。n 2.1.1 at89c51性能介紹at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機(jī)。該器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提

11、供了一種靈活性高且價(jià)廉的方案。1主要特性:與mcs-51 兼容4k字節(jié)可編程閃爍存儲(chǔ)器壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年全靜態(tài)工作:0hz-24hz三級(jí)程序存儲(chǔ)器鎖定128*8位內(nèi)部ram32可編程i/o線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路 2管腳說明:vcc:供電電壓。gnd:接地。圖2.1 at89c51的引腳排列p0口:p0口為一個(gè)8位漏級(jí)開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口

12、作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或1

13、6位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下表所示:口管腳 備選功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2

14、 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時(shí)器0外部輸入) p3.5 t1(記時(shí)器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通) p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注

15、意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(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)部程

16、序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。3振蕩器特性: xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。4芯片擦除:整個(gè)perom陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ale管腳處于低電平10ms 來完成。在芯片擦操作中,代碼

17、陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,at89c51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存ram的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。5. 存儲(chǔ)器組織 * 64kb的程序存儲(chǔ)器空間(0000-ffffh)* 128b內(nèi)部ram空間(00h-ffh) * 128b內(nèi)部特殊功能寄存器空間(80h-ffh) * 位尋址空間(20h-ffh)* 64kb外部數(shù)據(jù)存儲(chǔ)器空間(0000-ffffh)2.

18、2 七段數(shù)碼管的基本介紹2.2.1簡(jiǎn)介數(shù)碼管是工業(yè)控制中使用非常多的一種顯示輸出設(shè)備,通過他可以很容易的顯示控制系統(tǒng)的數(shù)字量,如一些溫度儀表、電梯樓層顯示、電子完年歷等系統(tǒng)中都常用的數(shù)碼顯示管進(jìn)行顯示。數(shù)碼管包括七段星數(shù)碼管和米字型數(shù)碼管?,F(xiàn)在工業(yè)共常用的是七段數(shù)碼管(一下簡(jiǎn)稱數(shù)碼管)來介紹的它的結(jié)構(gòu)及其單片機(jī)的接口。數(shù)碼管是8個(gè)發(fā)光的二極管的構(gòu)成,顯示不同的組合可用來顯示數(shù)字09,字段af符號(hào)h、l 、p、r、u、y,符號(hào)“_”及小數(shù)點(diǎn)。同一組發(fā)光二極管的共陰共陽(yáng)的連接原理是一樣的。數(shù)碼管也分共陰極和共陽(yáng)極兩種,它的的結(jié)構(gòu)(圖2.2.0)和共陰(圖2.2.1)、共陽(yáng)極(圖2.2.1)。 圖2

19、.2.0 圖2.2.1 圖2.2.2 共陰極數(shù)碼管的8個(gè)發(fā)光二極管的陰極連接在一起接低電平(一般接地),其他管腳接電源各段輸出端。當(dāng)某段輸出端的為高電平時(shí),該端所接的發(fā)光二極管發(fā)光,根據(jù)不同的發(fā)光字段的不同的組合形成數(shù)字或者字符。同樣由于每個(gè)字段的發(fā)光二極管,都有一個(gè)的額定的導(dǎo)通電流,而且根據(jù)設(shè)計(jì)人員要根據(jù)具體情況來調(diào)節(jié)數(shù)碼管的寬度和亮度,所以還需根據(jù)外接電源及額定導(dǎo)通電流及其亮度的來確定的相應(yīng)的限流電阻。至于共陽(yáng)極的發(fā)光原理和共陰極的數(shù)碼管發(fā)光原理并無二異,不同的是共陽(yáng)極數(shù)碼管是當(dāng)某段輸出端的為低電平時(shí),每個(gè)的字段的發(fā)光二極管才能正常發(fā)光。此設(shè)計(jì)采用的共陰極的數(shù)碼管,所以主要介紹共陰極的數(shù)碼

20、管及其軟件的譯碼方式。數(shù)碼管的連接方式有軟件譯碼和硬件譯碼。軟件譯碼通過軟件來實(shí)現(xiàn)譯碼來實(shí)現(xiàn)不同的組合字符或者數(shù)字的顯示;硬件譯碼主要通過硬件驅(qū)動(dòng)電路或芯片來控制數(shù)碼管所要顯示的字符的組合。相應(yīng)的硬件譯碼需要外加專用的譯碼芯片,增加相應(yīng)的應(yīng)用成本,但是軟件的設(shè)計(jì)較為簡(jiǎn)單,會(huì)降低的cpu的運(yùn)轉(zhuǎn)負(fù)荷,適合要求較高的場(chǎng)合。而軟件譯碼的優(yōu)點(diǎn)是成本低廉,但是軟件的設(shè)計(jì)會(huì)稍微復(fù)雜。2.2.1硬件譯碼 硬件譯碼是指通過專用的譯碼驅(qū)動(dòng)硬件電路或者芯片來控制顯示數(shù)碼管來顯示所需的字符,74ls47是一款常用的共陽(yáng)極數(shù)碼管主用的現(xiàn)實(shí)芯片。他的功能是從bcd碼到七段數(shù)碼管的譯碼和驅(qū)動(dòng)。本次試驗(yàn)不適用硬件譯碼,基本原

21、理的介紹從略。2.2.2軟件譯碼 a dpcbd gef 圖2.2.2下面以共陰極數(shù)碼管為例介紹數(shù)碼管的軟件的譯碼方式。 根據(jù)共陰極數(shù)碼管的現(xiàn)實(shí)原理,假如數(shù)碼管要顯示字符“2”,依據(jù)上所示的數(shù)碼結(jié)構(gòu)圖,可以反推出該數(shù)碼管的各個(gè)引腳所需的電平信號(hào)是“01011011”,即為0x5b。這個(gè)從目標(biāo)輸出字符反推出的數(shù)碼管的各段應(yīng)該輸入的數(shù)據(jù)過程為字形編碼。事實(shí)上我們可以此顯示原理推出大部分的字符的字形編碼。以下表格將逐一羅列各自字符(09)的字形編碼。數(shù)碼管字形編碼表 共陰極 dp g f e d c b a 字型碼00111111 0x3f 000001100x60 010110110x5b0100

22、11110x4f011 001100x66011011010x6d011111010x7d000001110x07011111110x7f2.2.4數(shù)碼管的顯示方法 數(shù)碼管的現(xiàn)實(shí)方法是靜態(tài)顯示方法和動(dòng)態(tài)顯示方法。 靜態(tài)顯示是指數(shù)碼管的顯示某一字符,相應(yīng)的發(fā)光的二極管恒定導(dǎo)通的或者恒定截止。這種的現(xiàn)實(shí)方法中的每個(gè)數(shù)碼管是相對(duì)的獨(dú)立的、公共端的恒定接地(共陰極)或者接電源(共陽(yáng)極)。每個(gè)的數(shù)碼管的的每個(gè)字段分別于i/o地址相連或者硬件譯碼電路相連,這時(shí)只要i/o口或者硬件電路譯碼器所需的電平輸出,相應(yīng)的字符即可顯示出來,并保持不變,直到需要更新所顯示的字符為止。采用靜態(tài)顯示方法占用cpu的時(shí)間少,

23、編程簡(jiǎn)單,但占用的i/o口線多,硬件電路復(fù)雜,成本高,只適用字符顯示少的場(chǎng)合。動(dòng)態(tài)顯示逐次點(diǎn)亮每個(gè)數(shù)碼管。方法是每個(gè)數(shù)碼管公共端都有一個(gè)i/o口線來控制,以動(dòng)態(tài)顯示時(shí)先選中第1個(gè)數(shù)碼管,把數(shù)據(jù)送給他顯示,一定時(shí)間后在選中第2個(gè)數(shù)碼管,把數(shù)據(jù)送給他顯示.即在某一時(shí)刻只有一個(gè)數(shù)碼管在顯示字符。這樣只要掃描的速度走夠快(要超過人眼的視覺停留時(shí)間),動(dòng)態(tài)顯示的效果在人看來就是幾個(gè)數(shù)碼管同時(shí)顯示。采用動(dòng)態(tài)顯示方式比較節(jié)省i/o口,硬件電路比靜態(tài)顯示的方式簡(jiǎn)單,但其亮度不如靜態(tài)顯示時(shí)的時(shí)間的亮,而且顯示數(shù)碼管較多時(shí),cpu要逐次掃描,會(huì)占用較多的時(shí)間。第3章 系統(tǒng)原理的設(shè)計(jì)3.1課題的技術(shù)和量化要求1 能

24、記錄整個(gè)賽程的比賽時(shí)間,并能修改比賽時(shí)間、暫停比賽時(shí)間。2 能隨時(shí)刷新甲、乙兩隊(duì)在整個(gè)賽程中的比分。3 中場(chǎng)交換比賽場(chǎng)地時(shí),能交換甲、乙兩隊(duì)比分的位置。4 比賽時(shí)間結(jié)束時(shí),能發(fā)出報(bào)警指令;3.2 系統(tǒng)的組成框圖 為了實(shí)現(xiàn)原理圖的設(shè)計(jì)目標(biāo),同時(shí)結(jié)合自己獲取的各種資料以及要達(dá)到的具體功能,所確定的組成框圖見圖3.1.1。 一、組成框圖的組成說明 按鈕單片機(jī)芯 片時(shí)間顯示比分顯示 圖3.1.1:系統(tǒng)原理框圖二、組成框圖的組成及其功能說明1、 led能夠顯示比賽成績(jī)和比賽時(shí)間,并且能夠顯示調(diào)整后的比賽成績(jī)和時(shí)間2、 控制按鈕由兩隊(duì)的加分按鈕組成、以中場(chǎng)中止按鈕組成。3、 暫停比賽時(shí)間。第四章 硬件部分

25、的設(shè)計(jì)4.1 單片機(jī)接口電路圖4.1.1單片機(jī)接口電路見圖4.1.1,其電路分析如下:1)復(fù)位電路 復(fù)位是指單片機(jī)的cpu或系統(tǒng)中其它的部件處于某一確定的初試狀態(tài),并從這一狀態(tài)開始工作。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或是操作錯(cuò)誤使系統(tǒng)處于鎖死狀態(tài),為擺脫困境,需要進(jìn)行按鍵復(fù)位。 通常單片機(jī)的復(fù)位操作有上電復(fù)位、信號(hào)復(fù)位、運(yùn)行監(jiān)視復(fù)位,運(yùn)行監(jiān)視復(fù)位有程序運(yùn)行監(jiān)視和電源監(jiān)視。 上電復(fù)位 上電復(fù)位是指單片機(jī)上電是的復(fù)位操作,保證單片機(jī)上電后立即進(jìn)入規(guī)定的復(fù)位狀態(tài)。 信號(hào)復(fù)位 信號(hào)復(fù)位是指單片機(jī)在正常供電的情況下,在復(fù)位引腳端加以復(fù)位信號(hào)。根據(jù)不同情況有按鍵操作復(fù)位、喚醒復(fù)位、控制復(fù)

26、位等。 系統(tǒng)運(yùn)行監(jiān)視復(fù)位 系統(tǒng)運(yùn)行監(jiān)視復(fù)位是指系統(tǒng)出現(xiàn)非正常情況下時(shí)的復(fù)位操作,通常有電源監(jiān)視復(fù)位和程序監(jiān)視復(fù)位。電源監(jiān)視復(fù)位是指在電源下降到一定電平狀態(tài)或未達(dá)到額定電平要求時(shí)的系統(tǒng)復(fù)位;程序運(yùn)行監(jiān)視復(fù)位是指程序運(yùn)行時(shí)常時(shí)的系統(tǒng)復(fù)位。在本設(shè)計(jì)中,則是采用上電復(fù)位,復(fù)位電路見圖2,原理是當(dāng)電源接通后,上電瞬間reset引腳獲取高電平,該高電平需要電容充電來維持,當(dāng)高電平維持在兩個(gè)機(jī)械周期以上則單片機(jī)能被復(fù)位。一般為了能夠可靠復(fù)位,復(fù)位時(shí)間一般在10ms以上,對(duì)于振蕩頻率為12mhz的復(fù)位電路,典型rc系數(shù)為:c3=10uf ,r29=8.2千歐。2)晶體振蕩電路 晶體振蕩電路用于產(chǎn)生單片機(jī)工作時(shí)

27、所需的時(shí)鐘信號(hào),從而保證各部分工作的同步。單片機(jī)內(nèi)部有一個(gè)高增益反相反大器,只要在輸入端xtal1與輸出xtal2之間掛一個(gè)晶體振蕩器和微調(diào)電容就可以構(gòu)成一個(gè)穩(wěn)定的自激震蕩器并在單片機(jī)內(nèi)部產(chǎn)生的時(shí)鐘脈沖信號(hào)。振蕩電路見圖3,電容器c1與c2用于穩(wěn)定頻率和快速起振,電容一般在5pf30pf,本設(shè)計(jì)電容為30pf。3)鍵盤接口電路 與通用單片機(jī)相比,單片機(jī)應(yīng)用系統(tǒng)中的鍵盤種類很多,鍵盤中按鍵數(shù)量設(shè)置依系統(tǒng)操作要求而定。單片機(jī)應(yīng)用系統(tǒng)中的鍵盤有獨(dú)立式和行列式兩種。(1)獨(dú)立式鍵盤獨(dú)立式鍵盤中,每個(gè)按鍵占用一個(gè)i/o口線,每個(gè)按鍵相對(duì)獨(dú)立。i/o口通過按鍵與地相連,無按鍵按下時(shí),引腳端為高電平,有按鍵

28、按下時(shí),引腳為低電平,i/o口內(nèi)部有上拉電阻外部不可接上拉電阻。(2)行列式鍵盤用i/o口線組成行列結(jié)構(gòu),按鍵設(shè)置在交叉點(diǎn)上,在按鍵數(shù)目較多時(shí)運(yùn)用這種連接方式,可節(jié)省i/o口連線。行列式鍵盤的標(biāo)識(shí)最常用的兩種方法:行掃描法和線反轉(zhuǎn)法。本次設(shè)計(jì)中由于按鍵較少,采用三按鍵獨(dú)立式鍵盤即可滿足需要見圖(4.1.2)圖4.1.24.2 數(shù)碼顯示電路 led顯示器 通常所說的led顯示器由七個(gè)發(fā)光二極管組成,因此也稱作七段led顯示器,通過七段發(fā)光二極管的不同組合,可以顯示多種數(shù)字、字母或其它符號(hào)。圖4.1.31)led的接法 共陰極接法是指把發(fā)光二極管的陰極連接在一起構(gòu)成公共陰極,使用時(shí)公共陰極接地,陽(yáng)

29、極輸入高電平段的二極管則會(huì)導(dǎo)通發(fā)光,而輸入低電平的則不會(huì)亮。2)顯示方式 動(dòng)態(tài)顯示是指依次輪流點(diǎn)亮顯示器的各個(gè)位,每隔一段時(shí)間則點(diǎn)亮一次,設(shè)置足夠短的時(shí)間,利用人的視覺暫停效應(yīng)和發(fā)光二極管的熄滅時(shí)的余輝,達(dá)到多個(gè)字符同時(shí)顯示的效果。運(yùn)行這種顯示方式可以降低成本與功耗,但需要較大的驅(qū)動(dòng)電流。 本設(shè)計(jì)中采用的共陰極連接方式,由于沒有有足夠的i/o口可以使用采用動(dòng)態(tài)示方式,顯示電路見圖4.1.3。此外p0需外加上拉電阻(圖4.1.4)。圖4.1.4第五章 軟件部分設(shè)計(jì)5.1按鍵模塊5.1.1簡(jiǎn)介 其實(shí),作為一個(gè)按鍵從沒有按下到按下以及釋放是一個(gè)完整的過程,也就是說,當(dāng)我們按下一個(gè)按鍵時(shí),總希望某個(gè)命

30、令只執(zhí)行一次,而在按鍵按下的過程中,不要有干擾進(jìn)來,因?yàn)?,在按下的過程中,一旦有干擾過來,可能造成誤觸發(fā)過程,這并不是我們所想要的。因此在按鍵按下的時(shí)候,圖5.1.1要把我們手上的干擾信號(hào)以及按鍵的機(jī)械接觸等干擾信號(hào)給濾除掉,一般情況下,我們可以采用電容來濾除掉這些干擾信號(hào),但實(shí)際上,會(huì)增加硬件成本及硬件電路的體積,這是我們不希望,總得有個(gè)辦法解決這個(gè)問題,因此我們可以采用軟件濾波的方法去除這些干擾信號(hào),一般情況下,一個(gè)按鍵按下的時(shí)候,總是在按下的時(shí)刻存在著一定的干擾信號(hào),按下之后就基本上進(jìn)入了穩(wěn)定的狀態(tài)。具體的一個(gè)按鍵從按下到釋放的全過程的信號(hào)圖如上圖(5.1.1)所示: 從圖中可以看出,我

31、們?cè)诔绦蛟O(shè)計(jì)時(shí),從按鍵被識(shí)別按下之后,延時(shí)5ms以上,從而避開了干擾信號(hào)區(qū)域,我們?cè)賮頇z測(cè)一次,看按鍵是否真得已經(jīng)按下,若真得已經(jīng)按下,這時(shí)肯定輸出為低電平,若這時(shí)檢測(cè)到的是高電平,證明剛才是由于干擾信號(hào)引起的誤觸發(fā),cpu就認(rèn)為是誤觸發(fā)信號(hào)而舍棄這次的按鍵識(shí)別過程。從而提高了系統(tǒng)的可靠性。 由于要求每按下一次,命令被執(zhí)行一次,直到下一次再按下的時(shí)候,再執(zhí)行一次命令,因此從按鍵被識(shí)別出來之后,我們就可以執(zhí)行這次的命令,所以要有一個(gè)等待按鍵釋放的過程,顯然釋放的過程,就是使其恢復(fù)成高電平狀態(tài)。 5.1.2.鍵盤處理的流程圖 等待按鍵釋放 按鍵處理 真的有鍵按下嗎? 延時(shí)n 有鍵按下嗎?ny 圖5

32、.1.2 5.1.3 源代碼void key_sc() /鍵盤掃描模塊 uchar key_bt,i; while(1) p1=0xff;delay_t(80);key_bt=p1;switch(key_bt) case 0xfe: /初始化,顯示0; for(i=0;i9;i+) /display_bufi=0;display_rt(display_buf); break; case 0xfd: /a隊(duì) modify_sc(); break; case 0xfb: /b隊(duì) modify_sc(); break; case 0xf7: /時(shí)間 modify_st(); break; 5.2顯示

33、模塊5.2. 1 簡(jiǎn)介 顯示部分通過p0口外加上拉電阻進(jìn)行顯示,數(shù)碼管采用7段共陰極數(shù)碼管,通過查表指令進(jìn)行顯示,首先將要顯示的緩存單元,送入累加器中,通過累加器進(jìn)行查表,將要顯示的數(shù)值存儲(chǔ)起來,然后通過位選信號(hào),將要顯示的位的數(shù)碼管打開,進(jìn)行現(xiàn)實(shí)。并通過延時(shí)子程序進(jìn)行延時(shí),使其顯示的數(shù)值穩(wěn)定下來。然后再通過位選信號(hào),將顯示的數(shù)值關(guān)斷,從而顯示下一個(gè)數(shù)值。但當(dāng)顯示完一圈后程序跳出,等待數(shù)據(jù)的傳輸,再次進(jìn)行顯示??紤]到顯示的數(shù)據(jù)比較多有10個(gè)數(shù)據(jù),而且需要相當(dāng)多的位選線。所以把整個(gè)顯示緩看做一個(gè)整體。低6位傳輸?shù)氖潜荣悢?shù)據(jù),高4位傳輸?shù)檬潜荣悤r(shí)間。 p2、p3初始化 p0=showdis_cod

34、ei5.2.2.顯示的流程圖 i1 p3 1p2=bit_disp2p3=0xffp3=bit_disp3p2=0xff 5.2.3.源代碼void display_rt(uchar dis_code) /顯示任務(wù) char bit_disp2,bit_disp3,i; bit_disp3=0x20; bit_disp2=0x08; for(i=0;i=9;i+) p2=0xff; p3=0xff; p0=show_tdis_codei; if(i1; else bit_disp3=0x20; p2=bit_disp2; p3=0xff; bit_disp2=bit_disp21; delay

35、_t(1); 5.3成績(jī)調(diào)整模塊 5.3.1 簡(jiǎn)介 成績(jī)調(diào)整模塊用用于記錄兩隊(duì)比賽成績(jī),顯示led中前3位用于記錄a隊(duì)比賽成績(jī),后三位用于記錄b隊(duì)的比賽成績(jī)。成績(jī)的記錄范圍從000999其中。獲取鍵盤k2和k3信息5.3.2成績(jī)調(diào)整流程圖us_b+延時(shí) 等待再次獲取p1的鍵盤信息 y ds_b+ y hs_b+ 顯示 p1=0xfd ? p1=0xfb ? us_b=0 ds_b=0 hs_b=0nn us_a=0 ds_a=0 hs_a=0 hs_b9 hs_a9 n yhs_a+ y ds_a+us nnb隊(duì) p1=0xfba隊(duì) p1=0xfd us_a+ ds_b9 ds_a9 us_b

36、9 us_a 95.3.2源代碼void modify_sc() /調(diào)整比賽結(jié)果 while(1) display_rt(display_buf); while(p1=0xfd) /a隊(duì) us_a+; if(us_a9) ds_a+; us_a=0; if(ds_a9) ds_a=0; hs_a+; if(hs_a9) us_a=0; ds_a=0; hs_a=0; display_buf3=us_a; display_buf4=ds_a; display_buf5=hs_a; display_rt(display_buf); delay_t(60); while(p1=0xfb) /b隊(duì) u

37、s_b+; if(us_b9) us_b=0; ds_b+; if(ds_b9) ds_b=0; hs_b+; if(hs_b9) us_b=0; ds_b=0; hs_b=0; display_buf0=us_b; display_buf1=ds_b; display_buf2=hs_b; display_rt(display_buf);delay_t(60); 5.4延時(shí)模塊 5.4.1簡(jiǎn)介 程序主要采用雙循環(huán)結(jié)構(gòu)。 5.4.2延時(shí)的流程圖 關(guān)于延時(shí)的流程圖 t- = 0 ? 退出n tt=300 ytt- tt =0 ?n5.4.3延時(shí)的流程圖 void delay_t(int t) /

38、延時(shí) int tt; while(t-) tt=300; while(tt-); 課題設(shè)計(jì)總結(jié)隨著數(shù)字化控制技術(shù)在產(chǎn)品中的越來越廣泛應(yīng)用和人民生活水平的提高,對(duì)產(chǎn)品的環(huán)保、安全舒適、方便實(shí)用性能要求越來越高。本次設(shè)計(jì)只是初步的完成的它的功能,并沒有對(duì)其的相關(guān)的節(jié)能、精準(zhǔn)度多的考慮,并且只是流于任務(wù)式的處理,總體來說這次的設(shè)計(jì)并不令人滿意。而且只是進(jìn)行基本的仿真,并沒有進(jìn)行實(shí)物的設(shè)計(jì),紙上談兵并無太多的實(shí)際效果。另一方面,我對(duì)c和8051有了較為清醒的認(rèn)識(shí),這次設(shè)計(jì)我對(duì)于軟件模塊首先用c初步的架構(gòu)起來,但限于顯示模塊的短板浪費(fèi)了相當(dāng)多的時(shí)間和精力。我試圖用8051重構(gòu)整個(gè)系統(tǒng),但是對(duì)匯編相當(dāng)?shù)目?/p>

39、懼,實(shí)現(xiàn)了小部分。也想用c和匯編8051混寫,迫于時(shí)間的緊張只能用放棄這個(gè)想法了。8051實(shí)現(xiàn)led模塊的位選控制相當(dāng)?shù)暮?jiǎn)單,而且非常準(zhǔn)確,不足之處閱讀和維護(hù)是有相當(dāng)?shù)碾y度;而c語言雖然使用起來簡(jiǎn)單但是不易控制其準(zhǔn)確性。綜上所述,語言各有所長(zhǎng),但并非萬能。本模塊中i/o選擇比較緊張,實(shí)際上i/o需求少的74hc164串行傳輸段選數(shù)據(jù),通過其他口來進(jìn)行位選控制,最重要的是不會(huì)占用p3這個(gè)多功能的i/o口。另外可以選擇ln3461來顯示數(shù)據(jù)。 通過此次設(shè)計(jì),使我對(duì)籃球賽記時(shí)計(jì)分其有了部分認(rèn)識(shí)。因此,我將繼續(xù)向前邁進(jìn),期待對(duì)它有更深層次的了解,期待取得更好的效果。附錄一 原理圖 附錄二 仿真附錄三

40、源程序設(shè)計(jì)#include#define uchar unsigned char#define uint8 unsigned intuchar code show_t10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /0 1 2 3 4 5 6 7 8 9static uchar display_buf10; /定義顯示緩沖char xsc3,ysc3; /保存兩隊(duì)的比賽結(jié)果char tsc4; /保存比賽時(shí)間uchar us_a=0,ds_a=0,hs_a=0,us_b=0,ds_b,hs_b=0; /分別定義a和b隊(duì)比賽成績(jī)的個(gè)位、

41、十位、百位uchar sut=0,sdt=0,mut=0,mdt=0; /分別定義比賽時(shí)間的秒、分個(gè)位及其十位sbit fm_bt = p27; /蜂鳴狀態(tài)位void delay_t(int t) /延時(shí) int tt; while(t-) tt=300; while(tt-); void display_rt(uchar dis_code) /顯示任務(wù) char bit_disp2,bit_disp3,i; bit_disp3=0x20; bit_disp2=0x08; for(i=0;i=9;i+) p2=0xff; p3=0xff; p0=show_tdis_codei; if(i1;

42、else bit_disp3=0x20; p2=bit_disp2; p3=0xff; bit_disp2=bit_disp21; delay_t(1); void alarm_spk() /攻擊時(shí)間倒計(jì)時(shí),喇叭在最后5秒鐘發(fā)出滴答滴答的警報(bào)聲uint8 vtmp;for(vtmp=0;vtmp9) ds_a+; us_a=0; if(ds_a9) ds_a=0; hs_a+; if(hs_a9) us_a=0; ds_a=0; hs_a=0; display_buf3=us_a; display_buf4=ds_a; display_buf5=hs_a; display_rt(display_buf);delay_t(60); while(p1=0xfb) /b隊(duì) us_b+; if(us_b9) us_b=0; ds_b+; if(ds_b9) ds_b=0; hs_b+; if(hs_b9) us_b=0; ds_b=0; hs_b=0; display_buf0=us_b; display_buf1=ds_b; display_buf2=hs_b; display_rt(display_b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論