基于MSP430G2553的簡易頻率計_第1頁
基于MSP430G2553的簡易頻率計_第2頁
基于MSP430G2553的簡易頻率計_第3頁
基于MSP430G2553的簡易頻率計_第4頁
基于MSP430G2553的簡易頻率計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、WORD簡易頻率計學(xué)校:工業(yè)大學(xué)目錄摘要31方案論證與比較31.1測頻基本方法和原理比較31.2 處理器的方案選擇論證31.3 滯回比較電路放大器的選擇32系統(tǒng)設(shè)計42.1總體設(shè)計42.2單元電路設(shè)計42.2.1 MSP430G2553和12864液晶引腳功能說明42.2.2滯回比較電路設(shè)計52.2.3 顯示電路設(shè)計73軟件設(shè)計83.1 總體設(shè)計流程圖83.2 各功能子模塊介紹83.2.1 初始化模塊83.2.2 中斷模塊93.2.3 顯示模塊103.2.4 串口模塊104 系統(tǒng)測試114.1 測試430單片機自身產(chǎn)生1KHz方波的頻率114.2 測試由信號發(fā)生儀產(chǎn)生的頻率11附錄12附一:參

2、考文獻12附二:元器件與儀器明細表12附三:整體電路原理圖13附四:實驗設(shè)計程序13摘要在電子技術(shù)中,頻率是最基本的參數(shù)之一,數(shù)字頻率計具有精度高、使用方便、測量迅速、以與便于實現(xiàn)測量過程自動化等優(yōu)點,是近代電子技術(shù)領(lǐng)域的重要工具之一,在許多領(lǐng)域得到廣泛應(yīng)用。本系統(tǒng)以超低功耗MSP430G2553單片機為核心處理芯片來測量信號的頻率,通過定時器A采用計數(shù)法完成信號頻率測量,并將被測頻率值通過LCD12864液晶串行顯示。頻率可測量圍在1Hz到60KHz之間。關(guān)鍵字:頻率 430單片機 液晶顯示 串口1方案論證與比較1.1測頻基本方法和原理比較方案一:使用測頻法進行頻率測量,測頻法即在限定的時間

3、(如1s)檢測脈沖的個數(shù)。當(dāng)被測頻率的圍比較高時,使用測頻法比較合適。方案二:使用測周法進行頻率測量,測周法即測試限定的脈沖個數(shù)之間的時間。當(dāng)被測頻率的圍比較低時,使用測周法比較合適。考慮到較高的測試頻率,在此使用方案二,即測頻法進行測量。1.2 處理器的方案選擇論證本設(shè)計使用TI公司的MSP430G2553低功耗單片機為主控芯片,該單片機的I/O接口較少,但部資源豐富,如含有10位AD轉(zhuǎn)換、16位定時器/計數(shù)器、USART接口等,處理功能強大,足以勝任此次設(shè)計任務(wù)。1.3 滯回比較電路放大器的選擇方案一:使用TI公司的OP37放大器,該放大器對信號轉(zhuǎn)換速率快且穩(wěn)定,適用于對高頻信號的轉(zhuǎn)換,但

4、價格較高。方案二:使用普通的LM324放大器,該放大器對信號轉(zhuǎn)換速率慢,適用于對低頻信號的轉(zhuǎn)換,價格便宜??紤]到三角波和正弦波在頻率較高時轉(zhuǎn)化為方波時對放大器的轉(zhuǎn)化速率要求較高,在此使用方案一,即使用TI公司的OP37放大器作為滯回比較電路的核心轉(zhuǎn)換芯片。2系統(tǒng)設(shè)計2.1總體設(shè)計系統(tǒng)硬件設(shè)計方案如圖2.1-1所示:圖2.1-1硬件設(shè)計方框圖電源系統(tǒng)由LM7805和200V轉(zhuǎn)±18V中心變壓器組成,實現(xiàn)對MSP430G2553核心處理芯片、LCD12864液晶顯示提供所需電源。顯示部分由12864液晶對頻率值進行實時顯示。軟件設(shè)計部分包括單片機的I/O中斷和定時中斷,以與液晶的驅(qū)動和顯

5、示。該設(shè)計由硬件和軟件共同實現(xiàn)了頻率計的功能,整體設(shè)計過程可概括為:被測信號通過滯回比較電路整形為適合單片機接收的脈沖信號(方波)輸入單片機,單片機通過I/O中斷和定時器共同獲得被測信號的頻率并通過液晶對頻率進行實時顯示。2.2單元電路設(shè)計2.2.1 MSP430G2553和12864液晶引腳功能說明2.2.1.1 MSP430G2553引腳功能說明本次設(shè)計需要用到430單片機的1腳電源、16腳復(fù)位端、20腳接地端、配置P1.0口為待測信號輸入端,P2.0為LCD片選信號端,P2.1為LCD串行數(shù)據(jù)輸入輸出端,P2.2為LCD串行時鐘輸入輸出端,P2.3為LCD串并模式選擇端,如表2.2.1.

6、1-1所示。表2.2.1.1-1 MSP430G2553引腳與功能說明引腳序號引腳名稱功能說明1VCC電源正2P1.0頻率信號輸入端3P1.11KHz方波產(chǎn)生引腳5P2.0LCD片選信號端6P2.1LCD串行數(shù)據(jù)輸入輸出端7P2.2LCD串行時鐘輸入輸出端8P2.3LCD串并模式選擇端16RST復(fù)位腳20GND電源地2.2.1.2 LCD12864引腳功能說明LCD12864液晶顯示屏用到1、2腳,電源接口線,19、20腳背光電源接口線,15腳并行/串行接口選擇,5腳串行數(shù)據(jù)口,6腳串行的同步時鐘。LCD12864引腳功能如表2.2.1.2-2所示。表2.2.1.2-2 LCD12864引腳功

7、能說明引腳序號引腳名稱功能說明1VSS模塊的電源地2VDD模塊的電源正端4RS(CS)并行指令/數(shù)據(jù)選擇信號、串行片選信號5R/W(SID)并行讀寫選擇信號、串行的數(shù)據(jù)口6E(CLK)并行使能信號、串行的同步時鐘15PSBPSB并/串行接口選擇:H-并行,L-串行19LED_A背光源正極20LED_K背光源負極(0V)2.2.2滯回比較電路設(shè)計滯回比較電路將輸入信號波形轉(zhuǎn)化為脈沖信號,另外波形變換和波形整形電路實現(xiàn)把正弦波樣的正負交替的信號波形變換成可被單片機接收的TTL信號,以便單片機對其進行頻率測量,最后將測得的數(shù)據(jù)通過12864液晶顯示。滯回比較器是一個具有遲滯回環(huán)傳輸特性的比較器。在反

8、相輸入單門限電壓比較器的基礎(chǔ)上引入正反饋網(wǎng)絡(luò),就組成了具有雙門限值的反相輸入滯回比較器。由于反饋的作用這種比較器的門限電壓是隨輸出電壓的變化而變化的。它的靈敏度低一些,但抗干擾能力卻大大提高。反相滯回比較器的電路組成如圖2.2.2-1所示,如果把VI和VREF位置互換,就可以構(gòu)成同相輸入遲滯比較器。圖2.2.2-1 反相滯回比較器電路組成滯回比較器又可理解為加正反饋的單限比較器。對于單限比較器,如果輸入信號在門限值附近有微小的干擾,則輸出電壓就會產(chǎn)生相應(yīng)的抖動(起伏),而在此電路中引入正反饋可以克服這一缺點。整個滯回比較電路原理圖如圖2.2.2-2所示。圖2.2.2-2滯回比較電路圖OP37和

9、R4、R8組成滯回比較器,對被測信號轉(zhuǎn)化為脈沖信號,二極管實現(xiàn)對脈沖信號進行整形,濾去負電平部分,變成可被單片機接收的TTL信號,輸入到單片機,以實現(xiàn)頻率測量。2.2.3 顯示電路設(shè)計該頻率計采用12864液晶進行顯示,器件實物如圖2.2.3-1所示。圖2.2.3-1 12864液晶顯示器實物圖12864液晶顯示器是一種具有 4 位/8 位并行、2 線或3 線串行多種接口方式,部含有國標(biāo)一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為 128×64, 置 8192 個 16*16 點漢字,和128個16*8點 ASCII 字符集。利用該模塊靈活的接口方式和簡單、方便的操作

10、指令,可構(gòu)成全中文人機交互圖形界面。可以顯示 8×4 行 16×16 點陣的漢字。也可完成圖形顯示。低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于一樣點陣的圖形液晶模塊。液晶的控制管腳與430單片機的連接如下圖2.2.3-2所示。圖2.2.3-2 液晶控制管腳連接圖3軟件設(shè)計3.1 總體設(shè)計流程圖系統(tǒng)軟件設(shè)計包括測量初始化模塊、顯示模塊、定時器中斷服務(wù)模塊、I/O中斷模塊。系統(tǒng)軟件整體流程圖如圖3.1-1所示。圖3.1-1 系統(tǒng)軟件整體設(shè)計流程圖3.2 各功能子模塊介

11、紹3.2.1 初始化模塊設(shè)備初始化包括關(guān)閉看門狗,I/O口輸入/輸出功能的配置,時鐘初始化,端口初始化以與液晶初始化,開總中斷,其流程圖如圖3.2.1-1所示。3.2.1-1系統(tǒng)初始化流程圖3.2.2 中斷模塊首先開啟定時溢出中斷和I/O中斷,再打開總中斷,計數(shù)器開始計數(shù),當(dāng)計數(shù)溢出時進入溢出中斷,且溢出次數(shù)加1,當(dāng)有上升沿到來時,進入I/O中斷,計算兩次中斷之間(一個周期)的計數(shù)值,并轉(zhuǎn)化為頻率值。TA中斷流程圖如圖3.2.2-1所示。圖3.2.2-1 TA中斷流程圖I/O中斷流程圖如圖3.2.2-2所示。圖3.2.2-2 I/O中斷流程圖3.2.3 顯示模塊首先根據(jù)12864液晶的時序圖寫

12、出液晶驅(qū)動函數(shù),并調(diào)用驅(qū)動函數(shù)完成在指定位置處顯示字符的功能函數(shù),這樣通過定時刷新液晶屏就可以顯示頻率值了,而且顯示位置可以根據(jù)需要任意指定。3.2.4 串口模塊首先將出口進行初始化,然后當(dāng)定時器達到1S時,串口定時向PC機發(fā)送當(dāng)前測到的頻率值,串口流程圖如圖3.2.4-1所示。圖3.2.4-1串口流程圖4 系統(tǒng)測試4.1 測試430單片機自身產(chǎn)生1KHz方波的頻率將模擬開關(guān)閉合,使430單片機自身產(chǎn)生的1KHz的方波接入被測信號接口,測試結(jié)果如表4.1-1。表4.1-1 430單片機自身產(chǎn)生方波測試結(jié)果次數(shù)實際頻率測試頻率串口發(fā)送頻率(ASCII碼)11KHz991Hz39 39 31 21

13、KHz992Hz39 39 3231KHz992Hz39 39 314.2 測試由信號發(fā)生儀產(chǎn)生的頻率將模擬開關(guān)斷開,使信號發(fā)生儀產(chǎn)生方波接入被測信號接口,測試結(jié)果如表4.2-1。表4.2-1 外部接入方波測試結(jié)果:次數(shù)實際頻率測試頻率串口發(fā)送頻率(ASCII碼)1100Hz98 Hz39 3821KHz991 Hz39 39 31320KHz19526 Hz31 39 35 32 36435 KHz34125Hz33 34 31 32 35 555 KHz54655 Hz35 34 36 35 35將模擬開關(guān)斷開,使信號發(fā)生儀產(chǎn)生正弦波接入被測信號接口,測試結(jié)果如表4.2-2。表4.2-2

14、外部接入正弦波測試結(jié)果:次數(shù)實際頻率測試頻率串口發(fā)送頻率(ASCII碼)1100Hz97Hz39 3721 KHz992Hz39 39 32320 KHz19498Hz31 39 34 39 38435 KHz34268Hz33 34 32 36 38555 KHz54623Hz35 34 36 32 33表4.2-2 外部接入正弦波測試結(jié)果將模擬開關(guān)斷開,使信號發(fā)生儀產(chǎn)生三角波接入被測信號接口,測試結(jié)果如表4.2-3。表4.2-3 外部接入三角波測試結(jié)果次數(shù)實際頻率測試頻率串口發(fā)送頻率(ASCII碼)1100Hz97Hz39 3721 KHz991 Hz39 39 31320 KHz1954

15、4Hz31 39 35 34 34435 KHz34368Hz33 34 33 36 38555 KHz54645Hz35 34 36 34 35從以上實測數(shù)據(jù)看,本設(shè)計很好地完成了設(shè)計題目中的各項要求,具有優(yōu)良的性能,且實物做工精美,這說明本設(shè)計是比較成功的。附錄附一:參考文獻1. 胡大可,MSP430超低功耗16位單片機原理與應(yīng)用,航空航天大學(xué).2. 童詩白,華成英,模擬電子技術(shù)基礎(chǔ)(第四版),清華大學(xué),2006.01.3. MSP430G2553DataSheet.4. X2XXUserGuide.5. Op37DataSheet.附二:元器件與儀器明細表LanchPad430開發(fā)板1塊

16、電源模塊1個12864液晶屏1個MSP430G2553處理器1個USB線1根焊接板3塊OP37放大器1個模擬開關(guān)1個杜邦線若干電阻若干電容若干附三:設(shè)計原理圖圖附三-1為單片機最小系統(tǒng)。附三-1 單片機最小系統(tǒng):圖附三-2為LCD12864液晶顯示電路。附三-2 LCD12864液晶顯示電路:圖附三-3為滯回比較電路。附三-3 滯回比較電路圖附三-4為模擬開關(guān)。附三-4 模擬開關(guān)附四:整體事物圖附五:實驗設(shè)計程序/* * 頭文件 */#include<msp430g2553.h> #include "stdio.h"/* * 全局變量的定義和宏定義 */unsi

17、gned int start,end;unsigned long int F = 0;unsigned char TA_overflow;unsigned int TA_i = 0;unsigned int port_i;unsigned char tab="0123456789"unsigned char a8;unsigned char int_to_string10;unsigned char int_array10;#define uchar unsigned char#define uint unsigned int#define CS_0 P2OUT &

18、= BIT0 /片選為低電平#define CS_1 P2OUT |= BIT0/片選為高電平#define SID_0 P2OUT &= BIT1/串行數(shù)據(jù)輸入為0#define SID_1 P2OUT |= BIT1/串行數(shù)據(jù)輸入為1#define SCLK_0 P2OUT &= BIT2/時鐘線拉低#define SCLK_1 P2OUT |= BIT2/時鐘線拉高#define PSB_0 P2OUT &= BIT3/出行輸入#define LCD_DIR_OUT P2DIR |= BIT0 + BIT1 + BIT2 + BIT3/4個端口設(shè)置為輸出/* 名稱

19、 : SendByte* 功能 : 發(fā)送數(shù)據(jù)* 輸入 : Dbyte* 輸出 : 無*/void SendByte(uchar Dbyte)uchar i;LCD_DIR_OUT;for(i = 0;i < 8;i+)if(Dbyte << i) & 0x80)SID_1;elseSID_0;SCLK_0;_delay_cycles(2);SCLK_1;/* 名稱 : Write_Instruction* 功能 : 向LCD寫指令* 輸入 : data* 輸出 : 無*/void Write_Instruction(uchar data)LCD_DIR_OUT;CS_

20、1;SendByte(0xf8);SendByte(data & 0xf0);SendByte(data << 4) & 0xf0);_delay_cycles(20);/* 名稱 : Write_Data* 功能 :向LCD寫入數(shù)據(jù)* 輸入 : data* 輸出 : 無*/void Write_Data(uchar data)LCD_DIR_OUT;CS_1;SendByte(0xfa);SendByte(data & 0xf0);SendByte(data << 4) & 0xf0);_delay_cycles(20);/* 名稱 :

21、 LCD12864_Delay()* 功能 : 初始化LCD12864* 輸入 : 無* 輸出 : 無*/void LCD_Init()LCD_DIR_OUT; /設(shè)置輸入方向為輸出PSB_0;/LCD為串行輸入方式Write_Instruction(0x30);/基本指令集_delay_cycles(10000);Write_Instruction(0x02);/地址歸位_delay_cycles(10000);Write_Instruction(0x0c);/整體顯示打開,游標(biāo)關(guān)閉_delay_cycles(10000);Write_Instruction(0x01);/清除顯示_dela

22、y_cycles(10000);Write_Instruction(0x06); /游標(biāo)右移_delay_cycles(10000);Write_Instruction(0x80);/設(shè)定顯示的起始地址_delay_cycles(10000);/* 名稱 : Write_Pos* 功能 : 確定輸入數(shù)據(jù)的位置* 輸入 : x,y* 輸出 : 無*/void Write_Pos(uchar x,uchar y) uchar pos; if(x = 1) /第一行顯示 x = 0x80; else if(x = 2) /第二行顯示 x = 0x90; else if(x = 3) /第三行顯示 x

23、 = 0x88; else if(x = 4) /第四行顯示 x = 0x98; pos = x + y-1; Write_Instruction(pos);/顯示地址/* 名稱 : Write_Word_To_12864* 功能 : 在坐標(biāo)x,y處寫入數(shù)據(jù)* 輸入 : x,y,*word* 輸出 : 無*/void Write_Word_To_12864(uchar x,uchar y,uchar *word)uchar i;LCD_Init();Write_Pos(x,y);for(i = 0;*(word+i)!='0'i+)Write_Data(wordi);void

24、ShowInit()Write_Word_To_12864(1,1,"頻率計:");_delay_cycles(50000);Write_Pos(2,7);Write_Data('H');Write_Data('z');_delay_cycles(10000);void ShowF()Write_Pos(2,4);if(F >= 100000)Write_Data(tabF/100000);Write_Data(tabF%100000/10000);Write_Data(tabF%10000/1000);Write_Data(tabF%

25、1000/100);Write_Data(tabF%100/10);Write_Data(tabF%10);_delay_cycles(1000);else if(F >= 10000)Write_Data(tabF/10000);Write_Data(tabF%10000/1000);Write_Data(tabF%1000/100);Write_Data(tabF%100/10);Write_Data(tabF%10);_delay_cycles(1000);else if(F >= 1000)Write_Data(tabF/1000);Write_Data(tabF%1000

26、/100);Write_Data(tabF%100/10);Write_Data(tabF%10);_delay_cycles(1000);else if(F >= 100)Write_Data(tabF/100);Write_Data(tabF%100/10);Write_Data(tabF%10);_delay_cycles(1000);else if(F >= 10)Write_Data(tabF/10);Write_Data(tabF%10);_delay_cycles(1000);elseWrite_Data(tabF);_delay_cycles(1000);/* 名稱

27、 : Init_uart0* 功能 : 初始化串口* 輸入 : 無* 輸出 : 無*/void Init_uart0() UCA0CTL1|=UCSWRST; /UCA0軟件復(fù)位 /UCA0CTL0&=UC7BIT;/字符長度為8 UCA0CTL1|=UCSSEL_2;/選擇系統(tǒng)時鐘:SMCLK UCA0BR0=0x6D; /波特率為9600 UCA0BR1=0; UCA0MCTL=0;/UCA0MCTL=UCBRS0; IE2=UCA0RXIE+UCA0TXIE;/開接收使能 UCA0CTL1&=UCSWRST; P1SEL|=BIT1+BIT2; /將P1.1 P1.2設(shè)為

28、第二功能 P1SEL2|=BIT1+BIT2;/* 名稱 : Uart0Sends* 功能 : 串口發(fā)送數(shù)據(jù)* 輸入 : *s* 輸出 : 無*/void Uart0SendsData(char *s) while(*s!='0') UCA0TXBUF=*s; while(IFG2&UCA0TXIFG)=0); /查詢發(fā)送是否結(jié)束 IFG2&=UCA0TXIFG; /清除發(fā)送一標(biāo)志位 s+; /* 名稱 : Init_In* 功能 :初始化外部終端* 輸入 : 無* 輸出 : 無*/void Init_In()P1DIR |= BIT6;P1DIR &=

29、 BIT3;P1IES |= BIT3;P1IE |= BIT3;P1IFG &= BIT3;_EINT();void Init_Timer() TACCTL0 = CCIE; / CCR0 interrupt enabled TACCR0 = 1; TACTL = TASSEL_1 + MC_1 + TAIE + TACLR; /up mode/* 名稱 : Int_To_String* 功能 :將一個int型數(shù)據(jù)轉(zhuǎn)換為String型* 輸入 : now_f* 輸出 : 無*/void Int_To_String(unsigned long int now_f)int j = 0;for(j = 0; ;j+)int_arrayj = now_f % 10 + 48 ;now_f = now_f / 10;if(now_f = 0) break;int i = j ;for(i = j , j = 0; i >= 0; i-,j+)int_to_stringj = int_arrayi;void main()WDTCTL = WDTPW + WDTHOLD; P1DIR |= BIT7; / P1.0 output P1DIR |= BIT0; if (CALBC1_1MHZ =0xFF | CALDCO_1MHZ = 0xFF) while(1

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論