wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9255|回復: 25
收起左側

51單片機MINI示波器2.0制作 LQFP48開源文件 PCB與源程序

  [復制鏈接]
ID:816912 發表于 2021-9-27 12:33 | 顯示全部樓層 |閱讀模式
原創作者是:老劉愛搗鼓 大家可以去看他的視頻:https://space.bilibili.com/40587802

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
51hei.png 51hei.png

制作出來的實物圖如下:
IMG_6298.jpg Main_Interface.jpg operation.jpg Settings_Interface.JPG

單片機源程序如下:
  1. /*
  2.     Mini DSO with STC MCU
  3.     操作說明:
  4.         主界面-選項設置模式:
  5.             單擊編碼器:切換開始/暫停采樣
  6.             雙擊編碼器:切換波形水平滾動模式/選項設置模式
  7.             長按編碼器:進入設置界面
  8.             旋轉編碼器:修改當前參數
  9.             按下同時旋轉編碼器:在參數間切換
  10.             
  11.         主界面-波形水平滾動模式:
  12.             單擊編碼器:切換開始/暫停采樣
  13.             雙擊編碼器:切換波形水平滾動模式/選項設置模式
  14.             長按編碼器:進入設置界面
  15.             旋轉編碼器:水平滾動波形(在暫停采樣狀態下有效)
  16.             按下同時旋轉編碼器:垂直滾動波形(僅在暫停采樣狀態下有效)
  17.             
  18.         設置界面:
  19.             單擊編碼器:無效
  20.             雙擊編碼器:無效
  21.             長按編碼器:返回主界面
  22.             旋轉編碼器:修改當前選項
  23.             按下同時旋轉編碼器:切換選項

  24.     主界面參數:
  25.         橫軸時間區間:"500ms", "200ms", "100ms", "50ms", "20ms", "10ms","5ms", "2ms", "1ms", "500us", "200us", "100us"(100us僅在自動觸發模式下可用)
  26.         縱軸電壓區間:設定電壓量程上限,最大30V,順時針旋轉編碼器將電壓上限設置為0則進入自動量程,逆時針旋轉進入手動量程
  27.         觸發值:設定觸發電壓值,觸發位置被放在屏幕中心
  28.         觸發方向:上下箭頭,分別代表上升沿觸發和下降沿觸發
  29.         觸發方式:
  30.             Auto(自動觸發)  :連續采樣,指示燈始終點亮,通過單擊編碼器控制啟停;觸發成功時,觸發點位于屏幕中心,觸發失敗則波形無規律滾動,屏幕左側顯示Fail標志
  31.             Normal(普通觸發):等待預采樣,待指示燈亮起表示預采樣結束,這時可以輸入信號;
  32.                               觸發成功后,顯示波形,并繼續等待下次觸發;
  33.                               如果有新的觸發成功,則自動顯示新的波形,如沒有新的觸發成功則屏幕波形保持并一直等待下次觸發;
  34.                               需注意設置正確的觸發值,否則一直處于等待觸發狀態,屏幕不會顯示波形
  35.             Single(單次觸發):等待預采樣,待指示燈亮起表示預采樣結束,這時可以輸入信號;
  36.                               觸發成功后,顯示波形,并停止采樣,需用戶單擊編碼器開始下次采樣        
  37.                               需注意設置正確的觸發值,否則一直處于等待觸發狀態,屏幕不會顯示波形
  38.             
  39.     主界面狀態顯示:        
  40.         Run:正在采樣
  41.         Stop:停止采樣
  42.         Fail:自動模式下,觸發值超出波形范圍引起觸發失敗
  43.         Auto:自動量程
  44.             
  45.     設置界面選項:
  46.         PMode(繪圖模式):
  47.             Vector:波形以矢量顯示
  48.             Dots  :波形以點陣顯示
  49.         LSB(采樣系數):分壓系數的100倍,比如用10k加2k的電阻進行分壓,分壓系數為(10+2/2)=6,LSB理論取值為6x100=600,根據實際電阻精度進行微調        
  50.         BRT:OLED亮度

  51.     保存設置:長按編碼器退出設置界面時,設置界面和主界面的所有參數被保存到EEPROM

  52.     2020-04-30更新
  53.     1. 增加單次觸發和普通觸發功能,可自定義觸發點用來捕捉波形變化
  54.     2. 按照規格書要求將ADC采樣端口設置為高阻輸入
  55.     2020-5-3更新
  56.     1. 增加波形頻率顯示
  57.     2. 使用編碼器水平/垂直滾動波形
  58.     3. 使用編碼器垂直縮放波形
  59.     4. 用戶可設定觸發電平
  60. */

  61. #include <reg51.h>
  62. #include "global.h"
  63. #include "delay.h"
  64. #include "adc_stc8.h"
  65. #include "config_stc.h"
  66. #include "settings.h"
  67. #include "chart.h"
  68. #include "ssd1306.h"

  69. // #include "uart.h"
  70. // #include "stdio.h"

  71. #define VBAT_UPDATE_FREQ 40 //電池電壓信息的更新頻率 VBAT_UPDATE_FREQ*25ms
  72. #define VBAT_LSB 600        //電池電壓采樣分壓系數*100
  73. #define INT_0 0             //外部中斷0序號,編碼器旋轉
  74. #define INT_1 2             //外部中斷1序號,編碼器按下
  75. #define TIMER_0 1           //定時器0中斷序號

  76. void init()
  77. {
  78.     InSettings = 0;         //初始化開機界面
  79.     OptionInSettings = 0;   //初始化設置界面的選項編號
  80.     OptionInChart = 0;      //初始化主界面的選項標號
  81.     WaveScroll = 0;         //清零波形滾動標志
  82.     OptionChanged = 0;      //清零設置修改標志
  83.     ADCRunning = 1;         //置位采樣標志
  84.     ADCInterrupt = 0;       //清零ADC中斷標志
  85.     ADCComplete = 0;        //清零ADC完成標志
  86.     WaveUpdate = 0;         //清零波形更新標志
  87.     ClearWave = 0;          //清零清除波形標志
  88.     ClearDisplay = 1;       //置位清空屏幕標志
  89.     EC11PressAndRotate = 0; //清零編碼器旋轉標志
  90.     UpdateVbat = 0;         //清零采樣電池電壓標志
  91.     ADCComplete = 0;        //清零ADC完成采樣標志
  92.     WaveFreq = 0;           //清零波形頻率
  93.     TriPos = 50;            //初始化觸發點位置
  94.     TriPosOffset = 0;       //初始化觸發點偏移量
  95.     TriFail = 0;            //清零觸發失敗標志
  96.     VMax = 0;               //清零波形電壓最大值
  97.     VMin = 0;               //清零波形電壓最小值
  98.     WaveLengthSumNum = 0;   //清零波形長度求和次數
  99.     WaveLengthSum = 0;      //清零波形長度求和

  100.     /* 波形滾動模式下正在采樣則禁用外部中斷0(編碼器旋轉)
  101.        Disable external interrupt 0(Encoder rotation) in waveform scroll mode when sampling*/
  102.     if (ADCRunning && WaveScroll)
  103.         EX0 = 0;

  104.     /* 獲取內部參考電壓值
  105.        Get internal reference voltage */
  106.     BGV = GetBGV();
  107. }

  108. void runWhenInSettrings()
  109. {
  110.     P_Ready = 0;
  111.     ClearDisplay = 1;
  112.     while (InSettings)
  113.     {
  114.         /* 更新電池電壓信息
  115.            Update voltage infor of battery */
  116.         if (UpdateVbat)
  117.         {
  118.             UpdateVbat = 0;
  119.             VBat = GetVoltage(ADC_BAT, VBAT_LSB);
  120.         }

  121.         /* 更新屏幕亮度
  122.            Update OLED Brightness */
  123.         if (OLED_BrightnessChanged)
  124.         {
  125.             OLED_BrightnessChanged = 0;
  126.             OLED_Write_Command(0x81);
  127.             OLED_Write_Command(OLED_Brightness * 10);
  128.         }

  129.         /* 更新參數
  130.            Update parameters */
  131.         if (DisplayUpdate)
  132.         {
  133.             DisplayUpdate = 0;
  134.             PlotSettings();
  135.             OLED_Display();
  136.         }
  137.     }

  138.     /* 保存設置
  139.        Save Settings */
  140.     EA = 0;
  141.     if (OptionChanged)
  142.     {
  143.         OptionChanged = 0;
  144.         ClearDisplay = 0;
  145.         /* 保存設置并顯示保存狀態
  146.            Save settings and display saving status*/
  147.         PlotSaveStatus(Save_Options());
  148.         OLED_Display();
  149.         Delay1000ms();
  150.     }

  151.     /* 退出settings后刷新屏幕
  152.        Redraw display after exit settings */
  153.     ClearDisplay = 1;
  154.     PlotChart();
  155.     OLED_Display();
  156.     IE0 = 0;
  157.     IE1 = 0;
  158.     EA = 1;
  159. }

  160. /*
  161.     ADCRuning=1
  162.     |        WaveUpdate=1
  163.     |        |        ClearWave=1
  164.     |        |        ClearWave=0
  165.     |        WaveUpdate=0
  166.     ADCRuning=0
  167.         DisplayUpdate=1
  168.             WaveUpdate=1
  169.             |        ClearWave=1
  170.             |        ClearWave=0
  171.             WaveUpdate=0
  172. */
  173. void runWhenADCInterrupt()
  174. {
  175.     ADCInterrupt = 0;
  176.     P_Ready = 0;

  177.     /* ADC采樣運行
  178.        ADC Sampling Running */
  179.     if (ADCRunning)
  180.     {
  181.         EX0 = 0;

  182.         if (WaveUpdate)
  183.         {
  184.             WaveUpdate = 0;
  185.             ClearDisplay = 1;

  186.             /* 清空波形緩存
  187.                Clear waveform in buffer*/
  188.             if (ClearWave)
  189.             {
  190.                 ClearWave = 0;
  191.                 memset(ADCbuf, 0x00, SAMPLE_NUM * 2);
  192.                 WaveFreq = 0;
  193.                 TriFail = 0;
  194.                 VMax = 0;
  195.                 VMin = 0;
  196.                 PlotChart();
  197.             }
  198.             /* 顯示緩存中的波形
  199.                Display waveform in buffer*/
  200.             else
  201.             {
  202.                 AnalyseData();
  203.                 PlotChart();
  204.                 PlotWave();
  205.             }
  206.         }
  207.         else
  208.         {
  209.             ClearDisplay = 0;
  210.             PlotChart();
  211.         }
  212.         OLED_Display();

  213.         /* ADCRuning和WaveScroll同時置位時,不開啟外部中斷0(編碼器旋轉)
  214.            Not to enable external interrupt 0(Encoder Rotation) when both of ADCRunning and WaveScroll set. */
  215.         if (!WaveScroll)
  216.         {
  217.             IE0 = 0;
  218.             EX0 = 1;
  219.         }
  220.     }

  221.     /* ADC采樣停止
  222.        ADC Sampling Stopped */
  223.     else
  224.     {
  225.         while (!ADCRunning && !InSettings)
  226.         {
  227.             if (DisplayUpdate)
  228.             {
  229.                 EX0 = 0;
  230.                 DisplayUpdate = 0;
  231.                 if (WaveUpdate)
  232.                 {
  233.                     WaveUpdate = 0;
  234.                     /* 分析緩存中完成采樣的采樣數據
  235.                        Analyse completed sampling data in buffer */
  236.                     AnalyseData();
  237.                     ClearDisplay = 1;

  238.                     /* 清空屏幕,繪制波形
  239.                        Clear display and draw waveform */
  240.                     if (ScaleH == ScaleH_tmp)
  241.                     {
  242.                         /* 采樣點數有限,不支持橫向縮放波形,只有時間區間與完成采樣的時間區間相同才繪制波形
  243.                            Since the sampling points limitation, scaling waveform along horizontal is not support.
  244.                            Show waveform only when time scale is same as that when sampling completed */
  245.                         PlotChart();
  246.                         PlotWave();
  247.                     }

  248.                     /* 清空屏幕,不繪制波形
  249.                        Clear display and no waveform */
  250.                     else
  251.                     {
  252.                         WaveFreq = 0; //清零WaveFreq,繪制界面時,頻率位置會顯示****Hz
  253.                         PlotChart();
  254.                     }
  255.                 }
  256.                 /* 只更新屏幕上的參數,波形不變
  257.                    Update parameters on display only, keep waveform */
  258.                 else
  259.                 {
  260.                     ClearDisplay = 0;
  261.                     PlotChart();
  262.                 }

  263.                 OLED_Display();
  264.                 IE0 = 0;
  265.                 EX0 = 1;
  266.             }
  267.         }
  268.     }
  269. }

  270. void runWhenADCComplete()
  271. {
  272.     /*  ADC采樣完成 - 單次觸發
  273.         ADC Sampling Complete - Single Trigger Mode */
  274.     if (TriMode == 2)
  275.     {
  276.         EX0 = 0;
  277.         ADCInterrupt = 1;
  278.         DisplayUpdate = 0;
  279.         WaveUpdate = 0;
  280.         ADCRunning = 0; //清零ADC運行標志,停止采樣
  281.         AnalyseData();
  282.         ClearDisplay = 1;
  283.         PlotChart();
  284.         PlotWave();
  285.         OLED_Display();
  286.         IE0 = 0;
  287.         EX0 = 1;
  288.     }

  289.     /*  ADC采樣完成 - 自動觸發或普通觸發
  290.         ADC Sampling Complete - Auto or Normal Trigger Mode */
  291.     else
  292.     {
  293.         //EX0 = 0;
  294.         ClearDisplay = 1; //置位清空屏幕標志
  295.         AnalyseData();    //分析采樣數據
  296.         PlotChart();      //繪制主界面
  297.         PlotWave();       //繪制波形
  298.         OLED_Display();
  299.         //IE0 = 0;
  300.         //EX0 = 1;
  301.     }
  302. }

  303. /* 程序入口
  304.    Program Entry */
  305. void main()
  306. {
  307.     /* 將ADC端口P0.4,P0.6設置為高阻
  308.        Set ADC port P0.4, P0.6 as high-impedance */
  309.     P0M1 |= 0x50;
  310.     P0M0 &= ~0x50;

  311.     /* 設置指示燈端口P1.1為推挽輸出
  312.        Set indicator port P1.1 as push-pull output */
  313.     P0M1 &= ~0x02;
  314.     P0M0 |= 0x02;

  315.     /* 設置編碼器端口P3.2,P3.3,P3.4為準雙向
  316.        Set Encoder port P3.2, P3.3, P3.4 as quasi bidirectional */
  317.     P3M1 &= ~0x1C;
  318.     P3M0 &= ~0x1C;

  319.     /* 設置OLED端口P2.3,P2.4,P2.5,P2.6,P2.7為準雙向
  320.        Set OLED port P2.3, P2.4, P2.5, P2.6 as quasi bidirectional */
  321.     P2M1 &= ~0xF8;
  322.     P2M0 &= ~0xF8;

  323.     /* 編碼器旋轉外部中斷
  324.        Interrupt for rotating of Encoder */
  325.     IT0 = 0; //外部中斷0觸發方式,上升沿和下降沿
  326.     PX0 = 1; //外部中斷0高優先級,可打斷按鍵中斷,用于判斷按下同時旋轉
  327.     EX0 = 1; //開啟外部中斷0

  328.     /* 編碼器按鍵外部中斷
  329.        Interrupt for clicking of Encoder */
  330.     IT1 = 1; //外部中斷1觸發方式,下降沿
  331.     PX1 = 0; //外部中斷1低優先級
  332.     EX1 = 1; //開啟外部中斷1

  333.     /* 定時器0,為更新電池電壓信息計時
  334.        Timer 0, for updating voltage of battery */
  335.     AUXR &= 0x7F; //定時器時鐘12T模式
  336.     TMOD &= 0xF0; //設置定時器模式
  337.     TL0 = 0x46;   //設置定時初值 //27MHz,25ms
  338.     TH0 = 0x24;   //設置定時初值
  339.     TF0 = 0;      //清除TF0標志
  340.     ET0 = 1;      //允許定時器0中斷

  341.     /* 開總中斷
  342.        Enable global interrupt */
  343.     EA = 1;

  344.     //UartInit();

  345.     Read_Options();
  346.     init();
  347.     OLED_Init();
  348.     OLED_SetFontWidth(6);
  349.     PlotChart();
  350.     OLED_Display();

  351.     while (1)
  352.     {
  353.         P_Ready = 0;

  354.         /* 采樣波形
  355.            Sampling*/
  356.         GetWaveData();

  357.         /* 進入設置界面
  358.            Enter Settings Interface */
  359.         if (InSettings)
  360.         {
  361.             runWhenInSettrings();
  362.         }

  363.         /* ADC采樣中斷
  364.            ADC Sampling Interrupt */
  365.         else if (ADCInterrupt)
  366.         {
  367.             runWhenADCInterrupt();
  368.         }

  369.         /* ADC采樣完成
  370.            ADC Sampling Complete */
  371.         else
  372.         {
  373.             runWhenADCComplete();
  374.         }
  375.     }
  376. }

  377. /* 分析編碼器旋轉
  378.    Analyse Rotation of Encoder */
  379. void Scan_EC11(void)
  380. {
  381.     /* 延時去抖動
  382.        Delay to remove jitter */
  383.     Delay500us();

  384.     /* 正轉
  385.        Clockwise */
  386.     if (EC11_A != EC11_B)
  387.     {
  388.         Change_Val(1);
  389.     }

  390.     /* 反轉
  391.        Anticlockwise */
  392.     else if (EC11_A == EC11_B)
  393.     {
  394.         Change_Val(0);
  395.     }
  396. }

  397. /* 編碼器旋轉中斷
  398.    Interrput for Encoder Rotated */
  399. void INT0_interrupt(void) interrupt INT_0
  400. {
  401.     Delay500us();

  402.     /* 編碼器是否被按下
  403.        Whether the Encoder is pressed */
  404.     if (!EC11_KEY)
  405.         EC11PressAndRotate = 1;
  406.     else
  407.         EC11PressAndRotate = 0;

  408.     Scan_EC11();
  409.     ADCInterrupt = 1;
  410.     DisplayUpdate = 1;
  411.     IE1 = 0; //清零外部中斷1標志位
  412.     IE0 = 0; //清零外部中斷0標志位
  413. }

  414. /* 編碼器點擊中斷
  415.    Interrput for Encoder Pressed */
  416. void INT1_interrupt(void) interrupt INT_1
  417. {
  418.     Delay50ms();
  419.     if (!EC11_KEY)
  420.     {
  421.         EC11PressAndRotate = 0;

  422.         /*  長按編碼器按鍵 - 切換主界面和設置界面
  423.             Long presse Encoder - Switch main interface and settings interface */
  424.         if (Delay800ms_Long_Press())
  425.         {
  426.             InSettings = ~InSettings;

  427.             /*  進入設置界面
  428.                 Enter Settings  */
  429.             if (InSettings)
  430.             {
  431.                 DisplayUpdate = 1;
  432.                 UpdateVbat = 1;
  433.                 TF0 = 0; //清零定時器0溢出標志
  434.                 TR0 = 1; //定時器0開始計時,開始電池電壓信息更新計時
  435.                 IE0 = 0; //清零外部中斷0中斷標志
  436.                 EX0 = 1; //開啟外部中斷0(編碼器旋轉)
  437.             }

  438.             /*  回到主界面
  439.                 Retrurn to main interface   */
  440.             else
  441.             {
  442.                 TR0 = 0; //清零定時器0溢出標志
  443.                 TF0 = 0; //定時器0停止計時,停止電池電壓信息更新計時
  444.                 WaveFreq = 0;
  445.                 TriFail = 0;
  446.                 VMax = 0;
  447.                 VMin = 0;
  448.                 DisplayUpdate = 1;
  449.                 WaveUpdate = 1;
  450.                 ClearWave = 0;
  451.             }
  452.             ADCInterrupt = 1;
  453.         }

  454.         /*  按住編碼器同時旋轉
  455.             Rotate Encoder while pressing  */
  456.         else if (EC11PressAndRotate)
  457.         {
  458.             /* 由編碼器旋轉中斷執行操作
  459.                Operations Performed by Interrupt of Encoder Rotation */
  460.         }

  461.         /* 雙擊編碼器按鍵 - 在主界面,滾動波形和選項模式之間切換
  462.            Double click Encoder - Switch between Waveform Scroll Mode and Parameter Mode in Main Interface */
  463.         else if (Delay300ms_Double_Click())
  464.         {
  465.             /* 主界面
  466.                Main Interface*/
  467.             if (!InSettings)
  468.             {
  469.                 WaveScroll = ~WaveScroll;
  470.                 OptionChanged = 1;
  471.                 ADCInterrupt = 1;
  472.                 DisplayUpdate = 1;
  473.                 ClearWave = 0;
  474.             }
  475.         }

  476.         /*  單擊編碼器按鍵 - 在主界面,切換Stop/Run狀態
  477.             Single click Encoder - Switch Run/Stop in main interface    */
  478.         else if (!InSettings)
  479.         {
  480.             EX0 = 0;
  481.             ADCRunning = ~ADCRunning;
  482.             if (ADCRunning)
  483.             {
  484.                 WaveUpdate = 1;
  485.                 ClearWave = 1;
  486.             }
  487.             else
  488.             {
  489.                 DisplayUpdate = 1;
  490.                 WaveUpdate = 1;
  491.             }
  492.             ADCInterrupt = 1;
  493.             IE0 = 0;
  494.             IE1 = 0;
  495.         }
  496.     }
  497.     IE1 = 0;
  498. }

  499. /* 為更新Vbat計時
  500.    Timer for updating Vbat */
  501. void TIMER0_interrupt(void) interrupt TIMER_0
  502. {
  503.     static uint8 n;

  504.     if (++n >= VBAT_UPDATE_FREQ)
  505.     {
  506.         n = 0;
  507.         UpdateVbat = 1;
  508.         DisplayUpdate = 1;
  509.     }
  510. }
復制代碼

所有資料51hei附件下載(PCB與代碼):
MINI示波器2.0-LQFP48開源文件.7z (4.83 MB, 下載次數: 283)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:258542 發表于 2021-9-28 22:07 | 顯示全部樓層
在b站上見過,很牛逼的一個
回復

使用道具 舉報

ID:61493 發表于 2021-9-29 15:16 | 顯示全部樓層
不錯,那個屏能不能用在大一點的,那個OLED太小了
回復

使用道具 舉報

ID:229641 發表于 2021-10-2 21:11 來自觸屏版 | 顯示全部樓層
有么有iic屏幕的?
回復

使用道具 舉報

ID:804975 發表于 2021-10-4 00:52 | 顯示全部樓層
這個視頻我也看了。
回復

使用道具 舉報

ID:65369 發表于 2021-10-9 09:16 | 顯示全部樓層
這個夠給力了,放在十年前這個也不敢想象的
回復

使用道具 舉報

ID:971289 發表于 2021-10-14 08:46 | 顯示全部樓層
水平相當可以,點贊
回復

使用道具 舉報

ID:229641 發表于 2021-10-14 21:02 來自觸屏版 | 顯示全部樓層
有iic的OLED屏幕版本的嗎?
回復

使用道具 舉報

ID:588154 發表于 2021-10-24 19:29 | 顯示全部樓層
為什么我下載程序的時候一直顯示:正在檢測目標單片機啊?
回復

使用道具 舉報

ID:588154 發表于 2021-10-24 19:30 | 顯示全部樓層
為什么我給單片機燒錄程序的時候一直顯示:正在檢測目標單片機啊?
單片機型號選正確了的、RX和TX也沒接錯。
回復

使用道具 舉報

ID:229830 發表于 2021-11-10 19:09 | 顯示全部樓層
秦_瘦 發表于 2021-10-24 19:30
為什么我給單片機燒錄程序的時候一直顯示:正在檢測目標單片機啊?
單片機型號選正確了的、RX和TX也沒接錯 ...

先點下載,再上電
回復

使用道具 舉報

ID:367875 發表于 2021-11-10 22:14 | 顯示全部樓層
秦_瘦 發表于 2021-10-24 19:29
為什么我下載程序的時候一直顯示:正在檢測目標單片機啊?

單片機要重新上電
回復

使用道具 舉報

ID:230500 發表于 2021-11-26 00:17 | 顯示全部樓層
厲害, 能把51擋32用的 都是軟件高手達人,
回復

使用道具 舉報

ID:3802 發表于 2021-12-10 17:06 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:503691 發表于 2021-12-15 14:45 | 顯示全部樓層
51黑有你更精彩
回復

使用道具 舉報

ID:977861 發表于 2021-12-21 22:41 | 顯示全部樓層
主要技術參數如何?只能玩玩吧
回復

使用道具 舉報

ID:59202 發表于 2022-7-26 17:06 | 顯示全部樓層
就是個玩具,不過初學者可以學習一下
回復

使用道具 舉報

ID:1025635 發表于 2022-7-26 19:28 | 顯示全部樓層
主要技術參數(頻率范圍)等如何
回復

使用道具 舉報

ID:430492 發表于 2022-7-27 08:39 | 顯示全部樓層
這個很大程度還是讓電工們了解一下原理,實用的話還是很有限的。
回復

使用道具 舉報

ID:130135 發表于 2022-9-16 00:24 | 顯示全部樓層
歷害6666, 能把51擋32用的 都是軟件高手達人,
回復

使用道具 舉報

ID:1102669 發表于 2023-12-8 11:18 | 顯示全部樓層
電壓采樣不是很懂。
回復

使用道具 舉報

ID:390438 發表于 2023-12-16 08:13 | 顯示全部樓層
有空做一個,使用鋰電池供電,維修電源時的好助手
回復

使用道具 舉報

ID:165291 發表于 2024-2-2 10:19 | 顯示全部樓層
牛人,嗶哩嗶哩上怎么找你?
回復

使用道具 舉報

ID:95809 發表于 2024-2-3 00:30 來自觸屏版 | 顯示全部樓層
做過一個,就是屏幕太小了,看著費勁。
回復

使用道具 舉報

ID:965040 發表于 2024-4-10 22:12 | 顯示全部樓層
秦_瘦 發表于 2021-10-24 19:30
為什么我給單片機燒錄程序的時候一直顯示:正在檢測目標單片機啊?
單片機型號選正確了的、RX和TX也沒接錯 ...

單片機重新上電,上電下載程序
回復

使用道具 舉報

ID:965040 發表于 2024-4-10 23:07 | 顯示全部樓層
太牛了,大神作品
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
国产中文欧美日韩在线| 国产精品91一区二区三区| 亚洲欧美日本在线观看| 国产成人av免费观看| 成人在线免费网站| 亚洲精品久久久久| 国产精品久久久久久久久免费丝袜 | 欧美日韩在线资源| 四虎影院免费在线| 久久国产波多野结衣| 野外做受又硬又粗又大视频√| 欧美性受xxxx白人性爽| 欧美伦理视频网站| 91在线丨porny丨国产| 黄色免费的网站| 久久久午夜影院| 亚洲欧美在线精品| 精品卡一卡二| 欧美美女操人视频| 欧美在线免费观看亚洲| 粉嫩嫩av羞羞动漫久久久| 国产一区二区观看| 精品三级久久| h视频免费在线| 午夜精品无码一区二区三区| 国产馆在线观看| 国产aⅴ爽av久久久久| 中文字幕在线亚洲三区| 成人h视频在线| 一本色道久久综合狠狠躁篇的优点 | 在线精品亚洲欧美日韩国产| av小说在线| 国产精品一级视频| 97在线免费公开视频| 国产主播一区二区三区四区| 久操成人在线视频| 欧美日韩国产在线播放网站| 国产视频一区二区在线| 日本不卡高清视频| 亚洲精品影视| 久久在线视频免费观看| 国产高清精品二区| 欧美卡一卡二| 免费在线国产| 香蕉521av成人网| 一区二区三区视频在线免费观看| 精品少妇久久久| 黄色国产在线观看| 中文字幕第38页| 黄色一级片国产| 久久精品国产精品青草色艺| 日韩免费不卡av| 亚洲精品99久久久久| 黑人巨大精品欧美一区二区一视频| 国产精品午夜免费| 国产色综合一区| 狠狠色丁香婷综合久久| 在线成人国产| 精品一区不卡| 日韩中文在线| 成人黄色免费观看| 波多野结依一区| 无遮挡的视频在线观看| 日韩精品一二| 国产色a在线观看| 一色屋免费视频| www.天天干.com| 久久99国产综合精品免费| 日本免费观看视| 在线能看的av| 日韩精品一区二区av| 一卡二卡三卡四卡| 9.1在线观看免费| 青青草久久伊人| 日本精品www| 国产一区二区视频播放| 自拍偷拍视频在线| 日日骚一区二区网站| 精品国产一区二区三区日日嗨| 国产精品视频中文字幕91| 午夜精品一区二区三区在线播放| 日韩中文字幕亚洲| 在线视频日韩精品| 日韩中文娱乐网| 欧美激情在线一区| 热99精品里视频精品| 韩剧1988免费观看全集| 456国产精品| 久久久99久久精品女同性| 亚洲精品在线不卡| 精品无人国产偷自产在线| 日韩女优毛片在线| 精品美女在线播放| 亚洲二区中文字幕| 日韩久久久久久| 91精品国产欧美一区二区18| 911精品国产一区二区在线| 欧美视频中文字幕| 91精品国产综合久久久蜜臀图片| 欧美日韩高清一区二区不卡| 欧美精品xxxxbbbb| 精品国产自在久精品国产| 日韩精品自拍偷拍| 亚洲天堂男人天堂女人天堂| 欧美精品在线一区二区| 在线精品视频一区二区| 欧美日韩精品专区| 亚洲国产成人在线播放| 国产一区二区三区18| 日韩在线观看av| 久久99久久99精品免观看粉嫩| 久久久久久69| 国产精品久久久久久久久久久新郎| 国产美女精品视频免费观看| 91成人免费视频| 日本黑人久久| 蜜臀在线免费观看| 蜜臀av午夜一区二区三区| 日本xxxxxxxxxx75| 男人透女人免费视频| 国产成人免费高清视频| 亚洲国产精品久久久久爰色欲| 九色porny自拍| www.男人天堂| www.99re7| 正在播放木下凛凛xv99| 亚洲免费一级片| 韩国18福利视频免费观看| 免费电影网站在线观看| 香港日本韩国三级| 毛片av在线| 成入视频在线观看| 欧美系列精品| 精品香蕉视频| 午夜亚洲伦理| 99精品欧美一区二区三区小说 | 国产精品美女久久福利网站| 午夜av电影一区| 精品黑人一区二区三区久久| 97超级碰碰碰久久久| 日韩av一级大片| 色偷偷中文字幕| 91精品国产乱码在线观看| 免费男女羞羞的视频网站中文子暮| 成人观看网站a| 中文字幕在线视频久| 香港欧美日韩三级黄色一级电影网站| 国产剧情一区二区| 一本在线高清不卡dvd| 最新69国产成人精品视频免费| 亚洲字幕一区二区| 国产福利一区视频| 国产一级在线免费观看| 影音先锋中文在线观看| 三级av在线播放| 亚洲2区在线| 美女久久久精品| 一本到不卡精品视频在线观看| 久久九九热免费视频| 欧美在线免费观看视频| 日韩亚洲综合在线| 精品蜜桃一区二区三区| 国产探花在线观看视频| 日本熟女毛茸茸| 性色88av老女人视频| 台湾佬中文娱乐网欧美电影| 国产尤物精品| 亚洲午夜一区二区| 欧美猛交免费看| 国产精品12p| 999精品在线视频| av中文网站| 日本福利在线| 99久久婷婷国产综合精品电影√| 久久夜色精品国产噜噜av| 亚洲国产精品va| 精品欧美国产一区二区三区不卡| 在线播放第一页| 欧美少妇bbw| 青青青草网站免费视频在线观看| 盗摄牛牛av影视一区二区| 国产成人精品一区二| 日韩精品中文字幕一区二区三区| 成人黄色在线观看视频| 欧美一级一区二区| 日韩精品一区二区三区色欲av| 精品一区二区三区四区五区| 日韩在线国产| 国产精品1区在线| 91视频最新入口| 欧美极品中文字幕| 国产精品揄拍100视频| 加勒比精品视频| 午夜一区在线观看| 黄色片免费在线| 国精一区二区| 亚洲三级视频在线观看| 九九九热精品免费视频观看网站| 国产a级黄色大片| 亚洲另类欧美日韩| 午夜丝袜av电影| 免费看成人吃奶视频在线| 久久一夜天堂av一区二区三区| 国产午夜精品全部视频播放| 亚洲小说欧美另类激情| 国产又黄又爽又色| 亚洲人成小说| 亚洲九九视频| 欧美优质美女网站| 极品尤物一区二区三区| 啪啪一区二区三区| 四虎黄色影院| 美女精品一区最新中文字幕一区二区三区 | 宅男宅女性影片资源在线1| 豆国产97在线|亚洲| 色天使综合视频| 高清国产一区二区| 中文字幕不卡在线视频极品| 国产精品久久久久9999爆乳| 精品国产www| 91se在线| 青娱乐精品在线视频| 亚洲国产精品久久91精品| 欧美aaa在线观看| 天干夜夜爽爽日日日日| 国产资源在线观看| 国产亚洲午夜| 日韩av在线不卡| 又大又硬又爽免费视频| 99热这里是精品| 韩国成人二区| 91亚洲午夜精品久久久久久| 国语自产精品视频在线看一大j8 | 性xxxxx| 理论片一区二区在线| 亚洲一区中文在线| 精品蜜桃一区二区三区| 超碰超碰超碰超碰| aaa在线观看| 日韩av电影天堂| 日韩亚洲精品电影| 中文字幕22页| 夜夜操免费视频| 欧洲专线二区三区| 欧美三级三级三级爽爽爽| 天堂av一区二区| 99精品免费观看| 麻豆精品蜜桃| 中文字幕亚洲一区二区va在线| 成人www视频在线观看| 2025国产精品自拍| 久久视频www| 国产一区二区三区在线观看免费视频| 中文字幕免费精品一区| 日本中文字幕观看| h视频免费在线观看| 久久久久蜜桃| 欧美性高清videossexo| 99中文字幕在线观看| 亚洲国产精品suv| 天堂久久午夜av| 中文字幕亚洲欧美在线不卡| 国产精品久久国产精品| 国产午夜性春猛交ⅹxxx| 伊人福利在线| 国产视频在线观看一区二区三区| 国产精品一区二区在线| 国产三级精品三级观看| 性欧美孕妇孕交| 精品一区二区三区不卡 | 亚洲视频 中文字幕| 国产二级片在线| 国产欧美日韩亚洲一区二区三区| 精品亚洲va在线va天堂资源站| 欧美污视频网站| 国产精品jvid在线观看| 欧美gayvideo| 亚洲国产日韩欧美在线图片| 37pao成人国产永久免费视频| jiuse.com91视频| 欧美日韩性在线观看| 亚洲精品美女在线观看| 国偷自产av一区二区三区麻豆| av女片在线| 女主播福利一区| 亚洲精品永久免费精品| 黄色av电影网站| 一级毛片在线| 国产一区二区三区香蕉| 国产欧美va欧美va香蕉在线| 国产午夜无码视频在线观看| 色在线免费观看| 一本久道中文字幕精品亚洲嫩| 国产毛片久久久久久国产毛片| 欧美国产中文| 日韩欧美午夜| 国产亚洲精品美女久久久| 自拍偷拍视频亚洲| 水中色av综合| kk眼镜猥琐国模调教系列一区二区| 成人三级视频在线观看一区二区| 男人天堂视频网| aiss精品大尺度系列| 日韩久久久精品| 国产51自产区| 天堂av在线资源| 97se亚洲国产综合自在线观| 激情小说综合网| 99热这里精品| 一道本一区二区三区| 中文字幕亚洲国产| 久久嫩草捆绑紧缚| 悠悠资源网亚洲青| 欧美日韩午夜精品| 午夜免费福利网站| sese在线视频| 中文字幕中文在线不卡住| 国产黄色激情视频| www视频免费| 蜜桃免费网站一区二区三区| 成人精品视频在线| 国产www视频| 99久久99视频只有精品| 色偷偷88888欧美精品久久久 | av手机天堂| 国产一区二区按摩在线观看| 国产日韩精品一区观看| 综合免费一区二区三区| 1024精品久久久久久久久| 色综合久久悠悠| caoporn国产| 美女视频免费精品| 亚洲乱码国产乱码精品精天堂| 最新中文字幕av| 色黄视频在线观看| 欧美精品粉嫩高潮一区二区| 9.1成人看片免费版| 91九色porn在线资源| 色综合色综合色综合色综合色综合| 国产免费又粗又猛又爽| 日本福利片高清在线观看| 亚洲精品欧美综合四区| 大西瓜av在线| 永久www成人看片| 国产精品成人免费在线| 性高湖久久久久久久久aaaaa| 免费观看v片在线观看| 日本一区二区三级电影在线观看| 国产精品入口芒果| 三上悠亚在线观看| 中文字幕日本乱码精品影院| 免费大片在线观看| 一级毛片国产| 亚洲欧洲日产国产综合网| 国产亚洲天堂网| 青青草在线免费视频| 一本到高清视频免费精品| 日本黄色免费观看| 水蜜桃在线视频| 亚洲毛片在线免费观看| 久久久久久久久久久97| 欧美成人专区| 欧美国产亚洲视频| 国产免费不卡av| 日韩精品一二三四| 狠狠色噜噜狠狠色综合久| 亚洲jizzjizz妇女| 亚洲天堂免费看| 特黄特黄一级片| 中文字幕成在线观看| 国产视频亚洲精品| 亚洲无码精品在线观看| 激情91久久| 久久久久久九九| 免费一级淫片| 樱花影视一区二区| 中日韩精品一区二区三区| 96视频在线观看欧美| 97国产suv精品一区二区62| 8x8x拔插拔插影库永久免费| 99热精品一区二区| 无限资源日本好片| 午夜日韩成人影院| 九九热这里只有精品6| 久久九九热视频| 国产午夜精品美女毛片视频| 在线观看日本www| 国产午夜精品一区在线观看 | 性欧美18一19sex性欧美| 久久精品中文字幕免费mv| 亚洲欧美日韩免费| 26uuu亚洲综合色欧美| av在线免费观看不卡| 成人51免费| 国产成人涩涩涩视频在线观看| 日日夜夜网站| 欧美日韩国产中文字幕| 久久香蕉精品视频| 国产欧美三级| 国产欧美日韩网站|