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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、時。外部待測脈沖從單片機的TI(第15引腳)輸入,以定時/計數器1作為計數器,利用中斷方式來達到間接測量的目的。最后采用四位數碼管顯示。本設計采用C語言進行軟件編程,用keil軟件進行調試。最后把調試成功后的程序固化到AT89C52單片機中,接到預先焊好的電路板上,接上待測脈沖,通電運行,數碼管成功顯示待測脈沖頻率。關鍵詞:單片機;頻率計;AT89C52目錄1 項目綜述.111 設計要求112 系統設計12 硬件設計.22.1 電路原理圖22.2 元件清單22.3 主要芯片引腳說明33 軟件設計.43.1 程序流程圖43.2 軟件設計簡述53.3 程序清單64 系統仿真及調試.104.1 硬件

3、調試104.2 軟件調試105 結果分析.10總結.11參考文獻.121 項目綜述在電子技術中,頻率是最基本的參數之一,并且與許多電參量的測量方案、測量結果都有十分密切的關系,因此頻率的測量就顯得更為重要。本項目主要闡述了選擇AT89C52單片機作為核心器件,采用模塊化布局,設計一個簡易數字頻率計測量頻率并進行顯示。11 設計要求基于AT89C52單片機簡易頻率計的設計要求如下:(1) 測量范圍。幅度:0.55V;頻率:1Hz1MHz.(2) 測試誤差0.1%。(3) 用4位數碼管顯示。當頻率變化時,能通過數碼管及時看到變化后的信號頻率。12 系統設計121 框圖設計基于AT89C52單片機簡

4、易頻率計的電路主要由數碼管顯示電路、復位電路、晶振電路、電源電路等幾部分組成,系統框圖如圖3.1所示。圖3.1 基于AT89C52單片機簡易頻率計系統框圖123 知識點本項目需要通過學習和查閱資料,掌握和了解如下知識:1) +5V電源原理及設計。2) 單片機復位電路工作原理及設計。3) 單片機晶振電路工作原理及設計。4) 頻率信號發(fā)生器的特性及使用。5) 驅動電路74LS244的特性及使用。6) AT89C52單片機引腳結構及功能。7) 單片機C語言程序設計方法。2 硬件設計2.1 電路原理圖基于AT89C52單片機簡易頻率計電路原理圖如圖2-1所示。圖2-1 基于AT89C52單片機簡易頻率

5、計電路原理圖2.2 元件清單基于AT89C52單片機簡易頻率計元件清單如表2-1所示。表2-1 基于AT89C52單片機簡易頻率計元件清單元件名稱型號數量/個用途單片機AT89C521控制核心晶振12MHz1晶振電路電容30pF2晶振電路電解電容10uF/10V1復位電路電阻10k1復位電路驅動器74LS2441LED驅動非門74LS041位選信號數碼管4位共陰1顯示電路按鍵1復位電路電源+5V/0.5A1提供+5V2.3 主要芯片引腳說明2.3.1 AT89C52引腳說明AT89C52為40腳雙列直插封裝8位通用微處理器,采用工業(yè)標準的C51內核,在內部功能及管腳排布上與通用的8xc52 相

6、同,其主要用于會聚調整時的功能控制。功能包括對會聚主IC 內部寄存器、數據RAM及外部接口等功能部件的初始化,會聚調整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。AT89C52 共有6 個中斷向量:兩個外中斷(INT0 和INT1),3 個定時器中斷(定時器0、1、2)和串行口中斷。AT89C52引腳圖如下:圖2-2 AT89C52引腳圖主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口。RST/Vpd(9腳)為復位輸入端口,外接電阻電容組成的復位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負端。P0 口是一

7、組8 位漏極開路型雙向I/O 口,也即地址/數據總線復用口。P1,P2,P3是一組帶有內部上拉電阻的8 位雙向I/O 口。2.3.2 74HC244引腳說明74HC244可以讓輸入的數據保持比較長的時間,簡單輸入接口擴展通常使用的典型芯片為74HC244,由該芯片可構成三態(tài)數據緩沖器。74HC244芯片的引腳排列如下圖所示:圖2-3 74HC244引腳圖74HC244芯片內部共有兩個四位三態(tài)緩沖器,使用時可分別以1C和2G作為它們的選通工作信號。當1/OE和2/OE都為低電平時,輸出端Y和輸入端A狀態(tài)相同;當1/OE和2/OE都為高電平時,輸出呈高阻態(tài)。3 軟件設計本項目利用單片機的內部定時器

8、溢出產生中斷來實現定時。待測信號由單片機的TI中斷來間接測量。定時/計數器0定時2.5ms中斷并對中斷次數進行計數,當2.5ms中斷次數計到40次即0.1s時,查看定時/計數器1上的計得的數值,經過計算得到的待測信號的頻率值,放入顯示緩沖區(qū),由數碼管進行顯示。3.1 程序流程圖主程序流程圖如圖3-1所示。圖3-1 主程序流程圖3.2 軟件設計簡述1)利用單片機的內部定時器溢出產生中斷來實現定時。2)待測信號由單片機的TI(第15引腳)中斷來間接測量。3)采用12MHz晶振,機器周期為1us4)定時/計數器0工作方式:定時方式,工作方式1,每次定時2.5ms。 實現2.5ms定時算法: (3-1

9、) 即TH0=0xf6,TL0=0x3c 5)定時/計數器1工作方式:計數方式,工作方式1。當2.5ms中斷次數計到40次即0.1s時,查看定時/計數器1上的計得的數值 。6)通過公式: (3-2) 可以計算出脈沖頻率。 最后的數據以KHz單位,采用四舍五入的方法保留一位小數。7)顯示采用四位共陰LED數碼管,用單片機P0口的8位控制數碼管的8段二極管的明暗。用P2口的P2.0P2.3作為4位數碼管的選通信號,采用從低到高逐位掃描的方法。3.3 程序清單基于AT89C52單片機簡易頻率計程序清單如下:#include<reg52.h>bit timeint0,timeint1;un

10、signed char dispbuf4;unsigned int period;unsigned int timecount=0;unsigned int count_1s;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /7段數碼管代碼表HEX_TO_BCD(unsigned int n) /十六進制數轉BCD碼子程序,/將BCD碼送至顯示緩存數組unsigned char i; /當顯示的頻率超出范圍,顯示EEEE報錯if (

11、n>9361)for(i=0;i<4;i+) dispbufi=0x0e; else dispbuf3=n/1000; /取出千位字節(jié) dispbuf2=(n/100)%10; /取出百位字節(jié)dispbuf1=(n/10)%10; /取出十位字節(jié)dispbuf0=n%10; /取出個位字節(jié)void scandisp(void) /顯示子程序,/將顯示緩存數組中的BCD碼掃描并顯示在數碼管上 unsigned char posi=0x01; unsigned char i,j,temp; for(i=0;i<4;i+) /依次選中4個數碼管 temp=dispbufi; /查出

12、字碼 temp=tabletemp; /第三位顯示小數點 if(i=1) for(j=0;j<200;j+) P2=posi;P0=temp|0x80; else for(j=0;j<200;j+) P2=posi;P0 =temp; /依次點亮字位 posi<<=1; void INIT_TMR1INT(void) /定時器初始化了程序,定義了兩種 /定時/計數器0工作定時器方式,定時/計數器1工作在計數器方式 TMOD=0x51; ET1=1; /中斷0開中斷 ET0=1; /CPU開中斷 EA=1; count_1s=0; /啟動定時/計數器0開始定時 TR0=1

13、; TR1=1;void time0(void) interrupt 1 /定時器0中斷服務程序,系統自動調用,/每2.5ms執(zhí)行一次TH0=0xf6;TH1=0x3c;/每次定時是2.5 ms, 40次即0.1sif(+count_1s>40) count_1s=0; /每0.1s對計數器1所計數值進行統計 timecount=TH1*256+TL1; TH1=0; TL1=0; /精確到小數點后1位,以KHz為單位 period=timecount/10; /四舍五入顯示 if(timecount%10)>4) period+; timecount=0; HEX_TO_BCD(

14、period); void timer1(void) interrupt 3 /定時器1中斷服務程序,溢出后中斷 TH1=0x00; TL1=0x00;void main(void) /主函數/初始化INIT_TMR1INT();while(1) /顯示子程序 scandisp(); 4 系統仿真及調試應用系統設計完成之后,就要進行硬件調試和軟件調試,軟件調試可以利用開發(fā)及仿真系統進行。4.1 硬件調試硬件調試的調試主要是把電路各種參數調整到符合設計要求。先排除硬件電路故障,包括設計性錯誤和工藝性故障。一般原則是先靜態(tài)后動態(tài)。利用萬用表或邏輯測試儀器,檢查電路中各器件以及引腳是否連接正確,是否

15、有短路故障。先將單片機AT89C52芯片取下,對電路板進行通電檢查,通過觀察看是否有異常,是否有虛焊的情況,然后用萬用表測試各電源電壓,若這些都沒有問題,則接上仿真機進行聯機調試,觀察各接口電路是否正常。4.2 軟件調試軟件調試是利用仿真工具進行在線仿真調試,除發(fā)現和解決程序錯誤外,也可以發(fā)現硬件故障。本設計采用的調試軟件是keil。程序調試時,先是一個模塊一個模塊地進行,一個子程序一個子程序地調試,最后聯起來統調。當程序調試無誤后,就可以用在系統編程器將程序固化到AT89C52的FLASH ROM中。5 結果分析把電路按要求接好,接上待測脈沖信號,插上電源即可測量出待測脈沖信號的頻率。本設計

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

17、理部分。整個調試程序的過程讓我對keil軟件有了更深一步的了解。并且,此次的課程設計也很好地鍛煉了我的動手能力,讓我能夠發(fā)現問題,積極開動腦筋去解決問題,同時也讓我對硬件有了進一步的了解。課程設計是培養(yǎng)我們綜合運用所學知識,發(fā)現、提出、分析和解決問題的實際能力,鍛煉實踐能力的重要環(huán)節(jié),是對我們實際工作能力的具體訓練和考查過程。這次課程設計使我懂得了理論與實際相結合的重要性,只掌握書上的理論知識是遠遠不夠的,而應該把所學的理論知識與實踐相結合,把理論運用與實踐,從實踐中驗證理論,從而提高自己的實際動手能力和獨立思考的能力,為以后踏入社會打下基礎。在設計的過程中不免會遇到一些問題,通過老師和同學的

18、幫助,以及去圖書館查找資料,終于把問題都解決了,在解決問題的過程中,我發(fā)現自己的不足之處,同時也鞏固了所學的知識。總得來說,此次的課程設計很有意義,我從中學到了很多。過程雖苦,但結果很甜!參考文獻1 李廣弟,朱月秀,冷祖祁.單片機基礎.北京:北京航天航空大學出版社,2007.62 揚居義.單片機課程設計指導.北京:清華大學出版社,2009.93 張義和,陳敵北.例說8051.北京:人民郵電出版社,2006.14 求是科技.單片機典型模塊設計實例導航.北京:人民郵電出版社,2004.55 周興華.手把手教你學單片機C程序設計.北京:北京航空航天大學出版社,2007.10指導教師評語學號姓名班級選題名

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論