大家好,小式来为大家解答以上的问题。数字示波器设计全过程,数字示波器设计这个很多人还不知道,现在让我们一起来看看吧!
1、首先根据输出波形的频率和幅值进行编码,存储在单片机的ROM里,然后以一定的时间间隔依次将这些数字量送往D/A进行转换输出,这样,只要循环送数,在D/A的双极性输出端就可以得到波形波形。
2、采用单片机片内的振荡器、上电复位和外部硬件看门狗电路。
3、至于波形编码,网上资料很多,下面是硬件电路设计的描述(这个是网上找的):输出两路幅值相等相位相差90°的正弦波形作为物体偏转测量的基准波形;另一路输出测角波形,该波形相对基准波形的相位反映角偏差的方向、幅值反映角偏差量。
4、专用波形发生器就是模拟角位移输出波形的装置,用来进行后续解调电路以及功放电路的检测。
5、它以单片机为核心,经过D/A转换和放大电路的处理,最后输出反应弹体姿态的基准波形和测角波形。
6、软件方面的编程:#include "reg52.h" #define uchar unsigned char#define uint unsigned intunsigned char code table[]=; //共阴极0~9对应16进制数//=============正弦波数据==================== uchar code sin_tab[256]= { 0x80, 0x83, 0x86, 0x89, 0x8c, 0x8f, 0x92, 0x95, 0x98, 0x9c, 0x9f, 0xa2, 0xa5, 0xa8, 0xab, 0xae, 0xb0, 0xb3, 0xb6, 0xb9, 0xbc, 0xbf, 0xc1, 0xc4, 0xc7, 0xc9, 0xcc, 0xce, 0xd1, 0xd3, 0xd5, 0xd8, 0xda, 0xdc, 0xde, 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xed, 0xef, 0xf0, 0xf2, 0xf3, 0xf4, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfc, 0xfd, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfd, 0xfc, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6, 0xf5, 0xf3, 0xf2, 0xf0, 0xef, 0xed, 0xec, 0xea, 0xe8, 0xe6, 0xe4, 0xe3, 0xe1, 0xde, 0xdc, 0xda, 0xd8, 0xd6, 0xd3, 0xd1, 0xce, 0xcc, 0xc9, 0xc7, 0xc4, 0xc1, 0xbf, 0xbc, 0xb9, 0xb6, 0xb4, 0xb1, 0xae, 0xab, 0xa8, 0xa5, 0xa2, 0x9f, 0x9c, 0x99, 0x96, 0x92, 0x8f, 0x8c, 0x89, 0x86, 0x83, 0x80, 0x7d, 0x79, 0x76, 0x73, 0x70, 0x6d, 0x6a, 0x67, 0x64, 0x61, 0x5e, 0x5b, 0x58, 0x55, 0x52, 0x4f, 0x4c, 0x49, 0x46, 0x43, 0x41, 0x3e, 0x3b, 0x39, 0x36, 0x33, 0x31, 0x2e, 0x2c, 0x2a, 0x27, 0x25, 0x23, 0x21, 0x1f, 0x1d, 0x1b, 0x19, 0x17, 0x15, 0x14, 0x12, 0x10, 0xf, 0xd, 0xc, 0xb , 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x3, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0 , 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x2, 0x3, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8 , 0x9, 0xa, 0xc, 0xd, 0xe, 0x10, 0x12, 0x13, 0x15, 0x17, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x23, 0x25, 0x27, 0x29, 0x2c, 0x2e, 0x30, 0x33, 0x35, 0x38, 0x3b, 0x3d, 0x40, 0x43, 0x46, 0x48, 0x4b, 0x4e, 0x51, 0x54, 0x57, 0x5a, 0x5d, 0x60, 0x63, 0x66, 0x69, 0x6c, 0x6f, 0x73, 0x76, 0x79, 0x7c, }; //三角波信号数据表uchar code thr_tab[32]={ 0x00,0x0f,0x1f,0x2f,0x3f,0x4f,0x5f,0x6f,0x7f,0x8f,0x9f,0xaf,0xbf,0xcf,0xdf,0xef, 0xff,0xef,0xdf,0xcf,0xbf,0xaf,0x9f,0x8f,0x7f,0x6f,0x5f,0x4f,0x3f,0x2f,0x1f,0x0f};//-------------------------------------------------------------------------------------------------------//锯齿波信号数据表uchar code jc_tab[33]={ 0x00,0x08,0x0f,0x18,0x1f,0x28,0x2f,0x38,0x3f,0x48,0x4f,0x58,0x5f,0x68,0x6f,0x78, 0x7f,0x88,0x8f,0x98,0x9f,0xa8,0xaf,0xb8,0xbf,0xc8,0xcf,0xd8,0xdf,0xe8,0xef,0xf8,0xff};//数码管位选控制口定义sbit LED4=P2^7;sbit LED3=P2^6;sbit LED2=P2^5;sbit LED1=P2^4;//按键口申明sbit S1=P2^3;sbit S2=P2^2;sbit S3=P2^1;unsigned char tabArry[4]; //保存显示数据char flag=1; //按键标志,当flag=1时表示没有按下,当flag=0时表示有按键按下int keycount=0; //按键计数unsigned char waveth,wavetl; //用于对定时器付值unsigned int frecount=100; //频率计数unsigned int mbjs; //码表计数,共采32个点//毫秒延时程序void delayms(int ms){ uchar i; while(ms--) { for(i=250;i>0;i--); }}//键盘扫描void keyscan(){ if(flag==1) { if(S3==0) //用S3切换波形 { delayms(2); //延时去抖 if(S3==0) //按键计数,便于切换波形 { flag=0; keycount++; if(keycount>=4) keycount=0; //四种波形计数4次 } } if(S2==0) //频率加1 处理 { delayms(2); if(S2==0) { flag=0; switch(keycount) { case 0: //正弦波频率加1 frecount++; if(frecount>1000) frecount=0; break; case 1: //三角波频率加1 frecount++; if(frecount>1000) frecount=0; break; case 2: //锯齿波频率加1 frecount++; if(frecount>1000) frecount=0; break; case 3: //方波频率加1 frecount++; if(frecount>1000) frecount=0; break; } waveth=(65536-57603/frecount)/256; //重新计算初值 wavetl=(65536-57603/frecount)%256; } } if(S1==0) //频率减1 处理 { delayms(2); if(S1==0) { flag=0; switch(keycount) { case 0: //正弦波频率减1 frecount--; if(frecount<0) frecount=999; break; case 1: //三角波频率减1 frecount--; if(frecount<0) frecount=999; break; case 2: //锯齿波频率减1 frecount--; if(frecount<0) frecount=999; break; case 3: //方波频率减1 frecount--; if(frecount<0) frecount=999; break; } waveth=(65536-57603/frecount)/256; //重新计算初值 wavetl=(65536-57603/frecount)%256; } } } if(S1!=0 && S2!=0 && S3!=0) flag=1; //判断按键是否弹起 }//数据分位void change(char wavetype,unsigned int frequency){ tabArry[0]=wavetype; //显示字母,表示波形类型 tabArry[1]=frequency%1000/100; //百位 tabArry[2]=frequency%100/10; //十位 tabArry[3]=frequency%10; //个位}//显示函数void display(){ switch(keycount) { case 0: //显示A和正弦波的频率 change(0x0a,frecount); break; case 1: //显示b和三角波的频率 change(0x0b,frecount); break; case 2: //显示C和锯齿波的频率 change(0x0c,frecount); break; case 3: //显示d和方波的频率 change(0x0d,frecount); break; } P0 = table[tabArry[0]]; //送最高位段码 LED1=0; //打开对应的位选控制口 delayms(2); //显示延时 LED1=1; //关闭对应的位选控制后显示下一位 P0 = table[tabArry[1]]; LED2=0; delayms(2); LED2=1; P0 = table[tabArry[2]]; LED3=0; delayms(2); LED3=1; P0 = table[tabArry[3]]; LED4=0; delayms(2); LED4=1; }void Timerinit(){ TMOD=0x01; //定时器0方式1 //定时器初值计算公式:X=65536-(T/T0)=65536-(f0/f/32) TH0=waveth=(65536-57603/frecount)/256; //定时器初值 22.1184MHz TL0=wavetl=(65536-57603/frecount)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //定时器0开始计数}//主函数 void main(){ Timerinit(); //定时器初始化 while(1) { keyscan(); //扫描按键 display(); //显示程序 } }void Timer0() interrupt 1{ TH0=waveth; //重新赋初值 TL0=wavetl; if (keycount==0) //输出正弦波 { P1 = sin_tab[mbjs]; mbjs+=8; //256点,每隔8点输出一个数据 if(mbjs>=256) { mbjs=0; } } else if(keycount==1) //输出三角波 { P1 = thr_tab[mbjs]; mbjs++; if(mbjs>=32) { mbjs=0; } } else if(keycount==2) //输出锯齿波 { P1 = jc_tab[mbjs]; mbjs++; if(mbjs>=32) { mbjs=0; } } else if(keycount==3) //输出方波 { mbjs++; if(mbjs>=32) { mbjs=0; } else if(mbjs<16) P1=0xff; else P1=0x00; }} 摘 要函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路。
7、函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
8、通过对函数波形发生器的原理以及构成分析,可设计一个能变换出三角波、正弦波、方波的函数波形发生器。
9、本课题采用由集成运算放大器与晶体管差分放大器共同组成的方波—三角波—正弦波函数发生器的设计方法,先通过比较器产生方波,再通过积分器产生三角波,最后通过差分放大器形成正弦波。
10、波形变换的原理是利用差分放大器传输特性曲线的非线性。
11、经过仿真得出了方波、三角波、正弦波、方波——三角波转换及三角波——正弦波转换的波形图。
12、关键字:函数信号发生器、集成运算放大器、晶体管差分放设计目的、意义1 设计目的(1)掌握方波—三角波——正弦波函数发生器的原理及设计方法。
13、(2)掌握迟滞型比较器的特性参数的计算。
14、(3)了解单片集成函数发生器8038的工作原理及应用。
15、(4)能够使用电路仿真软件进行电路调试。
16、2 设计意义函数发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。
17、在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。
18、信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。
19、它可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。
20、设计内容1 课程设计的内容与要求(包括原始数据、技术参数、条件、设计要求等):1.1课程设计的内容(1)该发生器能自动产生正弦波、三角波、方波。
21、(2)函数发生器以集成运放和晶体管为核心进行设计(3)指标:输出波形:正弦波、三角波、方波 频率范围:1Hz~10Hz,10Hz~100Hz输出电压:方波VP-P≤24V,三角波VP-P=8V,正弦波VP-P>1V;(4)对单片集成函数发生器8038应用接线进行设计。
22、1.2课程设计的要求(1)提出具体方案(2)给出所设计电路的原理图。
23、(3)进行电路仿真,PCB设计。
24、2 函数波形发生器原理2.1函数波形发生器原理框图 图2.1 函数发生器组成框图2.2函数波形发生器的总方案函数发生器一般是指能自动产生正弦波、三角波、方波及锯齿波、阶梯波等电压波形的电路或仪器。
25、根据用途不同,有产生三种或多种波形的函数发生器,使用的器件可以是分立器件 (如低频信号函数发生器S101全部采用晶体管),也可以采用集成电路(如单片函数发生器模块8038)。
26、为进一步掌握电路的基本理论及实验调试技术,本课题采用由集成运算放大器与晶体管差分放大器共同组成的方波—三角波—正弦波函数发生器的设计方法。
27、产生正弦波、方波、三角波的方案有多种,如首先产生正弦波,然后通过整形电路将正弦波变换成方波,再由积分电路将方波变成三角波;也可以首先产生三角波—方波,再将三角波变成正弦波或将方波变成正弦波等等。
28、本课题采用先产生方波—三角波,再将三角波变换成正弦波的电路设计方法[3]。
29、由比较器和积分器组成方波—三角波产生电路,比较器输出的方波经积分器得到三角波,三角波到正弦波的变换电路主要由差分放大器来完成。
30、差分放大器具有工作点稳定,输入阻抗高,抗干扰能力较强等优点。
31、特别是作为直流放大器时,可以有效地抑制零点漂移,因此可将频率很低的三角波变换成正弦波。
32、波形变换的原理是利用差分放大器传输特性曲线的非线性。
33、2.3函数波形发生器各组成部分的工作原理2.3.1方波发生电路的工作原理此电路由反相输入的滞回比较器和RC电路组成。
34、RC回路既作为延迟环节,又作为反馈网络,通过RC充、放电实现输出状态的自动转换。
35、设某一时刻输出电压Uo=+Uz,则同相输入端电位Up=+Ut。
36、Uo通过R3对电容C正向充电,如图2.3中实线箭头所示。
37、反相输入端电位n随时间t的增长而逐渐增高,当t趋于无穷时,Un趋于+Uz;但是,一旦Un=+Ut,再稍增大,Uo从+Uz跃变为-Uz,与此同时Up从+Ut跃变为-Ut。
38、随后,Uo又通过R3对电容C反向充电,如图中虚线箭头所示。
39、Un随时间逐渐增长而减低,当t趋于无穷大时,Un趋于-Uz;但是,一旦Un=-Ut,再减小,Uo就从-Uz跃变为+Uz,Up从-Ut跃变为+Ut,电容又开始正相充电。
40、上述过程周而复始,电路产生了自激振荡[4]。
41、2.3.2方波——三角波转换电路的工作原理 图2.2方波—三角波产生电路工作原理如下:若a点断开,整个电路呈开环状态。
42、运算发大器A1与RR2及R3、RP1组成电压比较器,C1为加速电容,可加速比较器的翻转。
43、运放的反相端接基准电压,即U-=0,同相输入端接输入电压Uia,R1称为平衡电阻。
44、比较器的输出Uo1的高电平等于正电源电压+Vcc,低电平等于负电源电压-Vee(|+Vcc|=|-Vee|), 当比较器的U+=U-=0时,比较器翻转,输出Uo1从高电平跳到低电平-Vee,或者从低电平Vee跳到高电平Vcc。
45、设Uo1=+ Vcc,则 (2.1)将上式整理,得比较器翻转的下门限单位Uia_为 (2.2)若Uo1=-Vee,则比较器翻转的上门限电位Uia+为 (2.3)比较器的门限宽度: (2.4)由以上公式可得比较器的电压传输特性,如图2.3所示。
46、a点断开后,运放A2与R4、RP2、C2及R5组成反相积分器,其输入信号为方波Uo1,则积分器的输出Uo2为: (2.5) 时, (2.6) 时, (2.7)可见积分器的输入为方波时,输出是一个上升速度与下降速度相等的三角波,其波形关系如图2.4所示。
47、a点闭合,即比较器与积分器形成闭环电路,则自动产生方波-三角波。
48、三角波的幅度为: (2.8)方波-三角波的频率f为: (2.9)由以上两式(2.8)及(2.9)可以得到以下结论:(1) 电位器RP2在调整方波-三角波的输出频率时,不会影响输出波形的幅度。
49、若要求输出频率的范围较宽,可用C2改变频率的范围,PR2实现频率微调。
50、(2) 方波的输出幅度应等于电源电压+Vcc。
51、三角波的输出幅度应不超过电源电压+Vcc。
52、电位器RP1可实现幅度微调,但会影响方波-三角波的频率[3]。
53、图2.3比较器的电压传输特性图2.4方波与三角波波形关系2.3.3三角波---正弦波转换电路的工作原理如图2.5三角波——正弦波的变换电路主要由差分放大电路来完成。
54、差分放大器具有工作点稳定,输入阻抗高,抗干扰能力较强等优点。
55、特别是作为直流放大器,可以有效的抑制零点漂移,因此可将频率很低的三角波变换成正弦波。
56、波形变换的原理是利用差分放大器传输特性曲线的非线性[1]。
57、 图2.5 三角波——正弦波的变换电路分析表明,传输特性曲线的表达式为: (2.10) (2.11)式中 ——差分放大器的恒定电流; ——温度的电压当量,当室温为25oc时, ≈26mV。
58、如果Uid为三角波,设表达式为 (2.12)式中 Um——三角波的幅度; T——三角波的周期。
59、 为使输出波形更接近正弦波,由图2.6可见:(1)传输特性曲线越对称,线性区越窄越好。
60、(2)三角波的幅度Um应正好使晶体管接近饱和区或截止区。
61、(3)图2.7为实现三角波——正弦波变换的电路。
62、其中RP1调节三角波的幅度,RP2调整电路的对称性,其并联电阻RE2用来减小差分放大器的线性区。
63、电容C1,C2,C3为隔直电容,C4为滤波电容,以滤除谐波分量,改善输出波形[2]。
64、 图2.6三角波—正弦波变换原理 图2.7三角波—正弦波变换电路2.4电路的参数选择及计算2.4.1方波-三角波中电容C1变化(关键性变化之一)实物连线中,我们一开始很长时间出不来波形,后来将C2从10uf(理论时可出来波形)换成0.1uf时,顺利得出波形。
65、实际上,分析一下便知当C2=10uf时,频率很低,不容易在实际电路中实现。
66、2.4.2三角波—正弦波部分的计算比较器A1与积分器A2的元件计算如下:由式(2.8)得 即 取 ,则 ,取 ,RP1为47KΩ的点位器。
67、取平衡电阻 由式(2.9) 即 当 时,取 ,则 ,取 ,为100KΩ电位器。
68、当 时 ,取 以实现频率波段的转换,R4及RP2的取值不变。
69、取平衡电阻 。
70、三角波—正弦波变换电路的参数选择原则是:隔直电容C3、C4、C5要取得较大,因为输出频率很低,取 ,滤波电容 视输出的波形而定,若含高次斜波成分较多, 可取得较小, 一般为几十皮法至0.1微法。
71、RE2=100欧与RP4=100欧姆相并联,以减小差分放大器的线性区。
72、差分放大器的静态工作点可通过观测传输特性曲线,调整RP4及电阻R*确定。
73、2.5 总电路图先通过比较器产生方波,再通过积分器产生三角波,最后通过差分放大器形成正弦波。
74、如图2.5.1所示, 图2.5.1三角波-方波-正弦波函数发生器实验电路2.6 8038单片集成函数发生器2.6.1 8038的工作原理8038由恒流源II2,电压比较器CC2和触发器①等组成。
75、其内部原理电路框图和外部引脚排列分别如图2.8和图2.9所示。
76、 图2.8 8038原理框图 图2.9 8038管脚图(顶视图)1. 正弦波线性调节;2. 正弦波输出;3. 三角波输出;4. 恒流源调节;5. 恒流源调节;6. 正电源;7. 调频偏置电压;8. 调频控制输入端;9. 方波输出(集电极开路输出); 10. 外接电容;11. 负电源或接地;12.正弦波线性调节;13、14. 空脚在图2.8中,电压比较器CC2的门限电压分别为2VR/3和VR/3( 其中VR=VCC+VEE),电流源I1和I2的大小可通过外接电阻调节,且I2必须大于I1。
77、当触发器的Q端输出为低电平时,它控制开关S使电流源I2断开。
78、而电流源I1则向外接电容C充电,使电容两端电压vC随时间线性上升,当vC上升到vC=2VR/3 时,比较器C1输出发生跳变,使触发器输出Q端由低电平变为高电平,控制开关S使电流源I2接通。
79、由于I2>I1 ,因此电容C放电,vC随时间线性下降。
80、当vC下降到vC≤VR/3 时,比较器C2输出发生跳变,使触发器输出端Q又由高电平变为低电平,I2再次断开,I1再次向C充电,vC又随时间线性上升。
81、如此周而复始,产生振荡。
82、若I2=2I1 ,vC上升时间与下降时间相等,就产生三角波输出到脚3。
83、而触发器输出的方波,经缓冲器输出到脚9。
84、三角波经正弦波变换器变成正弦波后由脚2输出。
85、当I1 86、因此,8038能输出方波、三角波、正弦波和锯齿波等四种不同的波形。 87、图2.8中的触发器,当R端为高电平、S端为低电平时,Q端输出低电平;反之,则Q端为高电平。 88、2.6.2 8038构成函数波形发生器由图2.9可见,管脚8为调频电压控制输入端,管脚7输出调频偏置电压,其值(指管脚6与7之间的电压)是(VCC+VEE/5) ,它可作为管脚8的输入电压。 89、此外,该器件的方波输出端为集电极开路形式,一般需在正电源与9脚之间外接一电阻,其值常选用10k左右,如图2.10所示。 90、当电位器Rp1动端在中间位置,并且图中管脚8与7短接时,管脚9、3和2的输出分别为方波、三角波和正弦波。 91、电路的振荡频率f约为0.3/[C(R1+RP1/2)] 。 92、调节RPRP2可使正弦波的失真达到较理想的程度。 93、 在图2.10中,当RP1动端在中间位置,断开管脚8与7之间的连线,若在+VCC与-VEE之间接一电位器,使其动端与8脚相连,改变正电源+VCC与管脚8之间的控制电压(即调频电压),则振荡频率随之变化,因此该电路是一个频率可调的函数发生器。 94、如果控制电压按一定规律变化,则可构成扫频式函数发生器。 95、 图2.10 8038接成波形产生器阿3电路仿真3.1电路仿真3.1.1方波——三角波发生电路的仿真 图3.1 方波图3.2 三角波图3.3 方波——三角波3.1.2三角波---正弦波转换电路的仿真图3.4 三角波——正弦波参考文献[1]王 远.模拟电子技术(第二版)[M].北京:机械工业出版社,2000[2]谢自美.电子线路设计实验测试(第二版)[M].武昌:华中科技大学出版社,2000[3]路 勇.电子电路实验及仿真[M].清华大学出版社,2003[4]胡宴如.模拟电子技术[M].北京:高等教育出版社,2000[5]周跃庆.模拟电子技术基础教程[M].天津大学出版社, 2001[6]曾建唐.电工电子实践教程[M].北京:机械工业出版社,2002。 本文到此分享完毕,希望对大家有所帮助。