您的位置:首页 > 编程语言 > C语言/C++

自己搞的基于单片机的VC++虚拟示波器和频率计功能分析(优缺点一起)(原创)

2012-06-30 18:03 267 查看
本设计软硬件都有自己完成,这是一个待验收答辩的接口实验(因为功能简单俺感觉第一批答辩通过的机会非常渺茫),在没有开始答辩之前将其功能简述如下,希望各位拍砖,给以批评指导建议,扬长避短。

本设计由两大模块组成,一个是上位机模块,采用VC++编写,一个是下位机模块,由稳压电源、单片机,AD0809,分频电路,整形电路构成,

该系统的缺点:

1,目前采用74LS14集成施密特触发器整形电路,测频上限只达到最高才1MHZ的非脉冲信号(正弦波三角波矩形波等)频率测量,而采用555定时器做波形整形,测频范围更窄

2,因为采用51单片机和AD0809,系统只能采集0——5V的电压信号,而且采样率固定不能调整,系统只能采集观察一路通道的信号。

3,不能测量负电压,而且受到AD0809转换速率的限制,测频带宽不到5KHZ。

4,因为采样率不能控制,所以虚拟示波器的横坐标跟时间频率没有关系,测频只能通过分频电路和单片机的定时器来实现。

该系统的特点:

1,测量方波,频率上限可达十几兆,12MHZ晶振的频率可以测量,方波测频范围从1HZ——10几MHZ,达到很高的精度。

2,VC++界面友好美观,垂直、水平分辨率可调节,水平基准线可以上下平移,可以计算最大、最小、平均值电压并显示

3,带软件触发功能,可以实现上升沿,下降沿,单次触发和正常触发,触发线和触发电平可以显示在示波器上,而且通过鼠标滚轮和控件来控制(主要特色1)

4,可以实现波形的整体平移左右随意来回平移而不会丢失移出的波形(算法搞不好会变得很复杂,但采用技巧可以变得很简单(主要特色2)

5,显示在示波器界面上的电压曲线上的每一点的电压可以用鼠标滚轮精确测量(不受垂直水平分辨率调整的影响)并在测量点旁边显示电压值,鼠标滚轮滚动的时候,测量点随着滚轮滚动的方向自动锁定在曲线轨迹上进行左右移动,而且测量点可以用横纵虚线的交点来指示(主要特色3),该功能有点类似于Proteus虚拟示波器的电压测量功能。

6,采用VC++的绘图双缓冲技术,有效提高绘图速率和避免刷新时带来的图形闪烁(主要特色4),采用动态链接库的串口通信函数,避免了MSCOMM串口数据收发需要进行复杂的数据转换带来的不方便。

7,鸡肋功能1:该示波器界面还增加了串口数据接收功能,实时接收任何下位机发送上来的每一个数据,而且可以采用10进制,16进制,文本三中模式显示在文本框中,接收字节也可以统计

8,鸡肋功能2:点击串口设置可以弹出非模态对话框,可以友好的设置波特率和奇偶检验等通信参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐