摘要:采用單片機(jī)AT89C51作為本設(shè)計(jì)的核心元件。利用7段共陽(yáng)LED作為顯示器件。在此設(shè)計(jì)中共接入了6個(gè)7段共陽(yáng)LED顯示器,和4個(gè)8段共陽(yáng)LED顯示器,其中6個(gè)用于記錄AB隊(duì)的分?jǐn)?shù),每隊(duì)3個(gè)LED顯示器顯示范圍可達(dá)到0~999分,足夠滿足賽程需要,另外4個(gè)LED顯示器則用來(lái)記錄賽程時(shí)間,其中2個(gè)用于顯示分鐘,2個(gè)用于顯示秒鐘。賽程計(jì)時(shí)采用倒計(jì)時(shí)方式。即比賽前將時(shí)間設(shè)置好,比賽開(kāi)始時(shí)啟動(dòng)計(jì)時(shí),直至計(jì)時(shí)到零為止。計(jì)時(shí)范圍可達(dá)到0~99分鐘,也完全滿足實(shí)際賽程的需要。 其次,為了配合計(jì)時(shí)器和計(jì)分器校正調(diào)整時(shí)間和比分,我特定在本設(shè)計(jì)中設(shè)立了11個(gè)按鍵,其中3個(gè)用于設(shè)置,交換場(chǎng)地,啟動(dòng)和暫停等功能,另外8個(gè)用于調(diào)整比賽的比分。采用單片機(jī)控制使這個(gè)系統(tǒng)按鍵操作使用簡(jiǎn)潔,LED顯示,安裝方便。解決了籃球比賽計(jì)數(shù)器的安裝問(wèn)題,節(jié)約了線材,適合在各種規(guī)模的體育場(chǎng)館使用,完全可以代替?zhèn)鹘y(tǒng)的用鐘表進(jìn)行計(jì)時(shí)的方法,當(dāng)然稍加改動(dòng)也可以用于其他球類比賽,是體育器材向智能化發(fā)展的一個(gè)實(shí)例。 關(guān)鍵詞:AT89C51 74LS164 計(jì)時(shí)計(jì)分系統(tǒng) 1 概述1.1 課題背景 體育比賽計(jì)時(shí)計(jì)分系統(tǒng)是對(duì)體育比賽過(guò)程中所產(chǎn)生的時(shí)間,比分等數(shù)據(jù)進(jìn)行快速采集記錄,加工處理,傳遞利用的信息系統(tǒng)。根據(jù)不同運(yùn)動(dòng)項(xiàng)目的不同比賽規(guī)則要求,體育比賽的計(jì)時(shí)計(jì)分系統(tǒng)包括測(cè)量類,評(píng)分類,命中類,制勝類,得分類等多種類型。 籃球比賽是根據(jù)運(yùn)動(dòng)隊(duì)在規(guī)定的比賽時(shí)間里得分多少來(lái)決定勝負(fù)的,因此,籃球比賽的計(jì)時(shí)計(jì)分系統(tǒng)是一種得分類型的系統(tǒng)。籃球比賽的計(jì)時(shí)計(jì)分系統(tǒng)由計(jì)時(shí)器,計(jì)分器等多種電子設(shè)備組成,同時(shí),根據(jù)目前高水平籃球比賽要求,完善的籃球比賽計(jì)時(shí)計(jì)分系統(tǒng)設(shè)備應(yīng)能夠與現(xiàn)場(chǎng)成績(jī)處理,現(xiàn)場(chǎng)大屏幕,電視轉(zhuǎn)播車等多種設(shè)備相聯(lián),以便實(shí)現(xiàn)高比賽現(xiàn)場(chǎng)感,表演娛樂(lè)觀眾等功能目標(biāo)。 由于單片機(jī)的集成度高,功能強(qiáng),通用性好,特別是它具有體積小,重量輕,能耗低,價(jià)格便宜,可靠性高,抗干擾能力強(qiáng)和使用方便等獨(dú)特的優(yōu)點(diǎn),使單片機(jī)迅速得到了推廣應(yīng)用,目前已經(jīng)成為測(cè)量控制應(yīng)用系統(tǒng)中的優(yōu)選機(jī)種和新電子產(chǎn)品的關(guān)鍵部位。世界各大電氣廠家,測(cè)控技術(shù)企業(yè),機(jī)電行業(yè),競(jìng)相把單片機(jī)應(yīng)用于產(chǎn)品更新,作為實(shí)現(xiàn)數(shù)字化,智能化的核心部件?;@球計(jì)時(shí)計(jì)分器就是以單片機(jī)為核心的計(jì)時(shí)計(jì)分系統(tǒng),由計(jì)時(shí)器,計(jì)分器,綜合控制器和24秒控制器等組成。 1.2 設(shè)計(jì)內(nèi)容 本系統(tǒng)是采用單片機(jī)AT89C51作為本設(shè)計(jì)的核心元件。利用LED作為顯示器件。在此設(shè)計(jì)中共接入了10個(gè)LED顯示器,其中6個(gè)用于記錄AB隊(duì)的分?jǐn)?shù),每隊(duì)3個(gè)LED顯示器顯示范圍可達(dá)到0~999分,足夠滿足賽程需要,另外4個(gè)LED顯示器則用來(lái)記錄賽程時(shí)間,其中2個(gè)用于顯示分鐘,2個(gè)用于顯示秒鐘。賽程計(jì)時(shí)采用倒計(jì)時(shí)方式。即比賽前將時(shí)間設(shè)置好,比賽開(kāi)始時(shí)啟動(dòng)計(jì)時(shí),直至計(jì)時(shí)到零為止。計(jì)時(shí)范圍可達(dá)到0~99分鐘,也完全滿足實(shí)際賽程的需要。 其次,為了配合計(jì)時(shí)器和計(jì)分器校正調(diào)整時(shí)間和比分,我特定在本設(shè)計(jì)中設(shè)立了11個(gè)按鍵,其中8個(gè)用于設(shè)置,交換場(chǎng)地,啟動(dòng)和暫停等功能。 1.3 設(shè)計(jì)任務(wù)和要求 任務(wù): 設(shè)計(jì)一個(gè)用于賽場(chǎng)的籃球計(jì)時(shí)計(jì)分器。 要求: 1、能記錄整個(gè)賽程的比賽時(shí)間,并能修改比賽時(shí)間。 2、能隨時(shí)刷新甲、乙兩隊(duì)在整個(gè)過(guò)程中的比分。 3、中場(chǎng)交換比賽場(chǎng)地時(shí),能交換甲、乙兩隊(duì)比分的位置。 4、比賽結(jié)束時(shí),能發(fā)出報(bào)警聲。 5、自帶+5V、+12V直流穩(wěn)壓電源。 2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1 總體方案: 本系統(tǒng)采用單片機(jī)AT89C51作為本設(shè)計(jì)的核心元件。利用7段共陽(yáng)LED作為顯示器件。在此設(shè)計(jì)中共接入了10個(gè)7段共陽(yáng)LED顯示器,其中6個(gè)用于記錄AB隊(duì)的分?jǐn)?shù),每隊(duì)3個(gè)LED顯示器顯示范圍可達(dá)到0~999分,足夠滿足賽程需要,另外4個(gè)LED顯示器則用來(lái)記錄賽程時(shí)間,其中2個(gè)用于顯示分鐘,2個(gè)用于顯示秒鐘。賽程計(jì)時(shí)采用到計(jì)時(shí)方式。即比賽前將時(shí)間設(shè)置好,比賽開(kāi)始時(shí)啟動(dòng)計(jì)時(shí),直至計(jì)時(shí)到零為止。計(jì)時(shí)范圍可達(dá)到0~999分鐘,也完全滿足實(shí)際賽程的需要。 其次,為了配合計(jì)時(shí)器和計(jì)分器校正調(diào)整時(shí)間和比分,我特定在本設(shè)計(jì)中設(shè)立了11個(gè)按鍵,其中3個(gè)用于設(shè)置,交換場(chǎng)地,啟動(dòng)和暫停等功能,另外8個(gè)用于調(diào)整比賽的比分。AT89C51單片機(jī)是智能控制器的核心,控制整個(gè)系統(tǒng)電路的工作: 74LS164將單片機(jī)輸出的串行輸入信號(hào)轉(zhuǎn)換為并行信號(hào)輸出并驅(qū)動(dòng)LED;顯示器顯示比賽的時(shí)間,和兩個(gè)隊(duì)伍的分?jǐn)?shù)等信息;鍵盤用于發(fā)出控制命令;報(bào)警電路會(huì)在24秒進(jìn)攻時(shí)間結(jié)束或單節(jié)比賽結(jié)束時(shí)給出聲光報(bào)警信號(hào)。 1)單片機(jī)控制電路,以AT89C51為控制核心 2)鍵盤電路,采用軟件延遲去抖動(dòng)電路設(shè)計(jì),輸入接口采用串行方式,這樣可減少占用CPU的接口,減少了硬件的成本同時(shí)也增強(qiáng)了系統(tǒng)的擴(kuò)展性。 3)顯示電路,采用靜態(tài)顯示方式,采用串行輸入并行輸出的74LS164集成電路,該電路驅(qū)動(dòng)能力較強(qiáng),可直接驅(qū)動(dòng)LED顯示器,減少了顯示電路與單片機(jī)之間的連接線。 4)設(shè)計(jì)了復(fù)位電路。智能控制器中設(shè)有復(fù)位電路,這是單片機(jī)開(kāi)始工作都要進(jìn)行的操作。 2.2 系統(tǒng)的硬件構(gòu)成: 此籃球比賽計(jì)時(shí)計(jì)分系統(tǒng)是一個(gè)時(shí)間計(jì)算系統(tǒng),由相應(yīng)的鍵盤控制電路、LED顯示器、聲光報(bào)警、電源等電路組成。可以通過(guò)人員的簡(jiǎn)單調(diào)控,數(shù)據(jù)經(jīng)過(guò)處理,輸出比賽時(shí)間,比分并推動(dòng)顯示電路顯示數(shù)值?;趩纹瑱C(jī)系統(tǒng)的籃球賽計(jì)時(shí)計(jì)分器的系統(tǒng)構(gòu)成圖如下圖所示: 圖1 系統(tǒng)構(gòu)成圖 3 硬件電路設(shè)計(jì)3.1 鍵盤模塊的設(shè)計(jì) 本設(shè)計(jì)要求有調(diào)時(shí)調(diào)分等功能,因此鍵盤設(shè)計(jì)是必須的。非編碼式鍵盤中,每個(gè)按鍵的作用只是使相應(yīng)接點(diǎn)接通或斷開(kāi),每個(gè)按鍵的鍵碼并非由硬電路產(chǎn)生,而是由相應(yīng)掃描處理程序?qū)λ鼟呙栊纬傻摹R虼朔蔷幋a鍵盤硬件電路極為簡(jiǎn)單,在微型計(jì)算機(jī)中得到了廣泛的應(yīng)用。 本設(shè)計(jì)采用獨(dú)立式非編碼鍵盤,每個(gè)按鍵都是彼此獨(dú)立的,均需占用CPU的一條I/O輸入數(shù)據(jù)線,其中控制比分調(diào)節(jié)的8個(gè)按鍵分別與P1.0~P1.7相連,控制交換場(chǎng)地,和開(kāi)始/暫停的3個(gè)按鍵與CPU的P3.0~P3.2口相連,若沒(méi)有按鍵按下時(shí),CPU從P1口讀得的引腳電平均為'0'(+5V);若某一按鍵被按下,則該鍵所對(duì)應(yīng)的端口線變?yōu)榈碗娖?。單片機(jī)定時(shí)對(duì)P1口進(jìn)行程序查詢,即可發(fā)現(xiàn)鍵盤上是否有鍵按下以及哪個(gè)鍵被按下。 11個(gè)控制按鍵的定義如下: S1 RST/VPD 復(fù)位按鈕 S2 P1.0 A隊(duì)加1分 S3 P1.1 A隊(duì)加2分 S4 P1.2 A隊(duì)加3分 S5 P1.3 A隊(duì)減1分 S6 P1.4 B隊(duì)加1分 S7 P1.5 B隊(duì)加2分 S8 P1.6 B隊(duì)加3分 S9 P1.7 B隊(duì)減1分 S10 P3.0 開(kāi)始/暫停按鈕 S11 P3.1 交換場(chǎng)地按鈕 S12 P3.2 設(shè)定時(shí)間按鈕 控制按鍵的設(shè)計(jì)如下圖所示: 圖2 鍵盤電路設(shè)計(jì)圖 3.2 LED顯示模塊的設(shè)計(jì) 3.2.1 AT89C51對(duì)LED的顯示 LED是發(fā)光二極管的簡(jiǎn)稱,LED數(shù)碼管結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜。在單片機(jī)顯示中通常使用的都是LED數(shù)碼管。89C51單片機(jī)對(duì)LED數(shù)碼管的顯示可以分為靜態(tài)和動(dòng)態(tài)兩種。靜態(tài)顯示的特點(diǎn)是各LED管能穩(wěn)定地同時(shí)顯示各自字型;動(dòng)態(tài)顯示是指各LED輪流地一遍一遍的顯示各自字符,人們因視覺(jué)器官惰性而看到的是各LED似乎是在同時(shí)顯示不同的字型[1]。 靜態(tài)顯示:所謂的靜態(tài)顯示,是由單片機(jī)一次輸出顯示后,就能保持,直到下次送新的顯示模型為止。這種顯示占用機(jī)時(shí)少,顯示可靠;缺點(diǎn)是使用元件多,且線路比較復(fù)雜,因而成本比較高。但是隨著大規(guī)模集成電路的發(fā)展,目前已經(jīng)研制出具有多種功能的顯示器件。例如:鎖存器,譯碼器、驅(qū)動(dòng)器、顯示器四位一體的顯示器件,用起來(lái)比較方便。當(dāng)顯示位數(shù)較少時(shí),采用這種顯示方式是合適的。這種顯示方式的每一個(gè)七段顯示器需要一個(gè)8位輸出口控制。 動(dòng)態(tài)顯示:所謂的動(dòng)態(tài)顯示,就是單片機(jī)定時(shí)地對(duì)顯示器件掃描。在這種方法中,顯示器件分時(shí)工作,每次只能有一個(gè)器件顯示,但由于認(rèn)得視覺(jué)暫留現(xiàn)象,所以仍感覺(jué)到所有的器件都在'同時(shí)'顯示。這種顯示方法的優(yōu)點(diǎn)是使用硬件少,因而價(jià)格低;但占用機(jī)時(shí)多,只要單片機(jī)不執(zhí)行顯示程序就立刻停止顯示。動(dòng)態(tài)顯示的亮度與導(dǎo)通電流有關(guān),與點(diǎn)亮?xí)r間和間隔的比例有關(guān)。許多單片機(jī)的開(kāi)發(fā)系統(tǒng)及仿真器上的6位顯示器即采用這類顯示方法[2]。 3.2.2 74LS164芯片簡(jiǎn)介 74LS164是8位移位寄存器(串行輸入,并行輸出),它的作用是將串行信號(hào)轉(zhuǎn)換為并行信號(hào)。當(dāng)清除端(CLEAR)為低電平時(shí),輸出端(QA-QH)為低電平。 串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng) A、B 任意一個(gè)為低電平,則禁止新數(shù)據(jù)輸入,在時(shí)鐘端(CLOCK)脈沖上升沿作用下 Q0 為低電平[3]。當(dāng) A、B 有一個(gè)為高電平,則另一個(gè)就允許輸入數(shù)據(jù),并在 CLOCK 上升沿作用下決定 Q0 的狀態(tài)。 表1: 164為8位移位寄存器,其主要電特性的典型值如下: 74LS164的引腳圖和邏輯圖如下所示: 圖3 74LS164封裝引腳圖 圖3 74LS164封裝引腳圖 表2: 74HC164引出端符號(hào)及功能 表3: 74LS164真值表 注:H-高電平,L-低電平,X-任意電平,↑-低到高電平跳變, QA0,QB0,QH0 -規(guī)定的穩(wěn)態(tài)條件建立前的電平,QAn, QGn -時(shí)鐘最近的↑前的電平[6]。 表4: 74HC164推薦工作條件: 3.2.4 顯示電路設(shè)計(jì) 為了保證顯示的可靠性,本單片機(jī)控制系統(tǒng)采用靜態(tài)顯示。本設(shè)計(jì)采用的是通過(guò)連接74LS164移位寄存器實(shí)現(xiàn)LED的靜態(tài)顯示,這樣可以使CPU將數(shù)據(jù)送來(lái)后就由74LS164控制,減少了CPU的工作。采用的數(shù)碼顯示管是采用共陽(yáng)極的接法,電源電壓為5V。AT89C51單片機(jī)串行口方式為移位寄存器方式[7],外接10片74LS164作為L(zhǎng)ED顯示器的靜態(tài)接口,把AT89C51的P0口和P2口作為數(shù)據(jù)輸出線,P0.1和P2.4作為移位時(shí)鐘脈沖。 下圖示出了AT89C51通過(guò)74LS164對(duì)十個(gè)共陽(yáng)LED的接口電路。圖中,Q0~Q7口和所有LED的a,b,c,d,e,f,g,SP引線相連,用于字型顯示,其余引腳用于接通數(shù)據(jù)和電源等。此顯示部分有兩個(gè)功能,分別是顯示時(shí)間和顯示兩隊(duì)的比分。顯示時(shí)間用四個(gè)LED,兩個(gè)為分鐘位,其余兩個(gè)為秒鐘位;采用十進(jìn)制,最高顯示99.59,精確到小數(shù)點(diǎn)后兩位;顯示兩隊(duì)比分用六個(gè)LED,采用十進(jìn)制,最高分為999分。 AT89C51是通過(guò)P0.0~P0.5和74LS164相連的,10 個(gè)74LS164移位寄存器按照比分和時(shí)間的不同用途一共分為兩組,P0.0口為比分?jǐn)?shù)據(jù)輸出口,為74LS164提供顯示數(shù)據(jù),P0.1口為移位寄存器時(shí)鐘輸入,P0.2為比分同步清除輸入端[8];P0.3為時(shí)間數(shù)據(jù)輸出口,為74LS164提供顯示時(shí)間數(shù)據(jù),P0.4口也為移位寄存器時(shí)鐘輸入,P0.2為時(shí)間同步清除輸入端。 在這個(gè)靜態(tài)顯示電路中,數(shù)據(jù)的輸入和保存是通過(guò)74LS164的寄存器和鎖存器實(shí)現(xiàn)的,這樣LED就可以實(shí)現(xiàn)一遍一遍的顯示,能將新的數(shù)據(jù)顯示而替換上一級(jí)的數(shù)據(jù)。 74LS164為TTL單向8位移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(shù)據(jù)輸入端,2個(gè)引腳按邏輯與運(yùn)算規(guī)律輸入信號(hào),共一個(gè)輸入信號(hào)時(shí)可并接。CLK(第8腳)為時(shí)鐘輸入端,可連接到串行口的TXD端。每一個(gè)時(shí)鐘信號(hào)的上升沿加到CLK端時(shí),移位寄存器移一位,8個(gè)時(shí)鐘脈沖過(guò)后,8位二進(jìn)制數(shù)全部移入74LS164中。CLR(第9腳)為復(fù)位端,當(dāng)R=0時(shí),移位寄存器各位復(fù)0,只有當(dāng)R=1時(shí),時(shí)鐘脈沖才起作用。QA…QH(第3-6和10-13引腳)并行輸出端分別接LED顯示器的hg….a各段對(duì)應(yīng)的引腳上。在給出了8個(gè)脈沖后,最先進(jìn)入74LS164的第一個(gè)數(shù)據(jù)到達(dá)了最高位,再來(lái)一個(gè)脈沖,第一個(gè)脈沖就會(huì)從最高位移出。4片7LS164首尾相串,而時(shí)鐘端則接在一起,這樣,當(dāng)輸入8個(gè)脈沖時(shí),從單片機(jī)P3.0端輸出的數(shù)據(jù)就進(jìn)入到了第一片74LS164中了,而當(dāng)?shù)诙€(gè)8個(gè)脈沖到來(lái)后,這個(gè)數(shù)據(jù)就進(jìn)入了第二片74LS164,而新的數(shù)據(jù)則進(jìn)入了第一片74LS164,這樣,當(dāng)?shù)?個(gè)8個(gè)脈沖完成后,首次送出的數(shù)據(jù)被送到了最左面的164中,其他數(shù)據(jù)依次出現(xiàn)在第一,二,三,四片74LS164單片機(jī)中[9]。顯示電路圖如下: 圖5 顯示電路圖的設(shè)計(jì) 3.3 聲光報(bào)警及指示電路 本系統(tǒng)設(shè)計(jì)了報(bào)警電路,設(shè)定單節(jié)比賽的時(shí)間值,系統(tǒng)計(jì)時(shí)的過(guò)程中,一旦發(fā)現(xiàn)到達(dá)設(shè)定的時(shí)間,即當(dāng)整節(jié)比賽結(jié)束時(shí),便啟動(dòng)自身報(bào)警電路[10]。單片機(jī)便將P3.6管腳由低電平變?yōu)楦唠娖?,如果?bào)警開(kāi)關(guān)處于閉合狀態(tài),則三極管導(dǎo)通,蜂鳴器發(fā)出報(bào)警信號(hào)。聲光警報(bào)電路原理圖如下所示: 圖6 聲光報(bào)警器設(shè)計(jì)圖 3.4 單片機(jī)控制設(shè)計(jì) 3.4.1 單片機(jī)系統(tǒng)I/O口分配 系統(tǒng)的I/O口分配如下:TXAL1,TXAL2 為單片機(jī)外接時(shí)鐘振蕩電路,石英晶體起振后在XTAL2上輸出一個(gè)3V左右的正弦波,以便使AT89C51片內(nèi)的OSC電路按石英晶振相同的頻率自激振蕩[11]。 P1.0口至P1.7口為鍵盤輸入口,這8個(gè)按鍵用來(lái)調(diào)整A,B兩隊(duì)的比分,在比賽中出現(xiàn)計(jì)分錯(cuò)誤的情況時(shí)方便快速的修改比分。P3.0口至P3.2口外接了另外三個(gè)按鍵,他們的作用分別是:開(kāi)始/暫停,交換場(chǎng)地,設(shè)定時(shí)間。 P0.0口至P0.2口連接4個(gè)LED數(shù)碼管用來(lái)顯示比賽時(shí)間,P2.0口至P2.4口連接了6個(gè)LED數(shù)碼管顯示A,B兩只隊(duì)伍的比分。 P3.6口接報(bào)警電路。 3.4.2 AT89C51單片機(jī)簡(jiǎn)介 單片機(jī)(Microcontroller,又稱微處理器)是在一塊硅片上集成了各種部件的微型機(jī)[12],這些部件包括中央處理器CPU、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM、定時(shí)器/計(jì)數(shù)器和多種I/O接口電路。AT89C51是MCS51系列單片機(jī)的一個(gè)產(chǎn)品。MCS51系列單片機(jī)是Intel公司推出的通用型單片機(jī),其結(jié)構(gòu)特點(diǎn)如下: (1)8位CPU; (2)片內(nèi)震蕩及時(shí)鐘電路; (3)32根I/O線; (4)外部存儲(chǔ)器尋址范圍ROM、RAM各64K; (5)2個(gè)16位的定時(shí)器/計(jì)數(shù)器; (6)5個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí); (7)全雙工串行接口。 AT89C51單片機(jī)系列指的是MCS51系列和其他公司的8051衍生產(chǎn)品。這些衍生品是在基本型基礎(chǔ)上增強(qiáng)了各種功能的產(chǎn)品,如高級(jí)語(yǔ)言型、flash 型、EEPROM型、A/D型、DMA型、多并行口型等,這些產(chǎn)品給8位單片機(jī)注入了新的活力[13],給它的開(kāi)發(fā)應(yīng)用開(kāi)拓了更廣泛的前景[14]。 AT89C51引腳圖: 圖7 AT89C51引腳圖 AT89C51主要特性: ·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲(chǔ)器 ·全靜態(tài)工作:0Hz-24Hz ·三級(jí)程序存儲(chǔ)器鎖定 ·128*8位內(nèi)部RAM ·32可編程I/O線 ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器 ·5個(gè)中斷源·可編程串行通道 ·低功耗的閑置和掉電模式 ·片內(nèi)振蕩器和時(shí)鐘電路 AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器[15](FPEROM—Flash 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)提供了一種靈活性高且價(jià)廉的方案[16]。 管腳說(shuō)明: VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(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門電流。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門電流,當(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)容[17]。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫(xiě)入'1'后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故. P3口也可作為AT89C51的一些特殊功能口,如下所示: 管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時(shí)器0外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 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ú)效[18]。 /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)自反向振蕩器的輸出。 3.4.3 單片機(jī)外接時(shí)鐘產(chǎn)生電路 定時(shí)控制部件起著控制器的作用,由定時(shí)控制邏輯,指令寄存器,和振蕩器OSC等電路組成。OSC是控制器的心臟,能為控制器提供時(shí)鐘脈沖,引腳ATXL1為反向放大管的輸入端,XTAL2為輸出端,在XTAL1和XTAL2上外接定時(shí)反饋回路,OSC就能自激振蕩。單片機(jī)片內(nèi)電路OSC與片外器件就構(gòu)成一個(gè)時(shí)鐘產(chǎn)生電路,CPU的所有操作均在時(shí)鐘脈沖同步下進(jìn)行。片內(nèi)振蕩器的振蕩頻率非常接近晶振頻率,一般多在1.2MHz~12MHz之間選取。C1、C2是反饋電容,其值在5pF~30pF之間選取,典型值為30Pf[19]。本電路選用的電容為30pF,晶振頻率為12MHz[20]。 圖8 時(shí)鐘產(chǎn)生電路 XTAL1和XTAL2:這兩個(gè)端子是片內(nèi)振蕩電路的輸入線,用來(lái)外接石英晶體和微調(diào)電容。在石英晶體的兩個(gè)管腳加交變電場(chǎng)時(shí),它將會(huì)產(chǎn)生一定頻率的機(jī)械變形,而這種機(jī)械振動(dòng)又會(huì)產(chǎn)生交變電場(chǎng),上述物理現(xiàn)象稱為壓電效應(yīng)。一般情況下,無(wú)論是機(jī)械振動(dòng)的振幅,還是交變電場(chǎng)的振幅都非常小。但是,當(dāng)交變電場(chǎng)的頻率為某一特定值時(shí),振幅驟然增大,產(chǎn)生共振,稱之為壓電振蕩[21]。這一特定頻率就是石英晶體的固有頻率,也稱諧振頻率。即用來(lái)連接AT89C51片內(nèi)OSC的定時(shí)反饋回路,如上圖所示。石英晶振起振后要能在XTAL2線上輸出一個(gè)3V左右的正弦波,以便使MCS-51片內(nèi)的OSC電路按石英晶振相同頻率自激振蕩。通常,OSC的輸出時(shí)鐘頻率fOSC為0.5MHz-16MHz,典型值為12MHz或者11.0592MHz。電容C1和C2可以幫助起振,典型值為30pF,調(diào)節(jié)它們可以達(dá)到微調(diào)fOSC的目的。 3.4.4 單片機(jī)外接復(fù)位電路 單片機(jī)在開(kāi)機(jī)時(shí)都需要復(fù)位,以便中央處理器CPU以及其他功能部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。單片機(jī)的復(fù)位后是靠外部電路實(shí)現(xiàn)的,在時(shí)鐘電路工作后,只要在單片機(jī)的RST引腳上出現(xiàn)24個(gè)時(shí)鐘振蕩脈沖(2個(gè)機(jī)器周期)以上的高電平,單片機(jī)便可實(shí)現(xiàn)初始化狀態(tài)復(fù)位。MCS-51單片機(jī)的RST引腳是復(fù)位信號(hào)的輸入端。例如:若MCS-51單片機(jī)時(shí)鐘頻率為12MHz,則復(fù)位脈沖寬度至少應(yīng)該為2μs[10]下圖為單片機(jī)復(fù)位電路[22]。 圖9 AT89C51單片機(jī)復(fù)位電路 3.5 穩(wěn)壓電源的設(shè)計(jì) 3.5.1 穩(wěn)壓電源的組成 直流穩(wěn)壓電源主要由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路四部分組成,原理框圖如圖16所示,電網(wǎng)供給的交流電壓Ui1為220V、50Hz,經(jīng)電源變壓器降壓后,得到符合電路需要的交流電壓Ui2,然后由整流電路變換方向不變,大小隨時(shí)間變化的脈動(dòng)直流電壓Ui3;再用濾波器濾去其交流分量,就可得到比較平直的直流電壓Uo,為了能得到穩(wěn)定的輸出直流電壓,本設(shè)計(jì)還使用穩(wěn)壓電路,以保證輸出電壓更加穩(wěn)定[15]。 圖10 直流穩(wěn)壓電源原理框圖 3.5.2 三端固定集成穩(wěn)壓器簡(jiǎn)介 三端固定集成穩(wěn)壓器包含7800和7900兩大系列,7800系列是三端固定正輸出穩(wěn)壓器,7900系列是三端固定負(fù)輸出穩(wěn)壓器。它們的最大特點(diǎn)是穩(wěn)壓性能良好,外圍元件簡(jiǎn)單,安裝調(diào)試方便,價(jià)格低廉,現(xiàn)已成為集成穩(wěn)壓器的主流產(chǎn)品。7800系列屬于正壓輸出,即輸出端對(duì)公共端的電壓為正。UI為輸入端,UO為輸出端,GND是公共端(地)。三者的電位分布如下:UI>UO>UGND(0V)。最小輸入—輸出電壓差為2V,為可靠起見(jiàn),一般應(yīng)選4~6V。最高輸入電壓為35V。 7900系列屬于負(fù)電壓輸出,輸出端對(duì)公共端呈負(fù)電壓。7900與7800的外形相同,但管腳排列順序不同,2為輸出端,3位輸入端。7900的電位分布為:UGND(0V)>-UO>-UI。對(duì)三端固定輸出集成穩(wěn)壓器,其輸入電壓的選取原則: UImax>UI>U0+( UI—U0) Imin U0=5~18V時(shí), UImax=35V U0=20~24V時(shí), UImax=40V 只要把正輸入電壓加到CW7800的輸入端,CW7800的公共端接地,其輸出端便能輸出芯片標(biāo)稱正電壓值U0。實(shí)際應(yīng)用電路中,芯片輸入端、輸出端除分別接大容量濾波電容外,通常在芯片引出腳跟部接小電容(0.01 u~10uF)Ci及Co到地。Ci用于抑制芯片自激振蕩。當(dāng)輸入線較長(zhǎng)時(shí),抵消其電感效應(yīng)以防止產(chǎn)生自激振蕩。Co用于變窄芯片的高頻寬帶,減小高頻噪聲。Ci與Co的具體取值隨芯片輸出電壓高低及應(yīng)用電路的方式不同而不同。一般來(lái)說(shuō)使用集成穩(wěn)壓器都需防止芯片自激及減小高頻噪聲。圖11為CW7800的接線圖[23]。 圖11 CW7800接線圖 CW7900的輸入端加上負(fù)輸入電壓Ui,芯片的公共端接地,在輸出端得到標(biāo)稱的負(fù)電壓Uo。電容Ci用來(lái)抑制輸入電壓Ui中的紋波和防止芯片自激振蕩,Co用來(lái)抑制輸出噪聲。接線圖與7800相同。CW7805、CW7809、CW7815、CW7812、CW7912、CW7915集成穩(wěn)壓器的主要參數(shù): 3.5.3 電源設(shè)計(jì) 該系統(tǒng)需要+5V和+12V兩個(gè)電源,如圖1所示為輸出±5V,±12V的直流電壓,它由電源變壓器T1,橋式整流電路以及濾波電容、防止自激電容和固定三端穩(wěn)壓器(CW7805、CW7812等)等組成。220V交流電通過(guò)電源變壓器變換成交流低壓,再經(jīng)過(guò)橋式整流電路和濾波電容的整流和濾波,在固定式三端穩(wěn)壓器CW7805的IN和GND兩端形成一個(gè)并不十分穩(wěn)定的直流電壓。此直流電壓經(jīng)過(guò)CW7812和CW7805的穩(wěn)壓和C3和C5的濾波便在穩(wěn)壓電源的輸出端產(chǎn)生了精度高、穩(wěn)定度好的輸出直流電壓[25]。電源電路原理圖如下所示: 圖12 電源設(shè)計(jì)圖 3.6 硬件原理圖 系統(tǒng)硬件圖如下圖所示: 圖13 硬件設(shè)計(jì)電路圖 4 軟件程序設(shè)計(jì) 本設(shè)計(jì)中采用的處理器是AT89C51單片機(jī),由此可采用面MCS-51的程序設(shè)計(jì)語(yǔ)言,包括ASM51匯編語(yǔ)言和C51高級(jí)語(yǔ)言,這兩種語(yǔ)言各有特點(diǎn)。匯編語(yǔ)言更接近機(jī)器語(yǔ)言,常用來(lái)編制與系統(tǒng)硬件相關(guān)的程序,如訪問(wèn)I/O端口、中斷處理程序、實(shí)時(shí)控制程序、實(shí)時(shí)通信程序等;而數(shù)學(xué)運(yùn)算程序則適合用C51高級(jí)語(yǔ)言編寫(xiě),因?yàn)橛酶呒?jí)語(yǔ)言編寫(xiě)運(yùn)算程序可提高編程效率和應(yīng)用程序的可靠性[26]。 考慮到匯編語(yǔ)言的以下特點(diǎn),在智能測(cè)控裝置的基本功能軟件開(kāi)發(fā)中,程序主要采用ASM51匯編語(yǔ)言編寫(xiě): (1)匯編語(yǔ)言是最基本的程序設(shè)計(jì)語(yǔ)言。迄今為止,匯編語(yǔ)言仍然是計(jì)算機(jī)系統(tǒng)底層軟件(例如匯編程序、PC機(jī)的BIOS等)設(shè)計(jì)的基本語(yǔ)言; (2)能充分利用機(jī)器的硬件功能與結(jié)構(gòu)特點(diǎn)。匯編語(yǔ)言與機(jī)器語(yǔ)言密切相關(guān),因此能透徹地反映計(jì)算機(jī)硬件的功能與特點(diǎn)。程序員可充分利用機(jī)器硬件系統(tǒng)的許多特性(如寄存器、標(biāo)志位以及一些特殊指令等)。這樣能充分發(fā)揮程序設(shè)計(jì)的技巧; (3)用匯編語(yǔ)言編寫(xiě)的程序比起用高級(jí)語(yǔ)言編寫(xiě)程序具有更高的系統(tǒng)性能。匯編語(yǔ)言程序具有執(zhí)行速度快和節(jié)省存儲(chǔ)空間的特點(diǎn),它可以精確地描述算法,把計(jì)算過(guò)程和控制過(guò)程刻畫(huà)得更具體; (4)實(shí)時(shí)性能好。用匯編語(yǔ)言編制的程序可以對(duì)各種接口芯片及I/O端口直接進(jìn)行控制,實(shí)時(shí)性能好。對(duì)于一些應(yīng)用領(lǐng)域(例如工業(yè)監(jiān)控系統(tǒng)等)匯編語(yǔ)言是不可缺少的,一般高級(jí)語(yǔ)言不適合這種應(yīng)用,因?yàn)橐话愀呒?jí)語(yǔ)言不能充分地利用計(jì)算機(jī)硬件所提供的諸如中斷等方面的功能[22]。 4.1 主程序設(shè)計(jì) 主程序功能:完成系統(tǒng)初始化操作,判斷時(shí)間是否超限,如果超限則轉(zhuǎn)報(bào)警處理,如果未超限則讀入控制按鈕的狀態(tài),并根據(jù)輸入狀態(tài),散轉(zhuǎn)執(zhí)行相應(yīng)的功能子程序。 全部程序主要由主程序,時(shí)間中斷程序,鳴音子程序,時(shí)間顯示程序,比分顯示程序,調(diào)時(shí)時(shí)間顯示程序,交換場(chǎng)地程序組成。 4.2 主流程圖 圖14 主程序軟件流程圖 |
|