版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 單片機系統(tǒng)課程設(shè)計報告</p><p> 專 業(yè): </p><p> 學 生 姓 名: </p><p> 學 號: </p><p> 指 導
2、 教 師: </p><p> 完成日期: 2011年 11月 10日</p><p><b> 目 錄</b></p><p> 1 設(shè)計任務(wù)和性能指標1</p><p><b> 1.1設(shè)計任務(wù)1</b></p>
3、<p><b> 1.2性能指標1</b></p><p><b> 2 設(shè)計方案1</b></p><p><b> 2.1任務(wù)分析1</b></p><p><b> 2.2方案設(shè)計1</b></p><p> 3 系統(tǒng)硬
4、件設(shè)計2</p><p> 3.1單片機的最小系統(tǒng)2</p><p> 3.2信號整形電路設(shè)計3</p><p> 3.3分頻電路設(shè)計4</p><p> 3.4 LCD液晶顯示5</p><p> 4 系統(tǒng)軟件設(shè)計6</p><p> 4.1 主程序設(shè)計6</p
5、><p> 5 調(diào)試及性能分析8</p><p> 5.1 調(diào)試分析8</p><p> 5.1.1 軟件調(diào)試8</p><p> 5.1.2 硬件調(diào)試8</p><p> 5.1.3 系統(tǒng)功能調(diào)試8</p><p> 5.2 性能分析9</p><p
6、><b> 6 心得體會9</b></p><p><b> 參考文獻11</b></p><p> 附錄1 系統(tǒng)原理圖12</p><p> 附錄2 程序清單13</p><p> 1 設(shè)計任務(wù)和性能指標</p><p><b> 1.1
7、設(shè)計任務(wù)</b></p><p> 頻率計是我們經(jīng)常會用到的儀器之一,通常用來測量信號的頻率或周期,與編碼器配合也可用來測量旋轉(zhuǎn)機械設(shè)備的轉(zhuǎn)速。用單片機的定時/計數(shù)器功能可以實現(xiàn)頻率計的數(shù)字化、智能化,通過合理的硬件設(shè)計和軟件編程使測量精度達到實用化要求。</p><p><b> 1.2性能指標</b></p><p> 測
8、量頻率范圍10Hz~1MHz,量程可自己選擇。</p><p><b> 精度:1%。</b></p><p> 被測信號可以是方波。</p><p> 顯示方式為4位十進制數(shù)顯示。</p><p><b> 2 設(shè)計方案</b></p><p><b>
9、 2.1任務(wù)分析</b></p><p> 頻率的測量實際上就是在1秒時間內(nèi)對信號進行計數(shù),計數(shù)值就是信號頻率。用單片機設(shè)計頻率計通常可采用兩種方法:一是使用單片機自身的計數(shù)器對輸入脈沖進行計數(shù)即得到頻率值,或?qū)斎朊}沖進行周期測量,這種方法只能測量頻率低于單片機時鐘頻率1/24以下的信號;二是在單片機外部使用計數(shù)器對脈沖信號進行計數(shù),計數(shù)值再由單片機讀取,這種方法適合于測量頻率較高的場合。由于本設(shè)
10、計中的頻率范圍較大,這時可結(jié)合分頻電路等實現(xiàn)。</p><p><b> 2.2方案設(shè)計</b></p><p> 按照系統(tǒng)設(shè)計的功能的要求,初步確定設(shè)計系統(tǒng)由信號預(yù)處理模塊,分頻模塊,測頻模塊和顯示模塊共四個模塊組成,電路系統(tǒng)構(gòu)成框圖如圖2。主控芯片使用51系列AT89C51單片機</p><p><b> ⑴ 信號預(yù)處理電路
11、</b></p><p> 信號預(yù)處理電路中的放大器三極管實現(xiàn)對待測信號的放大,降低對待信號的幅度要求;波形變換和波形整形電路帶有施密特觸發(fā)器的反向器7414把放大器生成的單向脈沖變換成與TTL/CMOS電平相兼容的方波</p><p><b> ⑵ 分頻電路</b></p><p> 分頻電路的作用是將高頻率通過級聯(lián)的計數(shù)器
12、,對高頻信號分頻,將分頻后的頻率信號通過數(shù)據(jù)選擇器輸出端輸出,輸入到測頻電路的信號輸入端</p><p><b> ?、?測頻電路</b></p><p> 分頻電路的信號輸入到以單片機89C51為核心的測頻電路中,通過單片機的2個16位定時器/計數(shù)器,測量頻率信號的頻率</p><p> ⑷ 測頻電路的設(shè)計方案</p>&l
13、t;p> 待測信號頻率較低時,可以選擇定時的方式測量頻率,定時器/計數(shù)器T0設(shè)置成計數(shù)方式,測量待測信號兩個高電平之間的占空比,即半個周期的大小,計算得f=1000000/(2*計數(shù)器值)</p><p> 待測信號頻率較高時,可以選擇計數(shù)的方式測量頻率,將定時器/計數(shù)器T0設(shè)為定時器方式,定時器/計數(shù)器T1設(shè)為計數(shù)方式,T0為閘門時間,記錄T0所設(shè)定時間內(nèi),計數(shù)器T1記錄的數(shù)值。如T0定時1秒,T1計
14、數(shù)值為M,則所測頻率為f=M</p><p><b> 3 系統(tǒng)硬件設(shè)計</b></p><p> 3.1單片機的最小系統(tǒng)</p><p> ATMEL公司生產(chǎn)的AT89C51單片機它是硬件電路的核心部分,時鐘電路晶振使用12MHz,復(fù)位電路采取按鍵復(fù)位方式。具體連接圖3.1和圖3.2。</p><p> 圖3.
15、1 單片機系統(tǒng)的時鐘電路</p><p> 圖3.2 單片機系統(tǒng)的復(fù)位電路</p><p> 3.2信號整形電路設(shè)計</p><p> 信號整形電路如圖所示,主要由含有施密特觸發(fā)器的反相器7414和放大器構(gòu)成,當輸入信號為零或負電壓時,三極管截止,輸出高電平;當輸入信號為正電壓時,三極管導通,輸出電壓隨著輸入電壓的上升而下降。零偏置放大器把如正弦波這樣的正負
16、交替波形變化為單向脈沖,這使得頻率計既可以測量方波的頻率,也可以測量正弦波的頻率。放大器實現(xiàn)了對小信號的測量。帶施密特觸發(fā)器的方向器7414用于把放大器生成的單向脈沖變換成與TTL/CMOS電平相容的方波。電路接線圖如圖3.3。</p><p> 圖3.3 信號整形電路原理圖</p><p> 3.3信號分頻電路設(shè)計</p><p> 分頻電路主要由3塊74
17、HC4017和數(shù)據(jù)選擇器74151構(gòu)成.74HC4017是十進制同步計數(shù)器,上一級輸出的方波加到4017的CLK,當從4017的CO輸出可以實現(xiàn)十分頻,多個4017級聯(lián)可以擴展分頻范圍,輸出為對稱方波,方波寬度等于待測信號的周期,從而為測量信號周期提供基礎(chǔ)。接線圖如3.4</p><p> 圖3.4 信號分頻電路圖</p><p><b> 3.4頻率測量電路</b&
18、gt;</p><p> 頻率測量電路由89C51作為信號的處理核心,如圖所示:</p><p> 圖3.5 頻率測量電路</p><p> 3.5 LCD液晶顯示</p><p> 顯示采用字符/圖形點陣LCD模組——SMC1062A系列</p><p> SMC1062A的特性:</p>
19、<p> 電參數(shù)(VDD=5.0V 10%,VSS=0V,Ta=25 )</p><p> 顯示內(nèi)容16 字符x 2 行</p><p> 字符點陣5 x 8 點</p><p><b> 驅(qū)動方式1/16D</b></p><p> JHD162A模塊的管腳:</p><p>
20、; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16</p><p> VSS VCC VEE RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 BLA BLK</p><p><b> 工作時序:</b></p><p> 圖3.6
21、 SMC1062A的工作時序圖</p><p><b> 4.系統(tǒng)軟件設(shè)計</b></p><p> 測頻軟件的實現(xiàn)是基于電路系統(tǒng)來進行設(shè)計的。本次設(shè)計采用的是脈沖定時測頻法,所以在軟件實現(xiàn)上基本遵照系統(tǒng)的設(shè)計原理,進行測頻。本次軟件設(shè)計語言采用C語言,在電腦上編譯通過后即可下載到電路上的實際電路中,即可實現(xiàn)頻率的測量。 <
22、/p><p> 圖4.1 系統(tǒng)程序流程圖 </p><p><b> 5 調(diào)試及性能分析</b></p><p><b> 5.1 調(diào)試分析</b></p><p> 5.1.1 軟件調(diào)試</p><p> 軟件調(diào)試主要是程序調(diào)試。對主程進行分塊調(diào)試,即對各個子功
23、能模塊進行調(diào)試。具體步驟如下:</p><p> ?。?)超聲波發(fā)射和接收及其中斷程序調(diào)試。</p><p> 首先看計數(shù)器初值是否正確裝入,接下來通過給計數(shù)器T0設(shè)定一恰當?shù)闹祦碚{(diào)試計數(shù)器T0溢出中斷是否正常,結(jié)果顯示正常。其次調(diào)試計數(shù)器T1能否正確運行于工作方式2,調(diào)試結(jié)果正常。</p><p> ?。?)測溫及溫度計算程序調(diào)試</p><
24、p> 因測溫用到了專用芯片DS18B20,故光靠軟件,無法對其進行完整的調(diào)試,只能調(diào)試其對溫度進行轉(zhuǎn)換的程序。經(jīng)調(diào)試轉(zhuǎn)換符合設(shè)計思路。之后調(diào)試根據(jù)所測得的溫度計算速度的計算程序,</p><p> ?。?)計算距離子程序調(diào)試</p><p> 計算距離子程序中主要包括兩部分,一是兩字節(jié)乘兩字節(jié)乘法程序,另一個是四字節(jié)除兩字節(jié)除法程序。調(diào)試主要是通過人為設(shè)定數(shù)據(jù)存放單元中的數(shù)據(jù),檢
25、查結(jié)果是否正確,經(jīng)過幾次代數(shù)試驗,執(zhí)行功能正確。</p><p> ?。?)LCD液晶顯示程序調(diào)試</p><p> 因要用到液晶模塊,無法只用軟件對其進行調(diào)試。只能結(jié)合硬件才可進行調(diào)試。</p><p> 5.1.2 硬件調(diào)試</p><p> 硬件調(diào)試主要是檢測硬件電路是否有短路,斷路、虛焊等。具體步驟及測試結(jié)果如下:</p&
26、gt;<p> ?。?)檢查電源與地線是否全部連接上,用萬用表對照電路原理圖測試各導線是否完全連接,對未連接的進行修復(fù)。</p><p> (2)參照原理圖,檢查各個器件之間的連接是否連接正確,是否存在虛焊,經(jīng)測試,各連接不存在問題。</p><p> ?。?)以上兩項檢查并修復(fù)完后,給該硬件電路上電,電源指示燈點亮,上電正常。</p><p>
27、5.1.3 系統(tǒng)功能調(diào)試</p><p> ?。?)調(diào)試系統(tǒng)的測溫及顯示部分,從主程序中調(diào)出測溫和溫度顯示部分,下載到單片機中,給系統(tǒng)上電,觀察能否顯示溫度及能否正確顯示。溫度顯示正常。</p><p> (2)調(diào)試超聲波的發(fā)射部分。將整個程序下到單片機中,用示波器觀測發(fā)送超聲波換能器上的波形。波形很微弱,幾乎沒有。分析原因可能是因為發(fā)射超聲波所用的P0口沒有上拉電阻,外接一10K的上拉
28、電阻。結(jié)果還是幾乎沒有波形,只能從軟件上分析。將發(fā)送部分的程序剪出進行軟件上的調(diào)試,發(fā)現(xiàn)程序并沒按照設(shè)計思路運行。經(jīng)單步跟蹤,錯誤出在調(diào)用延時程序處。延時程序執(zhí)行完,并沒有返回到調(diào)用點。檢查延時程序,發(fā)現(xiàn)沒有相應(yīng)的“POP”與“PUSH”匹配。對程序進行修改,再下到單片機中進行調(diào)試??梢月犚姵暡〒Q能器發(fā)出一定頻率的響聲,示波器上能明顯看到其波形。</p><p> ?。?)對系統(tǒng)整體功能進行調(diào)試。將完整程序下入
29、單片機中,給系統(tǒng)上電觀察。調(diào)整測試距離,發(fā)現(xiàn)距離在100cm以內(nèi)能較準確測出,超出100cm不能正常測量,并且顯示的數(shù)據(jù)不穩(wěn)定。為了盡快找出存在的問題,自行設(shè)定溫度值和計數(shù)器T0值,查看程序能否實現(xiàn)正常顯示及正確計算的功能。經(jīng)調(diào)試及計算,程序運行正確,問題不在這。只能是主程序或中斷部分的問題。</p><p><b> 5.2 性能分析</b></p><p>
30、 首先單片機能夠正常上電和復(fù)位,液晶上電正常,通過調(diào)節(jié)外接的電位器可調(diào)節(jié)其顯示的對比度。</p><p> 由設(shè)計方案及測試結(jié)果可知該測距儀測溫的精度為1,但由于測溫傳感器的安裝位置使得測溫可能不是很準確。測距離的精度為1cm,測量時測距儀與物體無直接接觸,通過調(diào)節(jié)液晶的對比度,能夠清晰地顯示測量結(jié)果。從這方面講,性能較好。</p><p> 從測距儀測量范圍方面來講,出步確定為在10
31、0cm以內(nèi)。由設(shè)計方案知該測距儀的測量范圍應(yīng)在1000cm以內(nèi),但由于受超聲波能量的限制,其測量范圍可能達不到,但至少能在400—500cm之內(nèi)。但目前還未能實現(xiàn)這一目標。并且可以明顯察覺到換能器發(fā)出超聲波的頻率隨測量距離的不同會有所改變。</p><p> 由于時間的限制,對測溫的精度問題沒來得及進行校正和處理,并且,測量的范圍問題還比較模糊。</p><p><b> 6
32、 心得體會</b></p><p> 這次單片機課程設(shè)計歷時三個星期的時間,在這三個星期里我們體驗了從設(shè)計、畫板、編程、焊板到調(diào)試的整個過程,通過此次設(shè)計,使我們受到了極大的鍛煉,對團隊合作的重要性有了深刻認識,雖然我們面對的是一個相對簡單的課題,但由于初次進行基于單片機的課題設(shè)計,所以在設(shè)計過程中,我們遇到了一些困難,也經(jīng)歷了一次又一次的困惑,最初我們嘗試著完美化我們的設(shè)計,以實現(xiàn)更多的功能和提高
33、可操縱性,卻沒有從最基本的內(nèi)容一步步做起,沒有將核心部分放在首位。正如老師講的,正確的順序是先把核心部分做好,就像蓋房子一樣,先打地基——定時計數(shù)是我們這次設(shè)計的核心,然后再一步一步擴展,完善功能,向上蓋房子。生活實際中確實如此,做任何事,沒有打好基礎(chǔ),最終就不能有很好的發(fā)展。學習也是如此,對于工科的我們數(shù)學、物理等就是我們的基礎(chǔ),往往發(fā)展的瓶頸就在基礎(chǔ)部分。今后,我們會吸收此次設(shè)計實踐收獲的寶貴經(jīng)驗,更加努力地,更加堅定地在電子科技上
34、一步一步腳踏實地地學習進步。通過本次設(shè)計,讓我學會了從系統(tǒng)的高度來考慮設(shè)計的方方面面,對電路的設(shè)計和研究有了更深刻的體會;讓我了解到軟件的設(shè)計是建立在對硬件了解的基礎(chǔ)上的,特別是對單片機的功能,引</p><p><b> 參考文獻</b></p><p> [1] 郭天祥.新概念51單片機C語言教程[M].北京:電子工業(yè)出版社,2009.</p>
35、<p> [2] 胡漢才.單片機原理與接口技術(shù)[M].北京: 清華大學大學出版社,2004.1-505.</p><p> [3] 馬忠梅,劉濱等. 單片機C語言Windows環(huán)境編程寶典[M]. 北京: 北京航空航天大學出版社. 2003.</p><p><b> 附錄1 系統(tǒng)原理圖</b></p><p><b>
36、; 附錄2 程序清單</b></p><p> #include<reg52.h></p><p> #include <intrins.h></p><p> #include <math.h></p><p> #include <stdio.h></p>
37、<p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar code table[]=" Frequency is ";</p><p> uchar num;</p><p> sbit l
38、cdrs=P3^0;</p><p> sbit lcdrw=P3^6;</p><p> sbit lcden=P3^7;</p><p> sbit p32=P3^2;</p><p> long int counter;</p><p> long float f;</p><p&g
39、t; /***************延時函數(shù)*****************/</p><p> void delay(uint z)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)&
40、lt;/p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> /***************LCD1602寫指令*****************/</p><p> void write_com(uchar com)</p><p&
41、gt;<b> {</b></p><p> lcdrs=0;P0=com;</p><p> delay(5);lcden=1;</p><p> delay(5);lcden=0;</p><p><b> }</b></p><p> /**********
42、*****LCD1602寫數(shù)據(jù)*****************/</p><p> void write_data(uchar date)</p><p><b> {</b></p><p> lcdrs=1;P0=date;</p><p> delay(5);lcden=1;</p><
43、;p> delay(5);lcden=0;</p><p><b> }</b></p><p> /***************LCD1602初始化*****************/</p><p> void init()</p><p> {lcdrs=0;lcden=0;</p>
44、<p> lcdrw=0;write_com(0x01); /*清屏*/</p><p> write_com(0x3f); /*功能設(shè)置,八位數(shù)據(jù)位,雙行顯示,字型大小5*10點陣*/</p><p> write_com(0x0c); /*顯示設(shè)置,顯示開,光標不顯示,字符不閃爍*/</p><p><b> }</b>
45、;</p><p> void main()</p><p><b> {</b></p><p> uchar i,n;</p><p> uchar buff[16];</p><p><b> init();</b></p><p>
46、 write_com(0x80);</p><p> for(num=0;num<=15;num++) //顯示" Frequency is "</p><p><b> {</b></p><p> write_data(table[num]);</p><p> delay(
47、20);</p><p><b> }</b></p><p> P2=0x00;//未分頻</p><p><b> while(1)</b></p><p><b> {</b></p><p> TMOD=0X09; // 計數(shù)器0為
48、工作方式1</p><p><b> TH0=0;</b></p><p><b> TL0=0;</b></p><p> while(p32==1); //上升沿</p><p> TR0=1; //允許T0計數(shù)</p><p> while(p32==
49、0); //下降沿</p><p> while(p32==1); </p><p> TR0=0;//禁止T0計數(shù),完成一個脈沖的檢測</p><p> counter=TH0*256+TL0; //讀取當前計數(shù)器的值,TL0,TH0里邊存放計數(shù)脈沖的個數(shù),組合起來是16位,共計65536個脈沖。</p><p>
50、 //高低兩字節(jié)的二進制數(shù)轉(zhuǎn)換為一個16位的整形數(shù)據(jù),即TH0左移8位后與TL0相加</p><p> while(counter<=500) //判斷是否進行分頻并計算分頻次數(shù)</p><p><b> {</b></p><p> P2++;//對輸入信號進行分頻</p><p><b>
51、 i++;</b></p><p> counter=counter*10; //十分頻換擋后重counte值</p><p> if(i==4)//超出本設(shè)計總量程,無法測量</p><p><b> {</b></p><p> P2=0x00;//超出量程,分頻復(fù)位</p>&l
52、t;p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> f=(1000000.0/(2*counter))*pow(10,i); //本公式是頻率計關(guān)鍵所在。所謂"頻率",就是周期性信號在
53、單位時間(1s)內(nèi)變化的次數(shù)。若在一定時間間隔T內(nèi)測得這個周期性信號的重復(fù)變化次數(shù)N,則其頻率可表示為f=N/T</p><p> //對一個高電平脈沖的寬度進行測量,晶振為12MHz,經(jīng)51單片機內(nèi)部12分頻后,定時器的最大頻率N=1000kHz。</p><p> //pow是C語言中求冪函數(shù)的意思,也就是說計算10的i次方。</p><p> if(f&
54、lt;1000) //1KHz 以下顯示“Hz”</p><p><b> {</b></p><p> sprintf(buff," %5.2fHZ yinchaofan ",f); //輸出5個字符(含小數(shù)點,小數(shù)點后保留4位)</p><p><b> }</b></
55、p><p> else if(f<1000000) //1KHz 以上顯示“KHz”</p><p> { </p><p> f=f/1000; //顯示的數(shù)字縮小1000倍</p><p> sprintf(buff," %5.2fKHZ yinchaofan ",f);
56、 //輸出5個字符(含小數(shù)點,小數(shù)點后保留3位)</p><p><b> } </b></p><p> /***************寫LCD1602第二行*****************/</p><p> write_com(0xc0);</p><p> for(n=0;n<16&&a
57、mp;buff[n]!='\0';n++)</p><p><b> { </b></p><p> write_data(buff[n]); </p><p><b> } </b></p><p><b> }</b></p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機頻率計課程設(shè)計
- 單片機頻率計課程設(shè)計
- 單片機簡易頻率計課程設(shè)計報告
- 單片機課程設(shè)計報告-簡易頻率計
- 簡易頻率計單片機課程設(shè)計
- 單片機簡易頻率計課程設(shè)計
- 單片機課程設(shè)計報告--- 基于單片機的頻率計設(shè)計
- 單片機課程設(shè)計--頻率計的設(shè)計
- 課程設(shè)計--基于單片機的頻率計
- 單片機課程設(shè)計報告---數(shù)字頻率計
- 單片機課程設(shè)計(數(shù)字頻率計)
- 單片機課程設(shè)計---數(shù)字頻率計
- 單片機數(shù)字頻率計課程設(shè)計
- 單片機課程設(shè)計報告---簡易數(shù)字頻率計
- 單片機課程設(shè)計---數(shù)字頻率計
- 單片機課程設(shè)計--基于單片機數(shù)字頻率計設(shè)計
- 課程設(shè)計報告基于單片機數(shù)字頻率計設(shè)計
- 課程設(shè)計----基于51系列單片機的頻率計
- 單片機課程設(shè)計--數(shù)字頻率計的設(shè)計
- 單片機課程設(shè)計---基于mcs-51單片機的頻率計的設(shè)計
評論
0/150
提交評論