基于單片CPU的LCD顯示頻率計(jì)設(shè)計(jì)_第1頁
基于單片CPU的LCD顯示頻率計(jì)設(shè)計(jì)_第2頁
基于單片CPU的LCD顯示頻率計(jì)設(shè)計(jì)_第3頁
基于單片CPU的LCD顯示頻率計(jì)設(shè)計(jì)_第4頁
基于單片CPU的LCD顯示頻率計(jì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2013/2014學(xué)年 第一學(xué)期課程設(shè)計(jì)II 實(shí)驗(yàn)報(bào)告 模 塊 名 稱 Proteus軟件設(shè)計(jì)(51單片機(jī)) 專 業(yè) 通信工程 學(xué) 生 班 級 學(xué) 生 學(xué) 號 學(xué) 生 姓 名 指 導(dǎo) 教 師 需要程序和仿真電路圖請聯(lián)系QQ:設(shè)計(jì)題目基于單片的顯示頻率計(jì)設(shè)計(jì)任務(wù)要求基本要求:1 用P1或P3口,產(chǎn)生一方波信號,頻率為1000Hz,用8LED顯示頻率和周期2 將輸出信號輸入到另一端口作頻率計(jì)的信號輸入端,測量此方波信號的頻率、周期和脈寬,在另一8LED上將參數(shù)值顯示出來。3 設(shè)置一功能鍵,能將當(dāng)前LED上的信號值鎖定發(fā)揮部分:1 通過鍵盤,可修改方波的頻率。每按一次鍵,頻率值進(jìn)給或后退100Hz,

2、頻率范圍100Hz1500Hz2 按鍵時,蜂鳴器發(fā)出提示音,表示按鍵有效3 用圖形方式顯示輸入波動態(tài)顯示格式:自定實(shí)驗(yàn)設(shè)備及軟件(1)PC機(jī) 一臺(2) Keil c51單片機(jī)仿真軟件(3)Proteus軟件同組人員學(xué)號及姓名參考文獻(xiàn)郭天祥十天學(xué)會單片機(jī)譚浩強(qiáng)C語言程序設(shè)計(jì)新概念51單片機(jī) C語言教程杜洋愛上單片機(jī)基于單片的顯示頻率計(jì)設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康谋菊n程設(shè)計(jì)是在理論課程的基礎(chǔ)上,重點(diǎn)培養(yǎng)學(xué)生的動手能力,通過電路設(shè)計(jì)、理論計(jì)算、實(shí)際編程、調(diào)試、測試、分析查找故障,解決在實(shí)際設(shè)計(jì)中的問題,使設(shè)計(jì)好的電路能正常工作,并可能結(jié)合實(shí)際的實(shí)驗(yàn)板進(jìn)行下載測試。學(xué)習(xí)proteus軟件的使用,學(xué)習(xí)匯編語言以及

3、C語言在51編程上的使用,學(xué)習(xí)系統(tǒng)測試,自主實(shí)驗(yàn)。二、實(shí)驗(yàn)設(shè)備(1)PC機(jī) 一臺(2) Keil c51單片機(jī)仿真軟件(3)Proteus軟件三、實(shí)驗(yàn)內(nèi)容簡易頻率計(jì)類:基于單片的顯示頻率計(jì)設(shè)計(jì)基本要求:1 用P1或P3口,產(chǎn)生一方波信號,頻率為1000Hz,用一組數(shù)碼管或LCD顯示頻率和周期以及脈寬等參數(shù)(也可用信號源或模擬信號源)。2 將輸出信號輸入到另一端口(INT0/INT1)作頻率計(jì)的信號輸入端,測量此方波信號的頻率、周期和脈寬,在另一組數(shù)碼管或LCD上將參數(shù)值顯示出來。(刷新時間1秒)。發(fā)揮部分:1設(shè)置一功能鍵,能將當(dāng)前數(shù)碼管或LCD上的信號參數(shù)值鎖定。2通過鍵盤,可修改方顯示參數(shù),

4、刷新時間。3按鍵時,蜂鳴器發(fā)出提示音,表示按鍵有效4用圖形方式顯示輸入波形(用模擬示波器) 動態(tài)顯示格式:自定四、實(shí)驗(yàn)原理 單片機(jī)衛(wèi)星計(jì)算機(jī)簡稱單片機(jī),是指在一塊芯片體上集成了中央處理器CPU,隨即存儲器RAM,程序存儲器ROM或EPROM,定時器/計(jì)數(shù)器,中斷控制器以及串行和并行I/O接口等部件,構(gòu)成一個完整的微型計(jì)算機(jī)。 單片機(jī)應(yīng)用系統(tǒng)中,經(jīng)常要對一個連續(xù)的脈沖波頻率進(jìn)行測量。在實(shí)際應(yīng)用中,對于轉(zhuǎn)速,位移、速度、流量等物理量的測量,一般也是由傳感器轉(zhuǎn)換成脈沖電信號,采用測量頻率的手段實(shí)現(xiàn)。 使用單片機(jī)測量頻率或周期,通常是利用單片機(jī)的定時計(jì)數(shù)器來完成的,測量的基本方法和原理有兩種: 測頻法

5、:在限定的時間內(nèi)(如1秒鐘)檢測脈沖的個數(shù)。 測周法:測試限定的脈沖個數(shù)之間的時間。 這兩種方法盡管原理是相同的,但在實(shí)際使用時,需要根據(jù)待測頻率的范圍、系統(tǒng)的時鐘周期、計(jì)數(shù)器的長度、以及所要求的測量精度等因素進(jìn)行全面和具體的考慮,尋找和設(shè)計(jì)出適合具體要求的測量方法。 在具體頻率的測量中,需要考慮和注意的因素有以下幾點(diǎn)。 系統(tǒng)的時鐘。首先測量頻率的系統(tǒng)時鐘本身精度要高,因?yàn)椴还苁窍薅y量時間還是測量限定脈沖個數(shù)的周期,其基本的時間基準(zhǔn)是系統(tǒng)本身時鐘產(chǎn)生的。其次是系統(tǒng)時鐘的頻率值,因?yàn)橄到y(tǒng)時鐘頻率越高,能夠?qū)崿F(xiàn)頻率測量的精度也越高。因此使用AVR測量頻率時,建議使用由外部晶體組成的系統(tǒng)的振蕩電路

6、,不使用其內(nèi)部的RC振蕩源,同時盡量使用頻率比較高的系統(tǒng)時鐘。 所使用定時計(jì)數(shù)器的位數(shù)。測量頻率要使用定時計(jì)數(shù)器,定時計(jì)數(shù)器的位數(shù)越長,可以產(chǎn)生的限定時間越長,或在限定時間里記錄的脈沖個數(shù)越多,因此也提高了頻率測量的精度。所以對頻率測量精度有一定要求時,盡量采用16位的定時計(jì)數(shù)器。 被測頻率的范圍。頻率測量需要根據(jù)被測頻率的范圍選擇測量的方式。當(dāng)被測頻率的范圍比較低時,最好采用測周期的方法測量頻率。而被測頻率比較高時,使用測頻法比較合適。需要注意的是,被測頻率的最高值一般不能超過測頻MCU系統(tǒng)時鐘頻率的1/2,因?yàn)楫?dāng)被測頻率高于MCU時鐘1/2后,MCU往往不能正確檢測被測脈沖的電平變化了。

7、除了以上三個因素外,還要考慮頻率測量的頻度(每秒內(nèi)測量的次數(shù)),如何與系統(tǒng)中其它任務(wù)處理之間的協(xié)調(diào)工作等。頻率測量精度要求高時,還應(yīng)該考慮其它中斷以及中斷響應(yīng)時間的影響,甚至需要在軟件中考慮采用多次測量取平均的算法等。測頻法的基本思想,就是采用在已知限定的時間內(nèi)對被測信號輸入的脈沖個數(shù)進(jìn)行計(jì)數(shù)的方法來實(shí)現(xiàn)對信號頻率的測量。當(dāng)被測信號的頻率比較高時,采用這種方法比較適合,因?yàn)樵谝欢〞r間內(nèi),頻率越高,計(jì)數(shù)脈沖的個數(shù)也越多,測量也越準(zhǔn)確。 本次實(shí)驗(yàn),采用了測頻法,采用在已知限定的時間內(nèi)對被測信號輸入的脈沖個數(shù)進(jìn)行計(jì)數(shù)的方法來實(shí)現(xiàn)對信號頻率的測量,用P1或P3口,產(chǎn)生一方波信號,頻率分別為100Hz,

8、500Hz,1000Hz,用LCD顯示頻率以及脈寬參數(shù)。程序:#include#include#define uchar unsigned char#define uint unsigned intsbit S1=P20;sbit lcdrs=P30;sbit lcdrw=P33;sbit lcde=P34;uchar set_st=0; /狀態(tài)標(biāo)志sbit PWMPort = P37;int FCount;uint FSet,aa,bb,cc;void delay(uint z) uint i,j; for(i=z;i0;i-) for(j=110;j0;j-);void Delay1(ui

9、nt num)while( -num );void write_com(uchar com) lcdrs=0; P1=com; delay(5); lcde=1; delay(5); lcde=0;void write_data(uchar date) lcdrs=1; P1=date; delay(5); lcde=1; delay(5); lcde=0;void init() lcdrw=0; lcde=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+0x00); w

10、rite_data(f); write_data(:); write_com(0x80+0x0a); write_data(5); write_data(0); write_data(%); write_com(0xc0+0x00); write_data(f); write_data(:); write_com(0xc0+0x06); write_data(H); write_data(Z); write_com(0xc0+0x0a);write_data(0x30+cc/10);write_data(0x30+cc%10); write_data(%);void write_f(uint

11、date) /寫頻率 uchar qian,bai,shi,ge; qian=date/1000; bai=date/100%10; shi=date/10%10; ge=date%10; write_com(0x80+0x02); write_data(0x30+qian); write_data(0x30+bai); write_data(0x30+shi); write_data(0x30+ge); write_data(0x48); write_data(0x5a);write_com(0xc0+0x02);write_data(0x30+bb/1000);write_data(0x3

12、0+bb/100%10);write_data(0x30+bb/10%10);write_data(0x30+bb%10); write_com(0xc0+0x0a);write_data(0x30+cc/10);write_data(0x30+cc%10);void TimerInit(void)TMOD |= 0x10;TH1 = 0xFF;/ Timer0 count 50us when cpu at 12MHzTL1 = 0xCE;TR1 = 1;ET1 = 1; EX0=1;/外部中斷0開 IT0=1;/邊沿觸發(fā)EA = 1;void main(void)init();TimerIn

13、it();while(1)if(S1=0) Delay1(2000); dowhile(S1=0); set_st+; if(set_st2)set_st=0;if(set_st=0) FCount=100;if(set_st=1) FCount=500;if(set_st=2) FCount=1000;write_f(FCount);FSet = 20000 / FCount;void TIMER1INT(void)interrupt 3static uint FValue = 0;TH1 = 0xFF;/50us when cpu at 12MHzTL1 = 0xDD;if(+FValue

14、 = FSet)/定時時間到,輸出電平取反aa+;if(aa=FCount) aa=0;PWMPort = !PWMPort;FValue = 0;void INT0_ISR(void) interrupt 0 using 1static unsigned char second;/定義靜態(tài)變量,退出該程序后內(nèi)容不變 second+;/加1if(second=5) if(set_st=0) bb=100;if(set_st=1) bb=500;if(set_st=2) bb=1000;cc=50;second=0;五、實(shí)驗(yàn)過程及其記錄 1、實(shí)驗(yàn)連接圖 2、運(yùn)行示波器顯示波形:按下BUTTON鍵

15、,改變頻率:示波器顯示波形:按下BUTTON鍵,改變頻率:示波器顯示波形:六、心得體會 通過這二周的單片機(jī)的實(shí)訓(xùn),還有老師的精心指導(dǎo)和同學(xué)的幫助,以及在網(wǎng)上找的一些資料,讓我有了不少體會。 從拿到題目到完成整個編程,從理論到實(shí)踐,學(xué)到很多很多的課堂理論中沒學(xué)到過的東西,不僅對頻率計(jì)有了深刻地認(rèn)識,而且對單片機(jī)這門課程有了更深更全面的了解,尤其是在學(xué)習(xí)使用Keil c51軟件編程和Proteus仿真時收獲頗多。本次課程設(shè)計(jì)是基于51單片機(jī)在理論課程的基礎(chǔ)上,根據(jù)提供的參考工程,在proteus平臺上設(shè)計(jì)實(shí)驗(yàn)電路所需要的原理圖,在此基礎(chǔ)上編寫相對應(yīng)的程序。其中包括原理圖器件的選取、原理圖的連接、程

16、序的編寫編譯以及運(yùn)行。通過電路設(shè)計(jì)、理論計(jì)算、實(shí)際編程、調(diào)試、測試和分析查找故障,解決了在實(shí)際設(shè)計(jì)中的問題,使設(shè)計(jì)好的電路能正常工作。由于以前很少接觸單片機(jī),在試驗(yàn)開始的時候遇到了很多的困難,如在程序編寫過程中出現(xiàn)了很多細(xì)節(jié)的錯誤,并不能把程序一次性就編寫好,這也浪費(fèi)了很多的時間,這主要也是沒有把這方面的知識學(xué)扎實(shí)。最后通過自己研究,翻閱書籍,請教同學(xué),網(wǎng)上查找資料等方法來解決問題,使我對51單片機(jī)的應(yīng)用和擴(kuò)展有了一定的了解,通過對軟件的應(yīng)用,加深了對51單片的編程和調(diào)測的理解,能夠把單片機(jī)知識與C語言知識很好的結(jié)合起來,使功能實(shí)現(xiàn)更加方便,最終使自己的專業(yè)知識與專業(yè)技能得以迅速提升。但由于基礎(chǔ)知識相對薄弱,本次課程設(shè)計(jì)只完成了基本要求,感覺有點(diǎn)遺憾。但是經(jīng)過在查閱相關(guān)資料和試驗(yàn)的過程中,逐步的取得了可觀的進(jìn)展,到了最后感受收獲很大,學(xué)到了許多有用的東西。 通過這次課程設(shè)計(jì),我不僅加深了對單片機(jī)理論的理解,將理論很好的應(yīng)用到實(shí)踐中去,而且我還學(xué)會了如何去培養(yǎng)自己的獨(dú)立思考,勇于克服困難和團(tuán)隊(duì)的協(xié)作精神,使我終身受用。實(shí)訓(xùn)鍛煉了自己動手能力和思維能力,還有在軟件方面的編程能力,讓我受益匪淺,同時也暴露出一些平時學(xué)習(xí)上的問題,讓我深刻反思。這些問題的發(fā)現(xiàn)將為我以后的學(xué)習(xí)和工作指明道路,查漏補(bǔ)缺為進(jìn)一步學(xué)習(xí)作好準(zhǔn)備。通過實(shí)訓(xùn),讓我懂得了如何編寫一些簡單的程序,學(xué)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論