




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、2009屆畢業(yè)設計(論文) 題 目 : 基于單片機的籃球賽計時計分器 學院、系 : 電子技術系 專 業(yè) : 電子科學與技術 學生姓名 : 班 級 : 電科07521 學 號 : 指導老師 : 摘要 本設計是籃球計時計分器,主要在籃球比賽中用于記錄整個賽程的比賽時間和顯示甲、乙兩隊在比賽過程中的比分情況。該計時計分器有部分組成:一部分用來實現(xiàn)計時功能,其基本原理和定時鬧相似;另一部分用來實現(xiàn)計分功能,其基本原理和計數(shù)器相似,只不過所要記錄和顯示的對象是按鍵按下的次數(shù),每按下一次計數(shù)值加一。該設計能夠?qū)崿F(xiàn)計時和計分功能,采用共陰極數(shù)碼管進行動態(tài)顯示,加分的部分用按鍵來完成,每按一次發(fā)送一個計數(shù)脈沖
2、,計數(shù)值加一。關鍵詞: 計時 計分 動態(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 課題運用的知識點101.4 課題組成 10第二章 課論基礎92.1 單片機概述 2.1.1 AT89C51性能介紹
5、2.2 七段數(shù)碼管的基本介紹2.2.1簡介 2.2.2硬件譯碼 2.2.3軟件譯碼 2.2.4顯示方法第三章 系統(tǒng)原理的設計 3.1課題的技術和量化要求3.2 系統(tǒng)的組成框圖第4章 硬件部分的設計4.1 單片機接口電路4.2 數(shù)碼顯示電路 第5章 軟件部分設計 5.1 按鍵模塊 5.1.1 簡介 5.1.2 鍵盤處理的流程圖 5.1.3 源代碼 5.2 顯示模塊 5.2.1 簡介 5.2.2 顯示的流程圖 5.2.3 源代碼 5.3 成績調(diào)整模塊 5.3.1 簡介 5.3.2 成績調(diào)整流程圖 5.3.3 源代碼 5.4 延時模塊 5.4.1 簡介 5.4.2 延時的流程圖 5.4.3 源代碼
6、課題設計總結附錄一 原理圖附錄二 源程序設計參考文獻致謝 第一章 緒論1.1發(fā)展背景體育比賽計時記分系統(tǒng)是對體育比賽過程中所產(chǎn)生的時間、比分等數(shù)據(jù)進行快速采集記錄、加工處理、傳遞利用的信息系統(tǒng)。根據(jù)不同運動項目的不同比賽規(guī)則要求, 體育比賽的計時記分系統(tǒng)包括測量類、評分類、命中類、制勝類、得分類等多種類型。籃球比賽是根據(jù)運動隊在規(guī)定的比賽時間里得分多少來決定勝負的, 因此, 足球比賽的計時記分系統(tǒng)是一種得分類型的系統(tǒng)?;@球比賽的計時記分系統(tǒng)由計時器、記分器等多種電子設備組成。同時, 根據(jù)目前高水平足球比賽要求, 完善的足球比賽計時記分系統(tǒng)設備應該能夠與現(xiàn)場成績處理、現(xiàn)場大屏幕、電視轉播車等多種
7、設備相聯(lián), 以便實現(xiàn)提高比賽現(xiàn)場感、表演娛樂觀眾等功能。1.2系統(tǒng)功能隨著科技的迅猛發(fā)展,單片機在計算機應用領域中起到了越來越重要的作用. 單片機體積小,功能強,集成了微型機的各部件,大大縮短了系統(tǒng)內(nèi)信號傳送的距離,從而提高了系統(tǒng)的可靠性及運行速度。該系統(tǒng)主要是線以下兩種功能: 1 計分:能同時顯示甲、乙兩隊比分,最大計分數(shù)為99。能分別對甲、乙兩隊比分進行加分。2 計時:從比賽開始時啟動計時工作方式,初始時間為00,最大計時為99 分鐘, 經(jīng)過修改后應該還能實施計時暫停,還能設定為倒計時。3 交換比分:中場交換比賽場地時,能交換甲、乙兩隊比分的位置。4 哨音提示:設定的比賽時間到了,能自動哨
8、音提示比賽結束.1.3 課題運用的知識點 本課題主要運用單片機設計知識設計籃球賽記時計分器,因此涉及到的知識點主要有以下幾點:(1)AT89C51單片機的運用(2)LED數(shù)碼管的運用(3)人機接口1.4 課題組成(1)課題的理論基礎(2)系統(tǒng)原理的設計(3)硬件部分的設計(4)軟件部分的設計(5)仿真調(diào)試 第二章 課論基礎2.1 單片機概述 單片化是把計算機系統(tǒng)盡可能集成在一塊半導體芯片上,其目的在于計算機微型化和提高系統(tǒng)的可靠性,這種單片計算機簡稱單片機。單片機的內(nèi)部硬件結構和指令系統(tǒng)主要是針對自動控制應用而設計的,所以單片機又稱微控制器MCU(Micro Controller Unit),
9、用它可以很容易的將計算機嵌入到各種儀器和現(xiàn)場控制設備中,因此單片機又叫做嵌入式微控制器(Embedded MCU)。 MCS51單片機是美國INTEL司于1980年推出的產(chǎn)品,典型產(chǎn)品有 8031(內(nèi)部沒有程序存儲器,實際使用方面已經(jīng)被市場淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C5的5倍,實際使用方面已經(jīng)被市場淘汰)和8751等通用產(chǎn)品,一直到現(xiàn)在,MCS-51內(nèi)核系列兼容的單片機仍是應用的主流產(chǎn)品(比如目前流行的89S51、已經(jīng)停產(chǎn)的89C51等),ATMEL公司的 AT89C51 8位單片機,同時是在原基礎上增強了許多特性,如時鐘,更優(yōu)秀的是由Flash(程序存儲器的
10、內(nèi)容至少可以改寫1000次)存儲器取帶了原來的ROM(一次性寫入),AT89C51的性能相對于8051已經(jīng)算是非常優(yōu)越的了。n 2.1.1 AT89C51性能介紹AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提
11、供了一種靈活性高且價廉的方案。1主要特性:與MCS-51 兼容4K字節(jié)可編程閃爍存儲器壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0Hz-24Hz三級程序存儲器鎖定128*8位內(nèi)部RAM32可編程I/O線兩個16位定時器/計數(shù)器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路 2管腳說明:VCC:供電電壓。GND:接地。圖2.1 AT89C51的引腳排列P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口
12、作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或1
13、6位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當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(記時器0外部輸入) P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注
15、意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程
16、序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。4芯片擦除:整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼
17、陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。 此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。5. 存儲器組織 * 64KB的程序存儲器空間(0000-FFFFH)* 128B內(nèi)部RAM空間(00H-FFH) * 128B內(nèi)部特殊功能寄存器空間(80H-FFH) * 位尋址空間(20H-FFH)* 64KB外部數(shù)據(jù)存儲器空間(0000-FFFFH)2.
18、2 七段數(shù)碼管的基本介紹2.2.1簡介數(shù)碼管是工業(yè)控制中使用非常多的一種顯示輸出設備,通過他可以很容易的顯示控制系統(tǒng)的數(shù)字量,如一些溫度儀表、電梯樓層顯示、電子完年歷等系統(tǒng)中都常用的數(shù)碼顯示管進行顯示。數(shù)碼管包括七段星數(shù)碼管和米字型數(shù)碼管?,F(xiàn)在工業(yè)共常用的是七段數(shù)碼管(一下簡稱數(shù)碼管)來介紹的它的結構及其單片機的接口。數(shù)碼管是8個發(fā)光的二極管的構成,顯示不同的組合可用來顯示數(shù)字09,字段AF符號H、L 、P、R、U、Y,符號“_”及小數(shù)點。同一組發(fā)光二極管的共陰共陽的連接原理是一樣的。數(shù)碼管也分共陰極和共陽極兩種,它的的結構(圖2.2.0)和共陰(圖2.2.1)、共陽極(圖2.2.1)。 圖2
19、.2.0 圖2.2.1 圖2.2.2 共陰極數(shù)碼管的8個發(fā)光二極管的陰極連接在一起接低電平(一般接地),其他管腳接電源各段輸出端。當某段輸出端的為高電平時,該端所接的發(fā)光二極管發(fā)光,根據(jù)不同的發(fā)光字段的不同的組合形成數(shù)字或者字符。同樣由于每個字段的發(fā)光二極管,都有一個的額定的導通電流,而且根據(jù)設計人員要根據(jù)具體情況來調(diào)節(jié)數(shù)碼管的寬度和亮度,所以還需根據(jù)外接電源及額定導通電流及其亮度的來確定的相應的限流電阻。至于共陽極的發(fā)光原理和共陰極的數(shù)碼管發(fā)光原理并無二異,不同的是共陽極數(shù)碼管是當某段輸出端的為低電平時,每個的字段的發(fā)光二極管才能正常發(fā)光。此設計采用的共陰極的數(shù)碼管,所以主要介紹共陰極的數(shù)碼
20、管及其軟件的譯碼方式。數(shù)碼管的連接方式有軟件譯碼和硬件譯碼。軟件譯碼通過軟件來實現(xiàn)譯碼來實現(xiàn)不同的組合字符或者數(shù)字的顯示;硬件譯碼主要通過硬件驅(qū)動電路或芯片來控制數(shù)碼管所要顯示的字符的組合。相應的硬件譯碼需要外加專用的譯碼芯片,增加相應的應用成本,但是軟件的設計較為簡單,會降低的CPU的運轉負荷,適合要求較高的場合。而軟件譯碼的優(yōu)點是成本低廉,但是軟件的設計會稍微復雜。2.2.1硬件譯碼 硬件譯碼是指通過專用的譯碼驅(qū)動硬件電路或者芯片來控制顯示數(shù)碼管來顯示所需的字符,74LS47是一款常用的共陽極數(shù)碼管主用的現(xiàn)實芯片。他的功能是從BCD碼到七段數(shù)碼管的譯碼和驅(qū)動。本次試驗不適用硬件譯碼,基本原
21、理的介紹從略。2.2.2軟件譯碼 a dpcbd gef 圖2.2.2下面以共陰極數(shù)碼管為例介紹數(shù)碼管的軟件的譯碼方式。 根據(jù)共陰極數(shù)碼管的現(xiàn)實原理,假如數(shù)碼管要顯示字符“2”,依據(jù)上所示的數(shù)碼結構圖,可以反推出該數(shù)碼管的各個引腳所需的電平信號是“”,即為0x5b。這個從目標輸出字符反推出的數(shù)碼管的各段應該輸入的數(shù)據(jù)過程為字形編碼。事實上我們可以此顯示原理推出大部分的字符的字形編碼。以下表格將逐一羅列各自字符(09)的字形編碼。數(shù)碼管字形編碼表 共陰極 dp g f e d c b a 字型碼00111111 0x3f 000001100x60 010110110x5b010011110x4f
22、011 001100x66011011010x6d011111010x7d000001110x07011111110x7f2.2.4數(shù)碼管的顯示方法 數(shù)碼管的現(xiàn)實方法是靜態(tài)顯示方法和動態(tài)顯示方法。 靜態(tài)顯示是指數(shù)碼管的顯示某一字符,相應的發(fā)光的二極管恒定導通的或者恒定截止。這種的現(xiàn)實方法中的每個數(shù)碼管是相對的獨立的、公共端的恒定接地(共陰極)或者接電源(共陽極)。每個的數(shù)碼管的的每個字段分別于I/O地址相連或者硬件譯碼電路相連,這時只要I/O口或者硬件電路譯碼器所需的電平輸出,相應的字符即可顯示出來,并保持不變,直到需要更新所顯示的字符為止。采用靜態(tài)顯示方法占用CPU的時間少,編程簡單,但占用
23、的I/O口線多,硬件電路復雜,成本高,只適用字符顯示少的場合。動態(tài)顯示逐次點亮每個數(shù)碼管。方法是每個數(shù)碼管公共端都有一個I/O口線來控制,以動態(tài)顯示時先選中第1個數(shù)碼管,把數(shù)據(jù)送給他顯示,一定時間后在選中第2個數(shù)碼管,把數(shù)據(jù)送給他顯示.即在某一時刻只有一個數(shù)碼管在顯示字符。這樣只要掃描的速度走夠快(要超過人眼的視覺停留時間),動態(tài)顯示的效果在人看來就是幾個數(shù)碼管同時顯示。采用動態(tài)顯示方式比較節(jié)省I/O口,硬件電路比靜態(tài)顯示的方式簡單,但其亮度不如靜態(tài)顯示時的時間的亮,而且顯示數(shù)碼管較多時,CPU要逐次掃描,會占用較多的時間。第3章 系統(tǒng)原理的設計3.1課題的技術和量化要求1 能記錄整個賽程的比
24、賽時間,并能修改比賽時間、暫停比賽時間。2 能隨時刷新甲、乙兩隊在整個賽程中的比分。3 中場交換比賽場地時,能交換甲、乙兩隊比分的位置。4 比賽時間結束時,能發(fā)出報警指令;3.2 系統(tǒng)的組成框圖 為了實現(xiàn)原理圖的設計目標,同時結合自己獲取的各種資料以及要達到的具體功能,所確定的組成框圖見圖3.1.1。 一、組成框圖的組成說明 按鈕單片機芯 片時間顯示比分顯示 圖3.1.1:系統(tǒng)原理框圖二、組成框圖的組成及其功能說明1、 LED能夠顯示比賽成績和比賽時間,并且能夠顯示調(diào)整后的比賽成績和時間2、 控制按鈕由兩隊的加分按鈕組成、以中場中止按鈕組成。3、 暫停比賽時間。第四章 硬件部分的設計4.1 單
25、片機接口電路圖4.1.1單片機接口電路見圖4.1.1,其電路分析如下:1)復位電路 復位是指單片機的CPU或系統(tǒng)中其它的部件處于某一確定的初試狀態(tài),并從這一狀態(tài)開始工作。除了進入系統(tǒng)的正常初始化之外,當由于程序運行出錯或是操作錯誤使系統(tǒng)處于鎖死狀態(tài),為擺脫困境,需要進行按鍵復位。 通常單片機的復位操作有上電復位、信號復位、運行監(jiān)視復位,運行監(jiān)視復位有程序運行監(jiān)視和電源監(jiān)視。 上電復位 上電復位是指單片機上電是的復位操作,保證單片機上電后立即進入規(guī)定的復位狀態(tài)。 信號復位 信號復位是指單片機在正常供電的情況下,在復位引腳端加以復位信號。根據(jù)不同情況有按鍵操作復位、喚醒復位、控制復位等。 系統(tǒng)運行
26、監(jiān)視復位 系統(tǒng)運行監(jiān)視復位是指系統(tǒng)出現(xiàn)非正常情況下時的復位操作,通常有電源監(jiān)視復位和程序監(jiān)視復位。電源監(jiān)視復位是指在電源下降到一定電平狀態(tài)或未達到額定電平要求時的系統(tǒng)復位;程序運行監(jiān)視復位是指程序運行時常時的系統(tǒng)復位。在本設計中,則是采用上電復位,復位電路見圖2,原理是當電源接通后,上電瞬間RESET引腳獲取高電平,該高電平需要電容充電來維持,當高電平維持在兩個機械周期以上則單片機能被復位。一般為了能夠可靠復位,復位時間一般在10ms以上,對于振蕩頻率為12MHZ的復位電路,典型RC系數(shù)為:C3=10uF ,R29=8.2千歐。2)晶體振蕩電路 晶體振蕩電路用于產(chǎn)生單片機工作時所需的時鐘信號,
27、從而保證各部分工作的同步。單片機內(nèi)部有一個高增益反相反大器,只要在輸入端XTAL1與輸出XTAL2之間掛一個晶體振蕩器和微調(diào)電容就可以構成一個穩(wěn)定的自激震蕩器并在單片機內(nèi)部產(chǎn)生的時鐘脈沖信號。振蕩電路見圖3,電容器C1與C2用于穩(wěn)定頻率和快速起振,電容一般在5PF30PF,本設計電容為30PF。3)鍵盤接口電路 與通用單片機相比,單片機應用系統(tǒng)中的鍵盤種類很多,鍵盤中按鍵數(shù)量設置依系統(tǒng)操作要求而定。單片機應用系統(tǒng)中的鍵盤有獨立式和行列式兩種。(1)獨立式鍵盤獨立式鍵盤中,每個按鍵占用一個I/O口線,每個按鍵相對獨立。I/O口通過按鍵與地相連,無按鍵按下時,引腳端為高電平,有按鍵按下時,引腳為低
28、電平,I/O口內(nèi)部有上拉電阻外部不可接上拉電阻。(2)行列式鍵盤用I/O口線組成行列結構,按鍵設置在交叉點上,在按鍵數(shù)目較多時運用這種連接方式,可節(jié)省I/O口連線。行列式鍵盤的標識最常用的兩種方法:行掃描法和線反轉法。本次設計中由于按鍵較少,采用三按鍵獨立式鍵盤即可滿足需要見圖(4.1.2)圖4.1.24.2 數(shù)碼顯示電路 LED顯示器 通常所說的LED顯示器由七個發(fā)光二極管組成,因此也稱作七段LED顯示器,通過七段發(fā)光二極管的不同組合,可以顯示多種數(shù)字、字母或其它符號。圖4.1.31)LED的接法 共陰極接法是指把發(fā)光二極管的陰極連接在一起構成公共陰極,使用時公共陰極接地,陽極輸入高電平段的
29、二極管則會導通發(fā)光,而輸入低電平的則不會亮。2)顯示方式 動態(tài)顯示是指依次輪流點亮顯示器的各個位,每隔一段時間則點亮一次,設置足夠短的時間,利用人的視覺暫停效應和發(fā)光二極管的熄滅時的余輝,達到多個字符同時顯示的效果。運行這種顯示方式可以降低成本與功耗,但需要較大的驅(qū)動電流。 本設計中采用的共陰極連接方式,由于沒有有足夠的I/O口可以使用采用動態(tài)示方式,顯示電路見圖4.1.3。此外P0需外加上拉電阻(圖4.1.4)。圖4.1.4第五章 軟件部分設計5.1按鍵模塊5.1.1簡介 其實,作為一個按鍵從沒有按下到按下以及釋放是一個完整的過程,也就是說,當我們按下一個按鍵時,總希望某個命令只執(zhí)行一次,而
30、在按鍵按下的過程中,不要有干擾進來,因為,在按下的過程中,一旦有干擾過來,可能造成誤觸發(fā)過程,這并不是我們所想要的。因此在按鍵按下的時候,圖5.1.1要把我們手上的干擾信號以及按鍵的機械接觸等干擾信號給濾除掉,一般情況下,我們可以采用電容來濾除掉這些干擾信號,但實際上,會增加硬件成本及硬件電路的體積,這是我們不希望,總得有個辦法解決這個問題,因此我們可以采用軟件濾波的方法去除這些干擾信號,一般情況下,一個按鍵按下的時候,總是在按下的時刻存在著一定的干擾信號,按下之后就基本上進入了穩(wěn)定的狀態(tài)。具體的一個按鍵從按下到釋放的全過程的信號圖如上圖(5.1.1)所示: 從圖中可以看出,我們在程序設計時,
31、從按鍵被識別按下之后,延時5ms以上,從而避開了干擾信號區(qū)域,我們再來檢測一次,看按鍵是否真得已經(jīng)按下,若真得已經(jīng)按下,這時肯定輸出為低電平,若這時檢測到的是高電平,證明剛才是由于干擾信號引起的誤觸發(fā),CPU就認為是誤觸發(fā)信號而舍棄這次的按鍵識別過程。從而提高了系統(tǒng)的可靠性。 由于要求每按下一次,命令被執(zhí)行一次,直到下一次再按下的時候,再執(zhí)行一次命令,因此從按鍵被識別出來之后,我們就可以執(zhí)行這次的命令,所以要有一個等待按鍵釋放的過程,顯然釋放的過程,就是使其恢復成高電平狀態(tài)。 5.1.2.鍵盤處理的流程圖 等待按鍵釋放 按鍵處理 真的有鍵按下嗎? 延時N 有鍵按下嗎?NY 圖5.1.2 5.1
32、.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隊 modify_sc(); break; case 0xfb: /B隊 modify_sc(); break; case 0xf7: /時間 modify_st(); break; 5.2顯示模塊5.2. 1
33、 簡介 顯示部分通過P0口外加上拉電阻進行顯示,數(shù)碼管采用7段共陰極數(shù)碼管,通過查表指令進行顯示,首先將要顯示的緩存單元,送入累加器中,通過累加器進行查表,將要顯示的數(shù)值存儲起來,然后通過位選信號,將要顯示的位的數(shù)碼管打開,進行現(xiàn)實。并通過延時子程序進行延時,使其顯示的數(shù)值穩(wěn)定下來。然后再通過位選信號,將顯示的數(shù)值關斷,從而顯示下一個數(shù)值。但當顯示完一圈后程序跳出,等待數(shù)據(jù)的傳輸,再次進行顯示。考慮到顯示的數(shù)據(jù)比較多有10個數(shù)據(jù),而且需要相當多的位選線。所以把整個顯示緩看做一個整體。低6位傳輸?shù)氖潜荣悢?shù)據(jù),高4位傳輸?shù)檬潜荣悤r間。 P2、P3初始化 P0=showdis_codei5.2.2.
34、顯示的流程圖 i1 P3 1P2=bit_disp2P3=0xffP3=bit_disp3p2=0xff 5.2.3.源代碼void display_rt(uchar dis_code) /顯示任務 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_t(1); 5
35、.3成績調(diào)整模塊 5.3.1 簡介 成績調(diào)整模塊用用于記錄兩隊比賽成績,顯示Led中前3位用于記錄A隊比賽成績,后三位用于記錄B隊的比賽成績。成績的記錄范圍從000999其中。獲取鍵盤K2和K3信息5.3.2成績調(diào)整流程圖uS_b+延時 等待再次獲取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隊 P1=0xfbA隊 P1=0xfd uS_a+ dS_b9 dS_a9 uS_b9 uS_a 9
36、5.3.2源代碼void modify_sc() /調(diào)整比賽結果 while(1) display_rt(display_buf); while(P1=0xfd) /A隊 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隊 uS_b+; if
37、(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延時模塊 5.4.1簡介 程序主要采用雙循環(huán)結構。 5.4.2延時的流程圖 關于延時的流程圖 t- = 0 ? 退出N tt=300 Ytt- tt =0 ?N5.4.3延時的流程圖 void delay_t(int t) /延時 int t
38、t; while(t-) tt=300; while(tt-); 課題設計總結隨著數(shù)字化控制技術在產(chǎn)品中的越來越廣泛應用和人民生活水平的提高,對產(chǎn)品的環(huán)保、安全舒適、方便實用性能要求越來越高。本次設計只是初步的完成的它的功能,并沒有對其的相關的節(jié)能、精準度多的考慮,并且只是流于任務式的處理,總體來說這次的設計并不令人滿意。而且只是進行基本的仿真,并沒有進行實物的設計,紙上談兵并無太多的實際效果。另一方面,我對C和8051有了較為清醒的認識,這次設計我對于軟件模塊首先用C初步的架構起來,但限于顯示模塊的短板浪費了相當多的時間和精力。我試圖用8051重構整個系統(tǒng),但是對匯編相當?shù)目謶郑瑢崿F(xiàn)了小部分
39、。也想用C和匯編8051混寫,迫于時間的緊張只能用放棄這個想法了。8051實現(xiàn)LED模塊的位選控制相當?shù)暮唵?,而且非常準確,不足之處閱讀和維護是有相當?shù)碾y度;而C語言雖然使用起來簡單但是不易控制其準確性。綜上所述,語言各有所長,但并非萬能。本模塊中I/O選擇比較緊張,實際上I/O需求少的74HC164串行傳輸段選數(shù)據(jù),通過其他口來進行位選控制,最重要的是不會占用P3這個多功能的I/O口。另外可以選擇LN3461來顯示數(shù)據(jù)。 通過此次設計,使我對籃球賽記時計分其有了部分認識。因此,我將繼續(xù)向前邁進,期待對它有更深層次的了解,期待取得更好的效果。附錄一 原理圖 附錄二 仿真附錄三 源程序設計#in
40、clude#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; /保存兩隊的比賽結果char tSc4; /保存比賽時間uchar uS_a=0,dS_a=0,hS_a=0,uS_b=0,dS_b,hS_b=0; /分別定義A和B隊比賽成績的個位、十位、百位uch
41、ar suT=0,sdT=0,muT=0,mdT=0; /分別定義比賽時間的秒、分個位及其十位sbit fm_bt = P27; /蜂鳴狀態(tài)位void delay_t(int t) /延時 int tt; while(t-) tt=300; while(tt-); void display_rt(uchar dis_code) /顯示任務 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
42、_disp3=0x20; P2=bit_disp2; P3=0xff; bit_disp2=bit_disp21; delay_t(1); void alarm_spk() /攻擊時間倒計時,喇叭在最后5秒鐘發(fā)出滴答滴答的警報聲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);de
43、lay_t(60); while(P1=0xfb) /B隊 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_buf);delay_t(60); void modify_st() /調(diào)整比賽時間 uchar i=0; while(i9) suT=0; sdT+; if(sdT5) sdT=0; muT+; if(m
44、uT9) muT=0; mdT+; if(mdT9) suT=0; sdT=0; muT=0; mdT=0; display_buf6=suT; display_buf7=sdT; display_buf8=muT; display_buf9=mdT; display_rt(display_buf); i+; delay_t(5); 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隊 mod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年02月濟南市市中區(qū)事業(yè)單位初級綜合類崗位人員(42人)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 課題開題報告:初中思政課素養(yǎng)導向型課程文化建設研究
- 課題開題報告:產(chǎn)教協(xié)同推進教師專業(yè)發(fā)展研究
- 方便面碗企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 天然植物染眉膏行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- 布邊紗企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 基因工程抗高血壓藥物企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 鉀礦石企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 二零二五年度公司員工加班費及休息日補償補充協(xié)議
- 二零二五年度戀愛雙方旅游及休閑活動安排合同
- 2023年安徽高校教師崗前培訓結業(yè)統(tǒng)考試題及參考答案
- 聽胎心音操作評分標準
- 風機齒輪箱的機構和工作原理
- 高效能人士的七個習慣 周計劃表 完美版
- 新生兒疾病診療規(guī)范診療指南診療常規(guī)2022版
- 園林綠化工作總結及工作計劃7篇2023年
- 浙江森林撫育工程預算定額編制說明
- 金庸群俠傳x最完整攻略(實用排版)
- 污水處理廠設備的維修與保養(yǎng)方案
- 專題13《竹里館》課件(共28張ppt)
- GB/T 9846.4-2004膠合板第4部分:普通膠合板外觀分等技術條件
評論
0/150
提交評論