設計文檔:
簡易頻率測量系統設計報告.zip
(549.07 KB, 售價: 1 E幣)
2025-5-5 12:14 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
參考代碼:
參考C語言程序代碼.zip
(12.82 KB, 售價: 1 E幣)
2025-5-5 12:13 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
1.簡介:數字頻率計主要由四個部分組成:時基電路,整形電路,控制電路和顯示電路組成。在一個測量周期過程中,由時基電路產生一標準時間信號控制閥門,調節時基電路中的電阻可產生需要的標準時間信號。信號輸入整形電路中,經過整形,輸出一方波,通過閥門后,計時器對其計數。當計數完畢,時基電路輸出一個上升沿,使鎖存器打開,計數器計數結果輸入譯碼器,從而讓顯示器顯示,達到測量頻率的目的。文件包括設計電路圖,設計源代碼與設計報 2.目標:本設計主要完成以下目標: 1.測量信號輸入幅度1V~5V方波,頻率為1kHz~10kHz,測量精度1%,信號輸入幅度1V~5V三角波,頻率為1kHz~10kHz,測量精度1%,信號輸入幅度2V~5V正弦波,頻率為1kHz~10kHz,測量精度1%; 2.當輸入信號幅度大于15V時,具有報警功能,測量結果為數字顯示; 3.測量具有串口通信功能; 4.信號輸入幅度為1V~10V脈沖,頻率為20Hz~1kHz時,測量并計算占空比。 3.硬件設計: 3.硬件設計原理測試部分硬件電路圖:
141345ohdzb0e0v48r4u6h.jpg (166.88 KB)
下載附件
2020-5-24 17:42 上傳
1.測頻部分:先對輸入信號進行波形轉換,通過一個過零比較器將三角波、正弦波轉化為方波,之后將將方波輸入單片機 口進行波形測試。 2.限幅報警部分:輸入信號經過D1變成半波信號,之后經過C3,C4,C5,C6,C7進行整流成為幅值直流信號,之后將信號輸入電位器進行分壓,保證15v電壓經過電位器后剩余3.3v電壓。最后輸出到端口上與3.3v電壓進行比較,將比較結果輸入單片機 口。 3.單片機供電部分:通過供電模塊輸出3.3v電壓供給stm32單片機。 4.軟件設計原理: 硬件部分會將所有波形統一成方波輸入。使用TIM3與TIM4計時器。TIM3進行波形捕捉。TIM3捕捉波形的上升沿或者下降沿。開始計數,知道捕捉到相對應的上升沿或者下降沿。根據所計數的多少即可計算出波形的占空比。每次捕捉到上升沿且之前為低電平,頻率計數加一。TIM4計數器用來計數一秒,當TIM4計數滿一秒時,發生TIM4中斷,根據TIM3的頻率計數,即可計算出輸入波形的頻率。 部分源碼 - void TIM3_Cap_Init(uint16_t arr, uint16_tpsc) //TIM3用于輸入捕獲
- {
- GPIO_InitTypeDefGPIO_InitStructure;
- TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
- TIM_ICInitTypeDef TIM3_ICInitStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //使能TIM3時鐘
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIOA時鐘
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //選擇6號引腳
- GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IPD; //輸入下拉
- GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化PA6
- GPIO_ResetBits(GPIOA,GPIO_Pin_0); //PA6下拉
- //初始化定時器3 TIM3
- TIM_TimeBaseStructure.TIM_Period= arr; //設定計數器自動重裝值
- TIM_TimeBaseStructure.TIM_Prescaler=psc; //預分頻器
- TIM_TimeBaseStructure.TIM_ClockDivision= TIM_CKD_DIV1; //設置時鐘分割:TDTS = Tck_tim
- TIM_TimeBaseStructure.TIM_CounterMode= TIM_CounterMode_Up; //TIM向上計數模式
- TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
- //初始化TIM3輸入捕獲參數
- TIM3_ICInitStructure.TIM_Channel= TIM_Channel_1; //CC1S=01選擇輸入端 IC1映射到TI1上
- TIM3_ICInitStructure.TIM_ICPolarity =TIM_ICPolarity_Rising; //上升沿捕獲
- TIM3_ICInitStructure.TIM_ICSelection =TIM_ICSelection_DirectTI; //映射到TI1上
- TIM3_ICInitStructure.TIM_ICPrescaler =TIM_ICPSC_DIV1; //配置輸入分頻,不分頻
- TIM3_ICInitStructure.TIM_ICFilter = 0x00; //IC1F=0000 配置輸入濾波器 不濾波
- TIM_ICInit(TIM3,&TIM3_ICInitStructure);
- //中斷分組初始化
- NVIC_InitStructure.NVIC_IRQChannel= TIM3_IRQn; //TIM3中斷
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 0; //先占優先級0級
- NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0; //從優先級0級
- NVIC_InitStructure.NVIC_IRQChannelCmd= ENABLE; //IRQ通道被使能
- NVIC_Init(&NVIC_InitStructure);
- TIM_ITConfig(TIM3,TIM_IT_CC1,ENABLE);
- TIM_Cmd(TIM3,ENABLE ); //使能定時器3
復制代碼檢測結果 當正弦波的頻率為5khz時,數字頻率計顯示結果為
1.png (189.78 KB)
下載附件
2021-6-11 17:54 上傳
當方波的頻率為8khz時,數字頻率計顯示結果為
2.png (297.29 KB)
下載附件
2021-6-11 17:54 上傳
當輸入信號幅度大于15V時,綠燈被點亮,進行報警
3.png (122.64 KB)
下載附件
2021-6-11 17:54 上傳
測量占空比
4.png (205.34 KB)
下載附件
2021-6-11 17:55 上傳
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|