找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2035|回复: 2
打印 上一主题 下一主题
收起左侧

功能强大的51单片机STC32G12K128,分享一个用STC单片机制作的示波器

[复制链接]
跳转到指定楼层
楼主
480x320示波器波形水平400点,垂直250点,网格每5个点显示一点,每25点一排点。
0~250(0x00~0xfa)为数据。
251(0xfb)为帧数据头,后面是400个字节的Y轴数据。
252(0xfc)为点数据头,之后是点X、Y的数据。
253(0xfd)为转义符,如果收到这个字符,则之后的一个字节要加上0x80。
254(0xfe)为命令头,表示后面是命令。
255(0xff)为数据结束标志。

单片机上传数据协议:
上传一帧数据:FB DAT0 DAT1 ..... DAT399 FF
    FB:帧数据
    DAT0 ... DAT399:400个Y轴数据(数值为0~250),字节序号0~399就是X轴。
    FF:帧数据结束

上传一个点数据:FC DAT0 DAT1 DAT2 FF
    FC:点数据
    DAT0 DAT1:X轴位置(0~399),DAT0为位置高字节,DAT1为位置低字节。
    DAT2:Y轴数值(0~250)。
    FF:点数据结束

上传一个命令:FE TYPE  DAT0 DAT1 ... DATn FF
    本命令用于上传一些参数或操作,数值部分字节数依据命令不同而不同。
    FE:传输命令。
    TYPE:命令类型。
    DAT0 DAT1 ... DATn:数值。
    FF:命令结束

上传时基参数:FE 02 DATA0 DATA1 DATA2 FF
    02:上传的是时基参数。
    DAT0 DAT1:时基值,高字节在前,低字节在后。
    DAT2:时基单位。0--ns,1--us,2--ms,3--s。
    例:FE 02 01F4 01 FF,01F4十进制为500,01为us,则为500us/DIV。DIV是水平一个大格。

上传垂直幅度参数:FE 03 DATA0 DATA1 DATA2 FF
    03:上传的是垂直幅度参数。
    DAT0 DAT1:垂直幅度值,高字节在前,低字节在后。
    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--运行。

上传触发模式:FE 05 DATA0 FF
    05:上传的是触发模式。
    DAT0:触发模式。0--上升沿,1--下降沿。

上传触发方式:FE 06 DATA0 FF
    06:上传的是触发方式。
    DAT0:触发方式。0--自动,1--普通(标准),2--单次。

上传频率参数:FE 07 DATA0 DATA1 DATA2 DATA3 FF
    07:上传的是频率值。
    DAT0~DAT3:频率值,高字节在前,低字节在后。
    例:FE 07 00002710 FF,00002710十进制为10000,则频率为10000Hz。

上传波形左移时间:FE 08 DATA0 DATA1 DATA2 FF
    08:上传的是波形左移时间。
    DAT0 DAT1:左移时间值,高字节在前,低字节在后。
    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收到后,清除波形显示。连续逐点显示时,改变时基会用到。


PC下传键代码:FE 01 DAT0 FF
    01:命令类型为键码。
    DAT0:01--时基+,02--时基-,03--垂直幅度+,04--垂直幅度-,05--运行/停止,
          06--触发模式,07--触发方式,08--波形左移,09--波形右移,
          0A--波形上移,0B--波形下移


红外遥控器波形.png (129.98 KB, 下载次数: 38)

捕捉红外遥控器发出的波形

捕捉红外遥控器发出的波形

方波.png (156.98 KB, 下载次数: 41)

测量方波信号

测量方波信号

正弦波.png (198.73 KB, 下载次数: 38)

测量正统波信号

测量正统波信号

STC32G12K128-虚拟示波器程序代码.zip

170.42 KB, 下载次数: 21, 下载积分: 黑币 -5

示波器程序代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:514317 发表于 2023-6-15 09:05 | 只看该作者
楼主有没有详细介绍啊   例如带宽多少    采样率多少   上位机什么的
回复

使用道具 举报

板凳
ID:961242 发表于 2023-6-15 23:49 | 只看该作者
lzzasd 发表于 2023-6-15 09:05
楼主有没有详细介绍啊   例如带宽多少    采样率多少   上位机什么的

示波器参数:
工作电压: 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。
触发模式: 上升沿触发,下降沿触发。
触发方式: 自动、标准、单次。

可以选择2个输入信号:
1:  选择P1.7输入, 2.5V REF 通过3.9K+3.9K分压送P1.7, P1.7串联18K电阻接外部输入电压(最大+-12.5V), P1.7对地接一个470pF电容. 这是推荐的方式.
                  由于同步信号使用的是IO中断, 所以输入信号福度要大于+5V才会同步.
2:  选择P1.4输入, P1.0通过SPWM输出一个400Hz的正弦波, 经过两级RC滤波后送P1.4. RC出厂为3.3K 10nF, 有条件的话电阻改为10K或电容并联22nF.
    选择P1.4输入时, 显示的电压读数要缩小为1/10.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表