【正文】
troller Unit).Generally, in the industrial production ,many spot signals like pressure and temperature and flux are send out by homologous pressure transmitter and temperature transmitter and flux transmitter respectively. All in all, the physical quantity is transfered by specific sensor into a frequency signal rated from 200HZ to instrument frequency meter is used to detect the corresponding frequency and transfer it into corresponding physical quantity ,then display it.Keywords: stm32, secondary instrument, frequency meter, sensor, actual physical quantity, frequency signal前 言通常工業(yè)生產(chǎn)中,各種現(xiàn)場(chǎng)物理量如壓力、溫度、流量等都是通過相應(yīng)壓力變送器、溫度變送器、流量變送器傳送出來的。這些變送器是把物理量轉(zhuǎn)變成對(duì)應(yīng)的200Hz800Hz的頻率信號(hào),為了準(zhǔn)確讀出這些物理量的值,就需要通過頻率計(jì)準(zhǔn)確無誤的測(cè)量出變送頻率并換算成實(shí)際的物理數(shù)值。圖1 系統(tǒng)方案圖為了去除包括工頻干擾在內(nèi)的其他低頻干擾,在信號(hào)輸入端設(shè)計(jì)了高通濾波器,濾除200Hz以下的低頻干擾。Keil MDK,也稱MDKARM,Realview MDK、IMDK、uVision4單片機(jī)最小系統(tǒng)包括主控MCU、復(fù)位電路、時(shí)鐘電路和程序下載仿真接口,該部分設(shè)計(jì)如圖3所示。為了達(dá)到低功耗。許多器件都用它來仿真調(diào)試,STM32當(dāng)然也不例外。有源濾波電路相對(duì)于無源濾波電路,具有較高的開環(huán)電壓增益和輸入阻抗、較低的輸出阻抗和很好的自適應(yīng)能力。圖6高通濾波電路 信號(hào)波形整形高通濾波電路輸出的是頻率信號(hào)的正電壓部分,為了獲得單片機(jī)能夠是別的脈沖信號(hào)就必須對(duì)其整形。LCD128128控制端口為數(shù)據(jù)命令選擇端口(RS)、片選端口(CS)、讀端口(RD)、寫端口(WR),以及八位數(shù)據(jù)端口(D0D7)。圖8 按鍵輸入電路圖LED狀態(tài)指示燈用以指示系統(tǒng)運(yùn)行狀態(tài)和輸入頻率大小。在循環(huán)中更新顯示、讀取鍵值。按鍵初始化之后需要再循環(huán)里不斷地檢測(cè),當(dāng)檢測(cè)到按鍵輸入引腳拉低時(shí),即有按鍵按下,然后延時(shí)20毫秒進(jìn)行按鍵“消抖”,因?yàn)槭謩?dòng)操作會(huì)有抖動(dòng),如不進(jìn)行消抖操作,那么短時(shí)間會(huì)判斷出有多次按鍵操作。STM32時(shí)鐘包括AHB高速系統(tǒng)時(shí)鐘總線、APB2高速外設(shè)時(shí)鐘總線和APB1低速外設(shè)時(shí)鐘總線。 STM32輸入捕獲和定時(shí)器STM32輸入捕獲的原理是當(dāng)選定的輸入引腳發(fā)生選定的脈沖觸發(fā)沿(上升沿或下降沿)的時(shí)候,該時(shí)刻定時(shí)器的計(jì)數(shù)值TIMx_CNT會(huì)被保存,同時(shí)也會(huì)產(chǎn)生捕獲中斷。 = TIM_CounterMode_Up。NVIC_InitTypeDef NVIC_InitStructure。下面的就是TIM2的中斷入口函數(shù):void TIM2_IRQHandler(){ //判斷增計(jì)數(shù)中斷標(biāo)志位置位 if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { //清除中斷標(biāo)志 TIM_ClearITPendingBit(TIM2, TIM_IT_Update)。GPIO_InitStructure)。TIM_ICInitStructure)。 人機(jī)界面程序設(shè)計(jì)人機(jī)交互界面程序設(shè)計(jì)包括LCD128x128程序設(shè)計(jì)、LED狀態(tài)指示燈設(shè)計(jì)和按鍵輸入程序設(shè)計(jì)。 uint8 Msk[32]。 = GPIO_Mode_IPU。當(dāng)有頻率輸入時(shí)自動(dòng)顯示轉(zhuǎn)換后的物理數(shù)值。 //點(diǎn)亮LEDif(++i==2)i=0。圖14 信號(hào)輸入和按鍵部分測(cè)試實(shí)物圖軟件分模塊進(jìn)行測(cè)試。本系統(tǒng)就是采用強(qiáng)大的基于ARM CotexM3內(nèi)核的STM32單片機(jī)設(shè)計(jì)出一套頻率計(jì)。static void RCC_Configuration(void)。 UART_Init(9600)。 NVIC_Configuration()。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE)。}/********************************************************************************** 功能:NVIC_Configuration* 參數(shù):NULL* 返回:NULL* 備注:中斷向量表初始化**********************************************************************************/static void NVIC_Configuration(void){ NVIC_InitTypeDef NVIC_InitStructure。NVIC_InitStructure)。 // = ENABLE。 delay_ms(50)。 CLR_LCD_E。USART_Init(USART1, amp。}致謝在畢業(yè)設(shè)計(jì)的過程中,我得到了很多老師和同學(xué)的關(guān)心和幫助。在論文的最后,我要向他們表示我真誠(chéng)的感謝!感謝我的導(dǎo)師在畢業(yè)設(shè)計(jì)過程中給我的悉心指導(dǎo)和幫助,他淵博的學(xué)識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度讓我受益匪淺。 //初始化USARTUSART_Cmd(USART1, ENABLE)。 = UART_baud。}LCD1602寫命令的函數(shù)為:void WriteCommandLcd (unsigned char wdata){ CLR_LCD_RS。NVIC_InitStructure)。 = 1。 //設(shè)置優(yōu)先級(jí)分組:先占優(yōu)先級(jí)0位,從優(yōu)先級(jí)4位 //設(shè)置向量表的位置和偏移 ifdef VECT_TAB_RAM /* Set the Vector Table base location at 0x20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0)。}/********************************************************************************** 功能:GPIO_Configuration* 參數(shù):NULL* 返回:NULL* 備注:端口初始化**********************************************************************