畢業(yè)設(shè)計(jì)基于AT89C51單片機(jī)的籃球記分牌系統(tǒng)設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)基于AT89C51單片機(jī)的籃球記分牌系統(tǒng)設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)基于AT89C51單片機(jī)的籃球記分牌系統(tǒng)設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)基于AT89C51單片機(jī)的籃球記分牌系統(tǒng)設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)基于AT89C51單片機(jī)的籃球記分牌系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、哈爾濱工業(yè)大學(xué)華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文) 題 目 專 業(yè) 班 號(hào) 學(xué) 生 姓 名 指 導(dǎo) 教 師 答 辯 日 期 哈爾濱工業(yè)大學(xué)華德應(yīng)用技術(shù)學(xué)院畢業(yè)設(shè)計(jì)(論文)摘 要單片機(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ì)流程,采

2、用匯編語言編寫程序。本課題選擇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、匯編、籃球記分目錄摘 要i第1章 緒論1第2章 單片機(jī)21.1單片機(jī)的特點(diǎn)及發(fā)展概況21.2 單片機(jī)的基本組成21.3 單片機(jī)的特點(diǎn)21.4單片機(jī)的應(yīng)用21.5單片機(jī)在籃球記分牌中的應(yīng)用3第3章 硬件設(shè)計(jì)43.1 設(shè)計(jì)題目分析43.1.

3、1面板設(shè)計(jì):43.1.2按鍵及開關(guān)功能設(shè)定53.1.3系統(tǒng)硬件設(shè)計(jì)63.2 硬件電路設(shè)計(jì)12第4章 系統(tǒng)軟件設(shè)計(jì)144.1軟件設(shè)計(jì)思路和程序流程圖144.2程序源代碼16結(jié)論17致謝18參考文獻(xiàn)19附錄一 電路原理圖20附錄二 程序源代碼2143第1章 緒論單片機(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ā)展

4、進(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)大

5、,兼容性強(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ì)改變.第2章 單片機(jī)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

6、 單片機(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.8v3.6v,而工作電流僅為數(shù)百微安.(4)

7、優(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)成

8、各種工業(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ī)并行工

9、作,可大大提高系統(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ī)在籃球記分牌中的應(yīng)用由于本次設(shè)計(jì)的簡單籃球記分牌體積小,故要求其控制器體積更小以便能嵌入其結(jié)構(gòu)之中。單片機(jī)以微小的體積和編程的靈活性而產(chǎn)生多種控制功能,完全可以滿足需求。可以適應(yīng)不同規(guī)則下

10、操作。其具體功能及實(shí)現(xiàn)在以下兩章做詳細(xì)介紹。 第3章 硬件設(shè)計(jì)3.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ì) 3.1.1面板設(shè)計(jì): 籃球記分牌的實(shí)現(xiàn)方法有很多,可以分為兩大類:第一類是全部采用硬件實(shí)現(xiàn);第二類是采用硬件和軟件想結(jié)合

11、的方法實(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秒3.1.2按鍵及開關(guān)功能設(shè)定start鍵 比賽開始/

12、暫停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)警單片機(jī)鍵盤led顯示圖3-1硬件設(shè)計(jì)框圖3.1.3系統(tǒng)硬件設(shè)計(jì)1.器件選型根據(jù)以上列出的主要功能,單片機(jī)可選用atmel公司生產(chǎn)的,與8031完全兼容的at89c51單片機(jī),該單片機(jī)除了具有8031所有的功能外,該單片機(jī)還帶有4kbde flash的程序存儲(chǔ)器,外部不需要擴(kuò)展程序存儲(chǔ)器,此時(shí)p0、p1、p2、p3可以用做通用i/o口使用。另外,選用該單片機(jī)可以減低系統(tǒng)成本,由于不

13、需要擴(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)器

14、和用于存放每個(gè)數(shù)據(jù)位的88靜態(tài)ram以及數(shù)個(gè)工作寄存器。通過指令設(shè)置這些工作寄存器,可以使max7219進(jìn)入不同的工作狀態(tài)。a.管腳說明 圖3-2是max7219的管腳分布圖。其中:(1)din為串行數(shù)據(jù)輸入端。當(dāng)clk為上升沿時(shí),數(shù)據(jù)被載入16 b內(nèi)部移位寄存器。(2)clk為串行時(shí)鐘輸入端。其最大工作頻率可達(dá)10 mhz。(3)load為片選端,當(dāng)load為低電平時(shí),芯片接收來自din的數(shù)據(jù),load回到高電平時(shí),接收的數(shù)據(jù)將被鎖定。圖3-2 max7219管腳分布圖 圖3-3反映了din,clk和load的工作時(shí)序。(4)dig0dig7為吸收顯示器共陰極電流的位驅(qū)動(dòng)線。其最大值可達(dá)50

15、0 ma,關(guān)閉狀態(tài)時(shí),輸出vcc。(5)segasegg,dp為驅(qū)動(dòng)顯示器7段及小數(shù)點(diǎn)的輸出電流,一般為40 ma左右,可軟件調(diào)整,關(guān)閉狀態(tài)時(shí),接入gnd。(6)dout為串行數(shù)據(jù)輸出端,通常直接接入下一片max7219的din端。 圖3-3din,clk和load的工作時(shí)序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

16、譯碼器,在顯示數(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ù)。圖3-4譯碼與不譯碼的比較d.亮度調(diào)節(jié)操作代碼為“0ah”,操作數(shù)如圖3-5所示。圖3-5亮度調(diào)節(jié)操作數(shù)這個(gè)指令可以用來調(diào)節(jié)顯示器的亮度,改變其操作數(shù)可以改變max7219內(nèi)部掃描脈沖的寬度,從而使電流的平均值有所變化,這個(gè)電流平均值可以從最小的1/32至最大的31/32之間進(jìn)行16級(jí)調(diào)節(jié)。max7219還提供了一種硬件調(diào)整顯示器亮度的

17、方式,即通過第18管腳的iset和vcc之間跨接的一個(gè)電阻來調(diào)節(jié)其亮度,段驅(qū)動(dòng)平均電流大約為流過此電阻電流的100倍,實(shí)際應(yīng)用中常用十幾k的電阻直接接入即可。e. 掃描位數(shù)設(shè)定操作代碼為“0bh”,操作數(shù)如圖3-6所示。圖3-6掃描位數(shù)設(shè)定操作數(shù)如果所用的顯示器少于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”

18、或“1”。 操作數(shù)為“0”,則顯示器不工作(滅燈),反之,顯示器正常工作。待機(jī)狀態(tài)下,7219的工作電流僅為150a。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é)是位的代碼,如圖3-7所示,第2個(gè)字節(jié)則根據(jù)譯碼方式的選擇,來使用表1中的編碼。圖3-7 位的代碼需要說明的是,上述所有指令的輸入,不分先后(但每個(gè)指令2個(gè)字節(jié)

19、的秩序不能顛倒)。通常,前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ī)串行接口及max72

20、19之間多片聯(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),見表59。注意表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)

21、,操作開始時(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)勢(shì):首先

22、,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)勢(shì)互補(bǔ),最終選擇max7219做靜態(tài)顯示球隊(duì)名稱,單片機(jī)動(dòng)態(tài)掃描13位led顯示比分、時(shí)間等3.2 硬件電路設(shè)計(jì)電路圖見附錄一在該電路中,無需進(jìn)行存儲(chǔ)器和i/o口的擴(kuò)展,p0-p3口都可以作通用

23、i/o口來實(shí)現(xiàn)其他功能。p1.2p1.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.0p0.2口與max7219的數(shù)據(jù)端口連接,p0.0和p0.1、p0.2分別max7219模塊din、load、clk 端口相連,

24、實(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)亮每

25、位顯示器,只要保證掃描周期不超過一定的限度(一般在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ì)的電路圖。 第4章 系統(tǒng)軟件設(shè)計(jì)4.1軟件設(shè)計(jì)思路和程序流程圖根據(jù)系統(tǒng)的功能要求和硬件的連接情況,軟件可分為:t0、t1定時(shí)中斷模塊

26、和主程序模塊。兩個(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)用鍵盤處理子程序。主程序模塊的流程圖如31所示:系統(tǒng)初始化調(diào)動(dòng)態(tài)顯示子程調(diào)鍵處理子程調(diào)靜態(tài)顯示子程開始開始比賽中?讀active鍵在中斷程序中,先重裝定時(shí)器初值,基本計(jì)時(shí)單元加1,然后進(jìn)行分、秒的計(jì)時(shí),若倒計(jì)時(shí)為0則打開蜂鳴器,持續(xù)蜂鳴設(shè)定的時(shí)間后自動(dòng)停止。t0、t1中斷服務(wù)的流程圖如圖3-2、3

27、-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ū)。顯示子程序分為動(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)掃描的

28、方法,解決多位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)顯示成本高,也不可取。最后引進(jìn)max7219專用led驅(qū)動(dòng)芯片解決了單片機(jī)接口問題,結(jié)合動(dòng)靜態(tài)顯示的優(yōu)點(diǎn),最終

29、得到動(dòng)靜結(jié)合的設(shè)計(jì)方案。表3-1 動(dòng)態(tài)顯示七段碼(字形碼)表顯示字符d7d6d5d4d3d3d1d0七段碼dpgfedcba0001111113fh10000001106h2010110115bh3010011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh9011011116fh.1000000080h空白0000000000h4.2程序源代碼見附錄二結(jié)論 單片機(jī)籃球記分牌設(shè)計(jì)的主要任務(wù)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì)的主要任務(wù)是:電源設(shè)計(jì)、led數(shù)碼管驅(qū)動(dòng)、控制系統(tǒng)設(shè)計(jì)以及輔助功能的設(shè)計(jì),。軟件設(shè)計(jì)包括:功能

30、選擇、倒計(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à)值。 主要使用的是wave這一工具軟件,該軟件可用于單片機(jī)的設(shè)計(jì)與開發(fā),建模仿真,實(shí)時(shí)實(shí)現(xiàn)的理想的仿真環(huán)境。由于其完整的專業(yè)體系和先進(jìn)的設(shè)計(jì)開發(fā)思路。硬件設(shè)計(jì)采用protel 99se繪圖,可以自行繪出數(shù)據(jù)庫中沒有的器件,使用很方便,其自

31、動(dòng)布線和電路模塊設(shè)計(jì)很方便。致謝本文主要闡述了單片機(jī)電子記分牌的實(shí)現(xiàn)背景及其實(shí)現(xiàn)的功能,我對(duì)單片微機(jī)技術(shù)產(chǎn)生了濃厚的興趣,同時(shí),受我主修專業(yè)的影響,我已經(jīng)習(xí)慣于關(guān)注單片機(jī)設(shè)計(jì)帶來的一系列機(jī)遇與挑戰(zhàn)。 本篇論文雖然凝聚著自己的汗水,但卻不是個(gè)人智慧的產(chǎn)品,沒有導(dǎo)師的指引和贈(zèng)予,沒有父母和朋友的幫助和支持,我在大學(xué)的學(xué)術(shù)成長肯定會(huì)大打折扣。當(dāng)我打完畢業(yè)論文的最后一個(gè)字符時(shí),涌上心頭的不是長途跋涉后抵達(dá)終點(diǎn)的欣喜,而是源自心底的誠摯謝意。我首先要感謝我的導(dǎo)師曾一江老師,她對(duì)我的構(gòu)思以及論文的內(nèi)容不厭其煩的進(jìn)行多次指導(dǎo)和悉心指點(diǎn),使我在完成論文的同時(shí)也深受啟發(fā)和教育。 再次由衷感謝答辯組的各位老師對(duì)學(xué)

32、生的指導(dǎo)和教誨,我也在努力的積蓄著力量,盡自己的微薄之力回報(bào)母校的培育之情,爭取使自己的人生對(duì)社會(huì)產(chǎn)生些許積極的價(jià)值!參考文獻(xiàn)1 高洪志.mcs-51單片機(jī)原理及應(yīng)用技術(shù)教程.人民郵電出版社,2009:72-1692 田淑清.c語言程序設(shè)計(jì).高等教育出版社,2008:31-833 張毅剛.mcs-51系列單片機(jī)系統(tǒng)及其應(yīng)用.高等教育出版社,2003:29-894 謝自美.電子線路設(shè)計(jì)、實(shí)驗(yàn)、測試.華中理工大學(xué)出版社,2000: 107-1115 郭培源.電子電路及電子器件.高等教育出版社,2004: 65-66 潘新民.微型計(jì)算機(jī)控制技術(shù).人民郵電出版社,1999.9: 55-707 余錫存.

33、單片機(jī)原理及接口技術(shù).西安電子科技大學(xué)出版社,2000.7: 65-698 周立功.增強(qiáng)型80c51單片機(jī)速成與實(shí)戰(zhàn).北京航空航天大學(xué)出版社,2004.5:91-95附錄一 電路原理圖附錄二 程序源代碼;定義引腳 spk bit p1.0 ;蜂鳴器開關(guān) din bit p0.0 ;p0.0p0.2為max7219模塊控制端口 load bit p0.1 clk bit p0.2 active bit p1.0; ;比賽前/比賽中狀態(tài)開關(guān);ram區(qū)分配 t0cnt equ 30h ;t0基本計(jì)時(shí)單元 t1cnt equ 31h ;t1基本計(jì)時(shí)單元 ascore equ 32h ;球隊(duì)“a”比分單

34、元 bscore equ 33h ;球隊(duì)“b”比分單元 minute equ 34h ;計(jì)時(shí)分單元 second equ 35h ;計(jì)時(shí)秒單元 lsecond equ 36h ;進(jìn)攻限時(shí)秒單元 scene equ 37h ;節(jié)數(shù)(場次)單元 led_buf equ 40h ;動(dòng)態(tài)顯緩 setncnt equ 50h ;setn鍵按鍵次數(shù)存放單元 setfecnt equ 51h ;setft鍵按鍵次數(shù)存放單元 disp_equ equ 52h ;靜態(tài)顯緩 ;程序入口org 0000h ljmp main;t0中斷入口 org 000bh ljmp it0p;t1中斷入口 org 0010h l

35、jmp it1p*主程序* org 0040h main: mov sp , #60h ;設(shè)置堆棧指針 mov tmod #11h ;設(shè)置t0,t1為16位定時(shí)器方式 mov th0 , #0d8h ;置t0初值 mov tl0 , #0f0h mov t0cnt , #00h ;t0中斷次數(shù)清零 mov th1 , #0d8h ;置t1初值 mov tl1 , #0f0h mov t1cnt , #00h mov ie , #82h ;中斷允許clr amov t0cnt , a ;計(jì)數(shù)單元清0mov t1cnt , a mov ascore, a ;動(dòng)態(tài)顯示單元清零mov bscor, a

36、 mov minete, a mov second, a mov lsecodn, a mov setncnt, a ;setn、setft按鍵次數(shù)清零mov setftcnt, a mov scene, #01h ;節(jié)數(shù)置初值1main_lp: setb p1.1 ;判斷比賽否 jnb p1.1 , jx ;比賽中調(diào)動(dòng)態(tài)顯示 t11: lcall disp mov p1 , #0ffh mov a , p1 anl a , #0fc cjne a , #0fc, k_press;有鍵按下調(diào)建處理子程序 sjmp main_lp jx: lcall max_disp ;比賽前則調(diào)用靜態(tài)顯示子程

37、序 ljmp t11 k_press: lcall key_prg sjmp main_lp ;無建按下,繼續(xù)循環(huán) *動(dòng)態(tài)顯示子程序*: disp : mov r0 , #40h ;r0指向動(dòng)態(tài)顯緩首址 mov r1 , #7fh ;左邊第一位數(shù)位代碼 mov r2 , #0ffh ;左邊第9位數(shù)位代碼 mov r3 , #0ffh ;延時(shí)常數(shù) mov a, #0ffh ;全滅數(shù)位代碼 disp1:mov dptr, #0a0h ;字位口地址movx dptr , amov a, r0 mov dptr, #sgtr ;查表求七段碼mov a, a+dptrmovc dptr, #0b0h ;

38、字形口movx dptr, a ;輸出七段碼mov dptr, #0a0hdjnz r3, dely dely: inc r0 ;指向下一顯緩單元 lp: setb c ;置一進(jìn)位標(biāo)志 mov a , r2, rrc a ;r2、r3數(shù)據(jù)帶進(jìn)位右移 mov r2, a mov a , r3 rrc a mov r3, a ;右移13次停止 jb acc.2, lp ret org 0200h ;數(shù)字七段碼表 sgtr: db 3fh, 06h, 5bh, 4fh, 66h, 6dh, db 7dh, 07h, 7fh, 6fh, 80h, 00h*靜態(tài)顯示子程序* jx: lcall proc

39、ess ;調(diào)初始化子程 lcall disply ;調(diào)顯示子程 ljmp t11 ;初始化max7219 process: mov a, #0bh ;顯示位數(shù)設(shè)定(6位) mov b, #05h lcall w_7219 mov a, #09h ;不使用bcd譯碼 mov b, #00h lcall w_7219 mov a, #0ah ;亮度設(shè)定 mov b, #09h lcall w_7219 mov a, #0ch ;待機(jī)開關(guān)打開,led正常顯示 mov b, #01h lcall w_7219 ret display: mov r0, #disp_buf ;靜態(tài)顯緩首址 mov r4, #01h ;數(shù)位第一位 mov r3, #06h ;設(shè)定六位顯示 c_disp: mov a , r0 mov dptr, #chartab ;查字母表 movc a, a+dptr ;得字母七段碼 mov b, a ;向max7219寫入數(shù)據(jù) mov a, r4 lcall w_7219 inc r0 ;指向下一位顯緩 in

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論