版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
.PAGE.目錄摘要…………2第1章引言1.1單片機(jī)的特點(diǎn)及發(fā)展概況…………31.2單片機(jī)的基本組成…………………31.3單片機(jī)的特點(diǎn)………31.4單片機(jī)的應(yīng)用………31.5單片機(jī)的發(fā)展概況…………………41.6單片機(jī)在籃球記分牌中的應(yīng)用……4第2章籃球記分牌硬件設(shè)計(jì)2.1設(shè)計(jì)題目分析………52.2系統(tǒng)硬件設(shè)計(jì)………52.3硬件設(shè)計(jì)電路圖……………………13第3章籃球記分牌系統(tǒng)軟件設(shè)計(jì)3.1軟件設(shè)計(jì)思路及程序流程圖………153.2程序清單……………26第4章畢業(yè)設(shè)計(jì)小結(jié)計(jì)心得及改進(jìn)………41致謝……………………42參考文獻(xiàn)……………………43摘要:單片機(jī)是把主要計(jì)算機(jī)功能部件都集成在一塊芯片上的微型計(jì)算機(jī)。它是一種集計(jì)數(shù)和多接口于一體的微控制器,被廣泛應(yīng)用在智能產(chǎn)品和工業(yè)自動(dòng)化上,而51單片機(jī)是個(gè)單片機(jī)中最為典型和最有代表性的一種本次畢業(yè)設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)一個(gè)籃球比賽記分牌,包括硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì)的主要任務(wù)是:LED數(shù)碼管顯示、按鍵控制系統(tǒng)設(shè)計(jì)以及輔助功能的設(shè)計(jì)。軟件設(shè)計(jì)包括:功能選擇、倒計(jì)時(shí)的實(shí)現(xiàn)。本文主要介紹了單片機(jī)實(shí)現(xiàn)籃球記分牌的整個(gè)設(shè)計(jì)流程,采用匯編語言編寫程序。本課題選擇AT89C51為核心控制元件,設(shè)計(jì)了日常比賽中用到的籃球記分牌。設(shè)計(jì)同時(shí)引用MAX7219專用LED驅(qū)動(dòng)芯片,解決了多位LED數(shù)碼管同時(shí)顯示的問題,硬件結(jié)構(gòu)緊湊,成本低。該單片機(jī)籃球記分牌可適應(yīng)不同籃球規(guī)則,通過按鍵修改每個(gè)設(shè)置。運(yùn)行可靠,具有一定的使用價(jià)值和競爭價(jià)值。關(guān)鍵詞:AT89C51單片機(jī)、LED數(shù)碼管、MAX7219、匯編、籃球記分牌第一章引言1.1單片機(jī)的特點(diǎn)及發(fā)展概況單片機(jī)是一個(gè)單芯片形態(tài),面向控制對(duì)象的嵌入式應(yīng)用計(jì)算機(jī)系統(tǒng).它的出現(xiàn)及發(fā)展使計(jì)算機(jī)技術(shù)從通用型數(shù)值計(jì)算領(lǐng)域進(jìn)入到智能化的控制領(lǐng)域.從此,計(jì)算機(jī)技術(shù)在兩個(gè)重要領(lǐng)域——通用計(jì)算機(jī)領(lǐng)域和嵌入式計(jì)算機(jī)領(lǐng)域都得到了極其重要的發(fā)展,并正在深深地改變著我們的社會(huì)。1.2單片機(jī)的基本組成單片機(jī)的結(jié)構(gòu)特征是將組成計(jì)算機(jī)的基本部件集成在一塊晶體芯片上,構(gòu)成一臺(tái)功能獨(dú)特的,完整的單片微型計(jì)算機(jī).1.3單片機(jī)的特點(diǎn)單片機(jī)獨(dú)特的結(jié)構(gòu)決定了它具有如下特點(diǎn).<1>高集成度,高可靠性單片機(jī)將各功能部件集成在一塊晶體芯片上,集成度很高,體積自然也是最小的.芯片本身是按工業(yè)測控環(huán)境要求設(shè)計(jì)的,內(nèi)部布線很短,其抗工業(yè)噪音性能優(yōu)于一般通用的CPU.單片機(jī)程序指令,常數(shù)及表格等固化在ROM中不易破壞,許多信號(hào)通道均在一個(gè)芯片內(nèi),故可靠性高.<2>控制功能強(qiáng)為了滿足對(duì)對(duì)象的控制要求,單片機(jī)的指令系統(tǒng)均有極豐富的條件:分支轉(zhuǎn)移能力,I/O口的邏輯操作及位處理能力,非常適用于專門的控制功能.<3>低電壓,低功耗為了滿足廣泛使用于便攜式系統(tǒng),許多單片機(jī)內(nèi)的工作電壓僅為1.8V~3.6V,而工作電流僅為數(shù)百微安.<4>優(yōu)異的性能價(jià)格比單片機(jī)的性能極高.為了提高速度和運(yùn)行效率,單片機(jī)已開始使用RISC流水線和DSP等技術(shù).單片機(jī)的尋址能力也已突破64KB的限制,有的已可達(dá)到1MB和16MB,片內(nèi)的ROM容量可達(dá)62MB,RAM容量則可達(dá)2MB.由于單片機(jī)的廣泛使用,因而銷量極大,各大公司的商業(yè)競爭更使其價(jià)格十分低廉,其性能價(jià)格比極高.1.4單片機(jī)的應(yīng)用由于單片機(jī)功能的飛速發(fā)展,它的應(yīng)用范圍日益廣泛,已遠(yuǎn)遠(yuǎn)超出了計(jì)算機(jī)科學(xué)的領(lǐng)域.小到玩具,信用卡,大到航天器,機(jī)器人,從實(shí)現(xiàn)數(shù)據(jù)采集,過程控制,模糊控制等智能系統(tǒng)到人類的日常生活,到處都離不開單片機(jī).其主要的應(yīng)用領(lǐng)域如下。<1>在測控系統(tǒng)中的應(yīng)用單片機(jī)可以用于構(gòu)成各種工業(yè)控制系統(tǒng),自適應(yīng)控制系統(tǒng),數(shù)據(jù)采集系統(tǒng)等.例如,工業(yè)上的鍋爐控制,電機(jī)控制,車輛檢測系統(tǒng),水閘自動(dòng)控制,數(shù)控機(jī)床及軍事上的雷達(dá),導(dǎo)彈系統(tǒng)等。<2>在智能化儀器儀表中的應(yīng)用單片機(jī)應(yīng)用于儀器儀表設(shè)備中促使儀器儀表向數(shù)字化,智能化,多功能化和綜合化等方向發(fā)展.單片機(jī)的軟件編程技術(shù)使長期以來測量儀表中的誤差修正,線性化的處理等難題迎刃而解。<3>在機(jī)電一體化中的應(yīng)用單片機(jī)與傳統(tǒng)的機(jī)械產(chǎn)品結(jié)合使傳統(tǒng)的機(jī)械產(chǎn)品結(jié)構(gòu)簡化,控制走向智能化,構(gòu)成新一代的機(jī)電一體化產(chǎn)品.這是機(jī)械工業(yè)發(fā)展的方向。<4>在智能接口中的應(yīng)用計(jì)算機(jī)系統(tǒng),特別是較大型的工業(yè)測控系統(tǒng)中采用單片機(jī)進(jìn)行接口的控制管理,單片機(jī)與主機(jī)并行工作,可大大提高系統(tǒng)的運(yùn)行速度.例如,在大型數(shù)據(jù)采集系統(tǒng)中,用單片機(jī)對(duì)模/數(shù)轉(zhuǎn)換接口進(jìn)行控制不僅可提高采集速度,還可以對(duì)數(shù)據(jù)進(jìn)行預(yù)處理.如數(shù)字濾波,誤差修正,線性化處理等.<5>在人類生活中的應(yīng)用單片機(jī)由于其價(jià)格低廉,體積小巧,被廣泛應(yīng)用在人類生活的諸多場合,如洗衣機(jī),電冰箱,空調(diào)器,電飯煲,視聽音響設(shè)備,大屏幕顯示系統(tǒng),電子玩具,信用卡,樓宇防盜系統(tǒng)等.單片機(jī)將使人類的生活更加方便舒適,豐富多彩。1.5單片機(jī)的發(fā)展概況單片機(jī)出現(xiàn)的歷史并不長,它的產(chǎn)生與發(fā)展和微處理器的產(chǎn)生與發(fā)展大體上同步.1970年微型計(jì)算機(jī)研制成功后,隨即在1971年,美國Intel公司生產(chǎn)出了4位單片機(jī)4004,它的特點(diǎn)是結(jié)構(gòu)簡單,功能單一,控制能力較弱,但價(jià)格低廉.1976年Intel公司推出了MCS-48系列單片機(jī),它以體積小,功能全,價(jià)格低等特點(diǎn)獲得了廣泛的應(yīng)用,成為單片機(jī)發(fā)展進(jìn)程中的一個(gè)重要階段,此可謂是第一代單片機(jī).在MCS-48系列單片機(jī)的基礎(chǔ)上,Intel公司在20世紀(jì)80年代初推出了第二代單片機(jī)的代表MCS-51系列單片機(jī).這一代單片機(jī)的主要技術(shù)特征是為單片機(jī)配置了完美的外部并行總線和串行通信接口,規(guī)范了特殊功能寄存器的控制模式,以及為增強(qiáng)控制功能而強(qiáng)化布爾處理系統(tǒng)和相關(guān)的指令系統(tǒng),為發(fā)展具有良好兼容性的新一代單片機(jī)奠定了良好的基礎(chǔ).近幾年出現(xiàn)了具有許多新特點(diǎn)的單片機(jī),可稱之為第三代單片機(jī).它以新一代的80C51系列單片機(jī)為代表.同時(shí)16位單片機(jī)也有很大發(fā)展.盡管目前單片機(jī)品種繁多,但其中最為典型的仍當(dāng)屬Intel公司的MCS-51系列單片機(jī).它的功能強(qiáng)大,兼容性強(qiáng),軟硬件資料豐富.國內(nèi)也以此系列的單片機(jī)應(yīng)用最為廣泛.直到現(xiàn)在MCS-51仍不失為單片機(jī)中的主流機(jī)型.在今后相當(dāng)長的時(shí)間內(nèi),單片機(jī)應(yīng)用領(lǐng)域中的8位機(jī)主流地位還不會(huì)改變.1.6單片機(jī)在籃球記分牌中的應(yīng)用由于本次設(shè)計(jì)的簡單籃球記分牌體積小,故要求其控制器體積更小以便能嵌入其結(jié)構(gòu)之中。單片機(jī)以微小的體積和編程的靈活性而產(chǎn)生多種控制功能,完全可以滿足需求。可以適應(yīng)不同規(guī)則下操作。其具體功能及實(shí)現(xiàn)在以下兩章做詳細(xì)介紹。第二章硬件設(shè)計(jì)2.1設(shè)計(jì)題目分析題目:籃球比賽電子記分牌題目要求:1.顯示球隊(duì)的英文名稱<縮寫>或用LED點(diǎn)陣顯示中文名2.顯示比分用三位數(shù)表示3.顯示比賽剩余時(shí)間,進(jìn)攻剩余時(shí)間,這些剩余時(shí)間變?yōu)?時(shí)發(fā)出相應(yīng)警報(bào)4.可用按鍵顯示修改球隊(duì)名稱,及比賽剩余時(shí)間,并設(shè)置暫停鍵。球隊(duì)名___vs___比分___:___比賽剩余時(shí)間__:__第__場進(jìn)攻剩余時(shí)間__系統(tǒng)硬件設(shè)計(jì)面板設(shè)計(jì):球隊(duì)名___VS___active球隊(duì)名___VS___active比分___:___startattacksetn比賽倒計(jì)時(shí)__:__setftupdown第_場進(jìn)攻倒計(jì)時(shí)__按按鍵操作籃球記分牌的實(shí)現(xiàn)方法有很多,可以分為兩大類:第一類是全部采用硬件實(shí)現(xiàn);第二類是采用硬件和軟件想結(jié)合的方法實(shí)現(xiàn)。這里采用單片機(jī)實(shí)現(xiàn)電子鐘屬于第二種方法。該設(shè)計(jì)的籃球記分牌基本功能如設(shè)計(jì)題目要求所述用三位英文字母縮寫代表球隊(duì)名,采用MAX7219專用LED驅(qū)動(dòng)芯片實(shí)現(xiàn)靜態(tài)顯示,共6位LED采用單片機(jī)的動(dòng)態(tài)掃描方式動(dòng)態(tài)顯示比分、比賽倒計(jì)時(shí)、進(jìn)攻倒計(jì)時(shí)、場次,共需要13位LED數(shù)碼管通過按鍵修改球隊(duì)名稱,及比賽剩余時(shí)間等,并設(shè)置暫停鍵,實(shí)現(xiàn)倒計(jì)時(shí)全部暫停。按鍵有6個(gè)分別為START鍵ATTACK鍵UP鍵DOWN鍵SETN鍵SETFT鍵和一個(gè)狀態(tài)開關(guān)active通過蜂鳴器發(fā)出倒計(jì)時(shí)到報(bào)警信號(hào),節(jié)時(shí)到報(bào)警2秒鐘,竟工倒計(jì)時(shí)到報(bào)警1秒按鍵及開關(guān)功能設(shè)定START鍵比賽開始/暫停ATTACK鍵進(jìn)攻開始UP鍵加1DOWN鍵減1SETN鍵設(shè)置球隊(duì)名、節(jié)時(shí)、節(jié)數(shù)、進(jìn)攻限時(shí)SETFT鍵修改比分、修正比賽時(shí)間、修正進(jìn)攻時(shí)間開關(guān)active比賽前/比賽中狀態(tài)開關(guān)硬件設(shè)計(jì)框圖:蜂鳴報(bào)警蜂鳴報(bào)警單片機(jī)鍵盤LED顯示系統(tǒng)硬件設(shè)計(jì)1.器件選型根據(jù)以上列出的主要功能,單片機(jī)可選用Atmel公司生產(chǎn)的,與8031完全兼容的AT89C51單片機(jī),該單片機(jī)除了具有8031所有的功能外,該單片機(jī)還帶有4KBdeFLASH的程序存儲(chǔ)器,外部不需要擴(kuò)展程序存儲(chǔ)器,此時(shí)P0、P1、P2、P3可以用做通用I/O口使用。另外,選用該單片機(jī)可以減低系統(tǒng)成本,由于不需要擴(kuò)展外部ROM存儲(chǔ)器,系統(tǒng)的數(shù)量減少,使硬件結(jié)構(gòu)更加緊湊,系統(tǒng)性能更好。MAX7219專用LED驅(qū)動(dòng)芯片,是一種高集成化的串行輸入/輸出的共陰極LED顯示驅(qū)動(dòng)器。每片可驅(qū)動(dòng)8位7段加小數(shù)點(diǎn)的共陰極數(shù)碼管,可以數(shù)片級(jí)聯(lián),而與微處理器的連接只需3根線。MAX7219內(nèi)部設(shè)有掃描電路,除了更新顯示數(shù)據(jù)時(shí)從單片機(jī)接收數(shù)據(jù)外,平時(shí)獨(dú)立工作,極大地節(jié)省了MCU有限的運(yùn)行時(shí)間和程序資源。由于一個(gè)按鍵要實(shí)現(xiàn)多種狀態(tài)轉(zhuǎn)換所以,按鍵采用獨(dú)立式鍵盤結(jié)構(gòu)。報(bào)警電路采用單音頻報(bào)警綜合其優(yōu)缺點(diǎn),LED顯示采用動(dòng)靜結(jié)合方式。2.MAX7219芯片簡介MAX7219芯片上包括BCD譯碼器、多位掃描電路、段驅(qū)動(dòng)器、位驅(qū)動(dòng)器和用于存放每個(gè)數(shù)據(jù)位的8×8靜態(tài)RAM以及數(shù)個(gè)工作寄存器。通過指令設(shè)置這些工作寄存器,可以使MAX7219進(jìn)入不同的工作狀態(tài)。A.管腳說明
圖1是MAX7219的管腳分布圖。其中:
<1>DIN為串行數(shù)據(jù)輸入端。當(dāng)CLK為上升沿時(shí),數(shù)據(jù)被載入16b內(nèi)部移位寄存器。
<2>CLK為串行時(shí)鐘輸入端。其最大工作頻率可達(dá)10MHz。
<3>LOAD為片選端,當(dāng)LOAD為低電平時(shí),芯片接收來自DIN的數(shù)據(jù),LOAD回到高電平時(shí),接收的數(shù)據(jù)將被鎖定。
圖2反映了DIN,CLK和LOAD的工作時(shí)序。
<4>DIG0~DIG7為吸收顯示器共陰極電流的位驅(qū)動(dòng)線。其最大值可達(dá)500mA,關(guān)閉狀態(tài)時(shí),輸出+VCC。
<5>SEGA~SEGG,DP為驅(qū)動(dòng)顯示器7段及小數(shù)點(diǎn)的輸出電流,一般為40mA左右,可軟件調(diào)整,關(guān)閉狀態(tài)時(shí),接入GND。
<6>DOUT為串行數(shù)據(jù)輸出端,通常直接接入下一片MAX7219的DIN端。B.操作指令
MAX7219有5個(gè)工作狀態(tài)寄存器,分別是譯碼方式選擇、亮度調(diào)節(jié)、掃描位數(shù)設(shè)定、待機(jī)開關(guān)、顯示器檢測。除空指令外,7219的所有操作指令都是2個(gè)字節(jié),前一個(gè)是操作代碼,后一個(gè)是操作數(shù)。下面用十六進(jìn)制數(shù)對(duì)控制命令加以說明。C.譯碼方式選擇
操作代碼為"09H",操作數(shù)為"0"或"0FFH"。選中"0"則不使用BCD譯碼器,在顯示數(shù)字或符號(hào)時(shí),按每段點(diǎn)亮與否編排傳送碼。而選中"0FFH"時(shí),則按8421標(biāo)準(zhǔn)二進(jìn)制編碼來代表相應(yīng)的顯示數(shù)字,如表1所示。需要說明的是,無論譯碼與否,表1中操作數(shù)的最高位D7均為小數(shù)點(diǎn),"1"為亮,"0"為滅,所以表1中所列是小數(shù)點(diǎn)不亮?xí)r的操作數(shù)。D.亮度調(diào)節(jié)
操作代碼為"0AH",操作數(shù)如表2所示。這個(gè)指令可以用來調(diào)節(jié)顯示器的亮度,改變其操作數(shù)可以改變MAX7219內(nèi)部掃描脈沖的寬度,從而使電流的平均值有所變化,這個(gè)電流平均值可以從最小的1/32至最大的31/32之間進(jìn)行16級(jí)調(diào)節(jié)。
MAX7219還提供了一種硬件調(diào)整顯示器亮度的方式,即通過第18管腳的ISET和+VCC之間跨接的一個(gè)電阻來調(diào)節(jié)其亮度,段驅(qū)動(dòng)平均電流大約為流過此電阻電流的100倍,實(shí)際應(yīng)用中常用十幾kΩ的電阻直接接入即可。
E.掃描位數(shù)設(shè)定
操作代碼為"0BH",操作數(shù)如表3所示。如果所用的顯示器少于8位,則應(yīng)通過這條指令設(shè)置相應(yīng)的位數(shù)。因?yàn)樵O(shè)置的位數(shù)如果比實(shí)際使用的位數(shù)大,就會(huì)形成"虛位",而一旦對(duì)"虛位"進(jìn)行操作,將會(huì)引起整個(gè)顯示器的混亂,這是需要加以注意的。
另外,掃描位數(shù)的設(shè)置,會(huì)影響到掃描頻率的變化,相應(yīng)地,顯示器亮度也會(huì)隨著變化,所以應(yīng)先確定掃描位數(shù),再設(shè)置顯示器亮度。
F.待機(jī)開關(guān)
操作代碼為"0CH",操作數(shù)為"0"或"1"。
操作數(shù)為"0",則顯示器不工作<滅燈>,反之,顯示器正常工作。待機(jī)狀態(tài)下,7219的工作電流僅為150μA。
G.顯示器檢測
操作代碼為"0FH",操作數(shù)為"0"或"1"。
選擇操作數(shù)為"1"時(shí),可點(diǎn)亮整個(gè)顯示器,通常用來檢查數(shù)碼管及連接電路是否存在故障。檢測時(shí),不會(huì)改變各位原有的顯示數(shù)據(jù),即檢測完畢后,再送入不檢測指令"0",又可恢復(fù)顯示原數(shù)據(jù)。
H.位操作指令
位操作指令就是對(duì)8個(gè)數(shù)碼管顯示內(nèi)容的操作,也是2個(gè)字節(jié),第1個(gè)字節(jié)是位的代碼,如表4所示,第2個(gè)字節(jié)則根據(jù)譯碼方式的選擇,來使用表1中的編碼。需要說明的是,上述所有指令的輸入,不分先后<但每個(gè)指令2個(gè)字節(jié)的秩序不能顛倒>。通常,前5條指令一般在上電初始化程序中加以設(shè)置,而在工作程序中,僅使用位操作指令即可。另外,MAX7219上電時(shí),譯碼方式、亮度調(diào)節(jié)、掃描位數(shù)、待機(jī)開關(guān)、顯示檢測等5個(gè)控制寄存器全部歸零。I.與單片機(jī)的連接
MAX7219與51單片機(jī)的連接形式有2種,一種是將MAX7219的3個(gè)輸入端DIN,CLK和LOAD與1951單片機(jī)的任意3個(gè)端口連接;一種則是直接與51單片機(jī)的串行接口相連。以下分別介紹這2種方式。
J.
與單片機(jī)任意3個(gè)端口連接的方式
假定按圖3所示方法連接。MAX7219每次接收2個(gè)字節(jié),高位在先,其指令可編寫為:
******以下是MAX7219與單片機(jī)串行接口及MAX7219之間多片聯(lián)級(jí)知識(shí),在此只作粗略介紹*****K.用單片機(jī)的串行接口
如果將MAX7219的DIN接入單片機(jī)的RXD,CLK接入TXD,LOAD選任一口線,則可通過單片機(jī)串行口對(duì)MAX7219像對(duì)其他設(shè)備一樣按模式0進(jìn)行發(fā)送操作。但由于串行口數(shù)據(jù)緩沖寄存器SBUF為右移發(fā)送,所以MAX7219的所有命令和操作數(shù)與第一種方式相比均應(yīng)反轉(zhuǎn),見表5~9。注意表6中操作數(shù)的最低位D0為小數(shù)點(diǎn)。L.MAX7219的多片級(jí)聯(lián)
MAX7219可以多片級(jí)聯(lián),只需將上一片的DOUT連接下一片的DIN即可,CLK和LOAD線全部公用,連在一起。
在多片級(jí)聯(lián)時(shí),對(duì)MAX7219的操作指令要注意LOAD信號(hào)的起止點(diǎn),操作開始時(shí),LOAD下降為低電平,按照每片MAX7219兩個(gè)字節(jié),如果有N片,則
發(fā)送2N個(gè)字節(jié)后,LOAD上升為高電平。還需注意的是,先發(fā)送的指令將到達(dá)級(jí)聯(lián)的最后一片。
還有一條專為MAX7219多片級(jí)聯(lián)設(shè)置的一條空操作指令,操作代碼為"00H"。當(dāng)不希望對(duì)級(jí)聯(lián)中的某片或某幾片MAX7219進(jìn)行操作時(shí),就可以用空操作指令跳過這片或這幾片。例如,如果4個(gè)7219串聯(lián),為了寫入第4個(gè)芯片,要在3個(gè)空操作指令碼后發(fā)送2個(gè)字節(jié)的指令,當(dāng)LOAD升為高電平時(shí),數(shù)據(jù)被鎖存到所有設(shè)備,前3個(gè)芯片收到的是空操作命令,而第4個(gè)收到預(yù)期的數(shù)據(jù)。在本次設(shè)計(jì)中采用MAX7219專用LED驅(qū)動(dòng)芯片,有以下幾個(gè)優(yōu)勢:首先,MAX7219每片可以驅(qū)動(dòng)8位LED數(shù)碼管,可以多片級(jí)聯(lián),在本次設(shè)計(jì)中用到6位LED顯示,不需要級(jí)聯(lián)。第二,MAX7219與單片機(jī)相連只需要3個(gè)口線,而采用MC14495則需要8個(gè)口線,這樣就大大節(jié)省了口線資源;第三,MAX7219內(nèi)部設(shè)有掃描電路,除了更新顯示數(shù)據(jù)時(shí)從單片機(jī)接收數(shù)據(jù)外,平時(shí)獨(dú)立工作,極大地節(jié)省了MCU有限的運(yùn)行時(shí)間和程序資源。綜上所述,結(jié)合了單片機(jī)的動(dòng)態(tài)顯示和靜態(tài)顯示的優(yōu)缺,達(dá)到優(yōu)勢互補(bǔ),最終選擇MAX7219做靜態(tài)顯示球隊(duì)名稱,單片機(jī)動(dòng)態(tài)掃描13位LED顯示比分、時(shí)間等2.3硬件電路設(shè)計(jì)在該電路中,無需進(jìn)行存儲(chǔ)器和I/O口的擴(kuò)展,P0-P3口都可以作通用I/O口來實(shí)現(xiàn)其他功能。P1.2~P1.7口作獨(dú)立式鍵盤的輸入口線,由于P1口內(nèi)部沒有上拉電阻,所以在P1口外部需要外接上拉電阻。獨(dú)立式鍵盤采用一鍵多功能方式,與矩陣鍵盤相比,按鍵設(shè)置要少。矩陣鍵盤適用于按鍵較多、功能單一的情況。一鍵多功能,可以減少鍵的使用,相比在該設(shè)計(jì)情況下,用獨(dú)立式鍵盤更好。蜂鳴器由TTL系列集成電路7406驅(qū)動(dòng),通過單片機(jī)控制實(shí)現(xiàn)報(bào)警功能單片機(jī)1.0引腳輸出高電平時(shí),7406輸出低電平驅(qū)動(dòng)蜂鳴器發(fā)聲,P1.0輸出低電平時(shí)蜂鳴器停止發(fā)聲。P0.0~P0.2口與MAX7219的數(shù)據(jù)端口連接,P0.0和P0.1、P0.2分別MAX7219模塊DIN、LOAD、CLK端口相連,實(shí)現(xiàn)單片機(jī)與MAX7219模塊的數(shù)據(jù)傳輸與控制。P3口作為LED〔共陰極七段碼輸出端口,外加TTL7407驅(qū)動(dòng),數(shù)碼管一般點(diǎn)亮電流為10mA左右,電流過大會(huì)損壞,電流太小數(shù)碼管太暗,看不清晰。綜合電流及驅(qū)動(dòng)等因素考慮,選擇7407后電阻選擇1K。顯示子程序分為動(dòng)態(tài)顯示子程序和靜態(tài)顯示子程序,動(dòng)態(tài)顯示與靜態(tài)顯示比較各有優(yōu)缺。靜態(tài)顯示的亮度高,占用CPU的時(shí)間短,但它的成本高。為了簡化硬件電路,降低成本,在單片機(jī)應(yīng)用系統(tǒng)中采用動(dòng)態(tài)掃描的方法,解決多位LED顯示問題。動(dòng)態(tài)掃描顯示的硬件接口簡單,只需一個(gè)公共的七段碼輸出口〔字形口一個(gè)選擇顯示位的數(shù)位選擇口〔字位口,顯示時(shí),從左到右輪流點(diǎn)亮每位顯示器,只要保證掃描周期不超過一定的限度〔一般在20ms以下由于視覺的暫留,則可達(dá)到"同時(shí)"顯示各位不同的數(shù)字或字符的目的。動(dòng)態(tài)顯示的優(yōu)點(diǎn)是成本低,接口電路簡單,但它要求CPU繁地為顯示服務(wù)??紤]到成本和CPU負(fù)擔(dān),初期采用8155擴(kuò)展芯片,完全用動(dòng)態(tài)顯示的方案不可取,采用Motorola公司生產(chǎn)的MC14495芯片結(jié)合動(dòng)態(tài)顯示接口資源不夠用需要擴(kuò)展,暫時(shí)取消。最后引進(jìn)MAX7219專用LED驅(qū)動(dòng)芯片解決了單片機(jī)接口問題,結(jié)合動(dòng)靜態(tài)顯示的優(yōu)點(diǎn),最終得到如上設(shè)計(jì)的電路圖。系統(tǒng)軟件設(shè)計(jì)3.1軟件設(shè)計(jì)思路和程序流程圖根據(jù)系統(tǒng)的功能要求和硬件的連接情況,軟件可分為:T0、T1定時(shí)中斷模塊和主程序模塊。兩個(gè)中斷模塊都設(shè)定10ms基本定時(shí),中斷100次為1s,進(jìn)而實(shí)現(xiàn)分、秒的計(jì)時(shí)功能,以及蜂鳴器的開關(guān)控制。主程序模塊通過循環(huán)執(zhí)行的方式實(shí)現(xiàn)以下功能:判斷比賽前/中,比賽前調(diào)用靜態(tài)顯示子程序顯示球隊(duì)名稱,比賽中則調(diào)用動(dòng)態(tài)顯示子程序顯示比分、比賽時(shí)間、進(jìn)攻時(shí)間、場次〔節(jié)時(shí),若有按鍵按下,則調(diào)用鍵盤處理子程序。主程序模塊的流程圖如3—1所示:系統(tǒng)初始化系統(tǒng)初始化調(diào)動(dòng)態(tài)顯示子程調(diào)鍵處理子程調(diào)靜態(tài)顯示子程N(yùn)Y圖3-1主程序流程圖開始比賽中?讀active鍵在中斷程序中,先重裝定時(shí)器初值,基本計(jì)時(shí)單元加1,然后進(jìn)行分、秒的計(jì)時(shí),若倒計(jì)時(shí)為0則打開蜂鳴器,持續(xù)蜂鳴設(shè)定的時(shí)間后自動(dòng)停止。T0、T1中斷服務(wù)的流程圖如圖3-2、3-3所示。每節(jié)比賽結(jié)束后,計(jì)數(shù)器R7加1,到達(dá)比賽前設(shè)定的節(jié)數(shù)時(shí),R7清0,相應(yīng)的顯示0節(jié),以表示比賽結(jié)束。T0、T1定時(shí)中斷采用工作方式1〔16位定時(shí)器,由于系統(tǒng)時(shí)鐘頻率為12MHZ,機(jī)器周期為1us。要實(shí)現(xiàn)10ms的定時(shí)方式,在T0、T1的初值為X=65536-12*100000*0.01/12=55536=D80FH倒計(jì)時(shí)以二進(jìn)制計(jì)數(shù),在送入顯示之前先拆分為單個(gè)BCD碼,分別送入相對(duì)應(yīng)的顯示緩沖區(qū)。T0中斷子程序T0中斷子程序置T0初值,計(jì)時(shí)單元加1FM=1?到1s基本單元清0,秒單元減1,修改顯緩到60次分單元減1,秒單元清0倒計(jì)時(shí)為0開蜂鳴FM=1R7超過設(shè)定節(jié)數(shù)R7=0返回到2秒停〔T0蜂鳴NNNNNYYYY圖3-2T0中斷子程序流程圖計(jì)數(shù)寄存單元R7加1停T1,進(jìn)攻停止,進(jìn)攻顯示‘00’T1中斷子程T1中斷子程置T1初值,計(jì)時(shí)單元加1FM=1到1s基本單元清0,秒單元減1倒計(jì)時(shí)為0進(jìn)攻限時(shí)清0,開蜂鳴FM=1返回到1s??!睺1進(jìn)攻倒計(jì)時(shí)NNNYYY圖3-3T1中斷子程序當(dāng)有鍵按下是先判斷active開關(guān)閉合與否,開關(guān)閉合P1.1低電平,比賽開始,相應(yīng)的SETN鍵無效,就是說比賽中先前設(shè)定的比賽規(guī)則和球隊(duì)名稱不可改變;相反開關(guān)打開P1.1高電平,比賽之前,SETFT鍵無效,無法修改比分和時(shí)間,可以保持比分不變。這樣的設(shè)計(jì)可以防止誤動(dòng)作。有鍵按下時(shí),先延時(shí)10ms去除抖動(dòng)影響,確定有鍵按下時(shí)調(diào)用鍵處理子程序。鍵共有6個(gè)按鍵流程圖如圖3-4,根據(jù)按鍵的不同,跳轉(zhuǎn)到相應(yīng)的鍵處理小程序?!?SETN鍵,根據(jù)按SET鍵的次數(shù),可以有不同的狀態(tài),根據(jù)這些狀態(tài)通過UP鍵和DOWN鍵作出相應(yīng)的修改,SETN鍵的狀態(tài)轉(zhuǎn)換圖及流程圖如圖3-5和圖3-6。SETN鍵設(shè)置球隊(duì)名稱。鍵處理子程鍵處理子程延時(shí)10毫秒延時(shí)10毫秒N判斷按鍵N判斷按鍵YYDOWNUPATTACKKSTARTSETFTSETNDOWNUPATTACKKSTARTSETFTSETNKEY-END返回返回圖3-4鍵處理子程〔2SETFT鍵,根據(jù)按SETFT鍵的次數(shù),可以有不同的狀態(tài),根據(jù)這些狀態(tài)通過UP鍵和DOWN鍵作出相應(yīng)的修改,SETNFT鍵的狀態(tài)轉(zhuǎn)換圖及流程圖如圖3-7和圖3-8。SETFT鍵設(shè)置比分、修改時(shí)間等。〔3START鍵,START鍵有兩種狀態(tài),開始和暫停。STARTVAL值=1比賽開始,比賽倒計(jì)時(shí)開始,進(jìn)攻倒計(jì)時(shí)開始;再次按下START鍵時(shí)STARTVAL值=0,比賽暫停,比賽倒計(jì)時(shí)和進(jìn)攻倒計(jì)時(shí)都停止,并保持原數(shù)據(jù)不變。〔4ATTACK鍵,ATTACK鍵也有兩種狀態(tài),開始和停止。按下ATTACK鍵,ATTACKVAL值=1,啟動(dòng)進(jìn)攻倒計(jì)時(shí);再次按下ATTACK鍵,ATTACKVAL值=0,停止進(jìn)攻倒計(jì)時(shí),并重賦進(jìn)攻初值。〔5UP和DOWN鍵,實(shí)現(xiàn)加1和減1或者指向上一位字母和指向下一位字母的功能。UP鍵和DOWN鍵分比賽與否實(shí)現(xiàn)不同的加減。具體情況如圖3-9和圖3-10SETNSETN比賽開始?讀active鍵SETNCNT值加1到10次?SETNCNT值清0NNYY轉(zhuǎn)KEY-END圖3-5SETN鍵系統(tǒng)上電系統(tǒng)上電SETNCNT=0正常工作狀態(tài)SETNCNT=1設(shè)置A-1名稱SETNCNT=2設(shè)置A-2名稱按SETN鍵SETNCNT=3設(shè)置A-3名稱按SETN鍵SETNCNT=4設(shè)置B-1名稱SETNCNT=7設(shè)置節(jié)數(shù)SETNCNT=8設(shè)置節(jié)時(shí)SETNCNT=5設(shè)置B-2名稱SETNCNT=6設(shè)置B-3名稱SETNCNT=9設(shè)置進(jìn)攻限時(shí)按SETN鍵按SETN鍵按SETN鍵按SETN鍵按SETN鍵按SETN鍵按SETN鍵按SETN鍵SETN狀態(tài)轉(zhuǎn)換圖圖3-6SETN鍵狀態(tài)轉(zhuǎn)換圖SETFTSETFT比賽開始?讀active鍵SETFTCNT值加1到5次?SETFTCNT值清0NNYY轉(zhuǎn)KEY-END圖3-7SETFT鍵系統(tǒng)上電系統(tǒng)上電SETFTCNT=0正常工作狀態(tài)按SETFT鍵SETFTCNT=1設(shè)置A比分SETFTCNT=2設(shè)置B比分按SETFT鍵SETFTCNT=3修改計(jì)時(shí)時(shí)間SETFTCNT=4修改進(jìn)攻限時(shí)按SETFT鍵按SETFT鍵按SETFT鍵SETFT狀態(tài)轉(zhuǎn)換圖圖3-8SETFT鍵狀態(tài)轉(zhuǎn)換圖UP鍵UP鍵比賽開始?讀active值判斷SETFTCNT值012345678901234NNYYN……轉(zhuǎn)KEY-ENDY圖3-9UP鍵DOWN鍵DOWN鍵比賽開始?讀active值判斷SETFTCNT值012345678901234NNYYN……轉(zhuǎn)KEY-ENDY圖3-10DOWN鍵顯示子程序分為動(dòng)態(tài)顯示子程序和靜態(tài)顯示子程序,動(dòng)態(tài)顯示與靜態(tài)顯示比較各有優(yōu)缺。靜態(tài)顯示的亮度高,占用CPU的時(shí)間短,但它的成本高。為了簡化硬件電路,降低成本,在單片機(jī)應(yīng)用系統(tǒng)中采用動(dòng)態(tài)掃描的方法,解決多位LED顯示問題。動(dòng)態(tài)掃描顯示的硬件接口簡單,只需一個(gè)公共的七段碼輸出口〔字形口一個(gè)選擇顯示位的數(shù)位選擇口〔字位口,顯示時(shí),從左到右輪流點(diǎn)亮每位顯示器,只要保證掃描周期不超過一定的限度〔一般在20ms以下由于視覺的暫留,則可達(dá)到"同時(shí)"顯示各位不同的數(shù)字或字符的目的。動(dòng)態(tài)顯示的優(yōu)點(diǎn)是成本低,接口電路簡單,但它要求CPU頻繁地為顯示服務(wù)。圖3-11為動(dòng)態(tài)顯示流程圖,圖3-12是靜態(tài)顯示流程圖??紤]到成本和CPU負(fù)擔(dān),初期采用8155擴(kuò)展芯片,完全用動(dòng)態(tài)顯示的方案不可取,采用Motorola公司生產(chǎn)的MC14495芯片結(jié)合動(dòng)態(tài)顯示成本高,也不可取。最后引進(jìn)MAX7219專用LED驅(qū)動(dòng)芯片解決了單片機(jī)接口問題,結(jié)合動(dòng)靜態(tài)顯示的優(yōu)點(diǎn),最終得到動(dòng)靜結(jié)合的設(shè)計(jì)方案。表3-1動(dòng)態(tài)顯示七段碼〔字形碼表顯示字符D7D6D5D4D3D3D1D0七段碼dpgfedcba0001111113FH10000001106H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FH.1000000080H空白0000000000H動(dòng)態(tài)顯示子程<動(dòng)態(tài)顯示子程<R0>顯緩首址<R1>左起第1位<R2>左起第9位關(guān)顯示從顯緩中取數(shù)查七段碼輸出七段碼延時(shí)1ms修改顯緩指針修改數(shù)位代碼13位掃描完完N返回Y圖3-11動(dòng)態(tài)顯示流程圖定義端口MAX7219初始化〔R3顯緩首址〔R4左起第1位〔R5顯示位數(shù)從顯緩中取數(shù)查表求字母七段碼寫入七段碼值寫入數(shù)位值修改顯緩指針修改數(shù)位代碼所有數(shù)據(jù)寫入完畢?返回MAX7219顯示子程序NY圖3-12靜態(tài)顯示流程圖表3-2MAX7219靜態(tài)顯示字母七段碼表顯示字符D7D6D5D4D3D2D1D0數(shù)碼顯示七段碼值dpgfedcbaA1111011177HB111111117FHC101100014EHD101111117EHE111110014FHF1111000147HG111111015FHH1111011037HI1000011030HJ1000111038HK1011011036HL101110000EHM1100111179HN1101010076HO1110001163HP1111001167HQ1110011173HR1111000127HS111011015BHT1100011031HU101111103EHV1110000003HW111110000FHX1010010012HY11111103BHZ110110116DH黑屏0000000000H程序清單:;定義引腳SPKBITP1.0;蜂鳴器開關(guān)DINBITP0.0;P0.0—P0.2為MAX7219模塊控制端口LOADBITP0.1CLKBITP0.2ACTIVEBITP1.0; ;比賽前/比賽中狀態(tài)開關(guān);RAM區(qū)分配T0CNTEQU30H;T0基本計(jì)時(shí)單元T1CNTEQU31H;T1基本計(jì)時(shí)單元ASCOREEQU32H;球隊(duì)"A"比分單元BSCOREEQU33H;球隊(duì)"B"比分單元MINUTEEQU34H;計(jì)時(shí)分單元SECONDEQU35H;計(jì)時(shí)秒單元LSECONDEQU36H;進(jìn)攻限時(shí)秒單元SCENEEQU37H;節(jié)數(shù)〔場次單元LED_BUFEQU40H;動(dòng)態(tài)顯緩SETNCNTEQU50H;SETN鍵按鍵次數(shù)存放單元SETFECNTEQU51H;SETFT鍵按鍵次數(shù)存放單元DISP_EQUEQU52H;靜態(tài)顯緩;程序入口ORG0000HLJMPMAIN;T0中斷入口ORG000BHLJMPIT0P;T1中斷入口ORG0010HLJMPIT1P******主程序*****ORG0040HMAIN:MOVSP,#60H;設(shè)置堆棧指針MOVTMOD#11H;設(shè)置T0,T1為16位定時(shí)器方式MOVTH0,#0D8H;置T0初值MOVTL0,#0F0HMOVT0CNT,#00H;T0中斷次數(shù)清零MOVTH1,#0D8H;置T1初值MOVTL1,#0F0HMOVT1CNT,#00HMOVIE,#82H;中斷允許CLRAMOVT0CNT,A;計(jì)數(shù)單元清0MOVT1CNT,AMOVASCORE,A;動(dòng)態(tài)顯示單元清零MOVBSCOR,AMOVMINETE,AMOVSECOND,AMOVLSECODN,AMOVSETNCNT,A;SETN、SETFT按鍵次數(shù)清零MOVSETFTCNT,AMOVSCENE,#01H;節(jié)數(shù)置初值1MAIN_LP:SETBP1.1;判斷比賽否JNBP1.1,JX;比賽中調(diào)動(dòng)態(tài)顯示T11:LCALLDISPMOVP1,#0FFHMOVA,P1ANLA,#0FCCJNEA,#0FC,K_PRESS;有鍵按下調(diào)建處理子程序SJMPMAIN_LPJX:LCALLMAX_DISP;比賽前則調(diào)用靜態(tài)顯示子程序LJMPT11K_PRESS:LCALLKEY_PRGSJMPMAIN_LP;無建按下,繼續(xù)循環(huán)******動(dòng)態(tài)顯示子程序*****:DISP:MOVR0,#40H;R0指向動(dòng)態(tài)顯緩首址MOVR1,#7FH;左邊第一位數(shù)位代碼MOVR2,#0FFH;左邊第9位數(shù)位代碼MOVR3,#0FFH;延時(shí)常數(shù)MOVA,#0FFH;全滅數(shù)位代碼DISP1:MOVDPTR,#0A0H;字位口地址MOVXDPTR,AMOVA,R0MOVDPTR,#SGTR;查表求七段碼MOVA,A+DPTRMOVCDPTR,#0B0H;字形口MOVXDPTR,A;輸出七段碼MOVDPTR,#0A0HDJNZR3,DELYDELY:INCR0;指向下一顯緩單元LP:SETBC;置一進(jìn)位標(biāo)志MOVA,R2,RRCA;R2、R3數(shù)據(jù)帶進(jìn)位右移MOVR2,AMOVA,R3RRCAMOVR3,A;右移13次停止ACC.2,LPRETORG0200H;數(shù)字七段碼表SGTR:DB3FH,06H,5BH,4FH,66H,6DH,DB7DH,07H,7FH,6FH,80H,00H*****靜態(tài)顯示子程序*****JX:LCALLPROCESS;調(diào)初始化子程LCALLDISPLY;調(diào)顯示子程LJMPT11;初始化MAX7219PROCESS:MOVA,#0BH;顯示位數(shù)設(shè)定〔6位MOVB,#05HLCALLW_7219MOVA,#09H;不使用BCD譯碼MOVB,#00HLCALLW_7219MOVA,#0AH;亮度設(shè)定MOVB,#09HLCALLW_7219MOVA,#0CH;待機(jī)開關(guān)打開,LED正常顯示MOVB,#01HLCALLW_7219RETDISPLAY:MOVR0,#DISP_BUF;靜態(tài)顯緩首址MOVR4,#01H;數(shù)位第一位MOVR3,#06H;設(shè)定六位顯示C_DISP:MOVA,R0MOVDPTR,#CHARTAB;查字母表MOVCA,A+DPTR;得字母七段碼MOVB,A;向MAX7219寫入數(shù)據(jù)MOVA,R4LCALLW_7219INCR0;指向下一位顯緩INCR4;指向下一位數(shù)位DJNZR3,C_DISP;判斷六個(gè)數(shù)據(jù)寫入完?RETW_7219:CLRLOAD;MAX7219入數(shù)據(jù)子程序LCALLSD_7219;LOAD低電平寫入有效MOVA,BLCALLSD_7219SETBLOADRETSD_7219:MOVR6,#06H;六個(gè)數(shù)據(jù)C_SD:NOPCLRCLK;數(shù)據(jù)左移顯示RLCAMOVDIN,CNOPSETBCLKDJNZR6,C_SDRETORG1000H;字母七段碼表CHARTAB:DB77H,7FH,4EH,7EH,4FH,47H,5FH,37HDB30H,38H,36H,0EH,79H,76H,63H,67HDB73H,27H,5BH,31H,3EH,03H,0F,12HDB3BH,6DH,80H,00H*****鍵處理子程*****KEY_PRG:MOVR5,#0AHLCALLDELAY_MS;延時(shí)10msMOVP1,#0FFH;讀鍵盤端口MOVA,P1ANLA,#FCH;屏蔽低兩位JNBACC.2;K_START鍵JNBACC.3;K_ATTACK鍵JNBACC.4;K_UP鍵JNBACC.5;K_DOWN鍵JNBACC.6;K_SETN鍵JNBACC.7;K_SETFT鍵SJMPKEY_END;無建按下,退出K_START:PLCSTARTVAL;STARTVAL值求反JNBSTARTVAL,PS1;STARTVAL值=1,啟動(dòng)T0、T1比賽開始,進(jìn)攻倒計(jì)時(shí)開始SETBET0SETBTR0SETBET1SETBTR1SJMPKEY-ENDPS1:CLRET0;STARTVAL值=0,停止CLRTR0T0、T1,比賽暫停,進(jìn)攻計(jì)時(shí)暫停CLRET1CLRTR1K_ATTACK:PLCATTACKVAL;進(jìn)攻標(biāo)志值為1,啟動(dòng)進(jìn)攻倒計(jì)時(shí)JNBATTACKVAL,PS2SETBET1SETBTR1PS2:CLRET1CLRTR1CLR#4AH;清進(jìn)攻倒計(jì)時(shí)顯緩CLR#4BHSJPMKEY-ENDKEY_UP:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#01H,UP_A.2;SETN鍵按下第1次,設(shè)置球隊(duì)"A"第一位LCALLDISP_CHAR;調(diào)靜態(tài)顯示CLRR3MOVDPTR,CHARTAB;查表INCR3CJNER3,#26,NEXT;字母超過"Z"則轉(zhuǎn)NEXTMOVA,R3MOVCA,A+DPTRMOV52H,ANEXT:CLRR3;指針清零SJMPKEY-ENDUP_A.2:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#02H,UP_A.3;SETN鍵按下第2次,設(shè)置球隊(duì)"A"第2位LCALLDISP_CHAR;調(diào)靜態(tài)顯示CLRR3MOVDPTR,CHARTAB;查表INCR3CJNER3,#26,NEXT;字母超過"Z"則轉(zhuǎn)NEXTMOVA,R3MOVCA,A+DPTRMOV53H,ANEXT:CLRR3;指針清零SJMPKEY-ENDUP_A.3:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)MOVSETNCNTCJNEA,#03H,UP_B.1;SETN鍵按下第3次,設(shè)置球隊(duì)"A"第3位LCALLDISP_CHAR;調(diào)靜態(tài)顯示CLRR3MOVDPTR,CHARTAB;查表INCR3CJNER3,#26,NEXT;字母超過"Z"則轉(zhuǎn)NEXTMOVA,R3MOVCA,A+DPTRMOV54H,ANEXT:CLRR3;指針清零SJMPKEY-ENDUP_B.1:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#04H,UP_A.2;SETN鍵按下第4次,設(shè)置球隊(duì)"B"第1位LCALLDISP_CHAR;調(diào)靜態(tài)顯示CLRR3MOVDPTR,CHARTAB;查表INCR3CJNER3,#26,NEXT;字母超過"Z"則轉(zhuǎn)NEXTMOVA,R3MOVCA,A+DPTRMOV55H,ANEXT:CLRR3;指針清零SJMPKEY-ENDUP_B.2:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#05H,UP_B.3;SETN鍵按下第5次,設(shè)置球隊(duì)"B"第2位LCALLDISP_CHAR;調(diào)靜態(tài)顯示CLRR3MOVDPTR,CHARTAB;查表INCR3CJNER3,#26,NEXT;字母超過"Z"則轉(zhuǎn)NEXTMOVA,R3MOVCA,A+DPTRMOV56H,ANEXT:CLRR3;指針清零SJMPKEY-ENDUP_B.3:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#06H,UP_SCN;SETN鍵按下第6次,設(shè)置球隊(duì)"B"第3位LCALLDISP_CHAR;調(diào)靜態(tài)顯示CLRR3MOVDPTR,CHARTAB;查表INCR3CJNER3,#26,NEXT;字母超過"Z"則轉(zhuǎn)NEXTMOVA,R3MOVCA,A+DPTRMOV57H,ANEXT:CLRR3;指針清零SJMPKEY-ENDUP_SCN:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#07H,UP_TM;SETN鍵按下第7次,設(shè)置節(jié)數(shù)MOVA,#37HADDA,#01CJNEA,#10,CL;節(jié)數(shù)超過10?MOV46H,ACL:CLRASJMPKEY-ENDUP_TM:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#08H,UP_LTM;SETN鍵按下第8次,設(shè)置節(jié)時(shí)MOVA,#34HADDA,#01CJNEA,#60,CL;分鐘超過60?MOV34H,ALCALLSEPA1;調(diào)拆字子程序1CL:CLRASJMPKEY-ENDUP_LTM:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#08H,KEY_END;SETN鍵按下第9次,設(shè)置進(jìn)攻限時(shí)MOVA,#34HADDA,#01CJNEA,#60,CL;超過60s?MOV34H,ALCALLSEPA1;調(diào)拆字子程序1CL:CLRASJMPKEY-ENDSF:MOVSETFTCNTCJNEA,#01H,UP_BF;SETFT鍵按下第1次MOVA,#32H;取球隊(duì)"A"比分值并加1ADDA,#01CJNEA,#199,CL;分?jǐn)?shù)最大不超過199LCALLSEPA2;調(diào)拆字子程序2CL:CLRASJMPKEY-ENDBF:MOVSETFTCNTCJNEA,#02H,UP_SCN;SETFT鍵按下第2次MOVA,#33H;取球隊(duì)"B"比分值并加1ADDA,#01CJNEA,#199,CL;分?jǐn)?shù)最大不超過199LCALLSEPA2;調(diào)拆字子程序2CL:CLRASJMPKEY-ENDUP_SCN:MOVSETFTCNTCJNEA,#03H,UP_LSN;SETFT鍵按下第3次MOVA,#35H;取計(jì)時(shí)秒單元數(shù)據(jù)并加1ADDA,#01CJNEA,#60,CL;秒數(shù)不超過60LCALLSEPA2;調(diào)拆字子程序1CL:CLRASJMPKEY-ENDUP_LSN:MOVSETFTCNTCJNEA,#04H,UP_LSN;SETFT鍵按下第4次MOVA,#36H;取限時(shí)秒單元數(shù)據(jù)并加1ADDA,#01CJNEA,#60,CL;秒數(shù)不超過60LCALLSEPA2;調(diào)拆字子程序1CL:CLRASJMPKEY-ENDKEY_DOWN:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#01H,UP_A.2;SETN鍵按下第1次,設(shè)置球隊(duì)"A"第一位LCALLDISP_CHAR;調(diào)靜態(tài)顯示CLRR3MOVDPTR,CHARTAB;查表DECR3CJNER3,#00,NEXT;字母超過"A"則轉(zhuǎn)NEXTMOVA,R3MOVCA,A+DPTRMOV52H,ANEXT:CLRR3;指針清零SJMPKEY-ENDDN_A.2:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)等MOVSETNCNTCJNEA,#02H,DN_A.3;SETN鍵按下第2次,設(shè)置球隊(duì)"A"第2位LCALLDISP_CHAR;調(diào)靜態(tài)顯示CLRR3MOVDPTR,CHARTAB;查表DECR3CJNER3,#00,NEXT;字母超過"A"則轉(zhuǎn)NEXTMOVA,R3MOVCA,A+DPTRMOV53H,ANEXT:CLRR3;指針清零SJMPKEY-ENDDN_A.3:SETBP1.1JNBP1.1,SF;開關(guān)閉合,P1.1=0比賽中設(shè)置分?jǐn)?shù)MO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《社區(qū)足球賽方案》課件
- 《汽車客運(yùn)站調(diào)研》課件
- 2024年黑龍江林業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫完整答案
- 單位管理制度集合大全【人事管理篇】
- 《綜合分析觀點(diǎn)類》課件
- 單位管理制度匯編大全【人員管理】
- 2024的前臺(tái)工作計(jì)劃(35篇)
- 單位管理制度范文大合集【職工管理篇】
- 單位管理制度范例匯編【人員管理篇】十篇
- 《禽流感的預(yù)防措施》課件
- 結(jié)節(jié)性癢疹護(hù)理查房課件
- 四川省廣元市2022-2023學(xué)年八年級(jí)上學(xué)期語文期末試卷(含答案)
- 2020山東春季高考數(shù)字媒體真題
- 駕駛員安全春運(yùn)期間駕駛員安全培訓(xùn)
- 2023UPS維保服務(wù)合同
- 公務(wù)員調(diào)任(轉(zhuǎn)任)審批表 - 陽春人才網(wǎng)
- IE部成立工作規(guī)劃
- 單體調(diào)試及試運(yùn)方案
- 網(wǎng)球技術(shù)與戰(zhàn)術(shù)-華東師范大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 2023年35kV集電線路直埋施工方案
- 思政教師培訓(xùn)心得體會(huì)2021
評(píng)論
0/150
提交評(píng)論