單片機籃球比賽記分器
《單片機籃球比賽記分器》由會員分享,可在線閱讀,更多相關(guān)《單片機籃球比賽記分器(40頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 DA CHANGCHUN INSTITUTE OF TECHNOLOGY 籃球比賽記分器 The Game Of Basketball Scoring Device 設(shè)計題目: 籃球比賽記分器 學(xué)院名稱: 電氣與信息工程學(xué)院 專業(yè)名稱: 電子信息工程 任務(wù)分配表 班級 學(xué)號 姓名 完成主要任務(wù) 電子1042 08 PCB的繪制仿真與實現(xiàn) 電子1042 13 程序的修
2、改 PCB的繪制仿真與實現(xiàn)PROTEUS原理圖繪制與仿真 電子1042 35 文檔的編寫 程序的修改 PROTEUS原理圖繪制與仿真 籃球比賽記分器 摘 要: 本文設(shè)計了一個籃球比賽記分器主要利用單片機AT89C51作為核心元件,利用3組4位共陽極的數(shù)碼管作為顯示器件,以C語言作為編程語言,在Protues和Keil搭建的軟件仿真平臺下進行仿真,本設(shè)計包含了AT89C51系列單片機的最小系統(tǒng)的構(gòu)成,同時在此基礎(chǔ)上擴展了一些實用性強的外圍接口,可以進一步了解譯碼器74LS247的應(yīng)用,LED七段數(shù)碼管的結(jié)構(gòu)和工作原理,主要實現(xiàn)了計時和顯示A/B隊的分?jǐn)?shù),
3、并能及時進行加分,減分,鳴笛警示等功能。本系統(tǒng)具有成本低廉、性能穩(wěn)定、高準(zhǔn)確度顯示、操作方便且易攜帶等特點。廣泛適合各類學(xué)校和小團體作為賽程計分。 關(guān)鍵詞:AT89C51單片機;74LS247;七段數(shù)碼管;仿真;嵌入式 0 引言 進入21世紀(jì),伴隨著電子,信息通信技術(shù)的應(yīng)用與普及開發(fā),人們對電子技術(shù)的要求也越來越高,目前嵌入式單片機滲透到我們生活的各個領(lǐng)域。單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù),把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能集成到一塊硅片上構(gòu)成的一個小而完善的計算機系
4、統(tǒng)。按照歷史性、本質(zhì)性、普遍性要求,嵌入式系統(tǒng)應(yīng)定義為:“嵌入到對象體系中的專用計算機系統(tǒng)”,可分軟件部分和硬件部分,而當(dāng)代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在單片機上。所以,以MCU為核心,就是各種各樣的單片機,是嵌入式硬件部分的實現(xiàn)方式之一,它主要是因為把處理器和存儲器等部件集成在一塊芯片上。 體育比賽計時計分器是對體育比賽過程中所產(chǎn)生的時間、比分等數(shù)據(jù)進行快速采集記錄、加工處理、傳遞利用的工具。籃球比賽的計時計分器是一種得分類型的工具。雖然籃球比賽中很早就開始研究應(yīng)用了電子計分器,但通常都是利用模擬電子器件、數(shù)字電子器件或是模擬、數(shù)字混合
5、組成的,其穩(wěn)定性和高準(zhǔn)確度計分仍存在一些問題。以嵌入式單片機為核心,利用3組4位共陽極的數(shù)碼管作為顯示器件的籃球比賽計分屏,計分準(zhǔn)確,具有體積小,重量輕,能耗低,價格便宜,可靠性高,抗干擾能力強和使用方便等獨特的優(yōu)點。 1 系統(tǒng)方案 我們小組共提出了兩種數(shù)碼管顯示方案:一是共陽極數(shù)碼管靜態(tài)顯示,二是共陽極數(shù)碼管動態(tài)顯示。 共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極接地,當(dāng)某一字段發(fā)光二極管的陽極為低電平時,相應(yīng)字段就點亮。反之,相應(yīng)字段就不亮。 共陽極數(shù)碼管靜態(tài)顯示:靜態(tài)顯示就是顯示驅(qū)動電路具有輸出鎖存功能,即各個LE
6、D的顯示字符一經(jīng)確定,相應(yīng)的段碼將維持輸出不變,直到送入另一個字符的段碼為止。正因為如此,靜態(tài)顯示器的亮度都比較高。靜態(tài)顯示的程序設(shè)計,是將一個兩位數(shù)的個位與十位分開,并且用查表指令,輸出對應(yīng)位的表格代碼。 共陽極數(shù)碼管動態(tài)顯示:動態(tài)顯示,是數(shù)碼管有一個I/O口控制LED片的多段復(fù)用,共陽極分別由相應(yīng)的I/O口線控制,形成各片的分時選通。若要各位數(shù)碼管能夠同時顯示出與本位相應(yīng)的顯示字符,就必須采用動態(tài)顯示方式,即在某一時刻,讓某一位的位選線處于選通狀態(tài),而且其他各位的位選線處于關(guān)閉狀態(tài),這樣在同一時刻,兩個數(shù)碼管只有選通的那一位顯示字符,而另一個是滅著的。同樣,在下一時刻,只讓第二個的位選線
7、處于選通狀態(tài),另一位選線關(guān)閉,如此循環(huán)下去,就可以使兩位數(shù)碼管顯示出所要顯示的字符。雖然這些字符不是在同一時刻出現(xiàn),但由于LED片燈的余暉和人眼的視覺暫留作用,只要每位顯示間隔足夠短,就可以造成兩位同時亮的假象,達到同時顯示的效果。設(shè)計基本與靜態(tài)設(shè)計相同,不同之處是在多了位選信號。在程序設(shè)計中在每次輸出字符時,都要給相應(yīng)的那位進行置位,另一位復(fù)位,確保每次只有一個數(shù)碼管亮。 數(shù)碼管靜態(tài)顯示需要靜態(tài)驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動,靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都有一個單片機的I/O端口進行驅(qū)動,或者使用BCD碼二/十進位轉(zhuǎn)換器進行驅(qū)動,靜態(tài)驅(qū)動的優(yōu)點是編程簡單,數(shù)據(jù)穩(wěn)定,顯示亮度高,無閃爍,占
8、用CPU時間少,缺點是功耗比較大,占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要58=40個I/O端口來驅(qū)動,而一個89S52單片機可用的I/O端口才32個。故實際應(yīng)用時必須增加位驅(qū)動器進行驅(qū)動,增加了硬體電路的復(fù)雜性。 數(shù)碼管動態(tài)顯示需要動態(tài)驅(qū)動:動態(tài)驅(qū)動是將所數(shù)碼管的8個顯示片段的同名端連在一起,另外為每個數(shù)碼管的公共極COM端增加位選通控制電路,位選通有各自獨立的I/O線控制,當(dāng)單片機輸出字型碼時,所有數(shù)碼管都接受到相同的字型碼,將需要顯示的數(shù)碼管的選通COM端電路的控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮,通過分時輪流控制各個LED數(shù)碼管的COM端,就使各個數(shù)碼管輪流受
9、控顯示,這就是動態(tài)驅(qū)動。動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功能更低、硬件電路也較靜態(tài)顯示簡單。 經(jīng)方案對比和考慮設(shè)計要求和器件的限制,我組的課程設(shè)計采用的是共陽極數(shù)碼管的動態(tài)顯示。 2 系統(tǒng)硬件電路 該系統(tǒng)硬件電路包括:單片機AT89C51、時鐘電路、復(fù)位電路、電源電路、按鍵控制電路、計分電路、計時電路、報警電路。軟件包括用Keil 進行C語言編程,用Protues進行仿真,具體系統(tǒng)硬件結(jié)構(gòu)框圖如圖2-1所示。 按鍵控制 電源電路 復(fù)位電路 時鐘電路 AT89C51 計分電路 計時電路 報警電路
10、 鳴笛示警 計分顯示 計時顯示 圖2-1 籃球賽計分器的硬件結(jié)構(gòu)框圖 (一)元器件的選擇 本設(shè)計主要選擇了以下元器件:如表2-2所示: 元器件名稱 所屬類 所屬子類 AT89C51(單片機) Microprocessor IC’s 8051 Family 7SEG-MPX4-CA-BKUE Optoelectrionics 7-Segment-Display 7SEG-MPX4-CA Optoelectrionics 7-Segment-Display SW-SPDT Switchs&Relays Miscellaneous
11、 74LS247 TTL 74LSseries All—Sub-Categories MINRES4.7K(電阻4.7K) Resistors All—Sub BUTTON All-Categories All—Sub-Categories 7404 TTL 74LSseries All—Sub-Categories SOUNDER Speakers&sounders All—Sub-Categories 表2-2 元器件列表 (二)單片機AT89C51簡介: AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM——Flash Programmab
12、le and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖2-3所示 圖2-3 AT89C51外形及引腳排列 主要特性: 與MCS-51 兼容 4K字
13、節(jié)可編程FLASH存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時間:10年 全靜態(tài)工作:0Hz-24MHz 三級程序存儲器鎖定 1288位內(nèi)部RAM 32可編程I/O線 兩個16位定時器/計數(shù)器 5個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路 管腳說明: VCC:供電電壓。 GND:接地。 P0口:P0口的8位皆為漏極開路輸出簡稱OD;內(nèi)部無上拉電阻,所以執(zhí)行輸出功能時,外部必須接上拉電阻;若要實現(xiàn)輸入功能,必須先輸入高電平“1”,才能讀取該端口所連接的外部數(shù)據(jù);若系統(tǒng)連接外部存儲器,則 P0可作為地址總線和數(shù)據(jù)總線的多功能引腳,此時內(nèi)部具
14、有上拉電阻,無需外接上拉電阻。 P1口:P1口為8位,可位尋址的雙向I/O口;內(nèi)部具備約30千歐姆的上拉電阻,實現(xiàn)輸出功能時,不需要連接外部上拉電阻;實現(xiàn)輸入功能時,必須先輸入高電平“1”,才能讀取該端口所連接的外部數(shù)據(jù);P1口的8位類似漏極開路輸出,但內(nèi)部已接上上拉電阻,每個引腳可驅(qū)動4個LS型TTL負載。 P2口:P2口為8位、可位尋址的雙向輸入/輸出口,內(nèi)部具備約30千歐姆的上拉電阻,實現(xiàn)輸出功能時,不需要連接外部上拉電阻;實現(xiàn)輸入功能時,必須先輸入高電平“1”,才能讀取該端口所連接的外部數(shù)據(jù);P2口的8位類似漏極開路輸出,但內(nèi)部已接上上拉電阻,每個引腳可驅(qū)動4個LS型TTL負載;若
15、系統(tǒng)連接外部存儲器,而外部存儲器的地址線超過了8根時,則P2可作為地址總線(A8-A15)的引腳。 P3口:P3口為8位,可位尋址的雙向I/O口;內(nèi)部具備約30千歐姆的上拉電阻,實現(xiàn)輸出功能時,不需要連接外部上拉電阻;實現(xiàn)輸入功能時,必須先輸入高電平“1”,才能讀取該端口所連接的外部數(shù)據(jù);P3口的8位類似漏極開路輸出,但內(nèi)部已接上上拉電阻,每個引腳可驅(qū)動4個LS型TTL負載。P3口也可作為AT89C51的一些特殊功能口,如下表2-4所示: I/O口 備選功能/特殊功能 P3.0/RXD 串行輸入口 P3.1/TXD 串行輸出口 P3.2/ 外部中斷0 P3.3/ 外部中斷
16、1 P3.4/T0 計時器0外部輸入 P3.5/T1 計時器1外部輸入 P3.6/ 外部數(shù)據(jù)存儲器寫選通 P3.7/ 外部數(shù)據(jù)存儲器讀選通 表2-4 AT89C51的一些特殊功能口 RST:復(fù)位信號。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間,用以完成單片機的復(fù)位初始化操作。 ALE/:地址鎖存控制信號。在系統(tǒng)擴展,訪問外部存儲器時,ALE用于控制把P0口輸出的低8位的地址鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。此外,由于ALE是以晶振1/6的固定頻率輸出脈沖,因此可作為外部時鐘或者外部定時脈沖使用。ALE只有在執(zhí)行MOVX,MOVC指令時,ALE才起作
17、用。 :外部程序存儲器讀選通信號。在讀外部ROM時,有效(低電平有效),以實現(xiàn)外部ROM的讀操作。在具體應(yīng)用時,外部ROM讀取時,在每個機器周期會動作兩次,外部RAM讀取時,兩個信號被跳過不會輸出。 /VPP:訪問程序存儲控制信號。當(dāng)信號保持低電平時,對ROM的讀操作僅僅限定在外部程序存儲器,當(dāng)信號為高電平或者懸空時,對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 (三)晶振電路設(shè)計: 圖2-5晶振電路圖 晶振,就象是單片機的核心部件,提供時鐘激勵,保證單片機
18、內(nèi)部和外部電路的時序邏輯電路協(xié)調(diào)動作。 (四)復(fù)位電路的設(shè)計: 圖2-6 復(fù)位電路圖 復(fù)位一般可用上電復(fù)位、按鍵復(fù)位兩種方式完成,我們采用按鍵復(fù)位,根據(jù)元器件的要求時間常數(shù),可以選定電容和電阻的規(guī)格。 (五)按鍵控制模塊 鍵盤往往分成編碼鍵盤和非編碼鍵盤,編碼鍵盤由按鍵和鍵處理電路組成,直接為計算機提供經(jīng)過編碼的按鍵鍵碼;而非編碼鍵盤則只提供按鍵,其余由計算機自己處理。非編碼鍵盤結(jié)構(gòu)簡單,可自由裁量設(shè)計,非常適用于單片應(yīng)用系統(tǒng)。 1.按鍵特性與抖動處理 按鍵是一種機械彈性開關(guān),當(dāng)鍵按下時閉合,松開時斷開。因為有機械的接觸,在觸點閉合或斷開的瞬間會出現(xiàn)電壓抖動。為了
19、避免鍵輸入錯誤,必須進行鍵抖動的處理。去抖動由硬件和軟件兩種方法:硬件方法就是在鍵盤中附加去抖動電路消除抖動;而軟件方法則是采用時間延遲以躲避抖動,待觸點狀方法處理。 2.鍵盤接口及功能 非編碼鍵盤是所用按鍵組成的集合。為了保證鍵盤的正確輸入,鍵接口必備以下功能: (1)鍵掃描與識別,判斷有無鍵按下以及按鍵位置,鍵掃描與識別是通過“行掃描”與“列狀態(tài)”的配合來確定是否有鍵按下以及所在行、列的位置。所謂行掃描就是一次給每條行線送低電平,而其余各行線送高電平,并檢測對每一行掃描時所產(chǎn)生的列狀態(tài)。鍵盤掃描有下列三種方式: 程控掃描方式:只有單片機空閑時才調(diào)用掃描程序響應(yīng)用戶鍵入請求。 定時
20、掃描方式:單片機定時調(diào)用掃描程序?qū)︽I盤進行掃描,即時響應(yīng)用戶鍵入請求。 中斷掃描方式:與中斷請求電路配合,當(dāng)有鍵按下時產(chǎn)生中斷請求,由單片機響應(yīng)并執(zhí)行中斷服務(wù)程序掃描鍵盤。 (2)去鍵抖動 消除按鍵抖動帶來的誤輸入。檢測鍵關(guān)閉后,延時10ms后再檢測一次,兩次檢測相同再進一步進行鍵處理。 (3)鍵編碼 生成易于處理的鍵碼。由于鍵位碼比較零亂,因此接下來的工作是根據(jù)需要把反映閉合鍵和鍵位置的鍵位碼換乘反映鍵功能的鍵碼。有了鍵碼,才好通過散轉(zhuǎn)指令把程序執(zhí)行到閉合鍵所對應(yīng)的服務(wù)程序上去。鍵碼既可以根據(jù)鍵位碼查詢表求得,也可以根據(jù)鍵碼編排規(guī)律計算得到。 (4)等待鍵釋放 為了保證鍵一次閉
21、合僅進行一次處理,編鍵碼之后,再以延時掃描的方法等待鍵釋放。鍵釋放后鍵處理工作完成。 本系統(tǒng)設(shè)計除復(fù)位按鍵外共配置了8個獨立鍵盤來實現(xiàn)系統(tǒng)功能的控制。8個按鍵分別為KEY1(A隊加一鍵)連接到P3.0,KEY2(A隊減一鍵)連接到P3.1,KEY3(B隊加一鍵)連接到P3.4,KEY4(B隊減一鍵)連接到P3.5,AB轉(zhuǎn)換(上下半場換場時切換比分,連接到P3.3)、start(開關(guān),連接到P3.7)、蜂鳴器開關(guān)(連接到P3.2)計時器十分位控制(連接到P1.6) ,計時器分位控制(連接到P1.7) 本設(shè)計中主要采用獨立按鍵,按鍵擴展電路如圖2-7 圖2-7 獨立按鍵擴展電路
22、 (六) 數(shù)碼管顯示模塊 本設(shè)計的計時、計分功能的顯示均采用共陽數(shù)碼管顯示。 我們最常用的是七段式和八段式LED數(shù)碼管,八段比七段多了一個小數(shù)點,其他的基本相同。所謂的八段就是指數(shù)碼管里有八個小LED發(fā)光二極管,通過控制不同的LED的亮滅來顯示出不同的字形。數(shù)碼管又分為共陽極和共陽極兩種類型,其實共陽極就是將八個LED的陽極連在一起,讓其接地,這樣給任何一個LED的另一端高電平,它便能點亮。而共陰極就是將八個LED的陰極連在一起。其原理圖如圖2-8: 引腳圖 共陽極 共陰極 圖2-8 共陰極和
23、共陽極八段數(shù)碼管原理圖 其中引腳圖的兩個COM端連在一起,是公共端,共陰數(shù)碼管要將其接地,共陽數(shù)碼管將其接正5伏電源。一個八段數(shù)碼管稱為一位,多個數(shù)碼管并列在一起可構(gòu)成多位數(shù)碼管,它們的段選線(即a,b,c,d,e,f,g,dp)連在一起,而各自的公共端稱為位選線。顯示時,都從段選線送入字符編碼,而選中哪個位選線,那個數(shù)碼管便會被點亮。數(shù)碼管的8段,對應(yīng)一個字節(jié)的8位,a對應(yīng)最低位,dp對應(yīng)最高位。所以如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為00111111,即0x3f;共陽數(shù)碼管的字符編碼為11000000,即0xc0??梢钥闯鰞蓚€編碼的各位正好相反。如下圖: 共陰示例共陽示
24、例 圖2-9 共陰極和共陽極八段數(shù)碼管顯示舉例 (七)蜂鳴器警示模塊 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。在比賽結(jié)束時,蜂鳴器自動響,再通過按鍵關(guān)閉它。其擴展電路如圖: 圖2-10 蜂鳴器擴展電路圖 (八)BCD七段數(shù)碼管驅(qū)動/譯碼器 常用的BCD對七段顯示器譯碼器/驅(qū)動器的IC包裝設(shè)計有TTL之7446、7447、7448、7449與CMOS之4511等。其中7446、7447必須使用共陽極七段數(shù)碼顯示器,7448、7449、4511等則使用共陰極七段顯示
25、器。 74LS247的功能用于將BCD碼轉(zhuǎn)化成數(shù)碼塊中的數(shù)字,通過它解碼,可以直接把數(shù)字轉(zhuǎn)化為數(shù)碼管的顯示數(shù)字,從而簡化了程序,節(jié)約單片機的I/O開銷,因此是一個非常好的芯片。 74LS247的引腳如下圖2-11所示: 圖2-11 74LS247引腳圖 引腳的功能: (1)A、B、C、D為輸入端,abcdefg為輸出端。 當(dāng)輸入DCBA=0010時,則輸出abcdefg=0010010,使數(shù)碼管顯示“2”; 當(dāng)輸入DCBA=0110時,則輸出abcdefg=1100000,使數(shù)碼管顯示“6”;關(guān)系如表2-12所示: 輸入 D C
26、B A 輸出 F(a) F(b) F(c) F(d) F(e) F(f) F(g) 字形 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 2 0 0 1 1 1 1 1 1 0 0 1 3 0 1 0 0
27、 0 1 1 0 0 1 1 4 0 1 0 1 1 0 1 1 0 1 1 5 0 1 1 0 1 0 1 1 1 1 1 6 0 1 1 1 1 1 1 0 0 0 0 7 1 0 0 0 1 1 1 1 1 1 1 8 1 0 0 1 1 1 1
28、 1 0 1 1 9 表2-12 BCD七段譯碼真值表 (2)LT、RBI與BI/RBO為控制引腳,其功能分述如下: 74LS247電路是由與非門、輸入緩沖器和七個與或非門組成的BCD——7段譯碼器/驅(qū)動器。7個與非門和一個驅(qū)動電路成對連接,以產(chǎn)生可用的BCD數(shù)據(jù)及其補碼至7個與或非譯碼門。剩下的與非門和3個輸入緩沖器作為試燈輸入(LT)、滅燈輸入/動態(tài)滅燈輸出(BI/RBO)以及動態(tài)滅燈輸入(RBI)端。 該電路接受4位二進制編碼——十進制數(shù)(BCD)輸入并借助于輔助輸入端狀態(tài)將輸入數(shù)據(jù)譯碼后去驅(qū)動一個七段顯示器。輸出結(jié)構(gòu)設(shè)計能承受7段顯示器所
29、需要的相當(dāng)高的高壓,驅(qū)動顯示器各段所需要的高達24mA的電流可以由其高性能的輸出晶體管來直接提供。BCD輸入計數(shù)9以上的顯示圖案是鑒定輸入條件的唯一信號。 該電路有自動前、后沿滅零控制(RBI和RBO)。試燈(LT)可在端處在高電平的任何時刻去進行,該電路還含有一個滅燈輸入(BI)。它用來控制燈的亮度或禁止輸出。 1)需要0-15的輸出功能時,滅燈輸入(BI)必須為開路或者保持在高電平狀態(tài),若不要滅掉十進制零,則動態(tài)滅燈輸入(RBI)必須開路或者處于高電平狀態(tài)。 2)當(dāng)?shù)碗娖街苯蛹拥綔鐭糨斎耄˙I)時,不管其他任何輸入端的電平如何,所有段的輸出端都關(guān)死。 3)當(dāng)動態(tài)滅燈輸入(RBI)和
30、輸入端A、B、C、D都處于低電平而試燈輸入(LT)為高電平時,則所有段的輸出端進入關(guān)閉且動態(tài)滅燈輸出(RBO)處于低電平狀態(tài)。 4)當(dāng)滅燈輸入/動態(tài)滅燈輸出(BI/RBO)開路或者保持在高電平狀態(tài),且將低電平加到試燈試燈輸入(LT)時,所有段的輸出都得打開。 注:BI/RBO是用做滅燈(BI)與/或動態(tài)滅燈輸出(RBO)的線與邏輯。 (9) 計分顯示屏的設(shè)計圖 圖2-13 計分顯示屏的設(shè)計圖 圖2-14 倒計時計分顯示屏的設(shè)計圖 3 系統(tǒng)軟件設(shè)計 籃球賽計時計分系統(tǒng)的軟件設(shè)計部分采用模塊化程序設(shè)計,程序部分由主程序、計時計分刷新顯示程序模塊、數(shù)碼管
31、顯示記錄程序模塊等組成。 51單片機內(nèi)部有兩個16位可編程的定時器/計數(shù)器,分別稱為定時器/計數(shù)器0和定時器/計數(shù)器1,它們具有四種工作方式,其控制字和狀態(tài)均在相應(yīng)的特殊功能寄存器中,通過對控制寄存器的編程,就可方便地選擇適當(dāng)?shù)墓ぷ鞣绞健L厥饪刂破饔泄ぷ鞣绞娇刂萍拇嫫鳎═MOD),定時/計數(shù)器控制寄存器(TCON),中斷允許控制寄存器IE。定時/計數(shù)器的核心是的16位加法計數(shù)器,定時器T0的加法計數(shù)器用特殊功能寄存器TH0、TL0表示,TH0表示加法計數(shù)器的高8位,TL0表示加法計數(shù)器的低8位。TH1和TL1則分別表示定時/計數(shù)器T1的高8位和低8位。它們均是8位寄存器,在特殊功能寄存器中占
32、地址8AH-8DH。它們用于存放定時或計數(shù)的初始值。此外,內(nèi)部還有一個8位的工作方式寄存器TMOD和一個8位的控制寄存器TCON,用于選擇和控制定時/計數(shù)器的工作。這些寄存器可根據(jù)需要由程序讀寫。當(dāng)然16位加法計數(shù)器的輸入端每輸入一個脈沖,16位加法計數(shù)器的值自動加1,當(dāng)計數(shù)器的計數(shù)值超過加法計數(shù)器字長所能表示的二進制數(shù)的范圍而向第17位進位,即計數(shù)溢出時,置位定時中斷請求標(biāo)志,向CPU申請中斷。 1、工作方式寄存器TMOD TMOD用于控制T0和T1的工作方式,其格式如表3-1所示: 位 D7 D6 D5 D4 D3 D2 D1 D0 位符號 GATE C/ M
33、1 M0 GATE C/ M1 M0 門控開關(guān) 計數(shù)/定時 方式選擇 門控開關(guān) 計數(shù)/定時 方式選擇 T1方式字段 T0方式字段 表3-1 方式控制寄存器TMOD 各位定義如下: M1,MO:工作方式控制位,可構(gòu)成表3-2所示四種工作方式: M1 M0 工作方式 說明 0 0 0 13位定時器; 0 1 1 16位計數(shù)器; 1 0 2 可自動再裝載的8位計數(shù)器; 1 1 3 T0分成兩個獨立的8位計數(shù)器 表3-2 方式控制寄存器TMOD的工作方式 C/:計數(shù)工作方式/定時工作方式選擇位。置0時,設(shè)置為定時工
34、作方式;置1時,設(shè)置為計數(shù)工作方式。 GATE:門控位,用以決定是由軟件還是硬件啟動/停止計數(shù)。GATE=0, /被封鎖,只要用軟件對TR0(或TR1)置“1”就啟動了定時器;GATA=1時,定時器/計數(shù)器的計數(shù)受外部引腳輸入電平的控制。 TMOD的所有位在復(fù)位后清0。TMOD不能位尋址,只能按字節(jié)操作設(shè)置工作方式。 2、定時/計數(shù)控制寄存器TCON TFl,TRl,TF0和TR0位用于定時器/計數(shù)器;IEl,ITl,IE0和IT0位用于中斷系統(tǒng)。其格式如表3-3所示: 位 D7 D6 D5 D4 D3 D2 D1 D0 位符號 TF1 TR1 TF0 TR
35、0 IE1 IT1 IE0 IT0 表3-3 控制寄存器TCON 各位定義如下: TF1:定時器1溢出標(biāo)志位。當(dāng)定時器1計滿溢出時,由硬件使TF1置“1”,并且申請中斷。進入中斷服務(wù)程序后,由硬件自動清“0”,在查詢方式下用軟件清“0”。 TR1:定時器1運行控制位。由軟件清“0”關(guān)閉定時器1。當(dāng)GATE=1,且為高電平時,TR1置“1”啟動定時器1;當(dāng)GATE=0,TR1置“1”啟動定時器1。 TF0:定時器0溢出標(biāo)志。其功能及操作情況同TF1。 TR0:定時器0運行控制位。其功能及操作情況同TR1。 IE1:外部中斷1請求標(biāo)志位。 IT1:外部中斷1觸發(fā)方式選擇位
36、。當(dāng)IT1=0,為低電平觸發(fā)方式;當(dāng)IT1=1,為下降沿觸發(fā)方式。 IE0:外部中斷0請求標(biāo)志位。 IT0:外部中斷0觸發(fā)方式選擇位。 當(dāng)IT0=0,為低電平觸發(fā)方式;當(dāng)IT0=1,為下降沿觸發(fā)方式。 TCON中低4位與中斷有關(guān)。由于TCON是可以位尋址的,因而如果只清溢出或啟動定時器工作,可以用位操作命令。 3、 聲音的產(chǎn)生 我們知道,聲音的產(chǎn)生是一種音頻振動的效果。振動的頻率越高,則為高音;振動的頻率越低,則為低音。聲音的頻率范圍為20Hz-200kHz之間,人類耳朵比較容易辨識的聲音頻率范圍是200Hz-20kHz,一般音響電路是用正旋波信號驅(qū)動喇叭,從而產(chǎn)生悅耳的音樂;在
37、數(shù)字電路里,則是用數(shù)字脈沖信號驅(qū)動喇叭,從而產(chǎn)生聲音。若要AT89C51產(chǎn)生聲音,可利用程序來控制單片機某個I/O口的“高”電平或者“低”電平,則在該I/O口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”、“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。 系統(tǒng)主程序流程圖如下: 停止 比賽結(jié)束 讀取功能鍵 等待按鍵釋放 N 比賽開始,并初始化 Y Y N 讀P3口的值 取出P3.6 啟動按鍵是否按下 去抖 確認(rèn)是否有按鍵按下 B隊加1分 B隊減1分 N Y 將BCD碼轉(zhuǎn)化為7段碼顯示出來,并
38、確認(rèn)比賽是否結(jié)束 將當(dāng)前的分?jǐn)?shù)轉(zhuǎn)化為BCD碼 確認(rèn)按下的是哪個鍵 鳴笛休息 A隊減1分 A隊加1分 圖3-4 主程序流程圖 系統(tǒng)按鍵部分流程圖: 開始 Y Key4=0? 初始化定時器 N 比賽開始 設(shè)定比賽時間 B減一分 Y 時間到? Key1=0? N N A隊加一分 Y Y 蜂鳴器響 Key2=0? N Key=0? 開始 Y A隊減一分 YY
39、Y 關(guān)閉蜂鳴器 N Key3=0? 結(jié)束 Y B隊加一分 圖3-5 按鍵部分流程圖 (一)在主程序循環(huán)中,主要工作是掃描是否有鍵按下,若有鍵按下則要確認(rèn)是哪個鍵按下并做相應(yīng)的處理,并做同步顯示處理。 void main(void) { TMOD=0x01; //設(shè)置T0為工作方式1,作為16位計數(shù)器 TH0=(65535-50000)/256; //設(shè)置T0的高8位,并且T0的計數(shù)值為50ms TL0=(65535-50000)%256;
40、 //設(shè)置T0的低8位 music=0; //初值喇叭不響 EA=1; //開放所有中斷 ET0=1; //允許定時/計數(shù)器T0溢出中斷 EX0=1; //允許外部中斷0 IT0=1; //設(shè)置外部中斷0為邊沿觸發(fā)方式(下降沿) while(1) //無窮循環(huán),程序
41、一直運行 { Key_Y(); //預(yù)置場次比賽時間 if(Star==0&&f!=0&&Puse!=0) //按下“開始鍵”,設(shè)置好比賽時間,并且未按“停止”鍵時,比賽正式開始 { TR0=1; //啟動定時器T0,開始計時 Key_if(); //開始計分 } else { TR0=0; //比賽還未開始或比賽結(jié)束時間到,停止計時 } Js_Jf_Scan();
42、 //將相應(yīng)的分?jǐn)?shù)、時間同步進行顯示 } } (二)時間顯示設(shè)計 系統(tǒng)要實現(xiàn)時間的計時功能,所以要用定時/計數(shù)器的定時功能進行時間處理,在本程序設(shè)計中,用一個定時50ms的時間中斷函數(shù)void Js_50ms(void),一個時間處理函數(shù)void Ptime(uchar)。 由于時間顯示屏用的是4位的數(shù)碼管進行顯示,用動態(tài)掃描顯示驅(qū)動,用void Js_Scan(void)處理動態(tài)掃描顯示。 時間預(yù)置用按鍵實現(xiàn),首先進行按鍵判斷處理,用void Key_Y(void)函數(shù)處理。 嵌入式籃球計分屏實現(xiàn)時間顯示屏的部分源程序如下: /************
43、*******設(shè)置場次比賽時間********************/ void Key_Y(void) { if(YK1==0) //初始狀態(tài),分鐘的十位為0 { delay(1); //延時去抖動 fs=fs+1; //分十位加1分 fy=fs*10+fg; //求出預(yù)置時間的分鐘值 f=fy; //中間變量 } if(YK2==0)
44、 //初始狀態(tài),分鐘的個位為0 { delay(1); //延時去抖動 fg=fg+1; //分個位加1分 fy=fs*10+fg; //求出預(yù)置時間的分鐘值 f=fy; //中間變量 } Js_Scan(); } /********T0中斷服務(wù)函數(shù),每隔50ms產(chǎn)生一次中斷********/ void Js_50ms(void)interrupt 1 using 1 //定時器T0中斷
45、,用工作寄存器組1 { TH0=(65535-50000)/256; //定時器T0的高8位 TL0=(65535-50000)%256; //定時器T0的低8位 num++; //每50ms累加一次 Ptime(num); //調(diào)用時間處理函數(shù) } /**********************時間處理函數(shù)********************/ void Ptime(uchar time) { if(time==20)
46、 //如果為1s(50ms*20=1s) { num=0; m++; //每到1s,計時器累加1次 ms=m/10; //秒的十位 mg=m%10; //秒的個位 if(m==60) //如果為1min { m=0; //秒鐘置0 mg=m%10; //秒鐘的個位置0 ms=m/10; //秒鐘的十位
47、置0 f--; //分鐘開始在預(yù)設(shè)的比賽時間基礎(chǔ)上倒計時 fs=f/10; //分鐘的十位 fg=f%10; //分鐘的個位 if(f==0) //分鐘數(shù)倒計時到0 { TR0=0; //時間到,停止計時 } } } } /****************數(shù)碼管動態(tài)掃描顯示******************/ void Js_Scan(void) { uchar j;
48、 for(j=0;j<=5;j++) { S4=0;P0=LED_Num[mg];delay(1);S4=1; /*將秒鐘的個位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ S3=0;P0=LED_Num[ms];delay(1);S3=1; /*將秒鐘的十位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ S2=0;P0=LED_Num[fg];delay(1);S2=1; /*將分鐘的個位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ S1=0;P0=LED_Num[fs];delay(1)
49、;S1=1; /*將分鐘的十位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ } } (三)計分顯示設(shè)計 本系統(tǒng)是利用按鍵來實現(xiàn)兩隊的計分功能的,當(dāng)按一次加分鍵,在程序中要用兩個整形的變量作為A、B隊的分值計分器,程序里用sum及sum1分別表示B和A隊的分值。 如分別要在數(shù)碼管的每位上動態(tài)掃描顯示出來,就必須對兩隊所得的分?jǐn)?shù)進行分位計算。程序里分別用q、b、s、g表示B隊顯示屏的千位、百位、十位、個位;用q1、b1、s1、g1表示A隊顯示屏的千位、百位、十位、個位。通過按鍵判斷處理,判斷是加分還是減分,用函數(shù)void Key_if(void)來
50、實現(xiàn),用void Jf_Scan(void)函數(shù)進行動態(tài)掃描顯示分值。 嵌入式籃球計分屏計分顯示的部分實現(xiàn)程序如下: /*******************數(shù)碼管動態(tài)掃描顯示********************/ void Jf_Scan(void) { uchar j; for(j=0;j<=5;j++) { KL4=0;P0=LED_Num[g1];delay(1);KL4=1; /*將A隊分?jǐn)?shù)的個位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ KL3=0;P0=LED_Num[s1];delay(1);KL3=1; /*將A隊
51、分?jǐn)?shù)的十位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ KL2=0;P0=LED_Num[b1];delay(1);KL2=1; /*將A隊分?jǐn)?shù)的百位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ KL1=0;P0=LED_Num[q1];delay(1);KL1=1; /*將A隊分?jǐn)?shù)的千位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ CL4=0;P0=LED_Num[g];delay(1);CL4=1; /*將B隊分?jǐn)?shù)的個位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*
52、/ CL3=0;P0=LED_Num[s];delay(1);CL3=1; /*將B隊分?jǐn)?shù)的十位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ CL2=0;P0=LED_Num[b];delay(1);CL2=1; /*將B隊分?jǐn)?shù)的百位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ CL1=0;P0=LED_Num[q];delay(1);CL1=1; /*將B隊分?jǐn)?shù)的千位傳遞給譯碼器,通過按鍵,實現(xiàn)邊沿跳變,并把結(jié)果譯成相應(yīng)的段碼顯示出來*/ }} /*****************判斷是哪個隊加分或者減分*
53、****************/ void Key_if(void) { if(Key1==0) //當(dāng)按鍵按下時 { delay(1); //延時去抖動 sum=sum+1; //B隊加1分 } if(Key2==0 && sum>=1) //減分按鍵按下并且中得分不得少于1分 { delay(1); //延時去抖動 sum=sum-1;
54、 //B隊減1分 } if(Key3==0) //當(dāng)按鍵按下時 { delay(1); //延時去抖動 sum1=sum1+1; //A隊加1分 } if(Key4==0 && sum1>=1) //減分按鍵按下并且中得分不得少于1分 { delay(1); //延時去抖動 sum1=sum1-1; //A隊減1分 } q=0;
55、 // A隊分值的千位默認(rèn)為0 b=sum/100; //求出A隊分值的百位 s=sum/10-b*10; //求出A隊分值的十位 g=sum%10; //求出A隊分值的個位 q1=0; // B隊分值的千位默認(rèn)為0 b1=sum1/100; //求出B隊分值的百位 s1=sum1/10-b1*10;
56、 //求出B隊分值的十位 g1=sum1%10; //求出B隊分值的個位 } (四)鳴笛器設(shè)計 聲音的頻率范圍約在幾十到幾千赫茲,利用程序來控制單片機的P1.4口線的“高”電平或者“低”電平,在該口線上產(chǎn)生一定頻率的矩形波,街上喇叭就能發(fā)出一定頻率的聲音,通過延時程序控制“高”、“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。 要使喇叭出聲,就要給P1.4引腳上不同頻率的電平信號,如果我們要想喇叭發(fā)出“嘀——嗒”、“嘀——嗒”的鳴笛聲,只要給P1.4腳的高低電平延時不同即可。當(dāng)P3.2腳上的按鍵按下,就開始鳴笛,鳴笛的長短
57、用循環(huán)值控制。判斷鳴笛按鍵是否按下即P2.3腳上有沒有低電平,當(dāng)鍵按下,就鳴笛。本程序用void sound(void)來處理鳴笛。 嵌入式籃球計分屏鳴笛報警的部分實現(xiàn)程序如下: /***********************鳴笛處理***********************/ void sound(void) interrupt 0 using 0 //外部中斷0(),用工作寄存器組0 { uchar i,j; if(Int_key==0) //判斷鳴笛鍵是否按下,有按下就鳴笛 { for(i=0;i<8;i++)
58、 //控制一種發(fā)音的時間 { for(j=0;j<250;j++) //控制發(fā)音的頻率,延時長,頻率低些,音低 { music=~music; //取反 delay1(1); } //延時去抖動 } for(i=0;i<16;i++) //控制另一種發(fā)音的時間 { for(j=0;j<250;j++) //控制發(fā)音的頻率,延時短,頻率高些,音高 { music=~music; //取反 delay(1); } //
59、延時去抖動 } } else music=0; //喇叭不響 } 本節(jié)對嵌入式籃球計分屏的軟件部分進行了詳細設(shè)計并詳細介紹了本次設(shè)計所涉及到的原理,包括單片機的定時/計數(shù)原理和聲音的產(chǎn)生原理,單片機的定時/計數(shù)功能可以實現(xiàn)比賽雙方的計分和計時功能,利用發(fā)音原理可以實現(xiàn)本設(shè)計的鳴笛警示功能。 4 系統(tǒng)調(diào)試與結(jié)果分析 在數(shù)碼管模塊的設(shè)計時我們組忽略了P0口接負載是需要有上拉電阻來提高I/O口帶負載的能力,以至于所有數(shù)碼管均不工作,在老師的幫助下我們及時的加入上拉電阻,使數(shù)碼管工作,在設(shè)計過程中我們應(yīng)用了一個譯碼器來對單片機的I/O口進行擴
60、展。在軟件調(diào)試部分我們的數(shù)碼管倒計時部分總是不能正常工作,倒計時總是正著計時,我們組通過討論對送顯的數(shù)字個位進行取余操作才使數(shù)碼管正常工作。在按鍵環(huán)節(jié)的設(shè)計中我組只注重了硬件防抖而沒有在軟件部分進行操作致使設(shè)計的系統(tǒng)很不穩(wěn)定,在老師的幫助下我組又隊軟件部分進行防抖和延時操作,這樣才使得系統(tǒng)穩(wěn)定的運行。 圖4-1 計分模塊仿真原理圖 圖4-2 比分互換模塊仿真原理圖 圖4-3 計時器模塊仿真原理圖 圖4-4 蜂鳴器模塊仿真原理圖 5 結(jié)論 本設(shè)計對嵌入式籃球計分屏的軟件部分和硬件部分進行了詳細設(shè)計并詳細介紹了本次設(shè)計所涉及到的原理,包括單
61、片機的定時/計數(shù)原理和聲音的產(chǎn)生原理,單片機的定時/計數(shù)功能可以實現(xiàn)比賽雙方的計分和計時功能,利用發(fā)音原理可以實現(xiàn)本設(shè)計的鳴笛警示功能。通過以上的敘述本次設(shè)計的核心部分基本完成。在本次設(shè)計中我組學(xué)到了很多,同時也看到了自身的不足,我們不能很好的把學(xué)到的知識應(yīng)用于實踐中,在實踐過程中遇到問題不知如何解決,缺乏自學(xué)能力等各種不足。在本次設(shè)計中我們學(xué)到了好多,對單片機有了更進一步的認(rèn)識,對所學(xué)過的C語言數(shù)字電子和模擬電子作了很好的復(fù)習(xí)工作。在今后的學(xué)習(xí)過程中我組應(yīng)更加注重理論聯(lián)系實際。更好的把所學(xué)的知識運用到生活實踐中。在設(shè)計的過程中,不可避免地遇到了很多問題,發(fā)現(xiàn)了自己的很多不足,自己掌握的知識很
62、多都是一知半解,實踐經(jīng)驗及動手能力也比較薄弱,理論聯(lián)系實際的能力還急需提高,不管是在程序設(shè)計階段還是在仿真調(diào)試階段都出現(xiàn)了很多錯誤。我覺得以前不夠努力,不夠?qū)P?,才會有“書到用時方恨少”的體會,經(jīng)過這次設(shè)計我學(xué)到了很多知識,同時也端正了自己的學(xué)習(xí)態(tài)度。我曾經(jīng)因為對單片機的了解不是很多,因為實踐經(jīng)驗的缺乏,對此次設(shè)計沒有半點信心,但也曾因為仿真成功而熱情高漲。我想,生活就是這樣,汗水預(yù)示著結(jié)果也見證著收獲,勞動是人類生存永恒不變的話題。平心而論,這次設(shè)計花了我很多時間,耗費了很多心血,甚至有過恐慌,做不出來怎么辦。雖然很辛苦,但是學(xué)到了很多,我覺得很值。這是我們邁向社會,從事職業(yè)工作前一個必不可
63、少的過程,“實踐出真知”,通過此次設(shè)計,我認(rèn)識到只有理論聯(lián)系實際,多學(xué)習(xí)新知識,鞏固舊知識,溫故而知新。 參考文獻: [1]王守中.51單片機開發(fā)入門與典型實例〔M〕.北京∶黃炎,2007∶68-126 [2]徐愛鈞.單片機原理實用教程[M]. 第二版.北京∶索蓉霞,2011∶3-168 [3]蔡明文.單片機課程設(shè)計[M]. .北京∶余文君,2007∶2-120 [4]籃何慧.電子競賽單片機用用精講[M]. .北京∶萬隆,2009∶16-35 [5]宏晶科技.AT89C51D單片機用戶手冊 [6]谷樹忠.protel2004實用教程
64、[M].北京∶曲鑫,2012∶30-275
附錄一:protel原理圖
圖F1-1 protel原理圖
附錄二:protel PCB板圖
圖F2-1 protel PCB板圖
附錄三:protues電路圖
圖F3-1 protues電路圖
圖F3-2 protues原理仿真圖
附錄四:程序源代碼
系統(tǒng)完整源程序代碼
#include
65、signed int void delay(uchar x); //延時(時間較短) void delay1(uchar x); //延時(時間較長) void Js_Jf_Scan(void); //數(shù)碼管動態(tài)掃描顯示函數(shù) void Key_if(void); //A、B兩隊分值處理函數(shù) void Js_50ms(void); //定時50ms中斷函數(shù) void Key_Y(void); //預(yù)置時間函數(shù) void Ptime(uchar); //時間處理函數(shù) void
66、sound(void); //鳴笛警示函數(shù) sbit CL1=P2^0; //B隊4位計分?jǐn)?shù)碼管位控線 sbit CL2=P2^1; sbit CL3=P2^2; sbit CL4=P2^3; sbit KL1=P2^4; // A隊4位計分?jǐn)?shù)碼管位控線 sbit KL2=P2^5; sbit KL3=P2^6; sbit KL4=P2^7; sbit S1=P1^3; //驅(qū)動4位計時數(shù)碼管位控線 sbit S2=P1^2; sbit S3=P1^1; sbit S4=P1^0; sbit YK1=P1^6; //預(yù)置分鐘的十位 sbit YK2=P1^7; //預(yù)置分鐘的個位 sbit music=P1^4; //P1.4接喇叭,發(fā)聲,鳴笛 sbit Key1=P3^0; //B隊加分鍵 sbit Key2=P3^1; //B隊減分鍵 sbit Key3=
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 火力發(fā)電廠各設(shè)備的主要作用大全
- 3.高壓電工考試判斷練習(xí)題含答案
- 企業(yè)電氣防爆知識
- 13 低壓電工電工作業(yè)模擬考試題庫試卷含答案
- 電氣設(shè)備維修的十項原則
- 2.電氣電纜與直流模擬考試復(fù)習(xí)題含答案
- 電氣節(jié)能措施總結(jié)
- 2.電氣電機(一)模擬考試復(fù)習(xí)題含答案
- 接地電阻測量原理與測量方法
- 3.高壓電工作業(yè)模擬考試題庫試卷含答案
- 礦山維修電工安全技術(shù)操作規(guī)程
- 電工基礎(chǔ)口訣總結(jié)
- 3.某電廠值長面試題含答案解析
- 電工基礎(chǔ)知識順口溜
- 配電系統(tǒng)詳解