自己搞的基于单片机的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:点击串口设置可以弹出非模态对话框,可以友好的设置波特率和奇偶检验等通信参数
本设计由两大模块组成,一个是上位机模块,采用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:点击串口设置可以弹出非模态对话框,可以友好的设置波特率和奇偶检验等通信参数
相关文章推荐
- 一起谈.NET技术,使用VS2010代码分析功能增强ASP.NET应用程序安全
- [转]基于功能更丰富的基础类构建您自己的 ASP.NET 页面
- 基于单片机的带有日历功能的数字时钟
- VB的ShowInTaskbar功能分析以及用VC的实现
- (原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 关联规则分析算法)
- 基于visual c++之windows核心编程代码分析(64)现有的exe文件中添加自己的代码
- 基于visual c++之windows核心编程代码分析(64)现有的exe文件中添加自己的代码
- 基于功能更丰富的基础类构建您自己的 ASP.NET 页面
- 基于GIS的空间分析功能分析芝加哥小熊队和白袜队的球迷范围
- 基于功能更丰富的基础类构建您自己的 ASP.NET 页面
- 基于功能更丰富的基础类构建您自己的 ASP.NET 页面
- JS基于FileSaver.js插件实现文件保存功能示例[原创]_javascript技巧_脚本之家
- VC环境下对函数调用的汇编分析【原创】
- 必应词典桌面版 --- 基于大学生用户群体的软件评测与分析(与有道词典对比版 1功能篇)
- 基于三星I9250演示自己弄的Miracast功能-手机对手机
- (原创)自己写的一个仿IMAGE功能的MEMO
- VB的ShowInTaskbar功能分析以及用VC的实现
- Vc++实用功能(性能分析,内存泄漏)
- 求基于单片机做个16*64点阵中文和图像系统,实现左移、右移、闪烁、上翻、下翻等功能
- Django基于Pycharm开发之四[关于静态文件的使用,配置以及源码分析](原创)