鐘 煒,李澤滔
(貴州大學(xué)電氣工程學(xué)院,貴州 貴陽(yáng) 550025)
單片機(jī)的應(yīng)用是具有高度現(xiàn)實(shí)意義的。本次設(shè)計(jì)通過(guò)AT89S52編程控制LED七段數(shù)碼管作為電子記分牌的計(jì)時(shí)記分系統(tǒng)。該系統(tǒng)具有賽程定時(shí)設(shè)置,賽程時(shí)間暫停,及時(shí)刷新甲、乙雙方的成績(jī)以及賽后成績(jī)暫存等功能[1]。它具有價(jià)格低廉,性能穩(wěn)定,操作方便并且易于攜帶等特點(diǎn)。廣泛適合各類學(xué)?;蛘咝⌒蛨F(tuán)體作為賽程計(jì)時(shí)記分設(shè)備。
AT89S52作為本設(shè)計(jì)的核心元件。利用七段共陰極LED作為顯示器件。在本次設(shè)計(jì)中,共接入3個(gè)七段共陰極LED數(shù)碼管,其中2個(gè)三位一體的七段共陰極LED數(shù)碼管用于計(jì)錄甲、乙兩隊(duì)的分?jǐn)?shù),顯示器分?jǐn)?shù)范圍可達(dá)到0~999分,足夠滿足賽程需要。另外1個(gè)四位一體的七段共陰極LED數(shù)碼管則用于計(jì)錄賽程的時(shí)間,其中兩個(gè)用于顯示比賽時(shí)間分鐘;兩個(gè)用于顯示比賽時(shí)間的秒鐘。賽程計(jì)時(shí)采用倒計(jì)時(shí)方式。比賽前將時(shí)間設(shè)置好,比賽開(kāi)始時(shí)啟動(dòng)計(jì)時(shí),直至計(jì)時(shí)倒計(jì)時(shí)到零為止,此時(shí)蜂鳴報(bào)警器報(bào)警提示比賽結(jié)束。根據(jù)設(shè)計(jì),計(jì)時(shí)范圍可達(dá)0 ~99 min,也完全滿足賽程的需要[2]。
為了配合計(jì)時(shí)器和記分器校正、調(diào)整時(shí)間和比分,特定在本設(shè)計(jì)中設(shè)立了8個(gè)按鍵。其中4個(gè)用于輸入甲、乙兩隊(duì)的分?jǐn)?shù);另外4個(gè)則用于完成設(shè)置、調(diào)整、啟動(dòng)和暫停賽程時(shí)間、比分中場(chǎng)調(diào)換等功能。系統(tǒng)框圖如圖1所示。
其中穩(wěn)壓電源模塊,復(fù)位電路,晶振電路等構(gòu)成了我們AT89S52單片機(jī)工作的最小系統(tǒng),下面就分別介紹這幾個(gè)電路模塊[3]。
圖1 系統(tǒng)框圖
在該系統(tǒng)中單片機(jī)需要用到+5 V的直流穩(wěn)壓電源,在我們的生活中一般都是使用220 V的交流電,為了獲得高質(zhì)量的5 V直流穩(wěn)壓電源,這就需要我們進(jìn)行電壓轉(zhuǎn)化。電源部分的電路如圖2所示。
圖2 系統(tǒng)電源模塊
7805系列集成穩(wěn)壓器,只有輸入端、輸出端和公共端三個(gè)引線端子,可輸出1 A以上的電流,有必要的保護(hù)電路,使用起來(lái)安全可靠。它輸出固定的正電壓。電壓經(jīng)過(guò)整流、濾波后產(chǎn)生的不穩(wěn)定直流電壓,從穩(wěn)壓器的輸入端輸入,在穩(wěn)壓器的輸出端就可得到穩(wěn)定的直流電壓輸出。正常工作時(shí),穩(wěn)壓器輸入、輸出電壓差為2~3 V,電容用來(lái)實(shí)現(xiàn)頻率補(bǔ)償。圖中C1為0.1 μF可以防止由于輸入引線較長(zhǎng)而帶來(lái)的電感效應(yīng)而產(chǎn)生的自激。C2為0.47 μF用來(lái)減少由于負(fù)載電流瞬時(shí)變化而引起的高頻干擾[4]。
時(shí)鐘電路在單片機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。單片機(jī)有兩種時(shí)鐘產(chǎn)生方式,一種是外部時(shí)鐘方式,一種是內(nèi)部時(shí)鐘方式。外部時(shí)鐘方式雖然精度高,穩(wěn)定性好,但是成本高,需要額外提供一個(gè)外部震蕩信號(hào)。因此本次設(shè)計(jì)采用內(nèi)部震蕩方式。設(shè)計(jì)要使用到AT89S52單片機(jī)的時(shí)鐘振蕩功能。其中有一個(gè)用于構(gòu)成內(nèi)部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷AT89S52諧振器一起構(gòu)成自激振蕩器。
單片機(jī)在時(shí)鐘電路工作以后,在RST端持續(xù)給出2個(gè)機(jī)器周期的高電平就可以完成復(fù)位操作,復(fù)位分為上電復(fù)位和外部復(fù)位兩種方式。主要功能是把系統(tǒng)初始化,當(dāng)程序運(yùn)行錯(cuò)誤或者進(jìn)入死循環(huán)的時(shí)候,為擺脫困境,可以按復(fù)位鍵以重新啟動(dòng)。
本設(shè)計(jì)采用上電復(fù)位加按鈕方式,通過(guò)調(diào)整按鈕的狀態(tài),使單片機(jī)能夠可靠的上電復(fù)位,當(dāng)需要外部復(fù)位時(shí),按下復(fù)位按鈕就能達(dá)到復(fù)位的目的,由于人的動(dòng)作再快也會(huì)保持接通數(shù)十毫秒,所以完全能夠滿足單片機(jī)復(fù)位的要求。
采用的是非編碼鍵盤中的獨(dú)立式鍵盤,設(shè)計(jì)一共使用9個(gè)按鍵,其中4個(gè)用于甲乙兩隊(duì)的分?jǐn)?shù),分別是甲隊(duì)加分和減分、乙隊(duì)加分減分,另外四個(gè)用于控制開(kāi)始、暫停、調(diào)節(jié)分鐘秒鐘以及調(diào)換比賽分?jǐn)?shù),最后一個(gè)是復(fù)位按鍵,用于單片機(jī)的復(fù)位。
采用共陰極數(shù)碼管,共陰極接低電平,其他管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),該端所連接的字符導(dǎo)通并發(fā)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或者字符。同樣,要求段驅(qū)動(dòng)電路能提供額定的導(dǎo)通電壓或者電流,同時(shí)根據(jù)需要設(shè)定響應(yīng)的限流電阻。本次設(shè)計(jì)的顯示電路部分采用2個(gè)3位一體共陰極數(shù)碼管和一個(gè)4位一體共陰極數(shù)碼管,共8個(gè)代碼輸入口和10個(gè)位選輸入口。顯示方式采用動(dòng)態(tài)驅(qū)動(dòng),使各位數(shù)碼管逐一輪流點(diǎn)亮,由于掃描速度極快,顯示效果與靜態(tài)顯示效果相同[5]。
報(bào)警部分要求同時(shí)比賽結(jié)束之后有蜂鳴報(bào)警,采用蜂鳴器報(bào)警實(shí)現(xiàn)。其中蜂鳴器通過(guò)一個(gè)PNP三極管驅(qū)動(dòng),R14作為驅(qū)動(dòng)電阻。當(dāng)比賽時(shí)間倒計(jì)時(shí)結(jié)束之后,通過(guò)軟件控制在P3.6端口輸出低電平信號(hào),三極管Q1導(dǎo)通,蜂鳴器發(fā)出聲音。圖3為本系統(tǒng)的蜂鳴報(bào)警電路電路圖。
圖3 報(bào)警電路
軟件的編程設(shè)計(jì)是單片機(jī)系統(tǒng)設(shè)計(jì)的核心部分,也是能否實(shí)現(xiàn)預(yù)定功能的關(guān)鍵。單片機(jī)編程常用的語(yǔ)言是C語(yǔ)言和匯編語(yǔ)言,其最終都要轉(zhuǎn)為Intel HEX格式或二進(jìn)制格式文檔拷入單片機(jī)芯片內(nèi)。本次設(shè)計(jì)使用C語(yǔ)言進(jìn)行編程。
C語(yǔ)言可以進(jìn)行模塊化程序設(shè)計(jì),程序部分由主程序,延時(shí)程序,中斷程序,加分程序,減分程序,比分交換程序,時(shí)間調(diào)整程序,時(shí)間暫停程序,報(bào)警程序,掃描顯示程序,結(jié)束程序等程序構(gòu)成。程序流程圖如圖4所示。
圖4 系統(tǒng)程序流程圖
在主程序中,可以清晰看到,初始化結(jié)束之后,定時(shí)器顯示默認(rèn)值,甲乙分?jǐn)?shù)清零,進(jìn)入檢測(cè)按鍵程序,與此同時(shí),數(shù)碼管正常顯示,當(dāng)時(shí)間分鐘設(shè)定或者時(shí)間秒鐘設(shè)定被選擇之后我們?cè)O(shè)定此時(shí)計(jì)時(shí)中斷,蜂鳴器報(bào)警也停止。當(dāng)達(dá)到規(guī)定計(jì)時(shí)時(shí)間后,再次進(jìn)入蜂鳴報(bào)警響應(yīng),并且交換分?jǐn)?shù),重新回到定時(shí)設(shè)定[6]。
Proteus是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。可以分析各種模擬器件和集成電路。在Proteus下完成電路的連接,通過(guò)KEIL軟件生成的HEX文檔導(dǎo)入仿真程序單片機(jī)中,按下軟件頁(yè)面下的開(kāi)始按鍵開(kāi)始進(jìn)行軟件仿真[7],本次設(shè)計(jì)的電子記分牌仿真結(jié)果如圖5所示。
圖5 電路仿真結(jié)果圖
PCB展板的制作應(yīng)遵循均勻分布,重心平衡,版面美觀的標(biāo)準(zhǔn)來(lái)優(yōu)化布局。相同結(jié)構(gòu)電路部分盡可能采用對(duì)稱布局,同類原件盡可能在X或Y方向上一致,以便于生產(chǎn)和調(diào)試[6]。本次設(shè)計(jì)根據(jù)需要制作了電子記分牌實(shí)物電路[8]如圖6所示。
圖6 電子記分牌實(shí)物展板
本文設(shè)計(jì)的電子記分牌實(shí)現(xiàn)的功能包括:時(shí)鐘倒計(jì)時(shí)功能,可以精確到秒;時(shí)鐘的數(shù)值可以調(diào)節(jié)同時(shí)倒計(jì)時(shí)具有夠暫停;當(dāng)時(shí)間倒計(jì)時(shí)結(jié)束之后,蜂鳴器自動(dòng)報(bào)警;作為體育賽事的記分牌,能夠記錄兩隊(duì)分?jǐn)?shù),并且具有加減功能;最后在半場(chǎng)比賽結(jié)束能夠交換兩隊(duì)比分。系統(tǒng)設(shè)計(jì)包含了8051系列單片機(jī)的最小應(yīng)用系統(tǒng)的構(gòu)成,同時(shí)在此基礎(chǔ)上擴(kuò)展了一些使用性強(qiáng)的外圍界面。該電子記分牌設(shè)計(jì)功能相對(duì)完善,蜂鳴器聲音大小可調(diào),后期還可將獨(dú)立鍵盤擴(kuò)展為觸摸屏,因此其用途十分廣泛。
[1] 楊素行.模擬電子技術(shù)基礎(chǔ).清華大學(xué)電子教研組,1998:492-518
[2] 李士平.北京電子報(bào).北京電子報(bào)社98合訂本下,1998
[3] 趙保經(jīng).中國(guó)集成電路大全.國(guó)防工業(yè)出版社,1987:9-82
[4] 童詩(shī)白.現(xiàn)代電子學(xué)及應(yīng)用.東南大學(xué)出版社,1997:23-34
[5] 曉喻.電子制作.中國(guó)家用電器維修協(xié)會(huì),1999:15-18
[6] 郭天祥.新概念51單片機(jī)C語(yǔ)言教程.電子工業(yè)出版社,2009:38-125
[7] 張毅剛.新編MCS-51應(yīng)用設(shè)計(jì).哈爾濱工業(yè)大學(xué)出版社,2008:380-390
[8] 霍亮雨.探討數(shù)字單片機(jī)技術(shù)的PCB版.數(shù)字化用戶,2013