




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、xxxxxx大學(xué)課程設(shè)計報告課程設(shè)計名稱:單片機(jī)系統(tǒng)綜合課程設(shè)計課程設(shè)計題目:電子秒表的設(shè)計與實現(xiàn)(系):業(yè): 級: 號: 名:指導(dǎo)教師: 完成日期:xxxxxx大學(xué)課程設(shè)計報告目錄1.第1章總體設(shè)計方案18191.11.21.31.4課程設(shè)計的內(nèi)容和要求 課程設(shè)計原理 課程設(shè)計思路 實驗環(huán)境1.1.22.第2章詳細(xì)設(shè)計方案3.2.1硬件電路設(shè)計2.2主程序設(shè)計2.3模塊設(shè)計2.3.1系統(tǒng)初始化子模塊2.3.2定時器0中斷處理子模塊2.3.3定時器1中斷處理子模塊2.3.4外中斷0處理子模塊.2.3.5數(shù)碼管顯示子模塊 3.4.4.45678第3章結(jié)果測試及分析103.1結(jié)果測試.3.2結(jié)果分
2、析.參考文獻(xiàn)錄A(源程序)10101213錄B(電路原理圖)錄C(器件清單).xxxxxx大學(xué)課程設(shè)計報告第1章總體設(shè)計方案2第1章總體設(shè)計方案1.1課程設(shè)計的內(nèi)容和要求(1)課程設(shè)計內(nèi)容:利用南京偉福公司的LAB6000通用微控制器仿真實驗系統(tǒng),設(shè)計一個帶時間 顯示的電子秒表,具體內(nèi)容如下: 電子秒表的初始狀態(tài)為零,分別顯示分、秒、毫秒; 設(shè)計一個按鈕,按第一次開始計時,按第二次計時暫停,顯示當(dāng)前記錄的 時間,按第三次計時停止,回到初始態(tài); 有時間顯示的功能,當(dāng)不用電子秒表的功能時,顯示當(dāng)前的時間,分別為 時分秒形式。(2)課程設(shè)計要求: 獨(dú)立完成課程設(shè)計任務(wù); 通過老師現(xiàn)場驗收; 交出完整
3、的課程設(shè)計報告。根據(jù)題目要求,要完成電子秒表和時間顯示的功能,在本次設(shè)計中主要使用 了 8051微控制器以及74LS138、74LS245和數(shù)碼管等部分來完成時鐘以及秒表的模擬。采用8051作為核心控制芯片,使用8051的兩個定時器TO和T1分別作為時 鐘和秒表的計時,設(shè)計一個按鍵,使用8051的外中斷0或者外中斷1來完成功能8051的選擇,在秒表和時鐘顯示兩個狀態(tài)之間進(jìn)行切換。在對外顯示上,使用 的l/O(P0和P2的低三位)作為輸出,通過 74LS138的位選功能和74LS245的數(shù)據(jù)緩沖功能在數(shù)碼管上顯示出當(dāng)前時間或者秒表計時。1.3 課程設(shè)計思路(1)提出方案首先,在硬件設(shè)計上,在80
4、51最小系統(tǒng)的基礎(chǔ)下,其P0 口作為8段數(shù)碼管的段碼輸出,接74LS245(具有數(shù)據(jù)緩沖和過流保護(hù)的功能),74LS245的輸出端接 數(shù)碼管的各段;P2 口的低三位作為數(shù)碼管的位選通信號,接 74LS138(具有位選 功能)的輸入端,其輸出端接8段數(shù)碼管的位選通端;另外設(shè)計一個按鍵,作為8051外中斷的輸入信號,使用該鍵完成選擇秒表或者時鐘顯示以及開始、暫停、停止的功能,該按鍵接8051的外中斷輸入引腳(P3.2或者P3.3)。在程序設(shè)計上,首先設(shè)計三個中斷處理函數(shù),其中定時器0和定時器1中斷作為秒表和當(dāng)前時鐘的計時,外中斷 0完成秒表和當(dāng)前時間的切換,同時在秒表功能中實現(xiàn)開始、暫停、退出的功
5、能;其次,需要完成一個數(shù)碼管顯示功能的函 數(shù);最后是系統(tǒng)初始化函數(shù)和主函數(shù),其中初始化函數(shù)用于設(shè)置與中斷相關(guān)的寄 存器以及兩個定時器的初始值,在主函數(shù)中調(diào)用各個子功能函數(shù),或者等待中斷 的發(fā)生再轉(zhuǎn)去處理中斷。(2)方案論證在主程序中首先進(jìn)行初始化(定時器賦初值,開啟中斷等操作),之后在死循 環(huán)里通過判斷一個全局變量(標(biāo)志位 flag)的值(0或者非0)來選擇顯示秒表還是當(dāng)前時間,該全局變量初始化為 0,即系統(tǒng)啟動時顯示當(dāng)前時間(系統(tǒng)啟動時只啟動一個定時器),外中斷來以后,在中斷處理函數(shù)中改變它的值,通過switch語句來選擇對標(biāo)志flag的操作以及開啟或者關(guān)閉定時器,在主程序中根據(jù)該值來 完成
6、相應(yīng)的操作,實現(xiàn)其對應(yīng)的功能。PC機(jī)。1.4實驗環(huán)境硬件環(huán)境:偉福Lab2000P系列單片機(jī)仿真實驗系統(tǒng),軟件環(huán)境:WAVE6000編譯環(huán)境xxxxxx大學(xué)課程設(shè)計報告第2章詳細(xì)設(shè)計方案第2章詳細(xì)設(shè)計方案2.1硬件電路設(shè)計根據(jù)題目要求,硬件電路需要三個模塊:單片機(jī)最小系統(tǒng)、數(shù)碼管顯示電路 和外中斷輸入電路。首先搭建一個單片機(jī)最小系統(tǒng),時鐘電路采用外部時鐘方式,在XTAL1和XTAL2兩個引腳之間接一個6MHz (之后使用定時器需要按照該頻率進(jìn)行計算) 的晶振,之后兩端并聯(lián)接兩個無極性電容再接地構(gòu)成時鐘電路,為單片機(jī)提供時 鐘控制信號;復(fù)位電路采用按鍵電平復(fù)位方式,詳細(xì)電路見附錄,使得按下復(fù)位鍵
7、以后,實現(xiàn)單片機(jī)的復(fù)位;串行口的兩個引腳RXD和TXD通過MAX232接DB9,實現(xiàn)單片機(jī)與PC機(jī)的通信,完成程序的下載和調(diào)試功能;此外單片機(jī)的VCC和VSS引腳分別接5V電源和地,為單片機(jī)提供電源。之后在最小系統(tǒng)的基礎(chǔ)上,P0 口的8個引腳分別接74LS245的輸入端,74LS245的輸出端接兩個4位一體的8段數(shù)碼管的段碼輸入引腳,P0 口輸出數(shù)碼 管的段碼;P2 口的低三位接74LS138的輸入端,74LS138的輸出端接兩個4位一 體的8段數(shù)碼管的位選通端,P2 口低三位輸出數(shù)碼管的位選通信號。該部分完成 數(shù)碼管顯示功能。最后在P3.2( INT0)引腳上接一個按鍵,該按鍵另一端接地。實
8、現(xiàn)外中斷的輸入。具體實驗箱連線圖如下:8051KEY/LED_ CSCS0P3 2圖2.1實驗箱連線圖2.2主程序設(shè)計在主程序中首先調(diào)用初始化函數(shù), 對8051進(jìn)行初始化,之后進(jìn)入死循環(huán),在 死循環(huán)里通過判斷一個全局變量(標(biāo)志位 flag)的值(0或者非0)來決定在數(shù)碼管上顯示當(dāng)前時間或者顯示秒表時間,然后調(diào)用顯示子函數(shù)在數(shù)碼管上顯示出時 間。具體流程圖如下所示:開始V圖2.2主程序流程圖2.3模塊設(shè)計本設(shè)計中總共設(shè)計了 5個子模塊:系統(tǒng)初始化子函數(shù)(Init )、外中斷0處理函數(shù)(Into)、定時器0中斷處理函數(shù)(Timer。)、定時器1中斷處理函數(shù)(Timerl)、 數(shù)碼管顯示子函數(shù)(Pr
9、int)。2.3.1系統(tǒng)初始化子模塊系統(tǒng)初始化子函數(shù)首先初始化兩個定時器的各個寄存器,本次設(shè)計中定時器0 作為秒表的計時,定時器1作為當(dāng)前時間的計時。兩個定時器都設(shè)置為方式 1( 16位定時器),定時器模式,所以TMOD=0X11。系統(tǒng)選用晶振為6MHz,所以系統(tǒng)機(jī)器周期是2uS。定時器0作為秒表計時,需要計時時間為 1mS,通過計算,可以得出T0的初值TH0=0XFE,TL0=0X0C。同理計算T1的初值,考慮到16位定時器的最大定時時間不能達(dá)到1S,所以在此取個整數(shù)值,使其定時0.1S,在之后的中斷函數(shù)中循環(huán)10就可以實現(xiàn)1S,最終計算得T1的初值TH1=0X3C,TL1=0XB0。之后設(shè)
10、置與中斷相關(guān)的寄存器,分別開啟定時器0,定時器1,INT0的中(ET0=1,ET1=1,EX0=1 ),再開總中斷(EA=1),設(shè)置外中斷0的觸發(fā)方式為下降 沿觸發(fā)(IT0=1),設(shè)置中斷優(yōu)先級寄存器(IP=0X0B)。系統(tǒng)啟動以后默認(rèn)顯示當(dāng)前時間,秒表在使用時再開啟,所以在初始化函數(shù) 中最后開啟定時器1( TR1=1)。具體流程圖如下所示:圖2.31 廠"結(jié)束系統(tǒng)初始化流程圖2.3.2定時器0中斷處理子模塊定時器0作為秒表的計時,當(dāng)定時器計數(shù)滿而產(chǎn)生溢出時就會觸置位其對應(yīng)的中斷標(biāo)志位(TF0)從而觸發(fā)中斷,之后轉(zhuǎn)入中斷處理函數(shù),在定時器0中斷處理函數(shù)中首先重新給定時器賦初值 (TH
11、0=0XFE,TL0=0X0C ),同時毫秒(mSec)加1,之后判斷毫秒是否滿1000,如果滿1000,毫秒置0, 理通過判斷對秒(Sec0)和分(Min0)加1或者置0操作。同時秒(Sec0)加1,同這些完成以后就返回主函數(shù)。N圖2.4定時器0中斷流程圖具體流程圖如下:2.3.3定時器1中斷處理子模塊定時器1作為當(dāng)前時間的計時,當(dāng)其計數(shù)滿而溢出觸發(fā)中斷,進(jìn)入中斷處理函 數(shù),定時器1處理函數(shù)中首先給定時器1重新賦值(T1=0X3C0B),同時計數(shù)器count 加1,之后判斷計數(shù)器是否滿10 (即是否計時到1秒),如果滿10, count置0,同時秒加1(Sec+)。同理通過判斷對分(Min
12、)和時(Hour)加1或者置0操作。這些完成以后就返回主函數(shù)。具體流程圖如下:N結(jié)束圖2.5定時器1中斷流程圖2.3.4外中斷0處理子模塊外中斷0作為秒表和當(dāng)前時間切換的處理,同時在秒表功能時,實現(xiàn)開始計時、暫停、退出的功能。當(dāng)外接按鍵按下時在INTO引腳產(chǎn)生一個負(fù)跳沿,從而觸 發(fā)外中斷,進(jìn)入中斷處理函數(shù)。在外中斷處理函數(shù)中首先判斷全局變量(標(biāo)志位 flag)的值,根據(jù)該值的不同進(jìn)行不同的處理。當(dāng) flag=0時,開始秒表功能,首先 各個值(毫秒、秒、分)全部初始化為 0,之后啟動定時器0 (秒表開始計時), 最后標(biāo)志位加1 (flag+),使得返回主函數(shù)以后因為該標(biāo)志非 0,開始顯示秒表的時
13、間;當(dāng)flag=1時,秒表暫停,關(guān)閉定時器0,最后標(biāo)志位加1 (flag+),使得返 回主函數(shù)以后該標(biāo)志非0,并且定時器0已關(guān)閉,實現(xiàn)秒表暫停的功能,數(shù)碼管顯示秒表計時的時間;當(dāng) flag=2時,退出秒表,重新回到當(dāng)前時間,標(biāo)志位清0(flag=0),使得返回主函數(shù)以后因為該標(biāo)志非0,又回到顯示當(dāng)前時間。具體流程圖如下:f結(jié)束J圖2.5外中斷0流程圖235數(shù)碼管顯示子模塊數(shù)碼管作為對外顯示的部分。在該函數(shù)中,首先由調(diào)用它的程序傳遞兩個參 數(shù)(位碼和段碼),然后根據(jù)這兩個參數(shù)向P2 口送位選信號,選中將要顯示的那 個數(shù)碼管,之后向P0 口送段碼,因為本設(shè)計中只需要顯示數(shù)字,所以段碼就是09所對應(yīng)
14、的8段碼(定義為無符號字符型數(shù)組)。最后調(diào)用Delay函數(shù),延時一 下就可以完成數(shù)碼管的顯示功能。具體流程圖如下:9T延時DelayO圖2.6數(shù)碼管顯示流程圖xxxxxx大學(xué)課程設(shè)計報告第3章結(jié)果測試及分析第3章結(jié)果測試及分析3.1結(jié)果測試首先測試數(shù)碼管顯示模塊,因為之后的調(diào)試都需要數(shù)碼管的顯示功能。測試 過程中首先進(jìn)行靜態(tài)顯示測試,根據(jù)實際的硬件電路分別向數(shù)碼管送位碼和段碼, 看顯示結(jié)果是否正確,然后加上延時函數(shù),進(jìn)行動態(tài)顯示測試,使在視覺效果下 看到6個數(shù)碼管同時點亮,并且正確顯示需要顯示的數(shù)字,通過調(diào)整延時函數(shù)的 時間,消除閃爍。第二步測試當(dāng)前時間(定時器 T1),系統(tǒng)初始化時已經(jīng)啟動定
15、時器1和其對 應(yīng)的中斷,之后不再改變其狀態(tài),因為要求在運(yùn)行過程中當(dāng)前時間不能停止。該部分主要測試定時器溢出后能否進(jìn)入中斷,并且在中斷函數(shù)中對T1進(jìn)行重新賦初值,和對變量(時Hour、分Min、秒Sec)的操作。第三步測試秒表計時(定時器 TO),該部分同時用到外中斷 O,因為需要用外中斷O來控制秒表的開始、暫停、退出,對應(yīng)于在外中斷O中啟動或者停止定時器TO。系統(tǒng)初始化時開啟外中斷0和定時器TO的中斷,但是不啟動TO。測試 在按下鍵以后,能否進(jìn)入外中斷,如果不能進(jìn)入,需要查看硬件電路是否正確。進(jìn)入外中斷以后啟動或者關(guān)閉定時器 TO,假如啟動定時器,之后在定時器溢出以后能否進(jìn)入TO中斷,同時完成
16、重新賦初值和對變量(毫秒msec、秒SecO分MinO)的操作。最后將各個模塊組織起來,總體測試,該部分主要測試在多個中斷都開啟的 情況下,能否進(jìn)入各自中斷,各中斷的處理是否相互影響,主要表現(xiàn)在當(dāng)前中斷 處理過程中又來其他中斷,此時因為處理不及時就會產(chǎn)生延時,定時就會比實際 變慢。這種情況一方面需要設(shè)置中斷優(yōu)先級,另一方面中斷處理函數(shù)應(yīng)盡量短, 指令少,可以減少時間誤差。3.2結(jié)果分析在數(shù)碼管的動態(tài)顯示過程中,如果延時太短就會產(chǎn)生閃爍,如果延時太長,各數(shù)碼管不能同時顯示,給人的視覺效果是各個數(shù)碼管交替顯示,最終延時函數(shù) 選取一個合適的時間間隔,使人看到的顯示效果恰到好處。其他各個模塊單獨(dú)測試都
17、能達(dá)到預(yù)期效果,在整體測試過程中,經(jīng)過中斷優(yōu) 先級的調(diào)整和對中斷處理函數(shù)的精簡減少了一定的時間誤差。系統(tǒng)初始化以后, 進(jìn)入當(dāng)前系統(tǒng)時間的顯示;如果有外中斷來,開始秒表的計時,啟動定時器 0, 數(shù)碼管切換到顯示秒表時間;之后再按鍵,關(guān)閉定時器 0,實現(xiàn)暫停,顯示定時時間;再按一次鍵,將標(biāo)志位清 0,退出秒表,返回顯示當(dāng)前系統(tǒng)時間。在秒表功能時,定時器1 (系統(tǒng)時間)正常工作,使得在秒表計時過程中,系統(tǒng)時間不 會受到影響。11xxxxxx大學(xué)課程設(shè)計報告附錄參考文獻(xiàn)123張毅剛、劉杰.單片機(jī)原理及應(yīng)用M.哈爾濱:哈爾濱工業(yè)大學(xué)出版社.2004高玉芹.單片機(jī)原理與應(yīng)用及C51編程技術(shù)M.北京:機(jī)械工
18、業(yè)出版社.2011胡學(xué)海.單片機(jī)原理及系統(tǒng)設(shè)計實例教程M.北京:化學(xué)工業(yè)出版社.2011ET1=1;134謝維成、楊加國.單片機(jī)原理、接口及應(yīng)用系統(tǒng)設(shè)計M.北京:電子工業(yè)出版社.2011侯繼紅.單片機(jī)系統(tǒng)設(shè)計與制作M.北京:電子工業(yè)出版社.20116咼鋒.7胡漢才.單片微型計算機(jī)原理與接口技術(shù)M.北京:科學(xué)出版社.2007單片機(jī)原理及其接口技術(shù)M.北京:清華大學(xué)出版社.2004附 錄A(源程序)#in cludevreg51.h> #defi ne uchar un sig ned char #defi ne uint un sig ned int xdata un sig ned ch
19、ar OUTBIT _at_ 0X8002;xdata un sig ned char OUTSEG _at_ 0X8004;uchar tabseg戶0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F;/定義段碼uchar tabbit=1,2,4,8,16,32;/ 選位uchar Hour=23,Mi n=59,Sec=45,Mi n0=0,Sec0=0,flag=0,j=0;ui nt mSec=0;/毫秒應(yīng)定義為無符號整型/*延時了函*void delay()uint k;for(k=0;k<125;k+);/*初始化子函數(shù) *v
20、oid System _ln it(void)TMOD=0X11;TH0=0XFE;/定時器0作為毫秒計時TL0=0X0C;TH1=0X3C;/定時器1作為秒計時TL1=0XB0;EA=1;/中斷控制寄存器IEET0=1;xxxxxx大學(xué)課程設(shè)計報告附錄EX0=1;IT0=1;/外中斷0設(shè)置為負(fù)跳變觸發(fā)IP=0X0B;TR1=1;/啟動定時器1/* 夕卜中 0 了函*void In t0(void) in terr upt 0 switch(flag) case 0:mSec=0;Sec0=0;Min 0=0;TR0=1;/啟動定時器0 flag+; /開始顯示定時時間 break;case
21、1:TR0=0; /停止定時器0 flag+;break;case 2:flag=0;/返回顯示當(dāng)前時間/*break;定時器 1 中斷服務(wù)子函數(shù) * void Timerl(void) in terru pt 3TH1=0X3C;TL1=0XB0;if(j=10) j=0;Sec+;if(Sec=60)Sec=0;Mi n+;if(Mi n=60)Mi n=0;Hour+;if(Hour=24)Hour=0;*定時器 0 中斷服務(wù)子函*void Timer0(void) in terru pt 1TH0=0XFE;TL0=0X0C;mSec+;if(mSec=1000)mSec=0;15xx
22、xxxx大學(xué)課程設(shè)計報告附錄SecO+; if(Sec0=60)SecO=O;Mi nO+;/* 碼管顯示子函*void Prin t(i nt a,i nt b)OUTBIT=tabbita;OUTSEG=tabsegb;delayO;/*主函* void main (void)System _ln it();while(1) if(!flag)Prin t(0,Sec%10);Prin t(1,Sec/10);Prin t(2,Mi n%10);Prin t(3,Mi n/10);Prin t(4,Hour%10);Prin t(5,Hour/10);elsePrin t(0,mSec%1
23、0);Prin t(1,mSec/10%10);Prin t(2,mSec/100);Prin t(3,Sec0%10);Prin t(4,Sec0/10);Prin t(5,Mi n0%10);17xxxxxx大學(xué)課程設(shè)計報告附錄20錄B(電路原理圖)収CCn119X2X1EA/VP8051)4?1URESETC130J丁 30p _ 30pF-r¥耳畀 一21K*81 2 3 4 5 6 rr4 VCCD7 D6D5D3D:D1D0wfRD19VCC20-,A4 SizCBLinGe.DdBty : ofDrWhNuiJul-2012VCCC1 +1uFC7psalE/PdxdP2-p2fP25P2.P2/P22»21320 POROPOJPOQOPO
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聯(lián)合體施工合同協(xié)議書
- 行政單位租車協(xié)議
- 出資轉(zhuǎn)讓協(xié)議經(jīng)典
- 股份合作細(xì)節(jié)文書與權(quán)益分配方案
- 鋼材購銷合同格式
- 年度工作總結(jié)報告及未來規(guī)劃
- 物流企業(yè)信息化升級改造服務(wù)協(xié)議
- 文化藝術(shù)品展覽銷售協(xié)議
- 江蘇省房屋買賣合同
- 餐飲外賣食品安全免責(zé)協(xié)議
- SMT失效模式分析PFMEA
- 國際貿(mào)易地理全套課件
- 家校共育-助孩子成長-家長會課件
- 叉形件工藝及車床夾具設(shè)計說明書
- GB/T 709-2019熱軋鋼板和鋼帶的尺寸、外形、重量及允許偏差
- GB/T 5916-2008產(chǎn)蛋后備雞、產(chǎn)蛋雞、肉用仔雞配合飼料
- 《中小學(xué)教育懲戒規(guī)則》(試用)試題及答案
- GB/T 14177-2003林業(yè)機(jī)械便攜式割灌機(jī)和割草機(jī)試驗方法
- 安全測試工具、蹭網(wǎng)利器wifiphisher新增漢化版
- 中學(xué)教育-中學(xué)生心理健康量表參考范本
- FZ/T 54007-2019錦綸6彈力絲
評論
0/150
提交評論