




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
摘要TC"摘要"\fC籃球比賽計時計分器是為了解決籃球比賽時計分與計時準確的問題。此裝置利用單片機AT89C51完成了計時和計分的功能。本文詳細地介紹了系統硬件與軟件的設計過程,設計由AT89C51編程控制LED七段數碼管作顯示的球賽計時計分系統。該系統具有賽程定時設置,賽程時間暫停,及時刷新甲、乙雙方的成績以及賽后成績暫存等功能。它具有價格低廉,性能穩定,操作方便并且易于攜帶等特點。廣泛適合各類學校或者小型團體作為賽程計時計分。關鍵詞:單片機籃球賽計時籃球賽計分第一章引言TC"第一章引言"\fC1.1背景知識介紹TC"1.1背景知識介紹"\fC單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統集成到一個芯片上。概括的講:一塊芯片就成了一臺計算機。它的體積小、質量輕、價格廉價、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最正確選擇[2]。1.2設計意義TC"1.2設計意義"\fC單片機的應用具有高度現實意義。單片機極高的可靠性微型性和智能性〔我們只要編寫不同的程序后就能夠完成不同的控制工作〕,單片機已成為工業控制領域中普遍采用的智能化控制工具,已經深深地滲入到我們的日常生活當中。通過此次基于單片機設計的籃球計時計分系統,我們可以更清楚詳細的了解單片機程序設計的根本指令功能、編程步驟和技巧來講述單片機編程,并對MCS-51單片機的結構和原理進行講述,以及基于單片機開發應用的相關芯片的工作原理,并且可以在將來的工作和學習中加以應用[5]。1.3設計目的TC"1.3設計目的"\fC隨著單片機在各個領域的廣泛應用,許多用單片機做控制的球賽計時計分系統也應運而產生,如用單片機控制LCD液晶顯示器計時計分器,用單片機控制LED七段顯示器計時計分器等。本次設計用由AT89C51編程控制LED七段數碼管作顯示的球賽計時計分系統。該系統具有賽程定時設置,賽程時間暫停,及時刷新甲、乙雙方的成績以及賽后成績暫存等功能。它具有價格低廉,性能穩定,操作方便并且易于攜帶等特點。廣泛適合各類學校或者小型團體作為賽程計時計分[8]。通過本次基于C51系列籃球計時計分器的設計,可以了解、熟悉有關單片機開發設計的過程,并加深對單片機的理解和應用以及掌握單片機與外圍接口的一些方法和技巧,這主要表現在以下一些方面:(1)籃球賽計時計分系統包含了8051系列單片機的最小應用系統的構成,同時在此根底上擴展了一些使用性強的外圍接口。(2)可以了解到LED顯示器的結構、工作原理以及這種顯示器的接口實例與具體連接與編程方法。(3)怎樣利用串行口來擴展顯示接口等[6]。第二章系統硬件介紹TC"第二章系統硬件介紹"\fC2.1MCS-51單片機簡述TC"2.1MCS-51單片機簡述"\fC單片機AT89C51簡介TC"單片機AT89C51簡介"\fC本課題中用到的芯片就是AT系列中的AT89C51單片機芯片。AT89C51是一個低電壓,高性能CMOS8位單片機,片內含4kbytes的可反復擦寫的Flash只讀程序存儲器和128bytes的隨機存取數據存儲器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,內置功能強大的微型計算機的AT89C51提供了高性價比的解決方案[7]。AT89C51具有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應不同產品的需求。它是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出〔I/O〕端口,同時內含2個外中斷口,2個16位可編程定時計數器,2個全雙工串行通信口,AT89C51可以按照常規方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發本錢。如下圖圖2-1為AT89C51單片機根本構造,其根本性能介紹如圖2-1:圖2-1AT89C51引腳圖AT89C51本身內含40個引腳,32個外部雙向輸入/輸出〔I/O〕端口,同時內含2個外中端口,2個16位可編程定時計數器,2個全雙工串行通信口,AT89C51可以按照常規方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發本錢。主要特性TC"主要特性"\fCAT89C51的主要特性如表2-1所示:
·兼容MCS—51指令系統·4k可反復擦寫(>1000次〕FlashROM
·32個雙向I/O口·可編程UARL通道
·兩個16位可編程定時/計數器·全靜態操作0-24MHz
·1個串行中斷·128x8bit內部RAM
·兩個外部中斷源·共6個中斷源
·可直接驅動LED·3級加密位
·低功耗空閑和掉電模式·軟件設置睡眠和喚醒功能表2-1AT89C51主要功能描述管腳說明TC"管腳說明"\fCVCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1〞時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1〞時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能存放器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1〞后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如表2-2所示:表2-2AT89C51特殊功能表端口引腳第二功能P3.0RXD〔串行輸入口〕P3.1TXD〔串行輸出口〕P3.2/INT0〔外部中斷0〕P3.3/INT1〔外部中斷1〕P3.4T0〔記時器0外部輸入〕P3.5T1〔記時器1外部輸入〕P3.6/WR〔外部數據存儲器寫選通〕P3.7/RD〔外部數據存儲器讀選通〕P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。/EA/VPP:當/EA保持低電平時,那么在此期間外部程序存儲器〔0000H-FFFFH〕,不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。芯片擦除TC"芯片擦除"\fC整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1〞且在任何非空存儲字節被重復編程以前,該操作必須被執行。此外,AT89C51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止[6]。掉電模式TC"掉電模式"\fC在掉電模式下,振蕩器停止工作,進入掉電模式的指令是最后一條被執行的指令,片內RAM和特殊功能存放器的內容在終止掉電模式前被凍結。推出掉電模式的唯一方法是硬件復位。復位后將重新定義全部特殊功能存放器但不改變RAM中的內容,在VCC恢復到正常工作電平前,復位應無效,且必須保持一定時間以使振蕩器重新啟動并且穩定的工作[5]。表2-3外部引腳狀態表模式空閑模式空閑模式掉電模式掉電模式程序存儲器內部外部內部外部ALE1100/PROG1100P0數據浮空數據浮空P1數據數據數據數據P2數據數據數據數據P3浮空浮空數據數據程序儲存器的加密TC"程序儲存器的加密"\fCAT89C51可使用對芯片上的三個加密位LB1、LB2、LB3[2]進行編程〔P〕或者不進行編程〔U〕。當加密位LB1被編程時,在復位期間,EA斷的邏輯電平被采樣并鎖存,如果單片機上電后一直沒有服位,那么鎖存起的初始值是一個隨機數,這個隨機數會保存到真正復位為止[5]。2.2顯示器及其接口TC"2.2顯示器及其接口"\fC顯示器介紹TC"顯示器介紹"\fC顯示器是最常用的輸出設備,其種類繁多,但在單片機系統設計中最常用的是發光二極管顯示器〔LED〕和液晶顯示器〔LCD〕兩種。由于這兩種顯示器結構簡單,價格廉價,接口容易實現,因而得到廣泛的應用。液晶顯示器分很多種類,按顯示方式可分為段式,行點陣式和全點陣式。段式與數碼管類似,行點陣式一般是英文字符,全點陣式可顯示任何信息,如漢字、圖形、圖表等[4]。兩者之間的區別:〔1〕二極本身發光,液晶本身不發光,只是透射光。〔2〕二極管體積大,圖像質量一般,適合作室外大屏幕,價格較低。液晶本錢較高,面積無法做得很大,但圖像質量很好,適合做顯示器。〔3〕二極管耗電大,液晶耗電小。〔4〕二極管圖像刷新率低,液晶的高結構與原理TC"結構與原理"\fC圖2-27段LED數碼管如圖2-2,LED顯示器又稱為數碼管,LED顯示器由8個發光二極管組成。中7個長條形的發光管排列成“日〞字形,另一個賀點形的發光管在顯示器的右下角作為顯示小數點用,它能顯示各種數字及部份英文字母。LEDD顯示器有兩種不同的形式:一種是8個發光二極管的陽極都連在一起的,稱之為共陽極LED顯示器;另一種是8個發光二極管的陰極都連在一起的,稱之為共陰極LED顯示器[1]。如圖2-3所示。圖2-3共陰與共陽極LED顯示器2.2.3LED顯示器顯示方式TC"2.2.3LED顯示器顯示方式"\fC點亮LED顯示器有兩種方式:一是靜態顯示;二是動態顯示。在本次設計中,采用的是靜態顯示。這種電路的優點在于:在同一時間可以顯示不同的字符;但缺點就是占用端口資源較多。從下列圖可以看出,每位LED顯示器需要單獨占用8根端口線,因此,在數據較多的時候,往往不采用這種設計,而是采用動態顯示方式[3]。所謂動態顯示,就是將要顯示的多位LED顯示器采用一個8位的段選端口,然后采用動態掃描一位一位地輪流點亮各位顯示器。圖2-4為4位LED顯示器動態顯示電路。圖2-4動態顯示圖2.3CD4094芯片介紹TC"2.3CD4094芯片介紹"\fC在本次設計的計分電路中,我們使用集成電路CD4094。CD4094是8位移位存放器,它主要完成串行輸入,并行輸出8位數據的功能,所以又叫8位串/并轉換器。圖2-5為CD4094的引腳圖:圖2-5CD4094引腳分布圖2.474LS21芯片介紹TC"2.474LS21芯片介紹"\fC本次設計中的比分校正電路采用四輸入與門74LS21來實現。74LS21是雙4輸入與門。在一個芯片里有兩個相同的單元,其中一個任何一個都是1/2斷口。同型號的74系列、74HC系列、74LS系列芯片,邏輯功能上是一樣的。表2-4為74、74HC、74LS系列芯片資料[8]。表2-474、74HC、74LS相關資料表系列電平典型傳輸延遲ns最大驅動電流AHCCMOS8.5-8/8AHCTCOMS/TTL8.5-8/8HCCOMS25-8/8HCTCOMS/TTL25-8/8ACTCOMS/TTL10-24/24FTTL6.5
-15/64ALSTTL10-15/64LSTTL18-15/242.5報警器TC"2.5報警器"\fC2.5.1報警器的分類TC"2.5.1報警器的分類"\fC蜂鳴器有兩類3大品種。一類是壓電式,一類是電磁式,電磁式又有兩大品種,鐵振膜式和動圈式,二者原理一樣只是結構不同。所有蜂鳴器都有兩種類型:純蜂鳴器和帶驅動的蜂鳴器,蜂鳴器都是用音頻信號驅動的,都是交流驅動。2.5.2報警器工作原理TC"2.5.2報警器工作原理"\fC報警器的種類很多,比方:揚聲器,蜂鳴器等,本次設計采用的是電磁式蜂鳴器作為報警器。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、震動膜片以及外殼等組成。接通電源后,振蕩器產生的音頻信號通過電磁線圈,使得電磁線圈產生了一個磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性的振動發聲[2]。第三章硬件電路設計TC"第三章硬件電路設計"\fC系統硬件由以下幾個局部組成:〔1〕單片機AT89C51〔2〕計時電路〔3〕計分電路〔4〕按鍵開關說明:整個系統只用一片AT89C51;在圖中將計時電路與計分電路分開畫,只是為了能夠更好的更清晰的說明問題;并且在整個畫圖過程中將AT89C51引腳打亂是為了使圖示能夠更加的清晰明了[7]。3.1系統方案設計TC"3.1系統方案設計"\fC3.1.1系統構成框圖TC"3.1.1系統構成框圖"\fC基于單片機系統的籃球賽計時計分器的系統構成框圖如圖3-1所視。圖3-1系統構成圖本系統采用單片機AT89C51作為本設計的核心元件。利用7段共陰LED作為顯示器件。在本次設計中,共接入十個七段共陰LED顯示器,其中6個用于記錄甲、乙兩隊的分數,每隊3個LED顯示器分數范圍可到達0—99分,足夠滿足賽程需要。另外4個LED顯示器那么用于記錄賽程的時間,其中兩個用于顯示分鐘;2個用于顯示秒鐘。賽程計時采用倒計時方式。即比賽前將時間設置好,比賽開始時啟動計時,直至計時到零為止。根據設計,計時范圍可達0—99分鐘,也完全滿足賽程的需要。其次,為了配合計時器和計分器校正、調整時間和比分,特在本設計中設立了7個按鍵。其中4個用于輸入甲、乙兩隊的分數;另外3個那么用于完成設置、調整、啟動和暫停賽程時間等功能[6]。3.1.2器件選擇TC"3.1.2器件選擇"\fC本系統在設計的過程中主要選取了以下一些器件:單片機:AT89C51四一七段BCD譯碼芯片:CD4511并行/串行轉換芯片:CD4094四輸入與門:74LS21顯示器件:7段共陰LED顯示器按鍵:歐姆龍按鍵3.2硬件總體設計TC"3.2硬件總體設計"\fC這次設計的核心是:如何運用AT89C51單片機,CD451譯碼芯片,CD40948位移位存放器。7段共陰LED顯示數碼管等電子元件完成顯示設計在電路上的實現[8]。從理論上說,不管顯示圖形還是文字,只要控制與組成這些圖形和文字的各個點所在位置對應的LED器件發光,就能得到結果。本次設計采用的是靜態驅動方式。所謂靜態驅動,就是每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發送到接口電路,就不用管它了,直到要顯示新的數據時,再發送新的字形碼,因此,使用這種方法單片機中CPU的開銷小[4]。這種電路的優點在于:在同一時間可以顯示不同的字符;但缺點就是占用端口資源較多[3]。3.3計時電路局部TC"3.3計時電路局部"\fC3.3.1振蕩電路TC"3.3.1振蕩電路"\fC本次設計要使用到AT89C51單片機的時鐘振蕩功能。AT89C51中有一個用于構成內部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入和輸出端。這個放大器與作為反應元件的片外石英晶體或者陶瓷諧振器一起構成自激振蕩器[1]。振蕩電路如圖3-2所示圖3-2時鐘振蕩電路圖3-3外部時鐘電路圖3-4系統總體電路圖3-5計時電路原理圖3.3.2計時電路的工作原理TC"3.3.2計時電路的工作原理"\fC計時電路如圖3-5所示,主要由開關K5-K7,單片機AT89C51,譯碼器以及LED顯示器構成。其工作過程如下:當比賽準備開始的時候,當調時〔十位〕開關K5按下時,產生一個低電平;立即數00H取出,同時對應調分〔十位〕控制端P2.0的LE輸出高電平,表示此時可以向調分〔十位〕的CD4511發送數據,但CD4511的輸出端不會有輸出,因為LE=1時,CD4511鎖存。這時,只要將要顯示數據的代碼經過P1口的P1.0送到CD4511的輸入端A~~D端,送完后,將LE清零。這時便可以將要顯示數據的代碼經過CD4511譯碼后,從輸出端a~~g輸出,送LED顯示器顯示即可。調時按鍵開關每按一次,數字自動加1,直到調到需要設置的時間即[2]。3.4計分電路局部TC"3.4計分電路局部"\fC8051系列單片機除了有4個8位并行口外,還有一個能同時進行串行發送和接收的全雙工串行通信口。它能同時發送和接收數據,還能作為同步移位存放器使用。球賽計分電路正是利用了8051單片機串行口可以外接串行輸入并行輸出移位存放作用為輸出口來實現球賽比分刷新顯示的[9]。3.4.1串行接口工作原理TC"3.4.1串行接口工作原理"\fCMCS-51系列單片機片內有一個串行I/O端口,通過引腳RXD(P3.0)和TXD(P3.1)可與外設電路進行全雙工的串行異步通信[12]。8051單片機的串行端口有4種根本工作方式,通過編程設置,可以使其工作在任一方式,以滿足不同應用場合的需要。其中,方式0主要用于外接移位存放器,以擴展單片機的I/O電路;方式1多用于雙機之間或與外設電路的通信;方式2,3除有方式l的功能外,還可用作多機通信,以構成分布式多微機系統。串行端口有兩個控制存放器(SCON和PCON),用來設置工作方式、發送或接收的狀態、特征位、數據傳送的波特率(每秒傳送的位數)以及作為中斷標志等[11]。串行端口有一個數據存放器SBUF(在特殊功能存放器中的字節地址為99H),該存放器為發送和接收所共同。發送時,只寫不讀;接收時,只讀不寫。在一定條件下,向SBUF寫入數據就啟動了發送過程;讀SBUF就啟動了接收過程。串行通信的波特率可以程控設定。在不同工作方式中,由時鐘振蕩頻率的分頻值或由定時器T1的溢出率確定,使用十分方便靈活[10]。3.4.2計分電路原理圖TC"3.4.2計分電路原理圖"\fC圖3-6計分電路原理圖3.4.3計分電路的工作原理TC"3.4.3計分電路的工作原理"\fC計分電路主要由單片機AT89C51,串行/并行轉換器〔CD4094〕,LED顯示器,74LS21以及按鍵開關組成。其工作過程如下:按鍵開關K1~~K4組成甲、乙兩隊加減分控制。按鍵K1~~K4一端接地,另一端輸入與門74LS21的9腳,10腳,12腳,13腳,以及單片機AT89C51的P3.5,P3.4,P0.2,P0.1,8腳接AT89C51的P3.2腳。當按鍵開關K1~~K4四個按鍵的任何一個一位按下時,與門的8腳輸出都會產生低電平使單片機中斷,從而使相應LED顯示。因為按鍵開關按下時為低電平[12]。第四章籃球計時計分器軟件設計TC"第四章籃球計時計分器軟件設計"\fC4.1籃球計時計分器的工作過程TC"4.1球賽計時計分器的工作過程"\fC首先在比賽之前,接通電源,系統自動復位,此時計時電路與計分電路中的共陰極數碼管全部顯示為0000和000000;然后我們按照計時電路中的K5鍵來設置比賽時間的十位數,例如比賽時間上半場為20分鐘,那么通過K5鍵,使數碼管1顯示“2〞即可;再按下K6鍵,設置比賽時間的個位數,使數碼管2顯示“0〞即可。一般比賽時間為40分鐘,所示只需要按下K5鍵顯示“4〞,按下K6鍵顯示“0〞即可。時間設置好時,等待賽程開始,當裁判吹響哨聲時,啟動計時,這時計時電路便開始工作,計時采用到計時方式,即從20分鐘減為0分鐘表示上半場結束。上半場結束時,蜂鳴器會發出10秒鐘響聲,通知上半場結束,這時按下K7鍵,便完成了甲、乙兩隊的分數交換。在整個賽程中,我們還要對兩隊比分進行及時刷新,這時我們通過計分電路中的K1-K4鍵完成此功能,K1和K2鍵完成甲隊加分、減分,K3和K4鍵完成乙隊加分、減分。按鍵每按一下,表示加上或者減去1分。由于加分、減分我們采用中斷完成,且加、減分的中斷優先權小于計時電路中的中斷優先權,所以不會對計時電路造成影響。如果在賽程過程中,一方的教練申請暫停時,經裁判批準,我們立即按下K7鍵,即可以暫停計時,暫停時間到時,再按下K7鍵繼續計時,直至上半場賽程結束,蜂鳴器會發出10秒的響聲。下半場的流程和上半場根本上是一樣的[8]。4.2籃球計時計分器編程設計TC"4.2籃球計時計分器編程設計"\fC編程前,必須設置好地址、數據以及控制信號。編程單元的地址加在P1口和P2口的P2.0—P2.3〔11位地址范圍為0000H—0FFFH〕,數據從P0口輸入,引腳P2.6、P2.7、P3.6、P3.7的電平設置參考校驗電路,/PSEN為低電平,RST保持高電平,EA/Vpp引腳是編程電源的輸入端,按要求加上編程電壓,ALE/PROG引腳輸入編程脈沖。編程時,可采用4—20MHZ的時鐘振蕩器,本次設計采用12MHZ的石英晶體振蕩器。具體過程是:〔1〕在地址線上加上要編程單元的地址信號,這里為33H,34H,35H,36H,37H,38H,6個地址符。〔2〕在數據線上加上要寫入的數據字節,比方甲隊加一分就是在36H地址上加上〔偏移〕一個字符06H。〔3〕激活相應的控制信號。〔4〕在高電壓編程方式時,將EA/Vpp端加上+12V編程電壓。〔5〕改變編程單元的地址和寫入的數據,重復1—5步驟,直到全部文件編程結束,每個字節寫入周期是自身定時的,通常約為1.5ms[7]。本次設計的程序流程圖如4-1:圖4-1程序流程圖4.3主要模塊說明TC"4.3主要模塊說明"\fC計時局部模塊流程TC"計時局部模塊流程"\fC圖4-2計時局部流程圖4.3.2記分局部模塊流程TC"4.3.2記分局部模塊流程"\fC圖4-3計分局部流程4.4籃球計時計分器程序源代碼TC"4.4籃球計時計分器程序源代碼"\fC程序代碼:ORG0000HAJMPLK1;主程序地址ORG000BH;定時中斷入口地址AJMPCTCOORG0013H;外部中斷入口地址AJMPCXTLK1:MOV33H,#00H;甲隊記分清0MOV34H,#00HMOV35H,#00HMOV36H,#00H;乙隊記分清0MOV37H,#00HMOV38H,#00HMOV40H,#00H;記時分鐘清0MOV41H,#00HCLRP0.0Mp:CLRP2.0;計時牌子清零CLRP2.1;分分秒秒清0CLRP2.2CLRP2.3MOVP1,#00HNOPNOPSETBP2.0SETBP2.1SETBP2.2SETBP2.3MOV42H,#05H;送秒鐘初值59秒MOV43H,#09HMOVSCON,#00H;計分牌子清零程序CLRP3.7MOVR1,#33HMOVR2,#06LP:MOVA,@R1MOVDPTR,#TAB;取顯示數MOVCA,@A+DPTRMOVSBUF,A;通過串行口發顯示數據JNBTI,$;是否發送完畢CLRTI;去除標志位INCR1DJNZR2,LP;6次是否發送完畢SETBP3.7;顯示數據LK3:JBP2.4,LK6ACALLD10MSJBP2.4,LK3ACALLD2SLK4:JBP2.4,LK3;調整分鐘(十位)CLRP2.0;顯示分鐘十位數據MOVP1,40HSETBP2.0ACALLD2S;調用延時程序INC40H;將十位加1MOVA,40HCJNEA,#0AH,LK4;十到了沒有MOV40H,#00HAJMPLK4LK6:JBP2.5,LK5ACALLD10MSJBP2.5,LK6ACALLD2SLK7:JBP2.5,LK6;調分鐘(個位)CLRP2.1;顯示分鐘個位數據MOVP1,41HSETBP2.1ACALLD2S;調用延時程序INC41H;將個位加1MOVA,41HCJNEA,#0AH,LK7;十到了沒有MOV41H,#00HAJMPLK7LK5:JBP2.6,LK3;等待啟動計時ACALLD10MSJBP2.6,LK5CLRP2.2;顯示秒鐘十位MOVP1,42HNOPNOPSETBP2.2CLRP2.3;顯示秒鐘個位MOVP1,43HNOPNOPSETBP2.3SETBP0.0;點亮計時指示燈MOVTMOD,#01H;定時中斷初始化MOVTL0,#0B0H;送定時初值MOVTH0,#3CHSETBET0;開放定時中斷SETBEX1;開放外部中斷CLRIT0;外部中斷低電平有效SETBTR0;啟動定時MOVR0,#14HSJMP$CTCO:JNBP2.6,LK8;定時中斷程序DJNZR0,NEXT;一秒鐘到了嗎?MOVR0,#14HDEC43HCLRP2.3;顯示時間MOVP1,43H;顯示秒鐘個位NOPNOPSETBP2.3CLRP2.2;顯示秒鐘十位MOVP1,42HNOPNOPSETBP2.2CLRP2.1;顯示分鐘個位MOVP1,41HNOPNOPSETBP2.1CLRP2.0;顯示分鐘十位MOVP1,40HNOPNOPSETBP2.0MOVA,43HCJNEA,#00H,NEXT;秒鐘個位回到0沒有MOV43H,#0AH;秒鐘個位送初值10MOVA,42HCJNEA,00H,LP3;秒鐘十位回到0沒有MOV42H,#05H;秒鐘十位送初值5MOVA,41HCJNEA,#00H,LP2;分種個位回到0沒有MOV41H,#09H;分鐘個位送初值9MOVA,40HCJNEA,#00H,LP1;分鐘十位回到0沒有CLRP0.0CLRP3.6;時間到發出警備10SACALLD10SSETBP3.6KP11:JBP2.6,KP11;等待交換AJMPKP12;去兩隊分數交換程序LK8:ACALLD10MSJBP2.6,CTCO;計時暫停處理CLRP0.0LK9:JNBP2.6,LK9;等待鍵按下KL10:JBP2.6,LK10;等待鍵放開SETBP0.0;繼續計時AJMPCTCOP3:DEC42H;將秒鐘十位減1AJMPNEXTLP1:DEC40H;將分鐘十位減1AJMPNEXTLP2:DEC41H;將分鐘個位減1NEXT:MOVTL0,#0B0H;定時中斷送初值返回MOVTH0,#3CHRETIKP12:MOVA,33H;甲乙兩隊交換分數XCHA,36HMOV33H,AMOVA,34HXCHA,37HMOV34H,AMOVA,35HXCHA,38HMOV35H,AAJMPmp;返回顯示交換后的分數CXT:JNBP3.5,KP1;甲隊+1JNBP3.4,KP2;甲隊-1JNBP0.2,KP3;乙隊+1JNBP0.1,KP4;乙隊-1AJMPKPKP1:JNC36H;甲隊+1程序MOVA,36HCJNEA,#0AH,KP5MOV36H,#00HINC37HMOVA,37HCJNEA,#0AH,KP5MOV37H,#00HINC38HAJMPKP5KP2:MOVA,36H;甲隊-1程序CJNEA,#00H,AP1MOV36H,#09HDEC37HAJMPKP5AP1:DEC36HAJMPKP5KP3:INC33H;乙隊+1程序MOVA,33HCJNEA,#0AH,KP5MOV33H,#00HINC34HMOVA,34HCJNEA,#0AH,KP5MOVA,34HCJNEA,#0AH,KP5MOV34H,#00HINC35HAJMPKP5KP4:MOVA,33H;乙隊-1程序CJNEA,#00H,AP2MOV34H,#09HDEC35HAJMPKP5AP2:DEC34HKP5:CLRP3.7;顯示分數MOVR1,#33HMOVR2,#06HLP6:MOVA,@R1MOVDPTR,#TAB;查找顯示數據MOVCA,@A+DPTRMOVSBUF,A;通過串行口發送顯示JNBTI,$;串行口是否發送完畢CLRTI;串行口標志清0INCR1DJNZR2,L;6次是否發送完畢SETBP3.7KP6:JNBP3.3,KP6KP:RETITAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H;顯示字D10S:MOV50H,#05H;延時程序10SD2S:MOVR3,#0AH;延時程序2SD200MS:MOVR7,#14HD10MS:MOVR6,#05HLOOP3:MOVR5,#0F9HNOPNOPLOOP2:DJNZR5,LOOP2DJNZR6,LOOP3DJNZR7,D10MSDJNZR3,D200MSDJNZ50H,D2SRET結論TC"結論"\fC在本次畢業設計,我通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業職工現場管理制度
- 臨街商業用電管理制度
- 中糧公司火源管理制度
- 一線業務團隊管理制度
- 產業用房規范管理制度
- 舌尖安全標準化管理制度
- 嚴格發票細節管理制度
- 企業老板薪酬管理制度
- xx單位票據管理制度
- 中職學生實習管理制度
- 2025年氨水市場需求分析
- 做課件教學視頻
- 2025年特種設備安全考試題庫特種設備安全管理人員法規應用試卷
- 普法試題及答案初中
- 中控崗位考試題及答案
- 商鋪退押金協議書
- 碘對比劑護理應用與安全管理
- 2025-2030年中國航空密封件行業市場現狀供需分析及投資評估規劃分析研究報告
- 知識產權租賃協議書
- GB 45673-2025危險化學品企業安全生產標準化通用規范
- 醫院培訓課件:《新生兒早期基本保健專家共識(2020)解讀》
評論
0/150
提交評論