久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 11061|回復(fù): 3
收起左側(cè)

2018年TI杯電流信號(hào)檢測(cè)裝置STM32代碼,電路原理圖和文檔

  [復(fù)制鏈接]
ID:589568 發(fā)表于 2019-7-24 15:00 | 顯示全部樓層 |閱讀模式
這是2018年TI杯電流信號(hào)檢測(cè)裝置一等獎(jiǎng)作品,有原理圖,源代碼資料
主控是STM32F103ZET6
原理圖是用AD畫的。

摘要:設(shè)計(jì)并制作了一種電流信號(hào)檢測(cè)裝置,系統(tǒng)主要由功率放大電路,電流傳感、檢測(cè)及調(diào)理電路,由ARM單片機(jī)為核心的數(shù)據(jù)采集、參數(shù)測(cè)量以及顯示電路組成。功率放大電路以TDA2030為核心搭成電壓增益為1的電流放大電路,驅(qū)動(dòng)10Ω負(fù)載產(chǎn)生10mA~1A的電流,使用漆包線繞制成的線圈作為電流傳感器感應(yīng)電流信號(hào),使用INA2134OP07構(gòu)成信號(hào)調(diào)理電路,將感應(yīng)到的微弱信號(hào)變?yōu)橐子趩纹瑱C(jī)采集和處理的電壓信號(hào),由STM32單片機(jī)采集電壓信號(hào),實(shí)現(xiàn)被測(cè)信號(hào)峰峰值檢測(cè)、頻率計(jì)算、FFT分析與顯示。當(dāng)該系統(tǒng)輸入頻率范圍為50Hz~200Hz非正弦信號(hào)時(shí),通過FFT算法能實(shí)現(xiàn)電流信號(hào)基波頻率的測(cè)量,以及基波和各次諧波分量幅度的測(cè)量。
        經(jīng)過測(cè)量表明,作品指標(biāo)全部滿足競(jìng)賽題目要求。
1.任務(wù)
如圖1所示,由任意波信號(hào)發(fā)生器產(chǎn)生的信號(hào)經(jīng)功率放大電路驅(qū)動(dòng)后,通過導(dǎo)線連接10Ω電阻負(fù)載,形成一電流環(huán)路;設(shè)計(jì)一采用非接觸式傳感的電流信號(hào)檢測(cè)裝置,檢測(cè)環(huán)路電流信號(hào)的幅度及頻率,并將信號(hào)的參數(shù)顯示出來。
圖1  電流信號(hào)檢測(cè)連接圖

一、方案設(shè)計(jì)與選擇
系統(tǒng)主要由功率放大電路,電流傳感、檢測(cè)及調(diào)理電路,由ARM單片機(jī)為核心的數(shù)據(jù)采集、參數(shù)測(cè)量以及顯示電路組成
1.電流傳感方案選擇
        方案一:使用集成電流傳感器件。集成電流傳感器,使用方便,測(cè)量結(jié)果準(zhǔn)確,但是的缺點(diǎn)是線圈的匝數(shù)固定不變,不能根據(jù)自己實(shí)際電路和測(cè)量要求來改變線圈匝數(shù)。
        方案二:漆包線手工繞制電流傳感器。采用漆包線手工繞制電流傳感器?筛鶕(jù)自己的需求,改變磁芯材質(zhì)、漆包線粗細(xì)和線圈的繞制匝數(shù),來適應(yīng)測(cè)量電路,滿足測(cè)量要求。繞制簡(jiǎn)單,易于實(shí)現(xiàn)。
        綜上所述,本次系統(tǒng)設(shè)計(jì)選用方案二。
2.功率放大電路的論證與選擇
方案一:使用分立器件制作功率放大電路。功率管用大功率三極管。使用分立器件制作的功率放大電路,靜態(tài)電流大,非線性失真小,管耗大,且效率低。用該電路作為前級(jí)功率放大電路輸出的電流峰峰值遠(yuǎn)遠(yuǎn)大于1A,但是輸入方波時(shí)有些諧波會(huì)丟失,導(dǎo)致經(jīng)過功放后輸出的方波波形有點(diǎn)失真。
方案二:TDA2030芯片。TDA2030是一款單芯片音頻功率放大器集成電路,具有高電流輸出和高工作電壓,低諧波和交越失真等特點(diǎn)。該電路輸出的電流能滿足題目要求,并且非線性失真小,即使輸入方波,三角波也不會(huì)丟失諧波分量。
綜上所述,本次系統(tǒng)設(shè)計(jì)選用方案二。
3.差動(dòng)放大器的論證與選擇
方案一:選擇INA217儀表放大器將差分電流信號(hào)轉(zhuǎn)化為單端輸出電流信號(hào),該芯片具有低噪聲,低失真,高帶寬等特點(diǎn),但是檢測(cè)小電流信號(hào)時(shí),檢測(cè)的波形有些失真。
方案二:AD620芯片。選擇AD620儀表放大器將差分電流信號(hào)轉(zhuǎn)化為單端輸出電流信號(hào),AD620是低功耗儀表放大器,該芯片具有低功耗,低噪音,直流性能出色等特點(diǎn),但是檢測(cè)微弱信號(hào)時(shí)會(huì)出現(xiàn)噪聲干擾,波形出現(xiàn)的毛刺多,單片機(jī)很難檢測(cè)。
方案三:INA2134芯片。該INA2134是一個(gè)差分線路接收機(jī)組成的高性能運(yùn)算放大器,具有片上精密電阻器,低失真和高的轉(zhuǎn)換速率。該電路能夠檢測(cè)出50Hz~1kHz,100mV~10V的正弦波和50Hz~200Hz的方波,并且波形不失真,噪聲好。
綜上所述,本次系統(tǒng)設(shè)計(jì)選用方案三。
4.后級(jí)運(yùn)算放大器的論證與選擇
方案一:LM358雙差分輸入運(yùn)算放大器作為微弱信號(hào)放大,該芯片的低頻特性很好但是高頻特性差,由于有偏置電流所以輸出的波形不是很好,并且最后給單片機(jī)的信號(hào)是正的,所以需要把信號(hào)往上偏置到正半軸,但是LM358的失調(diào)電壓大,所以這里不選擇LM358
   方案二:OP07芯片是一種低噪聲,非斬波穩(wěn)零的雙極性運(yùn)算放大器集成電路。由于OP07具有非常低的失調(diào)電壓,所以OP07不需要額外的調(diào)零措施,OP07同時(shí)具有輸入偏置電流低和開環(huán)增益高的特點(diǎn),這種低失調(diào),高增益的特性使得OP07在檢測(cè)小信號(hào)時(shí)效果出色。
綜上所述,本次系統(tǒng)設(shè)計(jì)選用方案二。

二、系統(tǒng)結(jié)構(gòu)論述與框圖
系統(tǒng)主要由功率放大電路,電流傳感、檢測(cè)及調(diào)理電路,由ARM單片機(jī)為核心的數(shù)據(jù)采集、參數(shù)測(cè)量以及顯示電路組成。系統(tǒng)總體框圖如圖2.1所示。
              由任意波形發(fā)生器提供所需信號(hào),輸入到功率放大電路進(jìn)行功率放大,放大后的信號(hào)經(jīng)過10Ω負(fù)載轉(zhuǎn)化為電流信號(hào),該電流信號(hào)以非接觸的方式,通過磁耦合在由漆包線繞制的線圈兩側(cè)產(chǎn)生感應(yīng)電流。由于感應(yīng)電流信號(hào)非常微弱,需經(jīng)過信號(hào)調(diào)理電路,將微弱信號(hào)變?yōu)閱纹瑱C(jī)可識(shí)別檢測(cè)的信號(hào),進(jìn)行采集。單片機(jī)采集到數(shù)據(jù)之后,進(jìn)行FFT計(jì)算,對(duì)數(shù)據(jù)進(jìn)行處理,并將處理后的數(shù)據(jù)顯示到屏幕上。


圖2.1 系統(tǒng)結(jié)構(gòu)框圖
三、理論分析及相關(guān)參數(shù)計(jì)算
1.功率放大器理論分析
功率放大器以TDA2030音頻放大器制作,TDA2030具有體積小、輸出功率大、失真小等特點(diǎn)。該功放可實(shí)現(xiàn)電流和電壓的放大,根據(jù)題目要求,將電壓增益設(shè)計(jì)為1。
2.電流檢測(cè)分析電路的理論分析
電流檢測(cè)分析電路包括差分電路、跟隨器、同相放大電路、反相加法電路、反相電路和基準(zhǔn)源電路組成。
差分電路是將從電流傳感器輸出的差分信號(hào)轉(zhuǎn)化為單端輸出信號(hào),差分電路用INA2134芯片設(shè)計(jì),該芯片是高性能的運(yùn)算放大器,內(nèi)部具有導(dǎo)通芯片的精密電阻。后面跟一級(jí)電壓跟隨器,起到前后級(jí)緩沖、隔離的作用,再經(jīng)過一級(jí)放大,因此可以將微弱信號(hào)放大,便于單片機(jī)檢測(cè)。反相加法器將穩(wěn)壓源AMS1117-1.8V輸出的直流電壓和放大器輸出的信號(hào)相加使得信號(hào)偏置到正半軸,但因?yàn)椴捎梅聪嗉臃ǎ盘?hào)全部在負(fù)半軸,需要一級(jí)反相器來使信號(hào)在正半軸。
四、電路設(shè)計(jì)
1.硬件設(shè)計(jì)
1.1功率放大電路設(shè)計(jì)
功率放大電路用TDA2030芯片設(shè)計(jì),電壓放大倍數(shù)為1,設(shè)計(jì)電路圖如下:

         
圖4.1 功率放大器TDA2030電路圖
1.2電流檢測(cè)分析電路
電流檢測(cè)分析電路大致分為三個(gè)部分,信號(hào)放大部分、穩(wěn)壓源部分、信號(hào)偏移部分。
信號(hào)放大部分包括差分電路、跟隨電路、放大電路。差分輸入端并一個(gè)100歐姆的電阻,將差分輸入的電流信號(hào)轉(zhuǎn)化為電壓信號(hào)。經(jīng)過差分電路轉(zhuǎn)化為單端輸出信號(hào),再經(jīng)過跟隨,放大。放大倍數(shù)為電路圖如下:
圖4.2信號(hào)放大部分電路圖

穩(wěn)壓源部分用固定式低壓降線性穩(wěn)壓器AMS1117-1.8V設(shè)計(jì),輸出1.8V直流電壓,電路如圖:
                     
圖4.3 穩(wěn)壓源部分電路圖

信號(hào)偏移部分由反向加法器和反向電路組成,電路如圖:
      
圖4.4  信號(hào)偏移部分電路
2.軟件設(shè)計(jì)
STM32單片機(jī)對(duì)送入的非正弦信號(hào)進(jìn)行AD采樣,并進(jìn)行FFT分析,根據(jù)分析結(jié)果即可得到被測(cè)信號(hào)的基波頻率、諧波頻率和幅值。主控程序的流程如圖4.5所示。

圖4.5 主控程序流程圖

五、測(cè)試方案與測(cè)試結(jié)果
1.測(cè)試儀器
數(shù)字信號(hào)發(fā)生器:DG4062;
臺(tái)式萬(wàn)用表:DM3058;
雙蹤示波器:DS2202E。
2.測(cè)試方案
分析可知,輸入信號(hào)的頻率、幅度都有可能影響測(cè)量結(jié)果,這兩者都屬于變量,故采用控制變量法進(jìn)行結(jié)果測(cè)量;使用雙蹤示波器觀察電流信號(hào)有無明顯失真。
(1)當(dāng)輸入正弦信號(hào)頻率范圍為50Hz-1kHz時(shí),測(cè)量流過10Ω負(fù)載電阻的電流峰峰值,用示波器觀察系統(tǒng)輸出波形;
(2)控制輸入信號(hào)的幅度不變,測(cè)量輸入信號(hào)頻率對(duì)測(cè)量結(jié)果的影響,并記錄數(shù)據(jù);
(3)控制輸入信號(hào)的頻率不變,測(cè)量輸入信號(hào)幅度對(duì)測(cè)量結(jié)果的影響,并記錄數(shù)據(jù);
(4)信號(hào)發(fā)生器輸出非正弦信號(hào),基波頻率范圍為50Hz-200Hz,測(cè)量電流信號(hào)基波頻率和基波及各次諧波分量的幅度,并記錄數(shù)據(jù)。
3.測(cè)試數(shù)據(jù)及結(jié)果
(1)分別設(shè)置輸入信號(hào)的頻率為50Hz、500Hz、1kHz,測(cè)量流過10Ω負(fù)載電阻電流峰峰值,并用雙蹤示波器觀察輸出信號(hào)的波形。測(cè)試結(jié)果如表5.1所示。
表5.1 不同頻率下的電流峰峰值
頻率
50Hz
500Hz
1kHz
電流峰峰值
1.152A
1.149A
1.155A
結(jié)論:滿足競(jìng)賽題目要求,輸出電流峰峰值大于1A
(2)控制輸入信號(hào)的幅度不變,改變頻率測(cè)量。分別設(shè)置輸入信號(hào)幅度峰峰值為100mA、5V、10V,改變頻率進(jìn)行測(cè)量。測(cè)試結(jié)果如表5.2、5.3、5.4所示。

0.png

單片機(jī)源程序如下:
  1. /**
  2.         ADC + DMA + 定時(shí)器
  3.         定時(shí)器觸發(fā)ADC轉(zhuǎn)換。
  4.         采樣出來的點(diǎn)進(jìn)行 FFT 分析。
  5.         
  6.   ******************************************************************************
  7. **/

  8. #include "stm32f10x.h"  
  9. #include "sys.h"
  10. #include "_SysTick.h"

  11. #include "_Usart.h"
  12. #include "lcd.h"
  13. #include "./key/bsp_key.h"
  14. #include "_Led.h"

  15. #include "_ADC.h"

  16. #include "math.h"
  17. #include "arm_math.h"  

  18. #define FFT_LENGTH                4096                 //FFT長(zhǎng)度,默認(rèn)是1024點(diǎn)FFT

  19. float FFT_PARAMETERS(float * pSrc,u16 numSamples);

  20. float fft_inputbuf[FFT_LENGTH*2];        //FFT輸入數(shù)組
  21. float fft_outputbuf[FFT_LENGTH];        //FFT輸出數(shù)組
  22. float MAX_AMP = 0;
  23. u16   base_fre = 0;
  24. float          harmonic_waves[20] = {0};//前20次諧波的幅度存儲(chǔ)

  25.         arm_cfft_radix4_instance_f32 scfft;        //


  26. ///===============================================================================================        

  27. ///* Private variables ---------------------------------------------------------*/
  28. ///
  29. extern uint8_t _DisplayTemp[60];        //存放 需要屏幕顯示的 字符串
  30. ///
  31. uint8_t dis_temp=0;        //默認(rèn)0, 按鍵1切換1,顯示頻譜
  32. //float mode_temp = 2.96;//測(cè)試模式,默認(rèn),串聯(lián)電流表檢測(cè),系數(shù)是2.96。 按鍵2切換1,并聯(lián)測(cè)電壓檢測(cè)
  33. float mode_temp = 1;//2.965;//修正系數(shù),默認(rèn),2.965并聯(lián)測(cè)電壓檢測(cè).串聯(lián)電流表檢測(cè)。 按鍵2切換1,

  34.         uint8_t k=0;
  35. //uint8_t _Flag_DMA_IT=0;

  36. extern __IO uint16_t ADC_ConvertedValue[NOFCHANEL];// ADC1轉(zhuǎn)換的電壓值通過DMA方式傳到SRAM
  37. //float ADC_ConvertedValueLocal[NOFCHANEL];  // 局部變量,用于保存轉(zhuǎn)換計(jì)算后的電壓值
  38. ///

  39. /* Private function prototypes -----------------------------------------------*/

  40. void _ADC_Process1(void);//ADC處理
  41. //顯示各頻點(diǎn)的柱條
  42. void dsp_column(void);
  43. void display(void);
  44. ///===============================================================================================


  45. ///===============================================================================================
  46. int main(void)
  47. {
  48. ///====== 變量 =====================
  49.         
  50.         
  51. ///====== 初始化 ===================
  52.         SysTick_Init();/* 配置SysTick 為1us中斷一次 */
  53.         USART_Config();//初始化串口1
  54.                
  55.         LED_GPIO_Config();
  56.         Key_GPIO_Config();
  57.         LCD_Init();
  58.                
  59.         ADCx_Init();                        //開了ADC1,4個(gè)通道。通道10~13對(duì)PC0~3。        
  60.         _TIM3_Config();

  61. ///===============================================================================================        
  62.         POINT_COLOR = BLACK;
  63.         //LCD_ShowString(8,8,240,300,16,"Measuring System");
  64.         
  65.         
  66.         
  67.         while(1)
  68.         {
  69.   #if 1 ///// 引腳 PC0 , ADC1, ADC_Channel_10
  70. DMA_Cmd( DMA1_Channel1 , ENABLE);
  71. TIM_Cmd( TIM3, ENABLE);
  72.                
  73.                 if( Key_Scan( KEY1_GPIO_PORT ,KEY1_GPIO_PIN) == KEY_ON )
  74.                 {
  75.                         dis_temp = !dis_temp;        //默認(rèn)0, 按鍵1切換1,顯示頻譜
  76.                         LCD_Clear( WHITE);         //清屏
  77.                         LCD_Display_Dir( dis_temp);                //設(shè)置屏幕顯示方向
  78.                 }
  79.         ///~~~~~~~~~~~~////
  80.                 if( Key_Scan( KEY2_GPIO_PORT ,KEY2_GPIO_PIN) == KEY_ON )
  81.                 {
  82.                         mode_temp = 2.96;        //  按鍵2切換1,2.96串聯(lián)電流表檢測(cè)。默認(rèn),2.965并聯(lián)測(cè)電壓檢測(cè),系數(shù).。
  83.                         LED1_0;
  84.                 }        
  85.                
  86.                 ///////// 按下KEY4.切換到另一組模塊
  87.                         /*檢測(cè)是否有按鍵按下 */
  88.         if(GPIO_ReadInputDataBit(KEY4_GPIO_PORT,KEY4_GPIO_PIN) == 1 )  
  89.         {
  90.                 /*等待按鍵釋放 */
  91.                 while(GPIO_ReadInputDataBit(KEY4_GPIO_PORT,KEY4_GPIO_PIN) == 1 )  ;   
  92.                         mode_temp = 1.478;        // 默認(rèn),并聯(lián)測(cè)電壓檢測(cè),系數(shù)。 按鍵2切換1,串聯(lián)電流表檢測(cè)
  93.                         LED1_0;LED2_0;
  94.         }
  95.         
  96.                
  97.                 if( Key_Scan( KEY3_GPIO_PORT ,KEY3_GPIO_PIN) == KEY_ON )
  98.                 {
  99.                         mode_temp = 1.414;        //按鍵3切換,串聯(lián)電流表檢測(cè)。。 默認(rèn),并聯(lián)測(cè)電壓檢測(cè),系數(shù)2.96.。
  100.                         LED1_1;
  101.                 }        
  102. #endif
  103. /////                        
  104.         
  105.         }
  106. }
  107.         ////////////////////////////////////////////////////////////
  108. void  DMA1_Channel1_IRQHandler (void)
  109. {
  110.     u16 i ;
  111.         
  112.         DMA_ClearITPendingBit( DMA1_IT_TC1);
  113.         TIM_Cmd( TIM3, DISABLE);        
  114.         DMA_Cmd( DMA1_Channel1 , DISABLE);

  115.         TIM_SetCounter(TIM3,0);
  116.         

  117. arm_cfft_radix4_init_f32( &scfft,FFT_LENGTH,0,1 );//初始化scfft結(jié)構(gòu)體,設(shè)定FFT相關(guān)參數(shù)
  118.         
  119. for( i=0;i<FFT_LENGTH;i++)//
  120. {
  121. fft_inputbuf[2*i]=ADC_ConvertedValue[i]*3.3/4096;//
  122. fft_inputbuf[2*i+1] = 0;
  123. }   

  124. arm_cfft_radix4_f32( &scfft, fft_inputbuf);        //FFT計(jì)算(基4)        
  125. arm_cmplx_mag_f32( fft_inputbuf, fft_outputbuf, FFT_LENGTH);        //把運(yùn)算結(jié)果復(fù)數(shù)求模得幅值

  126. FFT_PARAMETERS( fft_outputbuf, FFT_LENGTH);        //FFT_LENGTH                4096                 //FFT長(zhǎng)度,默認(rèn)是1024點(diǎn)FFT

  127. //////////////////////////

  128. ////////////
  129. if(dis_temp)//默認(rèn)0, 按鍵1切換1,顯示頻譜
  130.         
  131.         dsp_column();//顯示柱條。

  132. else
  133.         display        ();//顯示
  134.         
  135. }
  136. ////====================================================///
  137. float FFT_PARAMETERS(float * pSrc,u16 numSamples)
  138. {
  139.         u16 i;
  140.         float temp_MAX=0;
  141.         u16   temp_FRE=0;
  142.         pSrc[0] = 0;
  143.         for(i=0;i<numSamples/2;i++)
  144.         {
  145.         //        printf("test[%d]:%f\r\n",i,pSrc[i]);
  146.                 temp_MAX = 0;
  147.                 if (pSrc[i]>pSrc[temp_FRE])
  148.                 {
  149. //                        temp_MAX = pSrc[i];
  150.                         temp_FRE = i;        
  151.                 }        
  152. //                else
  153. //                {
  154. //                        temp_MAX = temp_MAX;
  155. //                        temp_FRE = temp_FRE;
  156. //                }
  157.         }
  158.         MAX_AMP = temp_MAX;
  159.         base_fre = temp_FRE;
  160.         for(i=0;i<20;i++)
  161.         {
  162.                 if(temp_FRE*(i+1)<=1000)
  163.                 harmonic_waves[i]=pSrc[temp_FRE*(i+1)]/2048*1.02;
  164.                 else
  165.                 {        //k++;        
  166.                         harmonic_waves[i] = 10101;
  167.                 }
  168.         }
  169.         return 0 ;
  170. }/////
  171. //////////////////////////////////////////////
  172. //顯示        V單位
  173. #if 0
  174. void display(void)
  175. {
  176.         uint8_t i;
  177.         
  178. //諧波振幅
  179. for(i=0;i<20;i++)
  180. {
  181.         if( harmonic_waves[i] == 10101 )        //超過題目要求的1k范圍的 不顯示
  182.         {
  183. //        printf("harmonic_waves[%d]:%c\r\n",i,'-');
  184.         
  185.         //sprintf((char*)_DisplayTemp," fre(%2d)_V =  --       ", i+1 );//將信息打印到_DisplayTemp地址空間里。
  186.         LCD_ShowString(56,40+13*i,240,24,12,"                     ");//顯示
  187.         //        k--;
  188.         }
  189.         else
  190.         {
  191. //        printf("harmonic_waves[%d]:%f\r\n",i,harmonic_waves[i]/2.8);
  192.         
  193.         sprintf((char*)_DisplayTemp," f(%2d) I =%f mA   ", i+1 , harmonic_waves[i]*1000/ mode_temp );//將信息打印到_DisplayTemp地址空間里。
  194.         LCD_ShowString( 56,40+13*i,240,24,12,_DisplayTemp);//顯示
  195.         }
  196. }        
  197. //printf("base_fre:%d\r\n",base_fre);
  198. //printf("Ipp=%f A \r\n", 2*harmonic_waves[0]/2.8 );
  199. //頻率
  200.         sprintf((char*)_DisplayTemp," Fre = %d Hz     ", base_fre );//將信息打印到_DisplayTemp地址空間里。
  201.         LCD_ShowString(26,16,240,24,12,_DisplayTemp);//顯示
  202. //基波
  203.         sprintf((char*)_DisplayTemp," Ipp = %f mA   ", 2 * harmonic_waves[0]*1000/ mode_temp );//將信息打印到_DisplayTemp地址空間里。
  204.         LCD_ShowString(116,16,240,24,12,_DisplayTemp);//顯示
  205.         
  206. }
  207. #endif
  208. //顯示        mV單位
  209. #if 1
  210. void display(void)
  211. {
  212.         uint8_t i;
  213.         
  214. //諧波振幅
  215. for(i=0;i<20;i++)
  216. {
  217.         if( harmonic_waves[i] == 10101 )        //超過題目要求的1k范圍的 不顯示
  218.         {
  219. //        printf("harmonic_waves[%d]:%c\r\n",i,'-');
  220.         
  221.         //sprintf((char*)_DisplayTemp," fre(%2d)_V =  --       ", i+1 );//將信息打印到_DisplayTemp地址空間里。
  222.         LCD_ShowString(56,40+13*i,240,24,12,"                     ");//顯示
  223.         //        k--;
  224.         }
  225.         else
  226.         {
  227. //        printf("harmonic_waves[%d]:%f\r\n",i,harmonic_waves[i]/2.8);
  228.         
  229.         sprintf((char*)_DisplayTemp," f(%2d) I =%7.3f mA   ", i+1 , harmonic_waves[i]*1000/ mode_temp );//將信息打印到_DisplayTemp地址空間里。
  230.         LCD_ShowString( 56,40+13*i,240,24,12,_DisplayTemp);//顯示
  231.         }
  232. }        
  233. //printf("base_fre:%d\r\n",base_fre);
  234. //printf("Ipp=%f A \r\n", 2*harmonic_waves[0]/2.8 );
  235. //頻率
  236.         sprintf((char*)_DisplayTemp," Fre = %d Hz     ", base_fre );//將信息打印到_DisplayTemp地址空間里。
  237.         LCD_ShowString(26,16,240,24,12,_DisplayTemp);//顯示
  238. //基波
  239.         sprintf((char*)_DisplayTemp," Ipp = %.3f mA   ", 2 * harmonic_waves[0]*1000/ mode_temp );//將信息打印到_DisplayTemp地址空間里。
  240.         LCD_ShowString(116,16,240,24,12,_DisplayTemp);//顯示
  241.         
  242. }
  243. #endif
  244. //顯示各頻點(diǎn)的柱條
  245. void dsp_column(void)
  246. {
  247.    uint16_t i,j=0,m;
  248. //        
  249.         LCD_Clear( WHITE);         //清屏
  250. //        LCD_Display_Dir(1);                //設(shè)置屏幕顯示方向
  251.         
  252.         // LCD_Fill(0,228,320,240, WHITE );//填充指定顏色
  253.          for(i=0;i<20;i++)
  254.            {
  255.                 LCD_Fill(3+j, 228 - (uint16_t)(harmonic_waves[i]*90),12+j, 228 , BRRED );
  256.                 LCD_ShowxNum(2+j,228, i+1 ,2, 12,0); //顯示一個(gè)數(shù)字
  257.                 if( harmonic_waves[i] != 10101 )        
  258.                 {               
  259.                 sprintf((char*)_DisplayTemp,"%d", (uint16_t)(harmonic_waves[i]*1000/ mode_temp) );//將信息打印到_DisplayTemp地址空間里。
  260.                 LCD_ShowString( 2+j, 216 - (uint16_t)(harmonic_waves[i]*90),240,24,12,_DisplayTemp);//顯示
  261.                         j=j+16;
  262.                 }
  263.                 }
  264.                 LCD_ShowString( 2, 0 ,240,24,12,"Ip/mV");//顯示
  265.                
  266. }


  267.         /////////////
  268. /*********************************************END OF FILE**********************/
復(fù)制代碼
0.png
所有資料51hei提供下載:
2018年電賽電流信號(hào)檢測(cè)裝置.rar (2.39 MB, 下載次數(shù): 236)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:593339 發(fā)表于 2019-8-1 21:07 來自手機(jī) | 顯示全部樓層
請(qǐng)問那個(gè)差分電路的兩個(gè)輸入和線圈接的時(shí)候有正負(fù)的區(qū)分嗎?
回復(fù)

使用道具 舉報(bào)

ID:623802 發(fā)表于 2019-10-15 20:00 | 顯示全部樓層
樓主能不能留下聯(lián)系方式,有問題需要了解
回復(fù)

使用道具 舉報(bào)

ID:635648 發(fā)表于 2020-2-6 18:25 | 顯示全部樓層
樓主還在么,看到的話方便留個(gè)聯(lián)系方式嗎,有問題請(qǐng)教
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品tv| 国产精品不卡一区二区三区 | 久久久久国产一区二区三区 | 欧美色性| 中文字幕成人av | 国产一级淫片a直接免费看 免费a网站 | 日韩高清不卡 | 国产精品久久久久久久毛片 | 国产女人叫床高潮大片免费 | 久久一本 | 一级毛片视频 | 欧美高清一级片 | 亚洲天堂中文字幕 | 国产精品资源在线 | 一级毛片观看 | 九九热这里 | 一区二区三区免费 | 99亚洲| 成人精品一区二区三区 | 欧美最猛性xxxxx亚洲精品 | 一区二区高清 | 久久久久久久久国产成人免费 | 免费看一区二区三区 | 国产亚洲一区二区三区 | 精品一二区 | 国产在线永久免费 | 人人干视频在线 | 黄色av网站在线观看 | 偷拍亚洲色图 | 99精品电影| 激情国产视频 | 欧美国产日韩在线观看 | 国产亚洲精品精品国产亚洲综合 | 久久毛片 | 中文字幕日本一区二区 | 午夜私人影院在线观看 | 有码在线 | 久久亚洲精品国产精品紫薇 | 在线免费观看黄色av | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 福利视频一区二区 |