已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
比賽計(jì)分器課程設(shè)計(jì)學(xué)號(hào):姓名:班級(jí):信息班15第1章 系統(tǒng)概述1.1 功能簡(jiǎn)述本設(shè)計(jì)內(nèi)容為比賽計(jì)分器,主要用于各種體育比賽記錄分?jǐn)?shù)。采用矩陣式鍵盤作為輸入,用戶可分別對(duì)兩隊(duì)比分進(jìn)行加1、加2、加3和減1減2、減3操作,其加減1,2,3分可以通過加減1分、2分和3分的切換按鈕實(shí)現(xiàn),并通過指示燈顯示其每次按下加減分鍵所加減的分值??梢詫?shí)現(xiàn)預(yù)置分。比分通過4個(gè)8段數(shù)碼管顯示器進(jìn)行顯示,每隊(duì)比分顯示2位。第2章 總體方案設(shè)計(jì)2.1 系統(tǒng)框圖系統(tǒng)框圖,見圖2.1。4個(gè)8段數(shù)碼顯示器3x4矩陣鍵盤89c52單片機(jī)發(fā)光二極管復(fù)位電路圖2.1 系統(tǒng)框圖本設(shè)計(jì)用80c51單片機(jī)為核心,利用4個(gè)8段數(shù)碼管顯示器.采用動(dòng)態(tài)顯示輸出比分,用戶信息輸入則采用34矩陣式鍵盤。89c52單片機(jī)有32根i/o線,所以不用擴(kuò)展i/o口。用一片單片機(jī)即可滿足本設(shè)計(jì)的輸入輸出。2.2 軟件總體設(shè)軟件設(shè)計(jì)主要分為3個(gè)部分:信息輸入、信息處理、顯示輸出。主要包括:顯示函數(shù),按鍵獲取函數(shù),按鍵處理函數(shù),進(jìn)制轉(zhuǎn)換函數(shù)。信息輸入時(shí)采用矩陣式鍵盤來實(shí)現(xiàn),所以需要檢測(cè)鍵盤有無按鍵的子程序;信息處理需要對(duì)用戶通過鍵盤輸入的不同信息進(jìn)行辨別并執(zhí)行相應(yīng)的處理;顯示輸出考慮到成本和電路體積,決定采用動(dòng)態(tài)輸出。第3章 系統(tǒng)硬件設(shè)計(jì)3.1 80c51單片機(jī)因?yàn)槲覀兩险n時(shí)學(xué)的是mcs-51,所以就選擇了stc89c52單片機(jī),因?yàn)樗cinteimcs-51兼容,并且它們都具有相同的cpu和指令系統(tǒng),引腳功能兼容,容易掌握和使用。3.2 34矩陣式鍵盤根據(jù)設(shè)計(jì)共需要7個(gè)按鍵,可采用33矩陣式鍵盤,但考慮到常用鍵盤為34矩陣式鍵盤,而且方便以后功能的擴(kuò)展和方便硬件的連接,所以最終決定采用34矩陣式鍵盤作為輸入。3.3.1 數(shù)碼管顯示器數(shù)量選擇兩個(gè)隊(duì),每隊(duì)2位比分,每個(gè)顯示器只能顯示一位,則至少需要采用4個(gè)8段數(shù)碼管顯示器。段數(shù)碼管顯示器采用動(dòng)態(tài)顯示輸出比分。3.3.2 數(shù)碼管共陰共陽接法的選擇51單片機(jī)i/o口輸出高電平時(shí)輸出的電流很小,數(shù)碼管不會(huì)太亮;因?yàn)楸驹O(shè)計(jì)采用動(dòng)態(tài)顯示,單片機(jī)i/o口直接接數(shù)碼管,所以決定采用共陽數(shù)碼管。3.3.3 數(shù)碼管驅(qū)動(dòng)的選擇為了使數(shù)碼管亮度達(dá)到要求,數(shù)碼管的位選端需要驅(qū)動(dòng),因?yàn)閱纹瑱C(jī)i/o口的高電平輸出的電流很小,需要驅(qū)動(dòng)電路驅(qū)動(dòng),從而增加顯示亮度。最簡(jiǎn)單便宜的驅(qū)動(dòng)就是使用三極管,為低電平時(shí)開通,所以選擇pnp型三極管。第4章 軟件設(shè)計(jì)4.1主函數(shù)設(shè)計(jì)主函數(shù)程序代碼:main: mov numa,#0 mov numb,#0 ;分?jǐn)?shù)清零 mov temp,#1 ;起始時(shí)的分?jǐn)?shù)加1 mov p1,#0dfh acall tranm0: acall disp ;調(diào)用顯示函數(shù) acall keyscan ;調(diào)用按鍵獲取函數(shù) sjmp m0 ;首先初始化將儲(chǔ)存甲乙兩對(duì)分?jǐn)?shù)的內(nèi)存單元清零,起始時(shí)temp置1,并使led5點(diǎn)亮,調(diào)用進(jìn)制轉(zhuǎn)換函數(shù),調(diào)用顯示函數(shù),調(diào)用按鍵獲取函數(shù),之后重復(fù)調(diào)用顯示函數(shù),調(diào)用按鍵獲取函數(shù).。函數(shù)間的調(diào)用關(guān)系,見圖4.1。主函數(shù)進(jìn)制轉(zhuǎn)換函數(shù)顯示函數(shù)延時(shí)函數(shù)按鍵獲取函數(shù)延時(shí)函數(shù)按鍵處理函數(shù)進(jìn)制轉(zhuǎn)換函數(shù)圖4.1函數(shù)關(guān)系調(diào)用圖4.2按鍵獲取,按鍵處理函數(shù)按鍵獲取,按鍵處理函數(shù)流程圖,見圖4.2。鍵掃描開始有無鍵按下去抖動(dòng)鍵碼計(jì)算釋放鍵jmp a+dptra=06eh,清零鍵處理a=0d62h, 分值切換鍵處理a=0e3h, a減分鍵處理a=0e5h,a加分鍵處理圖4.2按鍵獲取,按鍵處理函數(shù)流程圖說明:由于圖紙大小有限,還有b加分鍵處理,b減分鍵處理,以及按下無關(guān)鍵時(shí)顯示不變。未在圖紙中表示出來。4.3顯示子程序 本程序是采用動(dòng)態(tài)顯示,用這種方法的好處在于每次刷新顯示的時(shí)間相同,每個(gè)數(shù)碼管顯示的時(shí)間也相同,這樣就可以讓數(shù)碼管清晰而且穩(wěn)定的顯示數(shù)據(jù)。顯示子程序流程圖,見圖4.3。位 選 通取 段 碼送 段 碼調(diào)用延時(shí)程序關(guān) 段 碼圖4.3 顯示子程序流程圖4.4 延時(shí)子程序給r6放初值執(zhí)行三條空指令返回r6-1,判斷r6是否為0r7-1,判斷r7是否為0圖4.4 延時(shí)子程序流程圖延時(shí)子程序就是通過執(zhí)行一些沒用但又占用時(shí)間的指令的集合。這個(gè)子程序可以用于很多延時(shí)的地方因?yàn)樗訒r(shí)的時(shí)間可以通過r7進(jìn)行改變,所以通用性好,可以將幾個(gè)延時(shí)子程序合為一個(gè),只用在調(diào)用前給r7賦值,即可根據(jù)用戶的需要延時(shí),流程圖見圖4.4。第5章 系統(tǒng)的安裝調(diào)試說明5.1 軟件調(diào)試軟件調(diào)試主要是在仿真軟件完成的。在寫好源程序,畫出原理圖之后,在電腦上進(jìn)行軟件仿真。系統(tǒng)原理圖附后。5.2 軟硬聯(lián)調(diào)首先將編譯成功程序載入單片機(jī)系統(tǒng)開發(fā)板。通電后,led5,電源指示燈點(diǎn)亮,數(shù)碼管顯示“0000”.。對(duì)應(yīng)的 “4”鍵為甲加分按鈕,當(dāng)led5亮?xí)r,每次按下“4”鍵,甲隊(duì)分?jǐn)?shù)加1;當(dāng)led6亮?xí)r,每次按下“4”鍵,甲隊(duì)分?jǐn)?shù)加2;當(dāng)led7亮?xí)r,每次按下“4”鍵,甲隊(duì)分?jǐn)?shù)加3;其中l(wèi)ed5,led6,led7的點(diǎn)亮與熄滅是通過對(duì)應(yīng)的“1”鍵來控制,可以通過按“1”鍵來實(shí)現(xiàn)led5,led6,led7之間的切換。對(duì)應(yīng)的“8”鍵為甲隊(duì)減分鍵,當(dāng)led5亮?xí)r,每次按下“8”鍵,甲隊(duì)分?jǐn)?shù)減1;當(dāng)led6亮?xí)r,每次按下“8”鍵,甲隊(duì)分?jǐn)?shù)減2;當(dāng)led7亮?xí)r,每次按下“4”鍵,甲隊(duì)分?jǐn)?shù)減3;“7”鍵為乙加分鍵,“b”鍵為乙隊(duì)減分鍵,其實(shí)現(xiàn)功能與甲隊(duì)一樣。對(duì)應(yīng)的“0”鍵為預(yù)置分按鈕,按下“0”鍵之后,通過按甲乙隊(duì)加、減分按鈕配合分?jǐn)?shù)切換鍵實(shí)現(xiàn)快速預(yù)置分?!眗eset”為復(fù)位鍵,按下可以實(shí)現(xiàn)復(fù)位。數(shù)碼管顯示甲乙隊(duì)當(dāng)前分?jǐn)?shù),復(fù)位后,數(shù)碼管顯示“0000”。附錄b源程序清單:numa equ 30hnumb equ 31h ;甲乙兩隊(duì)的分?jǐn)?shù)d1 equ 32h ;顯示緩存區(qū)32h35hd2 equ 33hd3 equ 34hd4 equ 35hduan equ p0 ;段顯示端口wei1 equ p2.4 ;位選端口p2.4-p2.7wei2 equ p2.5wei3 equ p2.6wei4 equ p2.7temp equ 36h ;存放切換的加減分?jǐn)?shù)1/2/3keydate equ 37h ;存放按鍵值org 0000hmain:mov numa,#0 mov numb,#0 ;分?jǐn)?shù)清零 mov temp,#1 ;起始時(shí)的分?jǐn)?shù)加1 mov p1,#0dfh acall tranm0: acall disp ;調(diào)用顯示函數(shù) acall keyscan ;調(diào)用按鍵獲取函數(shù) sjmp m0 ;*keyscan:mov p2,#0ffh ;采用反轉(zhuǎn)法讀取按鍵值 mov p2,#0f0hmov a,p2anl a,#0f0hcjne a,#0f0h,k0sjmp k4k0:mov r5,#5k1:acall delay2ms ;10ms延時(shí)去抖動(dòng)djnz r5,k1mov a,p2anl a,#0f0hcjne a,#0f0h,k2 sjmp k4 ;是抖動(dòng)返回k2:mov keydate,a ;存儲(chǔ)按鍵值mov p2,#0fhmov a,p2anl a,#07horl a,keydate ;取得鍵值存放在keydate中mov keydate,ak3:mov a,p2 anl a,#07h cjne a,#07h,k3 ;等待按鍵松開acall chuli ;調(diào)用按鍵處理函數(shù)acall trank4: ret;*chuli: mov a,keydate cjne a,#0e6h,c0 mov numa,#0 mov numb,#0 mov temp,#1 ;按下清零鍵,a,b隊(duì)分?jǐn)?shù)清零,加分為1 mov p1,#0dfh retc0: cjne a,#0d6h,c2 inc temp ;按下分值切換鍵,按一下分值加1, mov p1,#0bfh mov a,temp cjne a,#3,c01 mov p1,#7fhc01: cjne a,#4,c1 mov temp,#1 ;分值循環(huán)1- 2- 3- 1 mov p1,#0dfhc1: retc2: cjne a,#0e5h,c4 mov a,numa ;按下a隊(duì)加分按鍵,a隊(duì)加分 add a,temp ;分值相加 cjne a,#99,c3 ; mov a,#0c3: mov numa,a retc4: cjne a,#75h,c6 mov a,numb ;按下b隊(duì)加分按鍵,a隊(duì)加分 add a,temp ;分值相加 cjne a,#99,c5 ; mov a,#0c5: mov numb,a retc6: cjne a,#0e3h,c9 mov a,numa ;按下a隊(duì)減分按鍵,a隊(duì)減分 subb a,temp ;分值相減 cjne a,#0fch,c7 retc7: jc c8 mov a,#99c8: mov numa,a retc9: cjne a,#073h,c12 mov a,numb ;按下b隊(duì)加減按鍵,a隊(duì)減分 subb a,temp ;分值相減 cjne a,#0fch,c10 retc10: jc c11 mov a,#99c11: mov numb,ac12: ret ;*tran: mov a,numa ;進(jìn)制轉(zhuǎn)換將10進(jìn)制分?jǐn)?shù)轉(zhuǎn)化成2進(jìn)制,然后顯示 mov b,#10 div ab mov d1,a mov d2,b mov a,numb mov b,#10 div ab mov d3,a mov d4,b ret;*disp: mov dptr,#tab ;顯示函數(shù), clr wei1 ;位選通 mov a,d1 ; movc a,a+dptr ;取段碼 mov duan, a ;送段碼 acall delay2ms ; setb wei1 ;關(guān)位選 clr wei2 mov a,d2 movc a,a+dptr mov duan, a acall delay2ms setb wei2 clr wei3 mov a,d3 movc a,a+dptr mov duan, a acall delay2ms setb wei3 clr wei4 mov a,d4 movc a,a+dptr mov duan, a acall delay2ms setb wei4 mov duan,#0ffh; ret ;*delay2ms:mov r6,#5d0: mov r7,#248 djnz r7,$ djnz r6,d0 rettab:db 28h ; 0 db 0ebh ; 1 db 32h ; 2 db 0
溫馨提示
- 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ū)行知實(shí)驗(yàn)中學(xué)2026屆生物高一下期末達(dá)標(biāo)檢測(cè)試題含解析
- 2025年阜陽理工學(xué)院面試題庫及答案
- 2025年高中數(shù)學(xué)分組面試題庫及答案
- 2025年云浮羅定市事業(yè)單位考試及答案
- 2025年中國(guó)中車23春招筆試及答案
- 2025年漯河西湖幼兒園面試題庫及答案
- 2024年西安建筑科技大學(xué)馬克思主義基本原理概論期末考試題含答案解析(奪冠)
- 2024年遂川縣幼兒園教師招教考試備考題庫含答案解析(必刷)
- 2025年鹽城農(nóng)業(yè)科技職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 2025年景縣幼兒園教師招教考試備考題庫帶答案解析
- 2025年新版安全生產(chǎn)法知識(shí)考試試卷(含答案)
- 2025動(dòng)物防疫專員試題及答案
- 2026年齊齊哈爾高等師范??茖W(xué)校單招職業(yè)技能測(cè)試題庫必考題
- 輸變電工程安全教育課件
- 第9章 施工中的難點(diǎn)與要點(diǎn)分析
- 大健康行業(yè)經(jīng)營(yíng)保障承諾函(7篇)
- 胖東來管理制度全公開執(zhí)行標(biāo)準(zhǔn)
- 書法培訓(xùn)班安全制度
- GB/T 44626.2-2025微細(xì)氣泡技術(shù)表征用樣品中氣泡消除方法第2部分:消除技術(shù)
- GB/T 2899-2008工業(yè)沉淀硫酸鋇
- 鉤不了沉邏輯專項(xiàng)講義
評(píng)論
0/150
提交評(píng)論