標題: 功能強大的51單片機STC32G12K128,分享一個用STC單片機制作的示波器 [打印本頁]

作者: jiminhe    時間: 2023-6-14 21:47
標題: 功能強大的51單片機STC32G12K128,分享一個用STC單片機制作的示波器
480x320示波器波形水平400點,垂直250點,網(wǎng)格每5個點顯示一點,每25點一排點。
0~250(0x00~0xfa)為數(shù)據(jù)。
251(0xfb)為幀數(shù)據(jù)頭,后面是400個字節(jié)的Y軸數(shù)據(jù)。
252(0xfc)為點數(shù)據(jù)頭,之后是點X、Y的數(shù)據(jù)。
253(0xfd)為轉(zhuǎn)義符,如果收到這個字符,則之后的一個字節(jié)要加上0x80。
254(0xfe)為命令頭,表示后面是命令。
255(0xff)為數(shù)據(jù)結(jié)束標志。

單片機上傳數(shù)據(jù)協(xié)議:
上傳一幀數(shù)據(jù):FB DAT0 DAT1 ..... DAT399 FF
    FB:幀數(shù)據(jù)
    DAT0 ... DAT399:400個Y軸數(shù)據(jù)(數(shù)值為0~250),字節(jié)序號0~399就是X軸。
    FF:幀數(shù)據(jù)結(jié)束

上傳一個點數(shù)據(jù):FC DAT0 DAT1 DAT2 FF
    FC:點數(shù)據(jù)
    DAT0 DAT1:X軸位置(0~399),DAT0為位置高字節(jié),DAT1為位置低字節(jié)。
    DAT2:Y軸數(shù)值(0~250)。
    FF:點數(shù)據(jù)結(jié)束

上傳一個命令:FE TYPE  DAT0 DAT1 ... DATn FF
    本命令用于上傳一些參數(shù)或操作,數(shù)值部分字節(jié)數(shù)依據(jù)命令不同而不同。
    FE:傳輸命令。
    TYPE:命令類型。
    DAT0 DAT1 ... DATn:數(shù)值。
    FF:命令結(jié)束

上傳時基參數(shù):FE 02 DATA0 DATA1 DATA2 FF
    02:上傳的是時基參數(shù)。
    DAT0 DAT1:時基值,高字節(jié)在前,低字節(jié)在后。
    DAT2:時基單位。0--ns,1--us,2--ms,3--s。
    例:FE 02 01F4 01 FF,01F4十進制為500,01為us,則為500us/DIV。DIV是水平一個大格。

上傳垂直幅度參數(shù):FE 03 DATA0 DATA1 DATA2 FF
    03:上傳的是垂直幅度參數(shù)。
    DAT0 DAT1:垂直幅度值,高字節(jié)在前,低字節(jié)在后。
    DAT2:幅度單位。0--uV,1--mV,2--V。
    例:FE 03 01F4 01 FF,01F4十進制為500,01為mV,則為500mV/DIV。DIV是垂直一個大格。

上傳運行模式:FE 04 DATA0 FF
    04:上傳的是運行模式。
    DAT0:運行模式。0--停止,1--運行。

上傳觸發(fā)模式:FE 05 DATA0 FF
    05:上傳的是觸發(fā)模式。
    DAT0:觸發(fā)模式。0--上升沿,1--下降沿。

上傳觸發(fā)方式:FE 06 DATA0 FF
    06:上傳的是觸發(fā)方式。
    DAT0:觸發(fā)方式。0--自動,1--普通(標準),2--單次。

上傳頻率參數(shù):FE 07 DATA0 DATA1 DATA2 DATA3 FF
    07:上傳的是頻率值。
    DAT0~DAT3:頻率值,高字節(jié)在前,低字節(jié)在后。
    例:FE 07 00002710 FF,00002710十進制為10000,則頻率為10000Hz。

上傳波形左移時間:FE 08 DATA0 DATA1 DATA2 FF
    08:上傳的是波形左移時間。
    DAT0 DAT1:左移時間值,高字節(jié)在前,低字節(jié)在后。
    DAT2:時間單位。0--1ns,1--10ns, 2--100ns, 3--1us,4--10us, 5--100us, 6--1ms,
                    7--10ms, 8--100ms, 9--1s。
    例:FE 08 01F4 03 FF,01F4十進制為500,03為1us,則波形左移了500us。

上傳清屏指令:FE 09 FF
    09:上傳的是清屏指令。PC收到后,清除波形顯示。連續(xù)逐點顯示時,改變時基會用到。


PC下傳鍵代碼:FE 01 DAT0 FF
    01:命令類型為鍵碼。
    DAT0:01--時基+,02--時基-,03--垂直幅度+,04--垂直幅度-,05--運行/停止,
          06--觸發(fā)模式,07--觸發(fā)方式,08--波形左移,09--波形右移,
          0A--波形上移,0B--波形下移


紅外遙控器波形.png (129.98 KB, 下載次數(shù): 62)

捕捉紅外遙控器發(fā)出的波形

捕捉紅外遙控器發(fā)出的波形

方波.png (156.98 KB, 下載次數(shù): 71)

測量方波信號

測量方波信號

正弦波.png (198.73 KB, 下載次數(shù): 66)

測量正統(tǒng)波信號

測量正統(tǒng)波信號

STC32G12K128-虛擬示波器程序代碼.zip

170.42 KB, 下載次數(shù): 22, 下載積分: 黑幣 -5

示波器程序代碼


作者: lzzasd    時間: 2023-6-15 09:05
樓主有沒有詳細介紹啊   例如帶寬多少    采樣率多少   上位機什么的
作者: jiminhe    時間: 2023-6-15 23:49
lzzasd 發(fā)表于 2023-6-15 09:05
樓主有沒有詳細介紹啊   例如帶寬多少    采樣率多少   上位機什么的

示波器參數(shù):
工作電壓: 5.0V。
MCU:      STC32G12K128。
主頻:     35MHz。
ADC:      最高采樣800KHz 12位,本示波器使用最高采樣率500KHz。
模擬帶寬: 100KHz.
顯示屏:   虛擬顯示480x320。
          水平16格,一格25點,一共400點,存儲深度4000點。
          垂直10格,每格25點,一共250點。
時基:     1-2-5步進,50us 100us 200us 500us 1ms 2ms 5ms 10ms 20ms 50ms
                     100ms 200ms 500ms 1s 2s 5s 10s 20s 50s
垂直幅度: 250mV  500mV   1V  2.5V/DIV。
觸發(fā)模式: 上升沿觸發(fā),下降沿觸發(fā)。
觸發(fā)方式: 自動、標準、單次。

可以選擇2個輸入信號:
1:  選擇P1.7輸入, 2.5V REF 通過3.9K+3.9K分壓送P1.7, P1.7串聯(lián)18K電阻接外部輸入電壓(最大+-12.5V), P1.7對地接一個470pF電容. 這是推薦的方式.
                  由于同步信號使用的是IO中斷, 所以輸入信號福度要大于+5V才會同步.
2:  選擇P1.4輸入, P1.0通過SPWM輸出一個400Hz的正弦波, 經(jīng)過兩級RC濾波后送P1.4. RC出廠為3.3K 10nF, 有條件的話電阻改為10K或電容并聯(lián)22nF.
    選擇P1.4輸入時, 顯示的電壓讀數(shù)要縮小為1/10.





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1