資源描述:
《+LCD顯示—C程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、數(shù)字頻率計(jì)的設(shè)計(jì)[日期:2008-05-05]?[來(lái)源:網(wǎng)絡(luò)作者:佚名]?[字體:大中小]?(投遞新聞)頻率計(jì)是我們經(jīng)常會(huì)用到的實(shí)驗(yàn)儀器之一,本實(shí)驗(yàn)要使用單片機(jī)和計(jì)數(shù)電路及液晶器件來(lái)設(shè)計(jì)一個(gè)寬頻的頻率計(jì)。期望達(dá)到10Hz-1.1G范圍的頻率精確測(cè)量。實(shí)驗(yàn)電路圖(初步方案)1)計(jì)數(shù)及顯示電路:2)前置放大及分頻電路:設(shè)計(jì)思路頻率的測(cè)量實(shí)際上就是在1S時(shí)間內(nèi)對(duì)信號(hào)進(jìn)行計(jì)數(shù),計(jì)數(shù)值就是信號(hào)頻率。用單片機(jī)設(shè)計(jì)頻率計(jì)通常采用兩種辦法,1)使用單片機(jī)自帶的計(jì)數(shù)器對(duì)輸入脈沖進(jìn)行計(jì)數(shù),或者測(cè)量信號(hào)的周期;2)單片機(jī)外部使用計(jì)數(shù)器對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù)
2、,計(jì)數(shù)值再由單片機(jī)讀取。由于單片機(jī)自帶計(jì)數(shù)器輸入時(shí)鐘的頻率通常只能是系統(tǒng)時(shí)鐘頻率的幾分之一甚至幾十分之一,因此采用單片機(jī)的計(jì)數(shù)器直接測(cè)量信號(hào)頻率就受到了很大的限制。本實(shí)驗(yàn)電路采用方式2,使用一片74LS393四位雙二進(jìn)制計(jì)數(shù)器和Atmega8的T1計(jì)數(shù)器組成了24位計(jì)數(shù)器,最大計(jì)數(shù)值為16777215。如果輸入信號(hào)經(jīng)過(guò)MB501分頻器進(jìn)行64分頻后再進(jìn)行測(cè)量,則固定1S時(shí)基下最高測(cè)量頻率為1073.741760Mhz。為了方便得到準(zhǔn)確的1秒鐘測(cè)量閘門(mén)信號(hào),我們使用了Atmega8的異步實(shí)時(shí)時(shí)鐘功能,采用32.768Khz的晶振由T
3、C2產(chǎn)生1秒鐘的定時(shí)信號(hào)。測(cè)量原理:?jiǎn)纹瑱C(jī)打開(kāi)測(cè)量閘門(mén),即PB1輸出高電平,同時(shí)TC2定時(shí)器啟動(dòng)。74LS393開(kāi)始對(duì)輸入脈沖進(jìn)行計(jì)數(shù),74LS393每計(jì)數(shù)達(dá)256時(shí),Atmega8的T1計(jì)數(shù)器也向上計(jì)數(shù)1次。當(dāng)1S定時(shí)到達(dá)時(shí),單片機(jī)產(chǎn)生中斷,PB1輸出低電平關(guān)閉測(cè)量閘門(mén),然后Atmega8讀取74LS393和T1的計(jì)數(shù)值,然后送LCD顯示。實(shí)驗(yàn)進(jìn)展2004-09-27根據(jù)設(shè)計(jì)思路編寫(xiě)程序初步獲得了一些實(shí)驗(yàn)結(jié)果,如下圖所示。下圖是測(cè)量8M有源晶振的輸出結(jié)果。由于1S的測(cè)量閘門(mén)時(shí)間在業(yè)余條件下不好測(cè)試,因此,實(shí)驗(yàn)程序中在LCD上同時(shí)
4、顯示實(shí)時(shí)時(shí)鐘用于判斷1S閘門(mén)時(shí)間的準(zhǔn)確性。實(shí)驗(yàn)中,我使用CDMA手機(jī)上顯示的GPS衛(wèi)星精確時(shí)間進(jìn)行比較。手機(jī)時(shí)間顯示的最小單位是分鐘,測(cè)量時(shí)一旦手機(jī)分鐘值發(fā)生跳變,則立即記錄下LCD顯示的秒值,這樣的話讓頻率計(jì)運(yùn)行一段時(shí)間后,再多次記錄下LCD顯示的秒,就可以準(zhǔn)確判斷頻率計(jì)的異步時(shí)鐘是否準(zhǔn)確。實(shí)驗(yàn)過(guò)程中,我讓頻率計(jì)走了10個(gè)小數(shù)左右,測(cè)量的1S時(shí)鐘還是非常準(zhǔn)確的。#include#include#includelcd.h#include6x8.h#includechinese.h/*------------------------
5、-----------------------------------------------LCD_init:3310LCD初始化編寫(xiě)日期:2004-8-10最后修改日期:2004-8-10-----------------------------------------------------------------------*/voidLCD_init(void){PORTB&=~LCD_RST;//產(chǎn)生一個(gè)讓LCD復(fù)位的低電平脈沖delay_1us();PORTB
6、=LCD_RST;PORTB&=~LCD_CE;//關(guān)閉
7、LCDdelay_1us();PORTB
8、=LCD_CE;//使能LCDdelay_1us();LCD_write_byte(0x21,0);//使用擴(kuò)展命令設(shè)置LCD模式LCD_write_byte(0xc8,0);//設(shè)置偏置電壓LCD_write_byte(0x06,0);//溫度校正LCD_write_byte(0x13,0);//1:48LCD_write_byte(0x20,0);//使用基本命令LCD_clear();//清屏LCD_write_byte(0x0c,0);//設(shè)定顯示模式,正常顯示PORTB&=~LC
9、D_CE;//關(guān)閉LCD//LCD_clear();}/*-----------------------------------------------------------------------LCD_clear:LCD清屏函數(shù)編寫(xiě)日期:2004-8-10最后修改日期:2004-8-10-----------------------------------------------------------------------*/voidLCD_clear(void){unsignedinti;LCD_write_byte(
10、0x0c,0);LCD_write_byte(0x80,0);for(i=0;i<504;i++)LCD_write_byte(0,1);}/*----------------------------------------------------