




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 微機原理 課程設(shè)計報告 實驗名稱: 計算機比賽計分器 姓 名: 黃秀滿 學(xué) 號: 201217010222 專業(yè)班級: 計科12102班 指導(dǎo)教師: 楊紅杰 實驗日期: 2015年上學(xué)期第十八周 評閱意見:評定成績: 指導(dǎo)老師簽名: 年 月 日 目錄一、 系統(tǒng)概述11.1 功能簡述11.2 按鈕設(shè)置1二、 總體方案設(shè)計22.1 系統(tǒng)框圖22.2 軟件總體設(shè)計3三、 系統(tǒng)硬件設(shè)計33.1 80C51單片機33.2 3×4矩陣式鍵盤33.3.1 數(shù)碼管顯示器數(shù)量選擇43.3.2 數(shù)碼管共陰共陽接法的選擇43.3.3 數(shù)碼管驅(qū)動的選擇43. 4系統(tǒng)原理圖5四、 系統(tǒng)軟件設(shè)計64.1主函數(shù)
2、設(shè)計64.2按鍵獲取,按鍵處理函數(shù)74.3顯示子程序84.4 延時子程序9五、 系統(tǒng)的安裝調(diào)試說明105.1 軟件調(diào)試105.2 軟硬聯(lián)調(diào)10六、 源程序清單:11總 結(jié)18參考文獻18 一、 系統(tǒng)概述1.1 功能簡述本設(shè)計內(nèi)容為比賽計分器,主要用于各種體育比賽記錄分數(shù)。采用矩陣式鍵盤作為輸入,用戶可分別對兩隊比分進行加1、加2、加3和減1減2、減3操作,其加減1,2,3分可以通過加減1分、2分和3分的切換按鈕實現(xiàn),并通過指示燈顯示其每次按下加減分鍵所加減的分值??梢詫崿F(xiàn)預(yù)置分。比分通過4個8段數(shù)碼管顯示器進行顯示,每隊比分顯示2位,1.2 按鈕設(shè)置計分器應(yīng)該有7個按鍵分別標注于原理圖,見圖1
3、.1。圖1.1按鈕功能圖其中1/2/3分切換由發(fā)光二極管指示,加1減1分別對應(yīng)。預(yù)置分是事先設(shè)定分數(shù)可以分別設(shè)定甲乙兩隊的初始分數(shù)。按下清零后,顯示的分數(shù)清零。二、 總體方案設(shè)計2.1 系統(tǒng)框圖系統(tǒng)框圖,見圖2.1。4個8段數(shù)碼顯示器3x4矩陣鍵盤89C52單片機發(fā)光二極管復(fù)位電路圖2.1 系統(tǒng)框圖本設(shè)計用80C51單片機為核心,利用4個8段數(shù)碼管顯示器.采用動態(tài)顯示輸出比分,用戶信息輸入則采用3×4矩陣式鍵盤。89C52單片機有32根I/O線,所以不用擴展I/O口。用一片單片機即可滿足本設(shè)計的輸入輸出。2.2 軟件總體設(shè)計軟件設(shè)計主要分為3個部分:信息輸入、信息處理、顯示輸出。主要
4、包括:顯示函數(shù),按鍵獲取函數(shù),按鍵處理函數(shù),進制轉(zhuǎn)換函數(shù)。信息輸入時采用矩陣式鍵盤來實現(xiàn),所以需要檢測鍵盤有無按鍵的子程序;信息處理需要對用戶通過鍵盤輸入的不同信息進行辨別并執(zhí)行相應(yīng)的處理;顯示輸出考慮到成本和電路體積,決定采用動態(tài)輸出。三、 系統(tǒng)硬件設(shè)計3.1 80C51單片機因為我們上課時學(xué)的是MCS-51,所以就選擇了STC89C52單片機,因為它與INTEI MCS-51 兼容,并且它們都具有相同的CPU和指令系統(tǒng),引腳功能兼容,容易掌握和使用。3.2 3×4矩陣式鍵盤根據(jù)設(shè)計共需要7個按鍵,可采用3×3矩陣式鍵盤,但考慮到常用鍵盤為3×
5、;4矩陣式鍵盤,而且方便以后功能的擴展和方便硬件的連接,所以最終決定采用3×4矩陣式鍵盤作為輸入。3.3.1 數(shù)碼管顯示器數(shù)量選擇兩個隊,每隊2位比分,每個顯示器只能顯示一位,則至少需要采用4個8段數(shù)碼管顯示器。段數(shù)碼管顯示器采用動態(tài)顯示輸出比分。3.3.2 數(shù)碼管共陰共陽接法的選擇51單片機I/O口輸出高電平時輸出的電流很小,數(shù)碼管不會太亮;因為本設(shè)計采用動態(tài)顯示,單片機I/O口直接接數(shù)碼管,所以決定采用共陽數(shù)碼管。3.3.3 數(shù)碼管驅(qū)動的選擇為了使數(shù)碼管亮度達到要求,數(shù)碼管的位選端需要驅(qū)動,因為單片機I/O口的高電平輸出的電流很小,需要驅(qū)動電路驅(qū)動,從而增加顯示亮度。最簡單便宜的
6、驅(qū)動就是使用三極管,為低電平時開通,所以選擇PNP型三極管。3. 4系統(tǒng)原理圖四、 系統(tǒng)軟件設(shè)計4.1主函數(shù)設(shè)計主函數(shù)程序代碼:MAIN: MOV NUMA,#0 MOV NUMB,#0 ;分數(shù)清零 MOV TEMP,#1 ;起始時的分數(shù)加1 MOV P1,#0DFH ACALL TRANM0: ACALL DISP ;調(diào)用顯示函數(shù) ACALL KEYSCAN ;調(diào)用按鍵獲取函數(shù) SJMP M0 ;首先初始化將儲存甲乙兩對分數(shù)的內(nèi)存單元清零,起始時TEMP置1,并使LED5點亮,調(diào)用進制轉(zhuǎn)換函數(shù),調(diào)用顯示函數(shù),調(diào)用按鍵獲取函數(shù),之后重復(fù)調(diào)用顯示函數(shù),調(diào)用按鍵獲取函數(shù).。函數(shù)間的調(diào)用關(guān)系,見圖4
7、.1。主函數(shù)進制轉(zhuǎn)換函數(shù)顯示函數(shù)延時函數(shù)按鍵獲取函數(shù)延時函數(shù)按鍵處理函數(shù)進制轉(zhuǎn)換函數(shù)圖4.1函數(shù)關(guān)系調(diào)用圖4.2按鍵獲取,按鍵處理函數(shù)按鍵獲取,按鍵處理函數(shù)流程圖,見圖4.2。鍵掃描開始有無鍵按下去抖動鍵碼計算釋放鍵JMP A+DPTRA=06EH,清零鍵處理A=0D62H, 分值切換鍵處理A=0E3H, A減分鍵處理A=0E5H,A加分鍵處理圖4.2按鍵獲取,按鍵處理函數(shù)流程圖說明:由于圖紙大小有限,還有B加分鍵處理,B減分鍵處理,以及按下無關(guān)鍵時顯示不變。未在圖紙中表示出來。4.3顯示子程序 本程序是采用動態(tài)顯示,用這種方法的好處在于每次刷新顯示的時間相同,每個數(shù)碼管顯示的時間也相同,這樣
8、就可以讓數(shù)碼管清晰而且穩(wěn)定的顯示數(shù)據(jù)。顯示子程序流程圖,見圖4.3。位 選 通取 段 碼送 段 碼調(diào)用延時程序關(guān) 段 碼圖4.3 顯示子程序流程圖4.4 延時子程序給R6放初值執(zhí)行三條空指令返回R6-1,判斷R6是否為0R7-1,判斷R7是否為0圖4.4 延時子程序流程圖延時子程序就是通過執(zhí)行一些沒用但又占用時間的指令的集合。這個子程序可以用于很多延時的地方因為它延時的時間可以通過R7進行改變,所以通用性好,可以將幾個延時子程序合為一個,只用在調(diào)用前給R7賦值,即可根據(jù)用戶的需要延時,流程圖見圖4.4。五、 系統(tǒng)的安裝調(diào)試說明5.1 軟件調(diào)試軟件調(diào)試主要是在仿真軟件完成的。在寫好源程序,畫出原
9、理圖之后,在電腦上進行軟件仿真。系統(tǒng)原理圖附后。5.2 軟硬聯(lián)調(diào)首先將編譯成功程序載入單片機系統(tǒng)開發(fā)板。通電后,LED5,電源指示燈點亮,數(shù)碼管顯示“0000”.。對應(yīng)的 “4”鍵為甲加分按鈕,當LED5亮?xí)r,每次按下“4”鍵,甲隊分數(shù)加1;當LED6亮?xí)r,每次按下“4”鍵,甲隊分數(shù)加2;當LED7亮?xí)r,每次按下“4”鍵,甲隊分數(shù)加3;其中LED5,LED6,LED7的點亮與熄滅是通過對應(yīng)的“1”鍵來控制,可以通過按“1”鍵來實現(xiàn)LED5,LED6,LED7之間的切換。對應(yīng)的“8”鍵為甲隊減分鍵,當LED5亮?xí)r,每次按下“8”鍵,甲隊分數(shù)減1;當LED6亮?xí)r,每次按下“8”鍵,甲隊分數(shù)減2;當
10、LED7亮?xí)r,每次按下“4”鍵,甲隊分數(shù)減3;“7”鍵為乙加分鍵,“B”鍵為乙隊減分鍵,其實現(xiàn)功能與甲隊一樣。對應(yīng)的“0”鍵為預(yù)置分按鈕,按下“0”鍵之后,通過按甲乙隊加、減分按鈕配合分數(shù)切換鍵實現(xiàn)快速預(yù)置分?!盧ESET”為復(fù)位鍵,按下可以實現(xiàn)復(fù)位。數(shù)碼管顯示甲乙隊當前分數(shù),復(fù)位后,數(shù)碼管顯示“0000”。六、 源程序清單:NUMA EQU 30HNUMB EQU 31H ;甲乙兩隊的分數(shù)D1 EQU 32H ;顯示緩存區(qū)32h35hD2 EQU 33HD3 EQU 34HD4 EQU 35HDUAN EQU P0 ;段顯示端口WEI1 EQU P2.4 ;位選端口P2.4-P2.7WEI2
11、 EQU P2.5WEI3 EQU P2.6WEI4 EQU P2.7TEMP EQU 36H ;存放切換的加減分數(shù)1/2/3KEYDATE EQU 37H ;存放按鍵值ORG 0000HMAIN:MOV NUMA,#0 MOV NUMB,#0 ;分數(shù)清零 MOV TEMP,#1 ;起始時的分數(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
12、A,#0F0H,K0SJMP K4K0:MOV R5,#5K1:ACALL DELAY2MS ;10ms延時去抖動DJNZ R5,K1MOV A,P2ANL A,#0F0HCJNE A,#0F0H,K2 SJMP K4 ;是抖動返回K2:MOV KEYDATE,A ;存儲按鍵值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;*CHUL
13、I: MOV A,KEYDATE CJNE A,#0E6H,C0 MOV NUMA,#0 MOV NUMB,#0 MOV TEMP,#1 ;按下清零鍵,A,B隊分數(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 ;按
14、下A隊加分按鍵,A隊加分 ADD A,TEMP ;分值相加 CJNE A,#99,C3 ; MOV A,#0C3: MOV NUMA,A RETC4: CJNE A,#75H,C6 MOV A,NUMB ;按下B隊加分按鍵,A隊加分 ADD A,TEMP ;分值相加 CJNE A,#99,C5 ; MOV A,#0C5: MOV NUMB,A RETC6: CJNE A,#0E3H,C9 MOV A,NUMA ;按下A隊減分按鍵,A隊減分 SUBB A,TEMP ;分值相減 CJNE A,#0FCH,C7 RETC7: JC C8 MOV A,#99C8: MOV NUMA,A RETC9:
15、CJNE A,#073H,C12 MOV A,NUMB ;按下B隊加減按鍵,A隊減分 SUBB A,TEMP ;分值相減 CJNE A,#0FCH,C10 RETC10: JC C11 MOV A,#99C11: MOV NUMB,AC12: RET ;*TRAN: MOV A,NUMA ;進制轉(zhuǎn)換將10進制分數(shù)轉(zhuǎn)化成2進制,然后顯示 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
16、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; RE
17、T ;*DELAY2MS:MOV R6,#5D0: MOV R7,#248 DJNZ R7,$ DJNZ R6,D0 RETTAB:DB 28H ; 0 DB 0EBH ; 1 DB 32H ; 2 DB 0A2H ; 3 DB 0E1H ; 4 DB 0A4H ; 5 DB 24H ; 6 DB 0EAH ; 7 DB 20H ; 8 DB 0A0H ; 9 DB 60H ; A DB 25H ; B DB 3CH ; C DB 23H ; D DB 34H ; E DB 74H ; F DB 0D7H ; -. DB 0F7H ; - DB 61H ; H DB 70H ; P DB 0DFH ; . DB 27H ; O DB 0FFH ; 全黑 END 總 結(jié)這次課程設(shè)計雖然只有短短的兩周時間,但我受益匪淺。剛開始拿到課題時,覺得自己無處入手,但通過老師的講解和查詢資料,開始有自己的思路,整理出了總體方案,然后設(shè)計出硬件原理圖,源程序等。在這次設(shè)計中困難最大的就是調(diào)試,收獲最多的也是調(diào)試,因為調(diào)試的時候你必須對程序相當?shù)氖煜?,對每一條指令相當了解,并且硬件的連接也要清晰的印在腦海里,只有這樣你才能讓軟件和硬件結(jié)合在一起,實現(xiàn)預(yù)期功能。在編程結(jié)束時需要編寫END指令,這也是初學(xué)者編程時經(jīng)常忘記的。當然也有值得高興的地方,我的設(shè)計通過加
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030碳酸銅行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025-2030硬質(zhì)彩色聚氨酯(PU)泡沫行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030硅基材料行業(yè)市場發(fā)展分析及前景趨勢與投資研究報告
- 2025-2030直發(fā)刷行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030百里酚酞行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2025家庭裝修設(shè)計合同模板
- 2025-2030電動牽引車行業(yè)營銷策略調(diào)研及發(fā)展未來總體趨勢報告
- 2025-2030生活用紙行業(yè)競爭格局分析及投資前景與戰(zhàn)略規(guī)劃研究報告
- 2025-2030瑜伽墊行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030特種車產(chǎn)品入市調(diào)查研究報告
- 深圳市建筑工務(wù)署材料設(shè)備參考品牌庫(更新至2019年11月27日)
- 公安機關(guān)辦理行政案件程序規(guī)定專業(yè)考試題庫
- 光伏斜屋頂計算書屋頂光伏電站項目荷載計算書
- 動脈血氣分析理論知識考核試題及答案
- 針對貧困戶扶志扶智實施方案范文(二篇)
- 醫(yī)療美容門診病歷
- 某公司首臺套申報材料
- 北師大版二年級數(shù)學(xué)下冊《有多少個字》評課稿
- 第八講 發(fā)展全過程人民民主PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 醫(yī)院固定資產(chǎn)出租出借管理辦法
- 2022年南京六合區(qū)圖書館招聘考試真題及答案
評論
0/150
提交評論