版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PIC單片機(jī)課程設(shè)計設(shè)計報告題目:數(shù)字秒表學(xué)校:河北聯(lián)合大學(xué)信息工程學(xué)院學(xué)號:XXXXXXX姓名:XXX目錄一:課程設(shè)計題目 二:課程設(shè)計目的三:課程設(shè)計任務(wù)與要求 四:總體設(shè)計 4.1設(shè)計原理及方案論證4.2硬件部分4.2.1系統(tǒng)設(shè)計總框圖4.2.2電路組成及工作原理4.2.3單片機(jī)PIC16F877簡介 4.3軟件部分 4.3.1程序流程圖 4.3.2程序清單 五、總結(jié) 參考文獻(xiàn) 一:課程設(shè)計題目秒表計時器二:課程設(shè)計目的課程設(shè)計的主要目的是通過對電子時鐘的設(shè)計實踐,了解PIC單片機(jī)系統(tǒng)控制過程、設(shè)計要求、應(yīng)完成的工作內(nèi)容和具體設(shè)計方法。通過設(shè)計也有助于復(fù)習(xí)、鞏固以往所學(xué)的知識,達(dá)到靈活應(yīng)用的目的。課程設(shè)計應(yīng)強(qiáng)調(diào)能力培養(yǎng)為主,在獨立完成設(shè)計任務(wù)的同時,還要注意其他方面的能力的培養(yǎng)與提高,如獨立工作能力與創(chuàng)造力;綜合運用專業(yè)及基礎(chǔ)知識的能力,解決實際工程技術(shù)問題的能力等。三:課程設(shè)計任務(wù)與要求:任務(wù):利用PIC16F877單片機(jī)設(shè)計秒表計時器。要求:通過試驗箱上任意四位LED顯示器顯示時鐘范圍:00.00秒-99.99秒,分辨度:0.01秒。在設(shè)計過程中用一個定時器作為基本計數(shù)單元,使用一個矩陣式四鍵鍵盤進(jìn)行控制,當(dāng)定時器定時時間到時,就讓0.01秒計數(shù)單元加1,當(dāng)秒計數(shù)達(dá)到99.99時,就自動返回到0,重新開始秒計數(shù)。四:總體設(shè)計設(shè)計原理:此次課程設(shè)計題目是秒表計時器,由課程設(shè)計的要求和任務(wù),以及單片機(jī)課程學(xué)習(xí)和實驗,最終采用MAPLAB+ICD+實驗箱作為軟件編程硬件調(diào)試平臺,由于設(shè)計為秒表,要求系統(tǒng)對時間敏感,采用了定時器和簡單循環(huán)來定時,其中一個軟件一個硬件,會在方案論證中分析在0.01秒時采用的是硬件定時,即用單片機(jī)內(nèi)部的定時器TMR0。先將時鐘初始化,賦入初值2ms定時,循環(huán)5次來進(jìn)行0.01秒定時。然后由定義的變量S0來進(jìn)行加一運算,然后將其值通過PIC的SPI硬件接口將數(shù)據(jù)發(fā)送至級聯(lián)的74HC595,最終在數(shù)碼管上進(jìn)行靜態(tài)顯示。其中數(shù)碼管的顯示時,我在程序中首先定義了兩個關(guān)于數(shù)碼管顯示的字形碼定義,一個帶小數(shù)點,一個不帶小數(shù)點,以便在顯示時調(diào)用即可。方案論證:方案1:我們所選用的是PIC內(nèi)部RC震蕩作為系統(tǒng)時鐘源,并以軟件定時,即用簡單循環(huán)來定時0.01秒進(jìn)行顯示的變化。方案2:采用的是外部晶振作為系統(tǒng)時鐘源并以硬件定時,即用單片機(jī)內(nèi)部的定時器TMR0。先將時鐘初始化,由于一次定時時間過長導(dǎo)致誤差增大,二時間過短頻繁處理中斷消耗時也會引起誤差,最終決定給TMR0八分頻,賦入初值實現(xiàn)2ms定時,循環(huán)5次來進(jìn)行0.01秒定時。方案比較:我們從兩方面進(jìn)行兩種方案的比較,第一,由于此次課程設(shè)計要求是秒表,則在定時時要求比較精確,所以采用硬件的定時器定時時比較準(zhǔn)確的。第二,由于秒表的定時程序是很小的,在利用軟件定時占用的CPU并不是很多,因此在鍵盤去抖延時時采用軟件延時。綜合上述兩種比較,我們選用了第一方案作為鍵盤消抖延時與第二方案作為秒表時鐘相結(jié)合的方案。硬件部分:系統(tǒng)設(shè)計總框圖:74hc595級聯(lián)驅(qū)動八位數(shù)碼管74hc595級聯(lián)驅(qū)動八位數(shù)碼管 PIC16F877單片機(jī)PIC16F877單片機(jī)2X2矩陣鍵盤2X2矩陣鍵盤硬件使用實驗室現(xiàn)有多功能實驗箱作為基礎(chǔ)平臺部分電路如圖所示:鍵盤:其中S9為開始鍵,S11為暫停/繼續(xù)鍵,S10為清零鍵。.由于電路為矩陣鍵盤,所以程序中先查詢是否有按鍵按下,再判斷是哪個按鍵按下。顯示電路:利用單片機(jī)現(xiàn)有硬件SPI接口,外接八個級聯(lián)74HC595實現(xiàn)靜態(tài)顯示。由于設(shè)計只需要四位數(shù)碼管,其余位作為動畫顯示。74HC595參數(shù):QA--QH:八位并行輸出端。QH':級聯(lián)輸出端。SI:串行數(shù)據(jù)輸入端。74595的控制端說明:/SCLR(10腳):低點平時將移位寄存器的數(shù)據(jù)清零。SCK(11腳):上升沿時數(shù)據(jù)寄存器的數(shù)據(jù)移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數(shù)據(jù)不變。(脈沖寬度:5V時,大于幾十納秒就行了)RCK(12腳):上升沿時移位寄存器的數(shù)據(jù)進(jìn)入數(shù)據(jù)存儲寄存器,下降沿時存儲寄存器數(shù)據(jù)不變。(5V時,大于幾十納秒就行了),更新顯示數(shù)據(jù)。/G(13腳):高電平時禁止輸出(高阻態(tài))。如果單片機(jī)的引腳不緊張,用一個引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果。比通過數(shù)據(jù)端移位控制要省時省力。PIC16F877原理簡介1.1PIC16F877特性:PIC16F877是由Microchip公司所生產(chǎn)開發(fā)的新產(chǎn)品,屬于PICmicro系列單片微機(jī),具有Flashprogram程序內(nèi)存功能,可以重復(fù)燒錄程序,適合教學(xué)、開發(fā)新產(chǎn)品等用途;而其內(nèi)建ICD(InCircuitDebug)功能,可以讓使用者直接在單片機(jī)電路或產(chǎn)品上,進(jìn)行如暫停微處理器執(zhí)行、觀看緩存器內(nèi)容等,讓使用者能快速地進(jìn)行程序除錯與開發(fā)。如圖1為PIC16F877的40根接腳圖,PDIP是指一般最常見的DIP(DualInLinePackage)包裝,而PIC單片機(jī)也有PLCC(PlasticLeadedChipCarrier)與QFP(QuadFlatPackage)兩種形式的包裝,依照不同的需求,尋找不同的包裝形式。如圖所示,每根接腳都有其特定功能,例如Pin11與Pin32(VDD)為正電源接腳,Pin12與Pin31(VSS)為地線接腳;而有些接腳有兩種甚至三種以上功能,例如Pin2(RA0/AN0)代表PORTA的第一支接腳,在系統(tǒng)重置(Reset)后,可自動成為模擬輸入接腳,接收模擬訊號,也可經(jīng)由程序規(guī)劃為數(shù)字輸出輸入接腳。軟件部分 程序主流程圖開中斷并啟動定時器開中斷并啟動定時器對定時器/IO口初始化程序開始S9是否按下鍵盤掃描否是S11是否按下更新顯示內(nèi)容否關(guān)中斷否S11是否按下是否S10是否按下是中斷服務(wù)程序流程圖對定時器重新賦值對定時器重新賦值定時器溢出中斷是否到10ms是S0+1更新顯示緩存是是否超過9S0=0,S1+1更新顯示緩存回到主程序否程序清單:LIST P=16F877INCLUDE "P16F877.INC";---------------------現(xiàn)計時秒表-------------------------------;時鐘顯示范圍:00.00秒-99.99秒,分辨度:0.01秒;所用的寄存器如下 S0 EQU 0X20;0.01秒計時器 S1 EQU S0+1;0.1秒計時器 S2 EQU S0+2;1秒計時器 S3 EQU S0+3;10秒計時器 SREG EQU S0+4;中斷次數(shù)計數(shù)器 LEDF EQU S0+5;顯示的LED的位置指示寄存器 XW_TEMP EQU S0+6;用于中斷中保護(hù)W的值 XHOSTS EQU S0+7;用于中斷中保護(hù)STATUS的值 DEYH EQU S0+8 DEYL EQU S0+9;以上兩個寄存器用于軟件延時 HOSTF EQU S0+0X0A;用于中斷中保護(hù)FSR0L的值 JIANR EQU S0+0X0B;保存鍵值 TEMP EQU S0+0X0C ORG 0X00 NOP GOTO MAIN ORG 0X04 GOTO CLKINT ;轉(zhuǎn)向中斷服務(wù)程序 ORG 0X10;--------------------------------------------------------------------------CONVERT ;不帶小數(shù)點的共陽極碼表 ADDWF PCL,1 RETLW 0XC0;0 RETLW 0XF9;1 RETLW 0XA4;2 RETLW 0XB0;3 RETLW 0X99;4 RETLW 0X92;5 RETLW 0X82;6 RETLW 0XD8;7 RETLW 0X80;8 RETLW 0X90;9 RETLW 0XBF;"-" RETLW 0XFF;滅燈 RETURN CONVERT2;帶小數(shù)點的共陽極碼表 ADDWF PCL,1 RETLW 0X40;0. RETLW 0X79;1. RETLW 0X24;2. RETLW 0X30;3. RETLW 0X19;4. RETLW 0X12;5. RETLW 0X02;6. RETLW 0X78;7. RETLW 0X00;8. RETLW 0X10;9. RETURN ;-----------------------SPI發(fā)送顯示子模塊-------------------------------- TRANSMIT CLRF PORTA ;LACK送低電平,為鎖存做準(zhǔn)備 MOVWF SSPBUF ;啟動發(fā)送 WAIT BANKSEL PIR1 BTFSS PIR1,SSPIF GOTO WAIT ;等待發(fā)送結(jié)束 BCF PIR1,SSPIF ;清除中斷標(biāo)志 RETURN ;--------------------------顯示子程序模塊---------------------------------DISPLAY MOVLW 0X01 MOVWF LEDFXIAND BTFSC S2,0 GOTO ZXC MOVLW 0X0B GOTO VBNZXC MOVLW 0X0AVBN CALL CONVERT INCF LEDF MOVF LEDF,W SUBLW 0X05 BTFSS STATUS,Z GOTO XIAND ;顯示動畫 MOVLW 0X01 MOVWF LEDF MOVLW 0XA0 MOVWF FSRAGAINXIAN MOVF LEDF,W SUBLW 0X02 BTFSS STATUS,Z GOTO XIANB MOVF INDF,W CALL CONVERT2 ;若是第二位,則查帶小數(shù)點的碼表 GOTO TRANXIANB MOVF INDF,W CALL CONVERTTRAN CALL TRANSMIT ;發(fā)送一個顯示數(shù)據(jù) INCF FSR INCF LEDF MOVF LEDF,W SUBLW 0X05 BTFSS STATUS,Z GOTO AGAINXIAN BSF PORTA,5 ;最后給一個鎖存信號,代表一次顯示任務(wù)完成 RETURN;-----------S0計數(shù)溢出處理子程序------------CS0 CLRF S0 INCF S1 RETURN;-----------S1計數(shù)溢出處理子程序---------------CS1 CLRF S1 INCF S2 RETURN;-----------S2計數(shù)溢出處理子程序---------------CS2 CLRF S2 INCF S3 RETURN;-----------S3計數(shù)溢出處理子程序---------------CS3 CLRF S3 RETURN;-----------時鐘中斷服務(wù)程序-------------------CLKINT MOVWF XW_TEMP ;保存W的值 SWAPF STATUS,W MOVWF XHOSTS ;暫存STATUS的值 MOVF FSR,W MOVWF HOSTF ;保存FSR的值。以上程序為中斷現(xiàn)場保護(hù)----6 MOVLW 0X07 MOVWF TMR0 ;對TMR0寫入初值 BCF INTCON,T0IF ;清除中斷標(biāo)志 INCF SREG MOVF SREG,W SUBLW 0X05 ;TMR0每2ms中斷一次 BTFSS STATUS,Z ;其中斷5次后才執(zhí)行對S0,S1,S2,S3的操作 GOTO TIFAN CLRF SREG INCF S0 MOVF S0,W SUBLW 0X0A BTFSC STATUS,Z CALL CS0 MOVF S1,W SUBLW 0X0A BTFSC STATUS,Z CALL CS1 MOVF S2,W SUBLW 0X0A BTFSC STATUS,Z CALL CS2 MOVF S3,W SUBLW 0X0A BTFSC STATUS,Z CALL CS3TIFAN MOVF HOSTF,W ;以下為中斷現(xiàn)場恢復(fù) MOVWF FSR ;恢復(fù)間接尋址指針FSR的值 SWAPF XHOSTS,W MOVWF STATUS ;恢復(fù)STATUS的值 SWAPF XW_TEMP,1 SWAPF XW_TEMP,W ;恢復(fù)W的值 RETFIE ;----------------------------TMR0初始化子程序----------------------------------------CLKINSUB BANKSEL OPTION_REG BCF OPTION_REG,T0CS ;TMR0工作于定時器方式 BCF OPTION_REG,PSA ;TMR0用分頻 BCF OPTION_REG,PS2 BSF OPTION_REG,PS1 BCF OPTION_REG,PS0 ;TMR08分頻比 BANKSEL INTCON BCF INTCON,T0IF ;清除TMR0的中斷標(biāo)志 BCF INTCON,GIE ;總中斷禁止 BSF INTCON,T0IE ;TMR0中斷允許------10 RETURN;--------------------------------系統(tǒng)初始化子程序-------------------------------------MAINSUB BANKSEL TRISA BCF TRISA,5 ;置RA5為輸出方式,以輸出鎖存信號 BCF TRISB,1 BCF TRISB,2 BSF TRISB,4 BSF TRISB,5 ;設(shè)置與鍵盤有關(guān)的各口的輸入輸出方式 BCF TRISC,5 BCF TRISC,3 ;設(shè)置SCK與SDO為輸出方式 BCF INTCON,GIE ;關(guān)閉所有中斷 MOVLW 0XC0 MOVWF SSPSTAT ;設(shè)置SSPSTAT寄存器 BANKSEL SSPCON MOVLW 0X30 MOVWF SSPCON ;設(shè)置SPI的控制方式,允許SSP方式, ;并且時鐘下降沿發(fā)送,與“74HC595,當(dāng) ;其SCLK從低到高電平跳變時,串行輸入數(shù)據(jù) ;(DI)移入寄存器”的特點相對應(yīng)---15 BCF STATUS,IRP ;間接尋址選中BANK0、BANK1 MOVLW 0X01 MOVF TEMP MOVLW 0X00 MOVF JIANR RETURN ;返回 ;-------------------------------鍵掃描子程序--------------------------------------------- KEYSCANCLRF PORTB ;B1和B2兩條線上送0 NOP NOP ;經(jīng)過一段時間的延時,避開引腳電平的過渡過程 MOVF PORTB,W ANDLW 0X30 ;只檢查B4和B5兩位,屏蔽其它各位 SUBLW 0X30 RETURN ;------------------------------------------------------------------------------------------ KEYDELAY ;鍵盤去抖子程序(約8ms的軟件延時) MOVLW 0X80 MOVWF DEYHAGAIN2MOVLW 0XFF MOVWF DEYLAGAIN1DECFSZ DEYL,1 GOTO AGAIN1 DECFSZ DEYH,1 GOTO AGAIN2 RETURN;--------------------------------------------------------------------------------------------KEYSERVEMOVLW 0X00 MOVWF JIANR MOVLW 0XFD ;鍵盤服務(wù)子程序 MOVWF PORTB BTFSS PORTB,4 GOTO S10 BTFSS PORTB,5 GOTO S9 MOVLW 0XFBMOVWF PORTB BTFSS PORTB,4 GOTO S12 BTFSS PORTB,5 GOTO S11 GOTO TUICHUS10 MOVLW 0X02MOVWFJIANRGOTO TUICHUS9 MOVLW 0X01MOVWFJIANRGOTO TUICHUS12 MOVLW 0X04MOVWFJIANRGOTO TUICHUS11 MOVLW 0X03MOVWFJIANR;把鍵值送給JIANRTUICHURETURN;--------------------------------顯示緩沖區(qū)處理子程序-------------------------------------XIANHUAN MOVLW 0XA0 MOVWF FSR MOVF S3,W MOVWF INDF INCF FSR MOVF S2,W MOVWF INDF INCF FSR MOVF S1,W MOVWF INDF INCF FSR MOVF S0,W MOVWF INDF RETURN;----------------------------------------------------------------------------------------MAIN NOP CALL MAINSUB ;系統(tǒng)初始化 CALL CLKINSUB ;調(diào)用時鐘初始化子程序 ;------------------------------------------------------------------------------------------DENJIAN BANKSEL S0 CLRF S0 CLRF S1 CLRF S2 CLRF S3 CLRF SREG ;復(fù)位顯示數(shù)據(jù)即: CLRF LEDF ;使S0=S1=S2=S3=0 CALL XIANHUAN ;把S3、S2、S1、S0的值裝入顯示緩沖區(qū) CALL DISPLAY ;顯示DENAN BCF INTCON,GIE ;關(guān)中斷 CALL KEYSCAN ;進(jìn)行鍵掃描 BTFSS STATUS,Z GOTO XIAODOU1 ;如起始鍵按下,則消抖動 GOTO DENAN ;如起始鍵沒按下,則繼續(xù)等待XIAODOU1 CALL KEYDELAY ;延時消抖動 CALL KEYSCAN ;再次進(jìn)行鍵掃描 BTFSC STATUS,Z GOTO DENAN ;若為干擾,則再次等待鍵按下 CALL KEYSERVE ;不為干擾則查鍵值 MOVF JIANR,W SUBLW 0X01 ;鍵S9按下 BTFSS STATUS,Z GOTO DENAN BANKSEL S0 CLRF S0 CLRF S1 CLRF S2 CLRF S3 CLRF SREG ;設(shè)置新一次計時的初始條件 WAITS CALL KEYSCAN BTFSS STATUS,Z GOTO WAITS ;等鍵松開后再進(jìn)行下面的操作ABC MOVLW 0X06 MOVWF TMR0 BSF INTCON,GIE ;開總中斷HERE CALL XIANHUAN ;顯示緩沖區(qū)處理 CALL DISPLAY ;即時更新顯示內(nèi)容 CALL KEYSCAN BTFSS STATUS,Z GOTO XIAODOU ;若停止計時鍵按下,則消抖 GOTO HERE ;若停止計時鍵沒按下,則繼續(xù)等待中斷計時XIAODOU CALL DISPLAY ;利用消抖動時間調(diào)用顯示程序 CALL DISPLAY CALL DISPLAY CALL DISPLAY CALL DISPLAY CALL DIS
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管理會計在財務(wù)管理中的應(yīng)用研究
- 房地產(chǎn)估價四假設(shè)開發(fā)法的應(yīng)用案例
- 基于獨立成分分析-遞歸圖和改進(jìn)的高效能網(wǎng)絡(luò)的腦電情緒識別研究
- 師徒結(jié)對經(jīng)驗交流師傅發(fā)言稿
- 生態(tài)環(huán)保科技有限責(zé)任公司油田污泥污水處理項目升級改造工程環(huán)
- 電纜防火技術(shù)要求
- 編花籃兒歌簡譜曲譜子高清打印版
- 同軸電纜安裝方法、接頭接法
- 載波通信技術(shù)及方案
- 自行車的天文學(xué)與宇宙探索考核試卷
- 組織學(xué)與胚胎學(xué)課程教學(xué)大綱
- 網(wǎng)絡(luò)傳播概論(第5版) 課件 第一章 網(wǎng)絡(luò)媒介的演變
- 2023-2024學(xué)年江西省鷹潭市余江區(qū)八年級(上)期末數(shù)學(xué)試卷(含解析)
- 2023北京西城六年級(上)期末英語試卷含答案
- 珠海金灣區(qū)2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)達(dá)標(biāo)卷(含答案)
- 京東五力模型分析報告
- XX學(xué)校2024年校長務(wù)虛會講話稿范文
- 大學(xué)英語四級考試模擬試卷(附答案)
- 廣西壯族自治區(qū)欽州市浦北縣2023-2024學(xué)年七年級上學(xué)期期末歷史試題
- 法律英語 何家弘編 第四版課文翻譯(1-20課)
- 高級會計師 案例分析第五章 企業(yè)成本管理
評論
0/150
提交評論