基于VC++和AT89C52单片机的数字存储示波器设计
目录
摘 要 I
Abstract II
1.绪论 1
1.1课题研究的目的、意义: 1
1.2现状分析 1
2.课题研究的主要内容及实施方案 2
2.1课题研究的主要内容: 2
2.2实施方案: 2
2.3工作条件: 2
3.问题的分析与几种主要实施方案的讨论 3
3.1问题的分析 3
3.2几种方案的讨论 3
4.本数字存储示波器系统概述 7
5.硬件系统 8
6.软件简介 10
6.1串行数据接收 10
6.2数字滤波: 10
6.3图像处理 10
6.4软件界面效果如下 11
7. 测试结果 14
7.1存储输入方式 14
7.2实时采集方式 16
7.3关于测试结果的讨论 20
8. 总结 21
参考文献 22
2.课题研究的主要内容及实施方案
2.1课题研究的主要内容:
本课题研究的主要内容是如何建立一套可存储虚拟示波器系统,其具体组成为:
① 硬件系统:
硬件系统由计算机硬件系统和外部硬件系统组成。这里主要研究外部硬件系统,其主要目标是实现数据采集、AD转换、数据缓冲及压缩、数据存储、向计算机系统传输。
② 软件系统:
软件系统的主要任务是通过计算机硬件系统读取由外部硬件设备传输来的数据,进行解压、变换、排除干扰信号、将波形显示在显示器上,并进行波形的存储、打印与分析。
在实现以上基本功能的前提下,还可以进行进一步的扩展国,如硬件系统性能的担高、成本的降低、体积重量的减小、接口的扩展;软件系统功能的完善、用户界面的改进、数据的格式化、网络化,最终目标是产业化。
6.软件简介
本软件主要完成数字示波器的数据后期处理工作;
开发环境:Visual C++ 6.0
适用平台:Windows 10
可执行文件大小:2.26MB
附加文件:mfc42.dll, MSCOMM32.OCX, msvcrt.dll
主要功能如下:
6.1串行数据接收
采用VC附带ActiveX控件Microsoft Communications Control, version 6.0实现串口数据的接收;
如果内存允许,采集点数不限;因此,本软件也满足过程控制中大容量数据采集及图形处理的需要;
6.2数字滤波:
采用多项式光滑不等距插值,本方法是制定n个不等距节点xi(i=0,1,-------,n-1)上的函数值yi=f(xi)及精度要求,利用阿克玛(Akima)方法,计算指定子区间上的三次插值多项式与指定插值点上的函数值;
函数的调用格式为:
GetValueAkima(int n, double x[], double y[], double t, double s[], int k /= -1/)
6.3图像处理
(1)波形图:
完成采集波形的绘制,支持各种动态操作,包括:图像的整体放大,整体缩小,还原初始最佳大小,移动,X向放大、缩小,Y向放大、缩小;
支持各种编辑操作,包括:图像数据的存储(存储成 .sun文件 ),波形图、频谱图的打印,波形图、频谱图的拷贝(可在Word等编辑软件中粘贴);
支持波形图相及示波屏幕的视觉效果调整,包括:波形图、频谱图曲线颜色的任意调整条,线条宽度的调整,本文转载自http://www.biyezuopin.vip/onews.asp?id=14755示波屏幕全屏化,背景模式的调整;
支持波形图处理数据量的动态调整:以克服图像失真,及图形处理速度慢等。
//
//
// Filename: 113-06203-001.c
// Version: 0.01
// Data: 2008.08.31
//
// Author: Liu, Zemin
// Company: zmLAB
//
//-----------------------------------------------------------------------------
//
// Target: ATmega64
// Tool chain: WinAvr (GCC-AVR)
//
// Function Descriptions: Project template based on 06200-00A PCB
//-----------------------------------------------------------------------------
// Required files:
//
//-----------------------------------------------------------------------------
//
// Notes:
// 1. Fuse programming configuration:
// Extended Byte: 0b------11 (Non mega603/103 compatible mode)
// Bit 1 - 1 = M64 mode, 0 = M103 mode
// Bit 0 - 1 = WDT normal, 0 = WDT always ON
// High Byte: 0b11-00001 (CLKOP = 0 for crystal, EEPROM perserved)
// Bit 7 - 1 = OCD disabled
// Bit 6 - 1 = JTAG disabled
// Bit 5 - 1 = SPI program disabled
// bit 4 - Clock options. See datasheet
// bit 3 - 1 = EEPROM not preserved, 0 = EEPROM preserved
// bit [2:1] - Boot size configration
// Size Boot loader Start (word address)
// 11 = 512 words 0x7E00
// 10 = 1024 words 0x7C00
// 01 = 2048 words 0x7800
// 00 = 4096 words 0x7000
// bit 0 - 1 = Application Reset, 0 = Boot Loader Reset
// Low Byte: 0b10101110 (Use external crystal osc [20MHz])
// Bit 7 - BODLEVEL, 1 = 2.7V, 0 = 4.0V
// Bit 6 - 1 = BOD disabled, 0 = BOD enabled
// Bit [5:4] - Start-up Time (see datasheet)
// bit [3:0] - Select clock source (See datasheet)
//
//
//-----------------------------------------------------------------------------
// Revision History:
// V0.01 2008.08.31
// 1. First creadted based on 113-06201-040
//
///#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>#include "Common.h"
#include "Board.h"
#include "Screen.h"int main (void)
{// -- Initialize portsPort_Init();// -- Initialize misc registersMisc_Init();// Timer_Init();
// Comp_Init();
// ADC_Init();// -- Initialize Uart 0Uart0_Init();
// u0putc('0');// -- Initialize Uart 1
// Uart1_Init();
// u1putc('1');uputs((U8 *)"COM0 OK", Uart0);// sei();// Initialize LCDLCD_Init();// Clear display bufferClearBuf();// PutChar5x7(10, 10, 0x41);// Write a string to display bufferLcdPuts(10, 10, "Hello, world!");LcdPuts(10, 45, "WWW.JYETECH.COM");// Output display buffer to LCDDisplay();// Haltwhile(1) {}return (0);}
基于VC++和AT89C52单片机的数字存储示波器设计相关推荐
- 基于单片机的数字存储示波器设计
文末下载完整资料 1.1.1课题研究的目的.意义: (1)课题研究的目的: ① 通过课题的研究进一步巩固所学的知识,同时学习课程以外的知识,培养综合应用知识的能力. ② 锻炼动手能力与实际工作 ...
- 基于单片机的数字时钟设计
设计简介: 本设计是基于单片机的数字时钟设计,主要实现以下功能: 实现体力显示,24小时的时钟计时: 实现星期显示: 实现温度实时采集显示: 实现通过按键修改时间信息: 实现通过LCD12864实时显 ...
- 大倾角DJC50DJC波状挡边输送机 轮式移动机器人结构设计 单片机定时闹钟设计 基于单片机的数字钟设计 圆皮带输送机 悬吊式升降机 倍速链条输送机…设计
汽车输送线改装的链条机 DTII(A)B1000车式拉紧皮带机 翻斗上煤机示意图 180m2烧结机总装配图(左式)2清理后 MSB20dsz-60加湿机(cad2004) 机箱电源生产线方案图 DTⅡ ...
- 【毕业设计】18-基于单片机的数字直流电源设计(源代码工程+仿真工程+答辩论文+答辩PPT)
typora-root-url: ./ [毕业设计]18-基于单片机的数字直流电源设计(源代码工程+仿真工程+答辩论文+答辩PPT) 文章目录 typora-root-url: ./ [毕业设计]18 ...
- 基于AT89C52单片机的温湿度检测设计
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87704704 源码获取 主要内容: ...
- 基于单片机的数字温度计设计
文末下载完整资料 基于单片机的数字温度计 摘要:本文介绍一种基于AT89C2051单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围 ...
- 基于 AT89C51 单片机的数字时钟设计
目录 1.设计目的.作用 2.设计要求 3.设计的具体实现 3.1 设计原理 3.2 硬件系统设计 3.2.1 AT89C51 单片机原理 3.2.2 晶振电路设计 3.2.3 复位电路设计 3.2. ...
- 基于单片机的数字温度计设计-零妖
1,开发前规划 基于单片机的数字温度计-开发前规划 关键字 温度计:51单片机:共阳数码管:MOS开关:便携式:课程设计:毕业设计 要求 一个随身携带的温度计. 步骤 项目 立创编号 型号 备注 1 ...
- 基于AT89C52单片机的简易电子琴设计与仿真
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87853299?spm=1001.20 ...
最新文章
- java异常怎么输出到页面_怎么把抛出的异常信息输出到SWING 界面上
- http 的一生: 一、特点与 URL解析
- MyBatis之注解开发
- android xml 指纹动画,如何检查设备是否具有指纹功能并在Android中使用
- 必看2019年学员信息系统项目管理师长篇备考经验
- android 删除路径文件内容,Android 删除已知路径的文件或文件夹
- linux centos7 root密码重置
- lnp和mysql分开安装_毕业设计之LNP+DISCUZ +分离的数据库操作
- LeetCode 929. 独特的电子邮件地址
- php 数组转xml 函数,PHP数组和XML相互转换的函数
- [JavaWeb基础] 015.Struts2 表单验证框架
- java CMS gc解析
- 关于updatepanel回传之后JS失效问题
- 多元线性回归模型_Eviews系列3|经典线性回归模型之相关分析及多元线性回归分析...
- paip. http 405 的解决..
- Python:给信号添加白噪声
- matlab如何绘制已知公式的曲线图,Excel怎么绘制函数曲线图像?
- _itemmod_extract_enchant
- 递归解决卖桃子问题java
- wordpress入门主题_设置和运行WordPress网站的终极入门指南