




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機原理及系統課程設計業:電氣工程及其自動化級: 名: 號:指導教師:州交通大學自動化與電氣工程學院2014年1月17日單片機原理及系統課程設計報告基于單片機的八路搶答器1實驗目的(1)進一步熟悉和掌握單片機的結構及工作原理。(2)掌握單片機的接口技術及相關外圍芯片的特性及控制方法。(3)通過課程設計,掌握以單片機為核心的電路設計的基本方法和技術,了解有 關電路參數的計算方法。2八路搶答器的功能與操作2.1功能(1)搶答定時,回答定時,并調整搶答和回答時間。(2)鎖住違規搶答的選手的搶答權。(3)保存并顯示選手成績。2.2操作按下搶答鍵之前搶答的屬于違規操作,鎖住他們的本次搶答權利。按下搶答
2、之后有權利的可以搶答,在規定時間內搶答到則進入答題環節,無人搶答則開始 下一輪。回答環節也是在規定時間內作答,正確則加分,錯誤則扣分,在規定時 間內未作答按打錯處理。按下顯示成績后可以通過加減查看每位選手成績,按確 定退出。按下修改后選擇修改序號,“T為修改搶答時間,“2”為修改答題時間。 確定鍵進入,加減鍵修改,確定鍵確認。3八路搶答器整體設計方案本次設計以AT89C51為主芯片,利用數碼管、按鍵、電阻、晶振、蜂鳴器等 組成的硬件電路。通過軟件實現具體的功能。初始化模塊等待及違規搶答處理模塊(包含鎖存環節) 倒計時模塊(包含搶答和答題倒計時) 顯示模塊 延遲模塊 計時模塊 蜂鳴模塊 搶答模塊
3、軟件包括如下模塊:(1)(2)(包含搶答及答題按鍵檢測環節) (包含顯示和按鍵延遲)(50mS(按音節原理發聲)(有效及無效搶答)(3)(4)(5)(6)(7)(8)(9) 回答模塊(加分及減分)(10) 時間調整模塊(搶答及回答時間調整)(11) 成績顯示模塊4硬件設計根據八路搶答器的功能要求,并結合對 51系列單片機的資源分析,采用此系列中的主流型號AT89C51作為電路系統的控制核心。基本硬件電路圖如附錄1所7示04.1按鍵將按鍵的一端接地,另一端接到引腳上。當按鍵按下的時候引腳就會得到低 電平,表示按鍵按下。如附錄1所示。4.2顯示電路溫度采用二位七段碼顯示。對成績及選手號進行循環掃描
4、顯示。通過適當軟件延遲保證數碼管顯示。如附錄 1所示。4.3主要器件介紹(1)AT89C5I 單片機AT89C5I是一個低功耗,高性能CMOS 8位單片機,片內含8k可反復擦寫1000 次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制 造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理 器和ISP Flash存儲單元,功能強大的微型計算機,AT89S51可為許多嵌入式控制應 用系統提供高性價比的解決方案。(2) LED數碼管7段LED數碼管是利用7個LED (發光二極管)外加一個小數點的LED組合 而成的顯示設備,可以顯示0-9等
5、10個數字和小數點,使用非常廣泛。這類數碼 管可以分為共陽極與共陰極兩種,共陽極就是把所有LED的陽極連接到共同接點com,而每個LED的陰極分別為a、b、c、d、e、f、g及dp (小數點);共陰極則 是把所有LED的陰極連接到共同接點com,而每個LED的陽極分別為a、b、c、 d、e、f、g及dp (小數點)。5軟件設計5.1程序清單如附錄2所示。5.2流程圖如附錄3所示。5.3軟件調試軟件的調試主要通過 Keil uVision3軟件進行操作,對程序編寫過程中的錯誤 進行查找,找出錯誤,進行修改,然后再進行編譯直至編譯成功,生成HEX文件, 才能下載到單片機里,繼而實現相應功能。5.4
6、系統仿真及實際調試系統采用PROTEUS仿真運行八路搶答器,系統運行時,最開始選手號不顯 示,即使位置顯示。如附錄1所示。6總結本次課程設計是對所學知識的一次綜合性運用。在設計的過程中發現了自身 知識的不足,也發現我們必須具備專業基礎知識,才能成功的設計出一件合格的 東西。這次課程設計收獲很多,體會也很深刻,并且對我們所學的東西也產生了 濃厚的興趣。在設計過程中,也學會了很多新的東西,比如一些仿真軟件的應用, 最典型的就是PROTEUS軟件的應用,以及與KEIL軟件的聯合使用。當然最重要 的是學到了關于基本電子設計的一些基本方法。除此之外,我覺得在這次設計的 過程中,很多自己解決不了的問題,只
7、有虛心請教別人才能有效的解決問題,我 覺得人與人之間的相互幫助很有必要,這樣不僅能幫助大家很快的解決問題,還 能提高我們每個人的實際水平,這些能力對于我們今后的學習和工作都很有幫助。在本次設計過程中遇到不少問題,在老師和同學的幫助和配合下才順利的完 成了本次課程設計。老師在我們做設計的過程中,給予了我們極大的幫助,不僅 從知識方面引導了我們的設計思路,同時,在人生觀上也給了我們不少的啟示。 在此,我對老師和同學表示深深的謝意。參考文獻1李華.單片機原理及應用.蘭州.蘭州大學出版社M,2001.52江志紅.51單片機技術與應用系統開發案例精選M.北京.清華大學出版社,2008.123張靖武,周靈
8、彬.單片機系統的PROTEUS設計與仿真M.北京.電子工業出版社,2007.44王思華.單片機原理及應用系統設計.北京.科學出版社M,2012.918附錄1開始/確定C2屮30 PFC3TF30 PFCRYSTAL21即2210APPAAAAAAAPAAPPPPPT忖WFU1AT89C51顯示成績 Ij M Ir調整 c減nR108LS1 n y SOUNDERAAC120uFR9 -Jt220P roteus仿真圖附錄2程序清單ORG 0000HAJMP MAIN;=中斷跳轉設置ORG 0003HAJMP SHOWORG 000BHAJMP SONGORG 0013HAJMP CHANGEO
9、RG 001BHAJMP TIMEORG 0040H;=初始化=MAIN:MOV SP ,#70HMOV R1,#10;初始化搶答時間為10sMOV R2,#10;初始化答題時間為10sMOV R0,#00HMOV 41H,#00HMOV 42H,#00HMOV 43H,#00HMOV 44H,#00HMOV 45H,#00HMOV 46H,#00HMOV 47H,#00HMOV 48H,#00H;初始化成績CLR 00HCLR 01HCLR 02HCLR 03HCLR 04H;初始化狀態位MOV P2,#0FFH;初始化 p0 口MOV TMOD,#11H;設置定時器/模式1MOV R7,#
10、0;設置T0初值選擇(蜂鳴器頻率)MOV TH1,#3CHMOV TL1,#0B0H;設置 T1 初值(50ms)SETB EASETB ET0SETB ET1SETB EX0SETB EX1;允許四個中斷,T0/T1/INT0/INT1SETB TR1SETB TR0;運行定時器;=按鍵判斷及選擇=START1:CLR 11HCLR 12HCLR 13HCLR 14HCLR 15HCLR 16HCLR 17HCLR 18HMOV 3AH,#00H;初始化錯誤搶答標志及個數START:CLR P 3.7MOV R0,#0MOV R5,#00HMOV R4,#00HMOV R3,#0BH;初始化
11、顯示相關寄存器CLR 01H;關閉聲音ACALL DIS PLAY;等待界面顯示JB P3.0,NEXT;是否開始搶答ACALL BARKMOV C,11HMOV ACC.0,CMOV C,12HMOV ACC.1,CMOV C,13HMOV ACC.2,CMOV C,14HMOV ACC.3,CMOV C,15HMOV ACC.4,CMOV C,16HMOV ACC.5,CMOV C,17HMOV ACC.6,CMOV C,18HMOV ACC.7,CMOV 3BH,A;將違規搶答號輸出鎖存區MOV A,R1MOV R6,A;把R1(搶答時間)賦給R6 (倒計時時間)MOV R3,#0BH;
12、號碼顯示控制(搶答時不顯示,作答時顯示)CLR 00HCLR 02HCLR 03HCLR 01HCLR 04H;清空標志位AJMP COUNT;進入倒計時程序NEXTJB 11H,FF2JNB P1.0,FALSE1;選擇違規號,下同FF2:JB 12H,FF3JNB P 1.1,FALSE2FF3:JB 13H,FF4JNB P 1.2,FALSE3FF4:JB 14H,FF5JNB P 1.3,FALSE4FF5:JB 15H,FF6JNB P 1.4,FALSE5FF6:JB 16H,FF7JNB P 1.5,FALSE6FF7:JB 17H,FF8JNB P 1.6,FALSE7FF8
13、:JB 18H,FF9JNB P 1.7,FALSE8FF9:AJ MP START;=錯誤搶答選擇=FALSE1: MOV R3,#01HINC 3AHSETB 11HAJMP ERROR ;將對應違規號送入選手顯示寄存器并錯住對應選手的搶答,下同FALSE2: MOV R3,#02HINC 3AHSETB 12HAJMP ERRORFALSE3: MOV R3,#03HINC 3AHSETB 13HAJMP ERRORFALSE4: MOV R3,#04HINC 3AHSETB 14HAJMP ERRORFALSE5: MOV R3,#05HINC 3AHSETB 15HAJMP ERRO
14、RFALSE6: MOV R3,#06HINC 3AHSETB 16HAJMP ERRORFALSE7: MOV R3,#07HINC 3AHSETB 17HAJMP ERRORFALSE8: MOV R3,#08HINC 3AHSETB 18HAJMP ERROR ;=錯誤搶答處理=ERROR: CLR P 3.7MOV R0,#00HMOV TH1,#3CHMOV TL1,#0B0HMOV R7,#0SETB 01H;設置對應定時器HERE: MOV A,R0CJNE A,#14H,FLASH;CLR 01HMOV 32H,R1MOV R1,3AHCJNE R1,#08H,DD1;判斷是否
15、全部違規搶答,是則清空鎖存并顯示fMOV R1,32HCLR 11HCLR 12HCLR 13HCLR 14HCLR 15HCLR 16HCLR 17HCLR 18HMOV 3AH,#00HMOV R3,#0AHAJMP ERRORDD1:MOV R1,32HAJMP STARTFLASH:MOV R5,#0BHMOV R4,#0BH;只顯示號碼ACALL DIS PLAYAJMP HERE ;=倒計時 / 選擇=: COUNT: MOV R0,#00H;重置 50ms次數 MOV TH1,#3CHMOV TL1,#0B0H;重置定時器初值 ;=顯示RECOUNT:MOV A,R6MOV B,
16、#0AHDIV AB;求十位和個位MOV R5,AMOV A,BMOV R4,A;給顯示寄存器賦值ACALL DIS PLAY聲音/判斷JB 00H,YYJB 02H,QUITYY:JB 03H,QUITJB 04H,QUITCJNE R6,#5,SOUND0;5s 時開啟警告SETB 01HSOUND0:CJNE R6,#0,LARGER;計時時間完成后跳轉結果選擇AJMP QUIT ;=計時larger: MOV A,R0CJNE A,#14H,RECOUNT;基于 50ms 的 1S 計時(達至U 1s 自動減 1)dec R6MOV R0,#00HAJMP recount;=結果選擇Q
17、UIT:CLR 01HJB OOH,ACCOUT1;搶答或回答模塊選擇JNB 02H,AA;如果沒有有效數據則返回ACALL BARK3MOV A,34HJB 11H,TT2JNB ACC.0,TRUE1;搶答成功選擇,下同TT2:JB 12H,TT3JNB ACC.1,TRUE2TT3:JB 13H,TT4JNB ACC.2,TRUE3TT4:JB 14H,TT5JNB ACC.3,TRUE4TT5:JB 15H,TT6JNB ACC.4,XX4TT6:JB 16H,TT7JNB ACC.5,XX3TT7:JB 17H,TT8JNB ACC.6,XX1TT8:JNB ACC.7,XX2XX1
18、:AJ MP TRUE7XX2:AJ MP TRUE8XX3:AJ MP TRUE6XX4:ACALL TRUE5AA:ACALL BARK2AJMP START1ACCOUT1:JB 03H,JIAJB 04H,JIANAJMP JIAN;回答正確加分,錯誤扣分JIA:ACALL BARK3MOV 32H,R1MOV R1,35HINC R1MOV R1,32HCLR 00HCLR 01HCLR 03HAJMP START1JIAN:ACALL BARK2MOV 32H,R1MOV R1,35HCJNE R1,#00H,BBMOV R1,32HAJMP STARTBB:DEC R1MOV R
19、1,32HAJMP START1 ;=正確搶答= TRUE1: ACALL BARKMOV A,R2MOV R6,A;送入回答時間MOV R3,#01H;送入序號MOV 35H,#41H ;送入相關地址SETB 00H;流程選擇回答CLR P 3.7;防止蜂鳴器停在高電平AJMP COUNT;以上下同TRUE2:ACALL BARKMOV A,R2MOV R6,AMOV R3,#02HMOV 35H,#42HSETB 00HCLR P 3.7AJMP COUNTTRUE3:ACALL BARKMOV A,R2MOV R6,AMOV R3,#03HMOV 35H,#43HSETB 00HCLR
20、P 3.7AJMP COUNTTRUE4:ACALL BARKMOV A,R2MOV R6,AMOV R3,#04HMOV 35H,#44HSETB 00HCLR P 3.7AJMP COUNTTRUE5:ACALL BARKMOV A,R2MOV R6,AMOV R3,#05HSETB 00HCLR P 3.7MOV 35H,#45HAJMP COUNTTRUE6: ACALL BARKMOV A,R2MOV R6,AMOV R3,#06HSETB 00HCLR P 3.7MOV 35H,#46HAJMP COUNTTRUE7:ACALL BARKMOV A,R2MOV R6,AMOV R3
21、,#07HSETB 00HCLR P 3.7MOV 35H,#47HAJMP COUNTTRUE8:ACALL BARKMOV A,R2MOV R6,AMOV R3,#08HSETB 00HCLR P 3.7MOV 35H,#48HAJMP COUNT;=顯示模塊=DIS PLAY:MOV DP TR,#DATMOV A,R3MOVC A,A+D PTRSETB P 2.1MOV P 0,ACLR P 2.2ACALL DELAY1 ;選手號顯示MOV DP TR,#DATMOV A,R5MOVC A,A+D PTRSETB P 2.2MOV P 0,ACLR P 2.0ACALL DELAY
22、1 ;十位顯示MOV DP TR,#DATMOV A,R4MOVC A,A+D PTRSETB P 2.0MOV P 0,ACLR P 2.1ACALL DELAY1 ;個位顯示RETDAT:DB 3Fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,71H,00H;"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "f"
23、 "7滅"=顯示選手成績=SHOW:CLR ET1P USH ACCMOV R3,#01HMOV R0,#41H ;初始化(選手1)SHOW1:MOV A,R0MOV B,#0AHDIV AB;求十位和個位MOV R5,AMOV A,BMOV R4,A;給顯示寄存器賦值ACALL DIS PLAYJNB P 3.4,AD3;+JNB P 3.5,DE3;-JNB P 3.0,EN3;返回AJMP SHOW1AD3:CJNE R3,#08H,ADD3;選手位溢出判斷MOV R3,#01HMOV R0,#41HACALL DELAY2AJMP SHOW1ADD3: INC R3
24、INC R0ACALL DELAY2AJMP SHOW1DE3:CJNE R3,#01H,ADD4;選手位溢出判斷MOV R3,#08HMOV R0,#48HACALL DELAY2AJMP SHOW1ADD4: DEC R3DEC R0ACALL DELAY2AJMP SHOW1EN3: ACALL DELAY2CLR IE0POP ACCSETB ET1RETI ;=改變時間 CHANGE:P USH ACCMOV 39H,R3MOV R4,#0BHMOV R5,#0BHMOV R3,#01H;初始化CHANGE1:ACALL DIS PLAYJNB P 3.4,ADJNB P 3.5,A
25、DJNB P 3.0,FFAJMP CHANGE1;按鍵選擇并顯示AD:CJNE R3,#01H,AD2CJNE R3,#02H,AD1AD1:MOV R3,#02HACALL DELAY2AJMP CHANGE1AD2:MOV R3,#01HACALL DELAY2AJMP CHANGE1FF:ACALL DELAY2;判斷選擇CJNE R3,#01H,INT1SUBCJNE R3,#02H,INT0SUBINT0SUB:MOV A,R1;搶答時間修改MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#01HACALL DIS PLAY;顯示目前時間限希9JNB
26、P3.4,INC0;P3.4 為+1s 鍵,如按下跳到 INCOJNB P3.5,DEC0;P3.5為-1s鍵,如按下跳到 DECOJNB P3.0,BACK0;P3.0為確定鍵,如按下跳到BACKOAJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOV R1,#00HACALL DELAY2AJMP INT0SUBADD0: INC R1ACALL DELAY2AJMP INT0SUBDEC0: MOV A,R1JZ SETR1;如果 R1 為 0, R1 就置 99,DEC R1ACALL D
27、ELAY2AJMP INT0SUBSETR1: MOV R1,#63HACALL DELAY2AJMP INT0SUBBACK0: ACALL DELAY2CLR IE1POP ACCMOV R3,39HRETIINT1SUB:MOV A,R2;回答時間修改MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#02HACALL DIS PLAYJNB P 3.4,INC1JNB P 3.5,DEC1JNB P 3.0,BACK1AJMP INT1SUBINC1: MOV A,R2CJNE A,#63H,ADD1MOV R2,#00HACALL DELAY2AJMP I
28、NT1SUBADD1: INC R2ACALL DELAY2AJMP INT1SUBDEC1: MOV A,R2JZ SETR2DEC R2ACALL DELAY2AJMP INT1SUBSETR2: MOV R2,#63HACALL DELAY2AJMP INT1SUBBACK1: ACALL DELAY2CLR IE1POP ACCMOV R3,39HRETI ;=蜂鳴器=;為了發出不同聲音采用音調發聲模式SONG:P USH ACCP USH DPHP USH DPLMOV A,R7MOV DP TR,#DAT_HMove A,A+D PTRMOV TH0,AMOV A,R7MOV DP TR,#DAT_LMOVC A,A+D PTRMOV TL0,APOP DPLPOP DPHPOP ACCJNB 01H,OUT;CPL P3.7;01H標志位為1時候P3.6 口取反輸出(發聲)OUT:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 豆類食品加工企業生產計劃與調度考核試卷
- 肉類加工過程中的質量監控技術考核試卷
- 新生兒喂養指導要點
- 院前急救與護理要點解析
- 誼安呼吸機510臨床操作與產品解析
- Guamecycline-生命科學試劑-MCE
- 單站閃電定位儀在哪些場景應用
- 新疆棉紡織產業發展現狀與趨勢調研報告
- 2025年下半年保險行業策略報告:新增負債成本顯著下降板塊兼具基本面及資金面催化
- 新能源汽車在城市公共交通中的應用與城市能源結構轉型報告
- 少年志不渝奮斗正當時
- 2025年中電科太力通信科技限公司招聘高頻重點提升(共500題)附帶答案詳解
- 《城鎮用水單位智慧節水系統技術要求》
- 2025年圍產期保健工作計劃
- 戰地記者職業生涯規劃
- 喘息性支氣管肺炎護理
- 《小兒腹痛》課件
- 《無人機飛行操控技術》項目5 無人直升機飛行操控
- 行政職業能力測驗公務員考試行測試卷及答案指導(2025年)
- 夏令營安全管理工作制度
- 2024年黑龍江、吉林、遼寧高考生物試卷(含答案解析)
評論
0/150
提交評論