基于AT89C52單片機的簡易頻率計方案設(shè)計書_第1頁
基于AT89C52單片機的簡易頻率計方案設(shè)計書_第2頁
基于AT89C52單片機的簡易頻率計方案設(shè)計書_第3頁
基于AT89C52單片機的簡易頻率計方案設(shè)計書_第4頁
基于AT89C52單片機的簡易頻率計方案設(shè)計書_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 單片機的簡易頻率計設(shè)計基于: AT89C52選題名稱 系(院): 業(yè): 計)專 班 級: : 號學(xué)姓 名: : 指導(dǎo)教師 學(xué)年學(xué)期: 2009 2010 學(xué)年 第 2 學(xué)期 日 30 5 月 2010 年 摘要: 在電子技術(shù)中,頻率是一個經(jīng)常用到的參數(shù)之一,并且與許多電參量的測量方案、測量結(jié)果都有十分密切的關(guān)系,因此頻率的測量就顯得更為重要。本工程主要闡述了以AT89C52單片機作為核心器件,采用模塊化布局,設(shè)計一個簡易數(shù)字頻率計,以達到測量頻率并進行顯示的目的。本工程利用單片機的內(nèi)部定時器溢出產(chǎn)生中斷來實現(xiàn)定時,把單片機內(nèi)部的定時/計數(shù)器0作為定時器,實現(xiàn)2.5ms定時。外部待測脈沖從單片

2、機的TI(第15引腳)輸入,以定時/計數(shù)器1作為計數(shù)器,利用中斷方式來達到間接測量的目的。最后采用四位數(shù)碼管顯示。本設(shè)計采用C語言進行軟件編程,用keil軟件進行調(diào)試。最后把調(diào)試成功后的程序固化到AT89C52單片機中,接到預(yù)先 焊好的電路板上,接上待測脈沖,通電運行,數(shù)碼管成功顯示待測脈沖頻率。 關(guān)鍵詞:單片機;頻率計;AT89C52 目 錄 程1 工綜述.0 11 設(shè)計要求. 0 12 系統(tǒng)設(shè)計. 0 2 硬件設(shè)計.1 2.1 電路原理圖. 1 2.2 元件清單. 1 2.3 主要芯片引腳說明 . 2 3 軟件設(shè)計.3 3.1 程序流程圖. 3 3.2 軟件設(shè)計簡述 . 4 3.3 程序清

3、單. 5 4 系統(tǒng)仿真及調(diào)試.8 4.1 硬件調(diào)試. 9 4.2 軟件調(diào)試. 9 5 結(jié)果分析.9 總結(jié).9 11 .參考文獻1 工程綜述 在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結(jié)果都有十分密切的關(guān)系,因此頻率的測量就顯得更為重要。本工程主要闡述了選擇AT89C52單片機作為核心器件,采用模塊化布局,設(shè)計一個簡易數(shù)字頻率計測量頻率并進行顯示。 11 設(shè)計要求 單片機簡易頻率計的設(shè)計要求如下:AT89C52 基于(1) 1Hz1MHz.5V;頻率:測量范圍。幅度:0.5(2) 。測試誤差0.1%(3) 位數(shù)碼管顯示。當(dāng)頻率變化時,能通過數(shù)碼管及時看到變化后的信號頻

4、率。4用12 系統(tǒng)設(shè)計 121 框圖設(shè)計 基于AT89C52單片機簡易頻率計的電路主要由數(shù)碼管顯示電路、復(fù)位電路、晶振電路、 所示。電源電路等幾部分組成,系統(tǒng)框圖如圖3.1 圖3.1 基于AT89C52單片機簡易頻率計系統(tǒng)框圖 123 知識點 本工程需要通過學(xué)習(xí)和查閱資料,掌握和了解如下知識:1) 電源原理及設(shè)計。+5V2) 單片機復(fù)位電路工作原理及設(shè)計。3) 單片機晶振電路工作原理及設(shè)計。4) 頻率信號發(fā)生器的特性及使用。5) 的特性及使用。驅(qū)動電路74LS2446) 單片機引腳結(jié)構(gòu)及功能。AT89C527) 語言程序設(shè)計方法。單片機C2 硬件設(shè)計 2.1 電路原理圖 所示。單片機簡易頻率計

5、電路原理圖如圖2-1基于AT89C52 圖2-1 基于AT89C52單片機簡易頻率計電路原理圖 2.2 元件清單 所示。2-1基于AT89C52單片機簡易頻率計元件清單如表表2-1 基于AT89C52單片機簡易頻率計元件清單 用途個 型號 數(shù)量/元件名稱 1 AT89C52 控制核心單片機12MHz 1 晶振 晶振電路 30pF 2 電容 晶振電路 10uF/10V 1 電解電容 復(fù)位電路 10k? 1 電阻 復(fù)位電路 74LS244 1 驅(qū)動器 LED驅(qū)動 74LS04 1 非門 位選信號 1 數(shù)碼管 4位共陰 顯示電路 1 按鍵 復(fù)位電路 +5V/0.5A 1 電源 提供+5V 2.3 主

6、要芯片引腳說明 2.3.1 AT89C52引腳說明 AT89C52為40腳雙列直插封裝8位通用微處理器,采用工業(yè)標準的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。AT89C52 共有6 個中斷向量:兩個外中斷(INT0 和 )和串行口中斷。21、),3 個定時器中斷(定時器0、INT1 引腳圖如下:AT89C52 圖2-2 AT89C52引腳圖 主要管腳有: 腳)為振蕩器輸入輸出端口。18 腳)和

7、19 XTAL2(XTAL1( 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。9RST/Vpd( 電源的正負端。腳)為供電端口,分別接+5V(40 腳)和VSS20 (VCC 數(shù)據(jù)總線復(fù)用口。/位漏極開路型雙向I/O 口,也即地址8 P0 口是一組 口。I/O 是一組帶有內(nèi)部上拉電阻的P38 位雙向,P1P2 2.3.2 74HC244引腳說明 可以讓輸入的數(shù)據(jù)保持比較長的時間,簡單輸入接口擴展通常使用的典型芯片為74HC24474HC244,由該芯片可構(gòu)成三態(tài)數(shù)據(jù)緩沖器。74HC244芯片的引腳排列如下圖所示: 圖2-3 74HC244引腳圖 74HC244芯片內(nèi)部共有兩個四位三態(tài)緩沖器,

8、使用時可分別以1C和2G作為它們的選通工作信號。當(dāng)1/OE和2/OE都為低電平時,輸出端Y和輸入端A狀態(tài)相同;當(dāng)1/OE和2/OE都為高電 平時,輸出呈高阻態(tài)。3 軟件設(shè)計 本工程利用單片機的內(nèi)部定時器溢出產(chǎn)生中斷來實現(xiàn)定時。待測信號由單片機的TI中斷來間接測量。定時/計數(shù)器0定時2.5ms中斷并對中斷次數(shù)進行計數(shù),當(dāng)2.5ms中斷次數(shù)計到40次即0.1s時,查看定時/計數(shù)器1上的計得的數(shù)值,經(jīng)過計算得到的待測信號的頻率值,放入顯示緩 沖區(qū),由數(shù)碼管進行顯示。3.1 程序流程圖 所示。3-1主程序流程圖如圖 圖3-1 主程序流程圖 3.2 軟件設(shè)計簡述 )利用單片機的內(nèi)部定時器溢出產(chǎn)生中斷來實

9、現(xiàn)定時。1 引腳)中斷來間接測量。15TI2)待測信號由單片機的(第 1us晶振,機器周期為3)采用12MHz 。2.5ms1,每次定時工作方式:定時方式,工作方式4)定時/計數(shù)器0 定時算法:2.5ms 實現(xiàn)16?6?310?2.5(2?X)10X?(63036) (3-1) D1111011000111100? TL0=0x3c TH0=0xf6, 即5)定時/計數(shù)器1工作方式:計數(shù)方式,工作方式1。當(dāng)2.5ms中斷次數(shù)計到40次即0.1s 。 計數(shù)器1上的計得的數(shù)值時,查看定時/計數(shù)值?脈沖頻率 (3-2)通過公式:6 40?0.25 可以計算出脈沖頻率。 單位,采用四舍五入的方法保留一

10、位小數(shù)。KHz 最后的數(shù)據(jù)以7)顯示采用四位共陰LED數(shù)碼管,用單片機P0口的8位控制數(shù)碼管的8段二極管的明 位數(shù)碼管的選通信號,采用從低到高逐位掃描的方法。作為4暗。用P2口的P2.0P2.3 3.3 程序清單 單片機簡易頻率計程序清單如下:基于AT89C52 #include<reg52.h> 。bit timeint0,timeint1 。unsigned char dispbuf4 。unsigned int period 。unsigned int timecount=0 。unsigned int count_1s unsigned char code table=0x

11、3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 段數(shù)碼管代碼表 /70x39,0x5e,0x79,0x71。 碼子程序,BCDHEX_TO_BCD(unsigned int n) /十六進制數(shù)轉(zhuǎn) 碼送至顯示緩存數(shù)組將/BCD 報錯當(dāng)顯示的頻率超出范圍,顯示EEEE unsigned char i。 / if (n>9361) i+) 。i<4 for(i=0 dispbufi=0x0e。 else 取出千位字節(jié)。 / dispbuf3=n/1000 取出百位字節(jié) / dispbuf2=(n/100)_x001

12、0_。 取出十位字節(jié)。dispbuf1=(n/10)_x0010_ / 取出個位字節(jié) /。 dispbuf0=n_x0010_ 顯示子程序,void scandisp(void) / 碼掃描并顯示在數(shù)碼管上BCD/將顯示緩存數(shù)組中的 。 unsigned char posi=0x01 。 unsigned char i,j,temp 個數(shù)碼管依次選中4。i<4。i+) / for(i=0 。 temp=dispbufi 查出字碼 / 。 temp=tabletemp 第三位顯示小數(shù)點/ if(i=1) j+) 。 。j<200for(j=0 。 P2=posi 。 P0=temp|

13、0x80 else j+) j<200 。for(j=0。 。P2=posi 。 P0 =temp 依次點亮字位 / 。posi<<=1 定時器初始化了程序,定義了兩種void INIT_TMR1INT(void) / 工作在計數(shù)器方式1工作定時器方式,定時0/計數(shù)器 /定時/計數(shù)器 。 TMOD=0x51 。ET1=1 開中斷0 /中斷 。 ET0=1 開中斷 /CPU 。 EA=1 。 count_1s=0 開始定時計數(shù)器0/ /啟動定時 。 TR0=1 。TR1=1 中斷服務(wù)程序,系統(tǒng)自動調(diào)用,定時器0void time0(void) interrupt 1 / 執(zhí)行一

14、次2.5ms/每 。TH0=0xf6 。 TH1=0x3c 0.1s2.5 ms, 40 次即/每次定時是 if(+count_1s>40) 。 count_1s=0 所計數(shù)值進行統(tǒng)計1對計數(shù)器 /每0.1s 。 timecount=TH1*256+TL1 。TH1=0 。TL1=0 為單位KHz精確到小數(shù)點后1位,以 / 。 period=timecount/10 四舍五入顯示 / if(timecount_x0010_)>4) 。period+ 。 timecount=0 。 HEX_TO_BCD(period) 中斷服務(wù)程序,溢出后中斷定時器1void timer1(void

15、) interrupt 3 / 。 TH1=0x00 。 TL1=0x00 主函數(shù)void main(void) / 初始化 / 。INIT_TMR1INT() while(1) 顯示子程序/ 。 scandisp() 4 系統(tǒng)仿真及調(diào)試 應(yīng)用系統(tǒng)設(shè)計完成之后,就要進行硬件調(diào)試和軟件調(diào)試,軟件調(diào)試可以利用開發(fā)及仿真系 統(tǒng)進行。4.1 硬件調(diào)試 硬件調(diào)試的調(diào)試主要是把電路各種參數(shù)調(diào)整到符合設(shè)計要求。先排除硬件電路故障,包括 設(shè)計性錯誤和工藝性故障。一般原則是先靜態(tài)后動態(tài)。 利用萬用表或邏輯測試儀器,檢查電路中各器件以及引腳是否連接正確,是否有短路故 障。芯片取下,對電路板進行通電檢查,通過觀察看

16、是否有異常,是否先將單片機AT89C52 有虛焊的情況,然后用萬用表測試各電源電壓,若這些都沒有問題,則接上仿真機進行聯(lián)機調(diào) 試,觀察各接口電路是否正常。4.2 軟件調(diào)試 軟件調(diào)試是利用仿真工具進行在線仿真調(diào)試,除發(fā)現(xiàn)和解決程序錯誤外,也可以發(fā)現(xiàn)硬件故障。本設(shè)計采用的調(diào)試軟件是keil。程序調(diào)試時,先是一個模塊一個模塊地進行,一個子程序一個子程序地調(diào)試,最后聯(lián)起來統(tǒng)調(diào)。當(dāng)程序調(diào)試無誤后,就可以用在系統(tǒng)編程器將程序固化到 中。的AT89C52FLASH ROM5 結(jié)果分析 把電路按要求接好,接上待測脈沖信號,插上電源即可測量出待測脈沖信號的頻率。本設(shè)計利用實驗室提供的單片機實驗箱上的脈沖信號進行

17、測試,當(dāng)接入的脈沖信號為0.25MHz時,可以看到數(shù)碼管上的顯示值為259.4KHz;當(dāng)接入的脈沖信號為0.5MHz時,可以看到數(shù)碼管上的顯示值為508.3KHz。經(jīng)計算,測量值都在誤差允許范圍內(nèi),因此符合設(shè)計要求,本設(shè)計成功完成預(yù) 期目標??偨Y(jié) 經(jīng)過一個星期的努力和老師的耐心指導(dǎo),終于順利完成了此次的單片機課程設(shè)計。整個過程可以說就是一個不斷發(fā)現(xiàn)問題和解決問題的過程,雖然有點累,但收獲頗多。通過此次的單片機課程設(shè)計,我學(xué)到了許多以前在課本上學(xué)不到的東西,同時也把以前學(xué)到的理論知識運用到了此次的課程設(shè)計中,很好地加強了我在單片機方面的知識,特別是在中斷處理部分。整個調(diào)試程序的過程讓我對keil

18、軟件有了更深一步的了解。并且,此次的課程設(shè)計也很好地鍛煉了我的動手能力,讓我能夠發(fā)現(xiàn)問題,積極開動腦筋去解決問題,同時也讓我對硬件有了進一步的了解。課程設(shè)計是培養(yǎng)我們綜合運用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決問題的實際能力,鍛煉實踐能力的重要環(huán)節(jié),是對我們實際工作能力的具體訓(xùn)練和考查過程。這次課程設(shè)計使我懂得了理論與實際相結(jié)合的重要性,只掌握書上的理論知識是遠遠不夠的,而應(yīng)該把所學(xué)的理論知識與實踐相結(jié)合,把理論運用與實踐,從實踐中驗證理論,從而提高自己的實際動手能力和獨立思考的能力,為以后踏入社會打下基礎(chǔ)。在設(shè)計的過程中不免會遇到一些問題,通過老師和同學(xué)的幫助,以及去圖書館查找資料,終于把問題都解決了,在解決問題的過程中,我發(fā)現(xiàn)自己的不足之處,同時 也鞏固了所學(xué)的知識。 總得來說,此次的課程設(shè)計很有意義,我從中學(xué)到了很多。過程雖苦,但結(jié)果很甜!參考文獻 2007.6北京:北京航天航空大學(xué)出版社,單片機基礎(chǔ).1 李廣弟,朱月秀,冷祖祁 2009.9.北京:清華大學(xué)出版社,.2 揚居義單片機課程設(shè)計指導(dǎo) 2006.1北京:人民郵電出版社,.張義和,陳敵北例說8051.3 2004.5.北京:人民郵電出版社,.4 求是科技單片機典型模塊設(shè)計實例導(dǎo)航 2007.10.C.5 周興華手把手教你學(xué)單片機程序設(shè)計北京:北京航空航天大學(xué)出版社, 指導(dǎo)教師評語

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論