王紅玉,宋衛(wèi)東,滕明星,郭城
(南京郵電大學(xué) 通達(dá)學(xué)院,江蘇 揚(yáng)州 225127)
小團(tuán)體舉行籃球比賽已越來越頻繁,如今其比賽多數(shù)仍依靠時(shí)鐘計(jì)時(shí)和比分牌計(jì)分來實(shí)現(xiàn),這種方式的計(jì)時(shí)計(jì)分具有明顯缺點(diǎn):人工計(jì)時(shí)計(jì)分產(chǎn)生誤差,不易攜帶等。
因此為了使得比賽過程更加完美專業(yè)化使計(jì)時(shí)及計(jì)分的系統(tǒng)設(shè)置更加科學(xué)準(zhǔn)確,便于運(yùn)動(dòng)員攜帶,本文特設(shè)計(jì)研發(fā)了這樣一種可以由雙單片機(jī)AT89C52編程完成并進(jìn)行控制的鍵入打分,并能LED數(shù)碼管進(jìn)行顯示的計(jì)時(shí)與計(jì)分的系統(tǒng),從而具有性能穩(wěn)定,易于操作,產(chǎn)品體積小便于攜帶等優(yōu)點(diǎn)以便小團(tuán)體比賽使用。
設(shè)計(jì)過程包括:系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)軟件編程設(shè)計(jì),以單片機(jī)(AT89C52)控制器為其核心器件,添加其上其他相關(guān)輔助元器件設(shè)計(jì)(如共陽極LED數(shù)碼顯示器、BCD -七段解碼/驅(qū)動(dòng)器74HC138和74HC573等器件以及控制面板)實(shí)現(xiàn)比賽中計(jì)時(shí)和計(jì)分功能。硬件電路的設(shè)計(jì)思路主要有包括核心單元電路設(shè)計(jì)(雙單片機(jī))方案、數(shù)碼圖形顯示系統(tǒng)電路、鍵入功能電路設(shè)計(jì)(包括矩陣按鍵和獨(dú)立按鍵)設(shè)計(jì)等,如圖1所示;編程語言使用C語言,達(dá)到了制作一個(gè)簡易的數(shù)字計(jì)時(shí)器系統(tǒng)與自主開發(fā)按鍵計(jì)分器軟件的設(shè)計(jì)目的。設(shè)計(jì)采用了兩片單片機(jī),第一片單片機(jī)的P0口作為計(jì)分?jǐn)?shù)據(jù)的輸出端口,P1口為按鍵數(shù)據(jù)輸入端口;第二片單片機(jī)的P2(4-7)和p3口為計(jì)時(shí)數(shù)據(jù)輸出端口,P1口連接四個(gè)單獨(dú)微動(dòng)開關(guān)。計(jì)時(shí)計(jì)分部分,可靈活調(diào)整,可滿足大小賽程規(guī)模要求。
圖1 系統(tǒng)結(jié)構(gòu)圖
設(shè)計(jì)中采用的AT89C52單片機(jī)是一種高效低功耗的微控制器,可以同時(shí)實(shí)現(xiàn)了很好一定程度上的實(shí)現(xiàn)與工業(yè)標(biāo)準(zhǔn)MCS-51單片機(jī)的高度兼容,是其中一款增強(qiáng)型設(shè)計(jì)的51型單片機(jī),內(nèi)部邏輯器件主要是指由多個(gè)芯片內(nèi)部的邏輯寄存器所組合構(gòu)成的邏輯累加器,它主要內(nèi)部結(jié)構(gòu)包括:運(yùn)算器,控制器,存儲(chǔ)器,輸入與輸出的總線接口等等;具有兩個(gè)128位和四個(gè)8位的內(nèi)部存儲(chǔ)器和RAM,兩個(gè)16位的定時(shí)器和/兩個(gè)周期的計(jì)數(shù)器,內(nèi)置時(shí)鐘和振蕩器電路和一個(gè)外部的時(shí)鐘電路。
圖2 單片機(jī)AT89C52引腳圖
復(fù)位時(shí)鐘電路目的是僅做為能使單片機(jī)可以繼續(xù)的進(jìn)行整個(gè)系統(tǒng)的初始化過程及初始化操作。當(dāng)系統(tǒng)由于初始化程序的正常運(yùn)行工作中發(fā)生出錯(cuò)事件和部分初始化過程操作時(shí)發(fā)生了錯(cuò)誤事件或故障使單片機(jī)整個(gè)工作系統(tǒng)都暫時(shí)地處于一個(gè)半死鎖狀態(tài)時(shí),為了可以快速地?cái)[脫這該半個(gè)死鎖狀態(tài),從而也考慮設(shè)置一個(gè)復(fù)位電路。在單片機(jī)時(shí)鐘電路在正?;蚍€(wěn)定的連續(xù)工作時(shí)鐘模式控制下,使單片機(jī)時(shí)鐘輸出的RST引腳頻率自動(dòng)從低電水平變?yōu)楦唠娖讲⒛軌蛞恢钡爻掷m(xù)振蕩到2 μs以上。因而如果只要給該單片機(jī)RST的引腳加上了一個(gè)具有大于24個(gè)時(shí)鐘和振蕩時(shí)鐘周期的一個(gè)穩(wěn)定高電平就表示已經(jīng)成功可以使該單片機(jī)實(shí)現(xiàn)完全自動(dòng)復(fù)位,復(fù)位工作完畢時(shí)程序?qū)⒊跏蓟癁?000H,復(fù)位工作程序結(jié)束后RST將會(huì)變?yōu)橐粋€(gè)穩(wěn)定的低電平,程序從0000H開始執(zhí)行。通過一套簡單易學(xué)的單片機(jī)RC電路可完成單片機(jī)系統(tǒng)中的單片機(jī)上電自動(dòng)復(fù)位程序和單片機(jī)在開機(jī)運(yùn)行狀態(tài)時(shí)用戶操作的復(fù)位按鍵實(shí)現(xiàn)復(fù)位等功能,上電自復(fù)位可在用戶接通單片機(jī)電源信號(hào)后即可自動(dòng)復(fù)位實(shí)現(xiàn)自復(fù)位,在單片機(jī)系統(tǒng)正在啟動(dòng)運(yùn)行過程時(shí)用戶就可直接按下自動(dòng)復(fù)位程序按鍵復(fù)位后即松開,使其RST引腳先有連續(xù)一段時(shí)間變化的高電平信號(hào)而后逐漸變?yōu)橄鄬?duì)穩(wěn)定的低電平狀態(tài)從而自行實(shí)現(xiàn)復(fù)位。兩片單片機(jī)使用了相同的復(fù)位電路如圖3所示。
圖3 復(fù)位電路原理圖
時(shí)鐘賦予了單片機(jī)靈魂,時(shí)鐘頻率是微控制器中功能部件操作的標(biāo)準(zhǔn)。單片機(jī)運(yùn)行的速度和系統(tǒng)是否能夠穩(wěn)定運(yùn)行都與時(shí)鐘電路的質(zhì)量有著密切的關(guān)系。AT89C52中有著的一種是以高動(dòng)態(tài)增益的反相放大器所構(gòu)成的內(nèi)部并聯(lián)振蕩器,采用的內(nèi)部串聯(lián)的振蕩電路,通過將在XTAL1端口上和在XTAL2端口下通過外接的兩個(gè)晶振器件和的兩個(gè)電容C1,C2(微調(diào)電容)按照一定頻率的振蕩方式來進(jìn)行串聯(lián)組合后而產(chǎn)生的諧振電路,為單片機(jī)提供時(shí)鐘脈沖序列。兩片單片機(jī)使用相同時(shí)鐘脈沖序列。
由一個(gè)4×4=16的共16個(gè)各自獨(dú)立使用的按鍵單元所組成,在單片機(jī)的編程設(shè)計(jì)中可直接通過一個(gè)較為簡易快捷且方便的方法實(shí)現(xiàn):使用一個(gè)P口輕松實(shí)現(xiàn)16個(gè)的單獨(dú)的按鍵單元具有不同的按鍵功能,采用掃描法原理來實(shí)現(xiàn)識(shí)別按鍵:按鍵按下時(shí),跟該按鍵相接的行線與列線瞬間導(dǎo)通,而在無按鍵鍵入,此時(shí),行線處在高電平。又當(dāng)全部的列線都變?yōu)楦唠娖綍r(shí),則按鍵鍵入與否,都不會(huì)使得行線電平的有改變。通過,使高四位輸出模擬信號(hào)為0,低四位則輸出的模擬信號(hào)為1,收到數(shù)據(jù)低四位的信號(hào)不全為0時(shí),說明有按鍵鍵入,然后由發(fā)送過去的數(shù)據(jù)的值,判斷是哪一列有按鍵按下,然后再反過來,高四位輸出為信號(hào)1,低四位輸出為信號(hào)0,然后根據(jù)接收到的高四位的信號(hào)值判斷是哪一行有按鍵鍵入,最終可由此判斷出是哪個(gè)按鍵被按下。如圖4所示。
圖4 矩陣按鍵電路原理圖
顯示模塊有計(jì)時(shí)顯示和計(jì)分顯示,主要由7個(gè)細(xì)長LED和一個(gè)圓形LED組成,驅(qū)動(dòng)方法為:靜態(tài)顯示這種顯示需要8位輸出口控制,因此AT89C52單片機(jī)在并行口上外接74573作為靜態(tài)顯示的接口,如圖5所示(表示為第二場在10分37秒時(shí),A、B兩隊(duì)比分為42:31),此種顯示方法二極管發(fā)光亮度高工作效率高。
圖5 數(shù)碼管顯示電路原理圖
本系統(tǒng)的主要設(shè)計(jì)結(jié)構(gòu)原理為采用電磁式蜂鳴器系統(tǒng)由振蕩器,電磁線圈,磁鐵,振動(dòng)膜片部分以及外殼部分組成。技術(shù)參數(shù)利用諧振電磁線圈的高頻共振工作原理在接通一個(gè)振蕩器電源線圈接通后,振蕩器內(nèi)部會(huì)自發(fā)產(chǎn)生的一個(gè)脈沖信號(hào)電流通過并電流通過另外一個(gè)諧振電磁線圈并同時(shí)使在此諧振電磁線圈腔中產(chǎn)生出一個(gè)高頻磁場從而會(huì)產(chǎn)生高頻振動(dòng)的膜片并同時(shí)在膜片受其低頻電場作用情況下會(huì)形成高頻周期性共振的高頻振動(dòng)從而來實(shí)現(xiàn)發(fā)聲。單片機(jī)引腳的有序脈沖產(chǎn)生PWM波從而可以驅(qū)動(dòng)蜂鳴器,采用三極管作為蜂鳴器的驅(qū)動(dòng)信號(hào)放大器,三極管的基極接入第二片單片機(jī)的p2.3口,通過寫入程序從而控制p2.3口產(chǎn)生控制信號(hào)的有序脈沖。如圖6所示。
圖6 蜂鳴器驅(qū)動(dòng)電路原理圖
74138除了基本譯碼的輸入輸出端外,還有三個(gè)輸入使能端以便擴(kuò)展為更多位數(shù)的譯碼電路和數(shù)據(jù)分配的實(shí)現(xiàn),本系統(tǒng)用3-8譯碼器來作為數(shù)碼管的現(xiàn)實(shí)中作為數(shù)碼管片選的控制信號(hào),控制數(shù)碼管的點(diǎn)亮順序。
通過將代碼寫入一塊單獨(dú)52單片機(jī)實(shí)現(xiàn)計(jì)分系統(tǒng),這樣使得整個(gè)系統(tǒng)看起來更加的清晰明了,增加系統(tǒng)穩(wěn)定性。計(jì)分流程如圖7所示。開始后單片機(jī)內(nèi)有預(yù)先燒錄進(jìn)的定時(shí)代碼函數(shù)(單位時(shí)間為10 μs),并實(shí)時(shí)監(jiān)測按鍵是否有鍵入,檢測到有鍵入后將鍵入的矩陣電流信號(hào)傳送到單片機(jī)內(nèi),經(jīng)過內(nèi)置代碼(DisDisplay函數(shù))轉(zhuǎn)換后再將電信號(hào)傳送到譯碼器后最終將調(diào)制后的電信號(hào)送到顯示器上顯示出對(duì)應(yīng)的鍵入的加減比分值。
圖7 計(jì)分系統(tǒng)流程圖
如圖8 所示,在AT89C52單片機(jī)中內(nèi)置(#define GPIO_KEY P1)后將4×4矩陣鍵盤接入第一片單片機(jī)P1.0~P1.7接口,使得前三排的按鍵能夠?qū)Ρ荣惖梅趾蛨龃蔚臄?shù)值進(jìn)行輸入。之后通過單片機(jī)輸出給74573轉(zhuǎn)換并由74573輸出給三塊數(shù)碼管中,同時(shí)使用一片74138譯碼器來實(shí)現(xiàn)數(shù)字的增減。
圖8 矩陣鍵盤
比分顯示通過兩塊4位數(shù)碼管;回合顯示通過一塊1位數(shù)碼管;
矩陣按鍵如表1所示。
表1 矩陣按鍵
前三排:通過KeyDown函數(shù)進(jìn)行檢測并通過Score函數(shù)進(jìn)行賦值后再通過Conut函數(shù)傳送和Display函數(shù)動(dòng)態(tài)掃描數(shù)碼管,最終使得鍵入的數(shù)值能夠顯示到數(shù)碼管上。
最后一排:通過(sbit O0=P2^3;sbit O1=P2^4;sbit O2=P2^5;sbit O3=P2^6;)定義后P2.3~P2.6輸出到計(jì)分器單片機(jī)的P1.0~P1.3,如圖9所示,這樣將能夠通過矩陣鍵盤也可以控制計(jì)分器單片機(jī)。
圖9
AT89C52單片機(jī)是內(nèi)部集成的有一個(gè)16位地址寄存器的可編程定時(shí)計(jì)數(shù)控制器計(jì)數(shù)/定時(shí)計(jì)數(shù)器為T0,由計(jì)數(shù)定時(shí)器TH0和計(jì)時(shí)器TL0這兩個(gè)寄存器單元所組成,其每個(gè)寄存器數(shù)位都是大于8位字節(jié)位的,在用于某些特定用途的特殊用途寄存器單元中所占應(yīng)所占地址:8AH-8DH。計(jì)數(shù)定時(shí)器初始值位就存放于此。除此,其內(nèi)部控制的方式還有另外兩個(gè)控制寄存器分別為:方式控制寄存器TMOD和時(shí)間控制寄存器TCON(都是8位的寄存器)??捎糜冢哼x擇定時(shí)方式控制器和選擇方式時(shí)間控制寄存器與內(nèi)部控制的定時(shí)方式控制器/時(shí)間計(jì)數(shù)器之間進(jìn)行的串行通信控制工作。即可作為可編程期間進(jìn)行使用。初始化編程可如下所示:
AT89C52單片機(jī)中內(nèi)置程序(#define GPIO_KEY P1)后將P1.0~P1.7接入4×4矩陣鍵盤,使得前三排的按鍵都能夠控制得分和場次的數(shù)值。之后通過輸出到74573轉(zhuǎn)換并輸出到三塊數(shù)碼管中,同時(shí)用一片74138譯碼器來實(shí)現(xiàn)數(shù)字的增減。
圖10 計(jì)時(shí)系統(tǒng)流程圖
計(jì)時(shí)器按鍵為備用按鍵,防止系統(tǒng)出現(xiàn)bug導(dǎo)致矩陣按鍵不能正??刂芔2單片機(jī)。按鍵如圖11所示。也通過KeyDown函數(shù)進(jìn)行檢測并通過Score函數(shù)進(jìn)行賦值后再通過Conut函數(shù)傳送和Display函數(shù)動(dòng)態(tài)掃描數(shù)碼管,feng函數(shù)等實(shí)現(xiàn)操作。 T1~T4:功能分別為:從新開始計(jì)時(shí)、繼續(xù)計(jì)時(shí)、暫停計(jì)時(shí)并開始蜂鳴器報(bào)警、蜂鳴器暫停工作。
圖11 計(jì)時(shí)器按鍵
電路搭建后,使用keil軟件將我們編寫好的C語言程序編譯。程序輸入完成后保存然后執(zhí)行、編譯。最后將所需的程序文件調(diào)入單片機(jī)中。確保電路無誤前提下對(duì)其進(jìn)行仿真,仿真過程中任意點(diǎn)擊矩陣按鍵同時(shí)觀察數(shù)碼管顯示是否符合預(yù)期設(shè)計(jì)。仿真圖如圖12所示(表示為第二場在10分37秒時(shí),A、B兩隊(duì)比分為42:31)。
圖12 仿真圖
此系統(tǒng)的穩(wěn)定性較強(qiáng):
單塊單片機(jī)由于運(yùn)算能力有限,在運(yùn)行多個(gè)程序出現(xiàn)“死機(jī)”的概率較大。實(shí)際運(yùn)行系統(tǒng)中不可避免的受到來自系統(tǒng)內(nèi)部和外部的干擾,而內(nèi)部干擾,大多數(shù)是由于電路設(shè)計(jì)的不合理,元件布局不當(dāng)和程序問題(主要為:軟件干擾)導(dǎo)致。使用兩片52單片機(jī)分別為計(jì)數(shù)和計(jì)時(shí)的核心控制芯片,并通過keil編寫并分別將代碼寫入兩塊芯片,調(diào)試成功后。整個(gè)功能穩(wěn)定運(yùn)行,不會(huì)出現(xiàn)信號(hào)相互干擾的情況。在各種比賽的緊張激烈的情況之下我們更需要一套能夠穩(wěn)定運(yùn)行的系統(tǒng),因此,此系統(tǒng)能夠滿足穩(wěn)定計(jì)時(shí)計(jì)分的要求。
系統(tǒng)的擴(kuò)展性較強(qiáng):
由于是雙52單片機(jī)控制,不單單能實(shí)現(xiàn)計(jì)數(shù)計(jì)分功能,本系統(tǒng)可實(shí)現(xiàn)的功能更多。更多的管腳,可根據(jù)需要為該系統(tǒng)增添其他配置。
例如:1)無線遙控設(shè)備、藍(lán)牙連接控制設(shè)備可更為方便的遠(yuǎn)程控制。
2)可以根據(jù)當(dāng)?shù)氐脑O(shè)備情況,外接Wi-Fi網(wǎng)絡(luò),并可以發(fā)送到制定服務(wù)器,并開放到所需的程序或網(wǎng)站,提供線上實(shí)時(shí)的比分情況。
3)外接感應(yīng)設(shè)備,一定情況下,可實(shí)現(xiàn)進(jìn)球自動(dòng)加分。此系統(tǒng)設(shè)計(jì)清晰簡潔
多個(gè)MCU協(xié)同工作實(shí)現(xiàn)預(yù)期功能,芯片分工明確,單個(gè)芯片工作負(fù)擔(dān)小。降低了電路設(shè)計(jì)復(fù)雜性,而且使得軟件開發(fā)更為簡單,明了。
回顧整個(gè)設(shè)計(jì)歷程,從最初的項(xiàng)目立項(xiàng)到如今的項(xiàng)目圓滿完成,期間歷經(jīng)不少坎坷,所幸努力未有白費(fèi),而整個(gè)項(xiàng)目的圓滿完成表明小組成員每一位的付出都是值得的。而在整個(gè)設(shè)計(jì)過程中,王紅玉老師也為我們提供不少的建議,減少了我們?cè)O(shè)計(jì)過程中出現(xiàn)的錯(cuò)誤,因此對(duì)于王紅玉老師我們懷有敬意與感激。