基于单片机的虚拟示波器
- 格式:pdf
- 大小:923.36 KB
- 文档页数:59
题目:基于STC单片机虚拟简易示波器的设计目录1.实验目的及意义 (1)2. 试验内容及方案论证 (1)3.系统工作原理 (2)4.硬件电路设计 (2)5.系统软件设计 (3)5.1下位机设计 (3)5.2 上位机设计 (6)6.系统调试 (8)6.1硬件调试 (8)6.2 软件调试 (8)6.3 软硬联调 (9)7.实验结果与误差分析 (9)8.实验小结及体会 ........................................................................ 错误!未定义书签。
参考文献: (11)1.实验目的及意义(1)学会利用AT89C5X系列单片机控制AD7862实现模拟的电压的采集;(2)学会利用串口与PC机进行通信将测量数据发送给PC机,在PC机上利用Visual C++ 6.0编写上位机界面,并显示数据与波形;(3)通过应用Altium Designer 6软件掌握电路板的原理图绘制及pcb板的生成;(4)学会利用Keil uVision4软件编写并调试单片机的下位机程序,利用Keil uVision4与wave6000软件结合,对硬件电路采集来的数据进行分析。
2. 试验内容及方案论证在实际应用中,经常会遇到一些突发信号,需要对其进行高速采集,这种情况下采用高速的A/D自然成为首选。
AD7862是AD公司推出的一个高速,低功耗,双12位的A/D转换,单+5V供电,功率为60mW。
它包含两个4us的延时的ADC,两个锁存器,一个内部的+2.5V参考电压和一个高速并行输出端口。
有四个模拟输入通道,分为两组,由A0选择。
每一组通道有两个输入(VA1 & VA2 or VB1 & VB2),它们能同时的被采样和转化,保存相对的信号信息。
它可以接受+10v的输入电压范围(AD7862-10),+2.5(AD7862-3)和0-2.5v(AD7862-2)。
51单片机波形发生器(本程序适用)其中独立按键1、2、3、4按下时会产生四个不同波形(矩形、三角波、梯形波、正弦波)主函数:Main.c#include <reg52.h>#include "i2c.h"#define AddWr 0x90 //写数据地址#define AddRd 0x91 //读数据地址/*unsigned char code tab[]={0,25,50,75,100,125,150,175,200,225,250 //表格数值越多,波形越平滑};*/unsigned char code tab1[]={0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250};unsigned char code juchi[64]={0,4,8,12,16,20,24,28,32,36,40,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,12 1,125,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,190,194,198,202,206,210,215,219,223,227,231,23 5,239,243,247,251,255};unsigned char code sin[64]={135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,254,253,251,247,2 43,237,230,222,213,204,193,182,170,158,146,133,121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,1 02,114,128};unsigned char code sanjiao[64]={0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64, 56,48,40,32,24,16,8,0};unsigned char code tixing[64]={0,13,26,39,52,65,78,91,104,117,130,143,156,169,182,195,208,221,234,247,247,247,247,247,247, 247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,242,229,216,203,190,177,164,151,138,125,112,99,86,73,60,47,34,2 1,8};unsigned char code juxing[64]={255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,25 5,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};extern bit ack;bit WriteDAC(unsigned char dat,unsigned char num);/*------------------------------------------------主程序------------------------------------------------*/main(){unsigned char i;while (1) //主循环{// for(i=0;i<26;i++)// WriteDAC(tab1[i],1);while(P1==0xff){for(i=0;i<64;i++)WriteDAC(juxing[i]*6/10,1);if(P1!=0xff)break;}while(P1==0xfe){for(i=0;i<64;i++)WriteDAC(tixing[i]*6/10,1);if(P1!=0xfe)break;}while(P1==0xfd){for(i=0;i<64;i++)WriteDAC(sanjiao[i]*6/10,1);if(P1!=0xfd)break;}while(P1==0xfb){for(i=0;i<64;i++)WriteDAC(sin[i]*6/10,1);if(P1!=0xfb)break;}while(P1==0xf7){for(i=0;i<64;i++)WriteDAC(juchi[i]*6/10,1);if(P1!=0xf7)break;}}}/*------------------------------------------------写入DA转换数值输入参数:dat 表示需要转换的DA数值,范围是0-255 ------------------------------------------------*/bit WriteDAC(unsigned char dat,unsigned char num) { unsigned char i;Start_I2c(); //启动总线SendByte(AddWr); //发送器件地址if(ack==0)return(0);SendByte(0x40); //发送器件子地址if(ack==0)return(0);for(i=0;i<num;i++){SendByte(dat); //发送数据if(ack==0)return(0);}Stop_I2c();}IIC协议:IIC.C#include "i2c.h"#define _Nop() _nop_() //定义空指令bit ack; //应答标志位sbit SDA=P2^1;sbit SCL=P2^0;/*------------------------------------------------启动总线------------------------------------------------*/void Start_I2c(){SDA=1; //发送起始条件的数据信号_Nop();SCL=1;_Nop(); //起始条件建立时间大于4.7us,延时_Nop();_Nop();_Nop();_Nop();SDA=0; //发送起始信号_Nop(); //起始条件锁定时间大于4μ_Nop();_Nop();_Nop();_Nop();SCL=0; //钳住I2C总线,准备发送或接收数据_Nop();_Nop();}/*------------------------------------------------结束总线------------------------------------------------*/void Stop_I2c(){SDA=0; //发送结束条件的数据信号_Nop(); //发送结束条件的时钟信号SCL=1; //结束条件建立时间大于4μ_Nop();_Nop();_Nop();_Nop();_Nop();SDA=1; //发送I2C总线结束信号_Nop();_Nop();_Nop();}/*----------------------------------------------------------------字节数据传送函数函数原型: void SendByte(unsigned char c);功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对此状态位进行操作.(不应答或非应答都使ack=0 假)发送数据正常,ack=1; ack=0表示被控器无应答或损坏。
题目5 基于单片机的简易示波器班级:自动化131 :姜小华蔡兴鹏一、电路设计原理本次课程设计设计的示波器由控制模块、人机界面接口、信号输入通道、信号显示模块组成。
控制器模块应该具有以下一些主要功能:在满足触发条件时能启动对被测信号的频率范围确定相应的采样速率;在对存储的信号进行显示时,可以选择一个适宜的速率将存储的信号数据读出并恢复模拟量;为了使A/D在适宜的模拟输入信号幅度下进行转换,应能根据垂直灵敏度的要求选择信号调理电路的增益。
人机界面接口模块可通过键盘对不同信号通道的选择,与波形位置的调整。
信号输入通道模块;信号〔正弦信号、方波信号〕的产生,信号的放大、衰减电路,A/D转换电路。
信号显示模块组成;LCD显示出波形。
二、介绍各芯片参数1、数模转换ADC0808ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0808是ADC0809的简化版本,功能根本相同。
一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。
各引脚功能如下:1~5和26~28〔IN0~IN7〕:8路模拟量输入端。
8、14、15和17~21:8位数字量输出端。
22〔ALE〕:地址锁存允许信号,输入,高电平有效。
6〔START〕:A/D转换启动脉冲输入端,输入一个正脉冲〔至少100ns宽〕使其启动〔脉冲上升沿使0809复位,下降沿启动A/D转换〕。
7〔EOC〕:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平〔转换期间一直为低电平〕。
9〔OE〕:数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能翻开输出三态门,输出数字量。
10〔CLK〕:时钟脉冲输入端。
基于51单片机示波器实物买家秀51单片机示波器是一种基于51单片机技术的示波器。
它主要由51单片机、显示屏、信号探头等组成,具有显示波形、测量信号频率和幅度等功能。
下面我将从示波器的外观、特点和应用方面进行介绍,给大家展示一下这款示波器的魅力。
首先,我们来看看51单片机示波器的外观。
它通常采用手持式设计,外壳采用塑料材料制成,重量轻,便于携带。
在外壳的顶部,有设置了显示屏,可以直观地显示波形。
在设备的一侧,有一个控制面板,上面有各种功能按钮和旋钮,便于用户对示波器进行控制和设置。
此外,示波器的前端还有一个信号探头接口,用户可以连接信号探头进行信号的测量。
其次,我们来看看51单片机示波器的特点。
首先,它具有高性能的51单片机,可以实现较高的采样率和信号处理能力,能够准确地捕获和显示信号波形。
其次,示波器采用TFT显示屏,具有较高的分辨率和色彩饱和度,可以清晰地显示波形,方便用户观察和分析。
再次,示波器支持多种触发方式和时间基准调整,用户可以根据需要进行设置,方便进行波形触发和时间测量。
此外,示波器的信号探头采用了专业的设计,具有良好的阻抗匹配和信噪比,可以保证测量结果的准确性和稳定性。
最后,让我们来看看51单片机示波器的应用。
首先,它可以应用于电子教育实验,如电路实验课程、模拟电路实验等,帮助学生更直观地观察和分析信号波形,加深对电子原理的理解。
其次,示波器可以应用于电子维修和调试领域,例如对电路板进行信号测量和故障排查,帮助维修人员快速定位和解决问题。
此外,示波器还可以应用于科研领域,帮助科研人员对信号进行采集和分析,探索新的科学现象和技术方法。
综上所述,51单片机示波器作为一种基于51单片机技术的示波器,具有外观精美、性能优良、应用广泛等特点,深受用户的喜爱。
它不仅可以满足电子教育、电子维修和科研等领域的需求,还可以帮助用户更好地理解和应用电子技术。
相信随着科技的不断进步,51单片机示波器会在未来发展得更加出色。
摘要示波器是设计制造和维修电子设备必不可少的一种硬件设施,在多个领域都有广泛的应用。
近年来微型集成电路和计算机信息都有着稳固的发展和提升,也就使得示波器也有了一定技术层次上的提高,逐渐开始被应用到了很多领域。
本次的设计方案主要是制作一个简易的数字示波器,主要研究的方向是硬件设施的选用以及有效构成,配合的软件程序的编写这两大部分。
硬件设施主要选用的是A/D转换设备,运行时间短,设备准确程度高,选用的是单片机at89c52和At89c51,有效的提高设备的运行速率,在同等状态的工作时间下,能够高质量高速度的完成作业。
数据最终的呈现效果选用液晶设备,能够有效地展现呈现效果,并且简单易识别,数据频率的显示设备也非常便捷。
有效的实现了数据的采集和读取,提高准确程度。
AbstractOscilloscope is an indispensable hardware facility for the design, manufacture and maintenance of electronic equipment, which is widely used in many fields. In recent years, micro-integrated circuits and computer information have developed and improved steadily, which makes the oscilloscope have also improved at a certain technical level, and gradually began to be applied to many fields.The design of this project is mainly to make a simple digital oscilloscope, the main research direction is the choice of hardware facilities and effective composition, with the compilation of software program these two parts. Hardware facilities mainly choose A/D conversion equipment, which has short running time and high accuracy. The micro-integrated circuits connected with AT89c52 and AT89c51 are selected to effectively improve the operation speed of the equipment. Under the same working time, it can complete the operation with high quality and high speed. The final display effect of data is LCD device, which can effectively show the presentation effect, and is easy to identify, and the display device of data frequency is also very convenient. Effective realization of data acquisition and reading, improve accuracy.Key Words: SCM ; Real-time sampling; Waveform; Frequency关键词:单片机;实时采样;波形;频率目录前言 (6)1.1选题的背景意义和研究现状 (6)1.1.1选题的背景和意义 (6)1.1.2国内外研究现状 (6)1.2 本设计所要实现的目标 (6)1.3 设计内容 (7)1.4 本章小结 (7)第二章单片机简易数字示波器的系统设计 (8)2.1简易数字示波器的基本原理 (8)2.1.1 简易数字示波器的组成 (8)2.2简易数字示波器的运作方式 (8)2.2.1简易数字示波器的功能 (8)2.2.2简易数字示波器驱动方式 (8)2.3简易数字示波器的特点 (9)2.4本章小结 (9)第三章单片机简易数字示波器硬件设计与实现 (7)3.1 频率测量及显示电路的硬件设计 (7)3.1.1 测频电路总体构成 (7)3.1.2 信号调理电路设计 (7)3.1.3 数码管显示模块 (9)3.1.4 数码管显示驱动模块 (9)3.2 幅度测量及显示模块的硬件设计 (10)3.2.1 显示电路总体结构 (15)3.2.2 单片机外围电路设计 (16)3.2.3 信号波形采集模块 (17)3.2.4 显示模块 (17)3.2.5 电源设计 (18)3.3 本章小结 (10)第四章系统软件设计 (39)4.1 测频系统软件设计 (39)4.2 显示系统软件设计 (40)4.3 信号采集系统软件设计 (41)4.4 本章小结 (41)第五章调试及仿真 (42)结论 (43)致谢 (44)参考文献 (45)附录 (46)1 前言1.1选题的背景意义和研究现状1.1.1选题的背景和意义世界上第一台示波器是阴极射线管示波器,他诞生于1897年,至今还被许多德国人称为布朗管。
基于单片机的简易示波器设计一、系统结构和工作原理1.1 系统结构该系统设计方案是以AVR单片机为核心,再加上前端信号调理电路、键盘控制、LCD 显示构成的简易示波器,其系统结构框图如图l所示。
1.2 工作原理系统的主控芯片是AVR系列单片机ATmega16,单片机内部自带一个10 bits精度的逐次逼近型模数转换器,内建采样/保持电路。
ADC的时钟是可编程的,触发源选择为定时器/计数器0溢出;ATmega16的定时器的时钟源也是可编程的,这样就可以通过控制定时器/计数器0溢出中断频率来控制ADC的采样频率。
二、硬件设计2.1 信号调理电路信号调理电路要完成的功能是:程控放大,叠加直流分量。
程控放大的作用是:当输入信号的幅度很小的时候就需要对输入信号进行放大,使得被测信号可以在LCD上尽可能清楚的显示出来。
叠加直流分量的作用是:ATmega16自带的A/D是单电源的,没办法输入负压而待测信号又往往有负压。
这时候就需要一个可以把负压抬高到0电平以上的电路,如图2。
R1、R2分别由一个模拟开关CD4051来连接不同的电阻实现程控放大功能;可调电阻R9用来设置信号调理电路加入的直流分量的大小;放大后的信号和直流分量最后由U3模拟加法器叠加后输出。
三、软件设计系统软件设计主要分为主程序模块、触发模块、显示模块和A/D转换采样及频率控制模块。
图2 信号调理电路 3.1 主程序模块系统在一次采样未完成之前,只查询键盘。
按下按键进行相应操作,如无键按下则继续查询键盘,直到采样完成为止。
采样完成后触发数据,只从数据里取出符合显示要求的数据并将波形显示在LCD 上,进入下一次采样,如此循环。
图3为系统主程序工作流程。
图3 简易示波器系统程序流程图3.2 触发模块采用硬件触发功能会增大系统硬件电路的复杂度,因此采用软件实现方式。
一个周期的正弦波同一电压值对应两个不同的波形位置(除去最大值与最小值)。
先找一个比触发电平小的电压,在此基础上再找与触发电平相同或更大的电压就可以判断出大于或等于触发电平的Y NYN开 始系统初始化开机动画键盘扫描及功能采样完毕?数字触发清波形显示区数据运算及显 示波形循环幅度等于 最大值?程控放大器放大倍数下降一级数据就是上升沿的触发点。
基于STM32虚拟示波器制作(上位机协议+下位机源程序+电路图)以“低成本和高性能”为设计思想,借助虚拟仪器的概念和高速的数字信号处理算法将传统的函数发生器、示波器、数据记录仪、频率计、谱分析仪以及滤波器设计和仿真等功能高度集成、统一平台方便使用。
软件环境支持声卡、USB模块和虚拟仿真,三种模式。
声卡模式,可以借助电脑的声卡来完成对音频范围内信号的分析和处理;USB模块,可以完成对带宽允许内的信号的分析和处理;其中演示模式采用软件模拟来实现所有的功能,便于教学和理论的演示。
公开软件通信协议,可以按照协议将自己的硬件加入我们的软件环境,使用所有的分析功能。
函数发生器支持产生“正弦波”、“三角波”、“矩形波”、“上锯齿波”、“下锯齿波”、“白噪声”和“合成波形”,并提供峰值、频率、输出相位差的调整功能。
波形文件输出,可以支持“正弦波”、“三角波”、“矩形波”、“上锯齿波”、“下锯齿波”、“白噪声”和“合成波形”,提供峰值、频率、输出相位差的调整功能,支持以wav、txt、hex和mif文件形式的输出。
示波器/谱分析仪可以工作在“声卡”、“USB模块”、“仿真”和“串口捕获”四种模式。
支持任意多画面的同时显示,便于波形的多样分析;支持输入波形硬件和软件触发;支持输入波形的插值和等效采样;支持输入波形的“相加”、“相减”和“相乘”合成;支持对输入波形加“矩形窗”、“三角窗”、“海明窗”、“汉宁窗”和“布莱克曼窗”;支持对输入波形的滤波处理;支持对输入波形的“李萨茹图形”、“幅频”、“相频”、“对数幅频”、“自功率谱”、“对数自功率谱”、“自相关”和“互相关”的分析。
数据记录仪数据记录仪可以从声卡或者USB模块连续的记录采集的数据,存储成wav格式的文件;同时还支持将wav的文件直接导入;支持全局数据的浏览。
滤波器设计支持设计IIR和FIR滤波器,并且可以将设计的滤波器用于采集数据的滤波处理和仿真模式的理论演示;其中IIR支持“巴特沃斯”、“切比雪夫I”、“切比雪夫II”、“椭圆”和“贝塞尔”类型的滤波器设计;FIR支持“矩形窗”、“三角窗”、“汉宁窗”、“海明窗”、“布莱克曼窗”和“凯塞—贝塞尔窗”;支持将设计好的图像保存;将设计的H(z)系数保存成txt文件,用于其它的设计系统中;将设计的参数保存成fdd格式,便于以后的打开以及用于波形处理和仿真。
微机原理与接口实验综合实验基于LCD的简易示波器实现实验人:***学号:****院系:信息学院微电子学系目录实验目的 (1)实验思路 (1)实验原理 (3)实验设计 (7)电原理图 (7)流程图 (8)各模块流程图 (9)实验仿真结果 (12)实验遇到的问题及改进 (17)改写后的C语言代码 (19)实验结果及展示 (38)实验总结 (42)【实验目的】利用本学期学习的单片机及其接口知识,使用实验板上的外部设备自行设计一个实验。
【实验思路】个人计划利用LCD液晶显示屏,制作一个示波器,所用的设备主要有51单片机,单片机片外存储器,LCD显示屏,AD芯片TLC549。
预期实现功能为在LCD 显示屏右侧显示自己的姓名或者示波器三个字,在屏幕左边的方框内显示信号源输入的波形。
同时仿照我们实际使用的示波器设计波形的上/下平移,幅值压缩/拉伸,以及波形的展宽/压缩,并且能够测量输入波形的幅度,绝对误差精度在0.1V以下。
对于这个实验的难点,我个人认为主要在一下几个方面:1.LCD的使用;2.对于获取到的ADC数据的存储与处理;3.将离散的ADC采样的数据进行连接,构成平滑的曲线。
4.对输入波形幅度测量与显示关于LCD的使用,将在后面的实验原理中进一步介绍,这里主要就后两个难点进行讨论:根据LCD屏的大小为128*64,设计搭建一个90*60的方框作为波形显示窗口,考虑到在LCD显示时,每个显示Byte为8*1的一列(每128个组成一页),所以简化设计,将第一页的最下面一行,以及第八页的最上面一行作为显示方框的上下边界,从而中间的六页为波形显示区域,占用的点数为90*48。
考虑到需要采集90个样本,故设计使用片外存储器,依次存储90个数据。
对于数据的处理,因为每个数据样本在显示时对应不同的时间点,所以为单独的一列,主要难度是将定位到对应列的确切的点上,所以需要自行设计一个函数能够把确切的点显示到对应的列上。
基于单片机和LabVIEW的虚拟示波器设计
华厚强
【期刊名称】《电子制作》
【年(卷),期】2022(30)5
【摘要】现代虚拟仪器技术充分融合了传统的实物仪器与计算机技术,是进行电子测量及计算机检测与控制的先进技术,与计算机之间通信方便,应用简单灵活。
基于STC12C5A60S2单片机及LabVIEW软件设计了一种虚拟示波器系统,主要由加法电路模块、模数(A/D)转换模块、串口通讯模块及上位机显示模块等四个部分组成。
选用低功耗单片机作为控制芯片,将输入波形进行模数转换,使用RS-232标准与PC 机进行串口通信。
在PC机端系统以LabVIEW 2018为软件开发平台对波形进行
分析和再现。
系统实验与调试结果表明:该虚拟示波器可以实现对多种波形显示,输
出波形稳定、不失真,系统工作性能可靠,具有一定的参考价值和广泛的应用前景。
【总页数】4页(P7-10)
【作者】华厚强
【作者单位】中国民用航空飞行学院航空电子电气学院
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于声卡和LabVIEW的虚拟示波器的设计
2.基于LabVIEW的虚拟波形发生器和示波器的设计
3.基于LabVIEW的虚拟示波器的仿真设计
4.基于LABVIEW的虚拟示波器设计
5.基于LabVIEW的虚拟示波器的设计
因版权原因,仅展示原文概要,查看原文内容请购买。