《單片機(jī)原理與應(yīng)用課程設(shè)計(jì)報(bào)告基于89C51單片機(jī)脈沖寬度的測量設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)原理與應(yīng)用課程設(shè)計(jì)報(bào)告基于89C51單片機(jī)脈沖寬度的測量設(shè)計(jì)(18頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、單片機(jī)原理與應(yīng)用課程設(shè)計(jì)(脈沖寬度的測量) 單片機(jī)原理與應(yīng)用 課程設(shè)計(jì)報(bào)告院 系: 電氣信息工程學(xué)院 班 級: 08測控2班 學(xué) 號: 姓 名: 合 作 者: 指導(dǎo)教師: 2011年09月25日目錄序言 2一 設(shè)計(jì)內(nèi)容與技術(shù)指標(biāo) 31.1設(shè)計(jì)內(nèi)容 31.2技術(shù)指標(biāo) 3二工作原理及設(shè)計(jì)方案2.1工作原理 42.2系統(tǒng)設(shè)計(jì)方案 42.2.1電路原理圖 52.2.2硬件焊接圖 52.2.3軟件流程圖 72.2.4程序清單 8三系統(tǒng)調(diào)試及結(jié)果分析 143.1硬件調(diào)試 143.2軟件調(diào)試 143.3結(jié)果分析 14四. 注意事項(xiàng) 14五. 心得體會 15六參考文獻(xiàn)16基于89C51單片機(jī)脈沖寬度的測量設(shè)計(jì)
2、序言:近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入同時(shí)帶動傳統(tǒng)控制檢測日新月益更新。單片機(jī)誕生30多年以來,其品種、功能和應(yīng)用技術(shù)都得到飛速的發(fā)展,單片機(jī)的應(yīng)用已深入國民經(jīng)濟(jì)和日常生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實(shí)時(shí)控制和數(shù)據(jù)處理等。本次課程設(shè)計(jì)目的主要是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)的知識,完成一個(gè)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)。主要任務(wù)是通過解決一些實(shí)際問題,鞏固和加深課程中所學(xué)的理論知識和實(shí)驗(yàn)?zāi)芰Γ菊莆諉纹瑱C(jī)應(yīng)用電路的一般設(shè)計(jì)方法,提高電子電路的設(shè)計(jì)和實(shí)驗(yàn)?zāi)芰Α<由顚纹瑱C(jī)軟件硬件知識的理解
3、,獲得初步的應(yīng)用經(jīng)驗(yàn),為以后從事生產(chǎn)和科研工作打下一定的基礎(chǔ)。本系統(tǒng)采用單片機(jī)AT89C51為中心器件來設(shè)計(jì)脈沖寬度測量器,系統(tǒng)實(shí)用性強(qiáng)、操作簡單、擴(kuò)展性強(qiáng)。在現(xiàn)有的單片機(jī)仿真機(jī)系統(tǒng)上掌握相關(guān)軟硬件設(shè)計(jì)與調(diào)試知識,根據(jù)所選擇題目,焊接好硬件電路,正確進(jìn)行元器件的測試與調(diào)試,并在計(jì)算機(jī)上編寫匯編程序調(diào)試運(yùn)行,并實(shí)現(xiàn)參考選題中要求的設(shè)計(jì)。一設(shè)計(jì)內(nèi)容與技術(shù)指標(biāo)1.1設(shè)計(jì)內(nèi)容利用單片機(jī)及4位LED數(shù)碼管做成四位脈寬顯示 ,在一個(gè)脈寬期間對內(nèi)部周期進(jìn)行計(jì)數(shù),得到的一個(gè)高電平脈沖內(nèi)的計(jì)數(shù)值顯示在四位數(shù)碼管上,并達(dá)到相應(yīng)的技術(shù)指標(biāo)要求。 1.2技術(shù)指標(biāo)(1) 輸入脈沖幅度:0-5V(2) 脈寬測量范圍:0.
4、1-50ms (3) 測量精度:1%(4) 顯示方式:四位數(shù)字顯示二工作原理及設(shè)計(jì)方案2.1工作原理 把脈沖信號從P3.2腳引入,T0設(shè)為定時(shí)器方式工作,并工作在門控方式(GATE=1)。在待測信號高電平期間,T0對內(nèi)部周期脈沖進(jìn)行計(jì)數(shù)(周期為1us)。在待測脈沖高電平結(jié)束時(shí),其下降沿向P3.2發(fā)中斷,在外部中斷0的中斷服務(wù)程序中,讀取TH0、TL0的計(jì)數(shù)值,該值就是待測脈沖的脈寬(單位us)。隨后,清零TH0和TL0,以便下一個(gè)脈寬的測量。7407列驅(qū)動4位數(shù)碼管顯示振蕩電路89C51單片機(jī)控制器 信號源復(fù)位電路圖1 系統(tǒng)原理框圖2.2系統(tǒng)設(shè)計(jì)方案2.2.1電路原理圖圖2電路原理圖2.2.2
5、硬件焊接圖圖3 硬件焊接圖采用動態(tài)掃描法實(shí)現(xiàn)LED數(shù)碼管顯示。共陰7段LED顯示器顯示原理:引腳數(shù)字顯示.P0.7gP0.6fP0.5aP0.4bP0.3eP0.2dP0.1cP0.0h數(shù)碼顯示0011111107EH10001001012H2101111000BCH3101101100B6H4110100100D2H5111001100E6H6111011100EEH70011001032H8111111100FEH9111101100F6H該電路采用AT89C51單片機(jī)最小化應(yīng)用,采用共陰7段LED數(shù)碼管顯示器,P3.2口引入脈沖信號,P2.0至p2.3口作為列掃描輸出,P0口輸出段碼數(shù)據(jù)
6、,采用12Mhz晶振,可提高計(jì)數(shù)的精確度。10f電容作用:上電復(fù)位;7407作用:同相緩沖器,驅(qū)動數(shù)碼管;12M晶振和兩個(gè)電容組成晶體振蕩器。2.2.3軟件設(shè)計(jì)流程圖主程序流程圖如圖4所示,外部中斷0服務(wù)程序流程圖如5所示。初始化將測量值轉(zhuǎn)換為十進(jìn)制數(shù)拆為非壓縮BCD數(shù)調(diào)用顯示子程序 圖4主程序流圖 讀取TH0、TL0中的計(jì)數(shù)值并存放在周期單元中 清零TH0、TL0計(jì)數(shù)器 返回圖5 外中斷0服務(wù)程序流程圖2.2.4程序清單 ORG 0000H AJMP MAIN ORG 0003H AJMP SOLVE ;外部中斷低電平觸發(fā)處理 ORG 0033HMAIN:MOV SP,#60H MOV TM
7、OD,#09H ;計(jì)數(shù)器T0工作在方式1,門控信號為1 MOV TL0,#00H ;計(jì)數(shù)器TO清零 MOV IE,#81H ;開放定時(shí)器中斷和總中斷和外部中斷0 MOV TCON,#11H MOV R5,#05H ;T0當(dāng)外部中斷輸入為高時(shí)計(jì)數(shù),外部中斷0為邊沿觸發(fā)方式,下降沿有效LOOP:ACALL BCD ;十六位二進(jìn)制轉(zhuǎn)十進(jìn)制 ACALL UBCD ;壓縮BCD碼,轉(zhuǎn)非壓縮BCD碼LOOP1: ACALL DISP ;顯示程序 ACALL POST DJNZ R5,LOOP1 MOV R5,08H AJMP LOOP ;循環(huán)處理顯示計(jì)數(shù)器T0采集得數(shù) SOLVE: MOV 41H,TH0
8、 MOV 40H,TL0 ;將計(jì)數(shù)器T0中的數(shù)轉(zhuǎn)移到40H,41H中 MOV TH0,#00H MOV TL0,#00H;重新將定時(shí)器T0清零 RETIBCD: CLR A; 將41H,42H中的數(shù)值轉(zhuǎn)換成BCD碼分別按高低存儲在34H35H36H中 MOV 38H,41H MOV 37H,40H MOV 34H,A MOV 35H,A MOV 36H,A MOV R7,#10HLOOP2: CLR C MOV A,37H RLC A MOV 37H,A MOV A,38H RLC A MOV 38H,A MOV A,36H ADDC A,36H DA A MOV 36H,A MOV A,35
9、H ADDC A,35H DA A MOV 35H,A MOV A,34H ADDC A,34H DA A MOV 34H,A DJNZ R7,LOOP2 RET UBCD: MOV A,34H CJNE A,#00H,CHOOSE ;第5位數(shù)值是否為0,為0則按4位有效值處理,不為0按5位有效值處理 MOV R1,#35H ;當(dāng)有4位有效效值時(shí),取后4位顯示,小數(shù)點(diǎn)加在第1位 MOV R0,#36H MOV A,#00H XCHD A,R0 MOV 30H,A MOV A,R0 SWAP A MOV 31H,A MOV A,#00H XCHD A,R1 MOV 32H,A MOV A,R1
10、SWAP A ADD A,#0AH ;加小數(shù)點(diǎn)顯示 MOV 33H,A RET CHOOSE:MOV R1,#34H ;有5位有效值時(shí)取前4位顯示,小數(shù)點(diǎn)加在第2位 MOV R0,#35H MOV A,#00H XCHD A,R0 MOV 31H,A MOV A,R0 SWAP A ADD A,#0AH ;加小數(shù)點(diǎn)顯示 MOV 32H,A MOV A,#00H XCHD A,R1 MOV 33H,A MOV A,R1 SWAP A ANL 36H,#0F0H MOV A,36H SWAP A MOV 30H,A RETDISP: MOV DPTR,#TAB ;顯示第一位 MOV A,33H M
11、OVC A,A+DPTR MOV P0,A MOV A,#0F7H ;位選信號一 MOV P2,A ACALL POST MOV DPTR,#TAB ;顯示第二位 MOV A,32H MOVC A,A+DPTR MOV P0,A MOV A,#0FBH ;位選信號二 MOV P2,A ACALL POST MOV DPTR,#TAB ;顯示第三位 MOV A,31H MOVC A,A+DPTR MOV P0,A MOV A,#0FDH ;位選信號三 MOV P2,A ACALL POST MOV DPTR,#TAB ;顯示第四位 MOV A,30H MOVC A,A+DPTR MOV P0,A
12、 MOV A,#0FEH ;位選信號四 MOV P2,A ACALL POST RET POST: MOV R7,#15H ;延時(shí)程序POST1: MOV R6,#50H DJNZ R6,$ DJNZ R7,POST1 RET TAB: DB 6FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH,07H, 7FH, 6FH DB 0BFH, 86H,0DBH,0CFH, 0E6H,0EDH,0FDH,87H,0FFH,0EFH END 三.系統(tǒng)調(diào)試及結(jié)果分析31 硬件調(diào)試硬件電路板中器件連接好后,先用萬用表測試電路中有無虛焊短接之處,測試無誤后,將板子通電,進(jìn)行靜態(tài)調(diào)試。取好兩跟
13、短的導(dǎo)線,一根導(dǎo)線的其中一端接地,另一端接P2.3P2.0口中的一個(gè)口,若數(shù)碼管亮,再用另一根導(dǎo)線,其中異端接地,另一端與P0.0P0.7依次接觸,看數(shù)碼管各段的亮滅情況,從而判斷每個(gè)數(shù)碼管各段的好壞及電路的是否正確。3.2 軟件調(diào)試在LCA51編譯器下進(jìn)行匯編程序的編寫,以子程序?yàn)閱挝徽{(diào)試,一段一段的編譯與訪真,最后結(jié)合電路板,進(jìn)行整機(jī)聯(lián)調(diào)。3.3結(jié)果分析因?yàn)閺脑O(shè)計(jì)程序分析,LED顯示器動態(tài)到秒的頻率約為幾百赫茲,實(shí)際使用觀察時(shí)完全沒有閃爍,由于計(jì)時(shí)中斷程序中加了中斷延時(shí)誤差處理,所以,實(shí)際設(shè)計(jì)時(shí)精度非常的高。四. 注意事項(xiàng) 1.焊接之前,應(yīng)事先畫好硬件原理圖,細(xì)化到每一根接線,以及芯片內(nèi)部
14、的各個(gè)引腳,合理布局好元器件。這樣才能使硬件電路板布線美觀。焊接時(shí)要注意防止虛焊的產(chǎn)生,在兩個(gè)較近的焊點(diǎn)之間要注意不要短接。 2.焊接時(shí)要注意焊接工藝,由于是通用板,質(zhì)量不是太高,如果不注意,上面的小銅片很容易損壞,容易導(dǎo)致虛焊。焊完后,要用萬用表檢測,以免出現(xiàn)虛焊漏焊,短接等現(xiàn)象。檢查無誤后再通電檢測。焊接完一部分后,最好先觀察一下該部分的波形是否正確,若有錯(cuò)誤,可以方便修改。 3.板子及仿真機(jī)接電源時(shí),要注意正負(fù)極,以免損壞板子或仿真機(jī)。 4.仿真機(jī)一旦與計(jì)算機(jī)進(jìn)行連接之后,就不要經(jīng)常再拔下,以確保正常通信。 5.編寫程序時(shí),要注意各指令的合理應(yīng)用。若程序過長,可以先編寫子程序,再將其進(jìn)行
15、組合。以免出現(xiàn)不必要的錯(cuò)誤和困擾。 6.在插拔器件以及接線過程中,為避免儀器損壞應(yīng)該在斷電的前提下操作。五.心得體會通過幾天的課程設(shè)計(jì),我對單片機(jī)原理與應(yīng)用技術(shù)等知識都有了一定的了解。這次課程設(shè)計(jì)中,我們采用層次化的設(shè)計(jì)方法來實(shí)現(xiàn)了這個(gè)電路。在程序編寫結(jié)束后,我們還對該程序進(jìn)行了調(diào)試,能按預(yù)期的效果進(jìn)行脈寬測試功能,并設(shè)計(jì)了動態(tài)顯示被測信號脈寬的硬件電路。課程設(shè)計(jì)對學(xué)生而言是其對所學(xué)課程內(nèi)容掌握情況的一次自我驗(yàn)證,從而有著極其重要的意義。通過課程設(shè)計(jì),能提高學(xué)生對所學(xué)知識的綜合應(yīng)用能力,能全面檢查并掌握所學(xué)內(nèi)容,在這次的課程設(shè)計(jì)中,收獲知識的同時(shí),我們還收獲了閱歷,收獲了成熟,在此過程中。我們
16、通過查找資料,請教老師,以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、動手操作的能力,而且大大加強(qiáng)了團(tuán)隊(duì)合作以及設(shè)計(jì)能力。更重要的是,我們學(xué)會了一些學(xué)習(xí)的方法,而這是日后最實(shí)用的,真的是受益匪淺。這次課程設(shè)計(jì)雖然結(jié)束了,相信以后我們會以更加積極的態(tài)度對待我們的學(xué)習(xí)、對待我們的生活。我們的激情永遠(yuǎn)不會結(jié)束,相反,我們會更加努力,努力的去彌補(bǔ)自己的缺點(diǎn),發(fā)展自己的優(yōu)點(diǎn),去充實(shí)自己,只有在了解充分認(rèn)識到自己的不足,我們才會更加珍惜擁有的,更加努力的去完善它。今后在剩余不到一年的大學(xué)生活里,我會盡力充實(shí)自己,為日后走上工作崗位打下堅(jiān)實(shí)的基礎(chǔ)。要面對千千萬萬的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。六參考文獻(xiàn):1.單片機(jī)應(yīng)用程序開發(fā)指南尹勇等科學(xué)出版社20052.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程夏繼強(qiáng)北京航空航天大學(xué)出版社20013.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)張友德等復(fù)旦大學(xué)出版社2006 17第 17 頁 共 16頁