频率可调的方波信号发生器设计及电路
- 格式:doc
- 大小:232.00 KB
- 文档页数:7
555定时器构成的占空比可调的方波发生器----实验报告电子技术课程设计说明书题目:系部:专业:班级:学生姓名: 学号:指导教师:年月日目录1 设计内容: (1)1.1 给出集成电路芯片的主要技术参数,熟悉555 IC芯片各引脚的功能,并逐个说明. (1)1.2 简要说明电路的工作原理及本电路能达到的实用功能.. (1)1.3 完成下列参数要求的电路设计。
(其中,实验室提供1000Hz的频率信号).. 12.1 设计电路原理图; (1)2.2 在实验室提供的设备上安装电路并模拟运行; (1)2.3 撰写实验报告。
(1)3 实验目的: (1)3.1 熟悉555型集成时基电路结构、工作原理及其特点。
(1)3.2 掌握555型集成时基电路的基本应用。
(1)3.3 掌握由555集成时基电路组成的占空比可调的方波信号发生器。
(1)4 实验器材: (1)5 实验原理: (2)5.1 555电路的工作原理 (2)5.1.1 555芯片引脚介绍 (2)5.1.2 上述CB555定时器的工作原理可列表说明: (4)5.1.3 占空比可调的方波信号发生器 (4)6 实验内容及实验数据 (6)6.1 设计内容及任务 (6)6.2 实验数据 (6)6.2.1 100HZ仿真电路图 (6)100HZ 仿真电路结果 (7)6.2.2 1000HZ仿真电路图 (9)1000HZ 仿真电路结果 (10)7 结论: (11)8 参考文献 (11)1 设计内容:1.1 给出集成电路芯片的主要技术参数,熟悉555 IC芯片各引脚的功能,并逐个说明.1.2 简要说明电路的工作原理及本电路能达到的实用功能..1.3 完成下列参数要求的电路设计。
(其中,实验室提供1000Hz的频率信号)A.当方波输出频率f=100HZ时,占空比D=50%、D<50%、D>50%时的输出波形;B.当方波输出频率f=1KHZ时,占空比D=50%、D<50%、D>50%时的输出波形;2 任务如下:2.1 设计电路原理图;2.2 在实验室提供的设备上安装电路并模拟运行;2.3 撰写实验报告。
方波信号发生器电路原理
方波信号发生器电路是一种电子设备,用于产生方波信号。
方波信号是一种特
殊的周期信号,其波形为矩形,具有快速的上升和下降时间。
在电子学和通信领域,方波信号广泛应用于数字电路、计时、调制解调、信号传输等方面。
方波信号是由一系列脉冲信号组成的,脉冲宽度相等,但电平有两种:高电平
和低电平。
方波信号的频率由脉冲频率决定,而占空比则是描述高电平与总周期之比。
一个简单的方波信号发生器电路可以通过集成电路555定时器来实现。
555定
时器是一种非常常用且功能强大的集成电路,可以用于产生各种类型的周期信号。
在方波信号发生器电路中,一般采用555定时器的单稳态多谐振荡模式。
通过
外部电路将555定时器配置为单稳态多谐振荡模式,可以实现方波信号的产生。
这个电路的基本原理是利用555定时器的两个比较器和一个RS触发器,通过精确的
电路设计和电路元件的选择,将周期和占空比调整到所需的数值。
电路中使用的电阻、电容和电源电压等参数将直接影响方波信号的频率和占空比。
通过合理选择这些参数,可以调整方波信号的频率和占空比来满足不同的应用需求。
总结起来,方波信号发生器电路的原理是利用555定时器以及精确的电路设计
和元件选择,实现产生方波信号的功能。
由于其简单可靠且功能强大,方波信号发生器电路在电子学和通信领域得到了广泛应用。
怎么设计出一个输出10M~100MHZ幅值1000伏的方波信号发生器可以分为两部分:(1)设计出一个输出10M~100MHZ方波信号;(2)将方波信号幅值增大至1000V。
设计出一个输出10M~100MHZ方波信号频率为10M~100MHZ的方波信号,那么它的周期为T=1/f,则周期在10ns~100ns之间。
可以看出频率是非常高的,属于高频的范畴,高频电路设计还是相当有难度的,很多器件在高频电路当中无法使用。
比如555定时器,这是输出方波最常用的芯片,设计信号发生器时,很多人会想起555定时器。
但是对于输出10M~100MHZ方波信号,555定时器是根本实现不了的,555定时器的最大输出频率大约为360KHZ左右,大于该频率输出波形会不规则或者出现故障。
10M~100MHZ的超高频方波信号虽然在设计上有点难,还是可以实现的,比如可以使用FPGA实现,FPGA的处理速度比DSP高多了,FPGA的时钟最高也就800M左右,使用FPGA进行分频,可以实现输出输出10M~100MHZ的方波信号(幅值3.3V)。
将方波信号幅值增大至1000V若是低频的方波信号,想要将其电压幅值增大至1000V,还是比较容易实现的,可是使用耐压大于1000V的晶体管或场效应管实现,但是想要实现将10M~100MHZ的超高频方波信号的幅值扩大至1000V,根本没有满足这样条件的三极管或场效应管,有高频的晶体管最高频率可达1GHZ以上,但是其耐压值一般几十伏,根本达不到1000V。
频率为10M~100MHZ的方波,其周期为10ns~100ns之间,在这个时间内要实现峰值为1000V的一个周期的方波,也就是说这个时间内要实现从0V升到1000V,然后从1000V降到0V的过程,可能吗?个人认为是完全不可能的。
100hz方波产生电路
要产生100Hz的方波信号,可以使用以下电路:
1. 可编程计数器/分频器:使用可编程计数器或分频器芯片(如CD4017或CD4040)可以将输入频率分频为所需的频率。
例如,如果使用一个10kHz的时钟信号,将其分频100倍就可以得到100Hz的方波信号。
2. 比较器和反馈电路:使用一个比较器(如LM311)和反馈电路可以将一个三角波信号转换为方波信号。
生成一个三角波信号(例如使用集成的波形发生器芯片,如XR2206),然后将其与一个参考电压进行比较,在比较器的输出上产生方波信号。
3. 555定时器:使用555定时器芯片可以产生频率可调的方波信号。
通过选择适当的电阻和电容值,可以调节555定时器的输出频率为100Hz。
这些是一些常见的电路,用于产生100Hz的方波信号。
具体选择哪种电路取决于应用需求、可用元件和设计要求。
在实际应用中,还需要注意电路的稳定性、精度和信号质量等因素。
目录一、概述 (2)二、技术性能指标 (2)2.1设计内容及技术要求 (2)2.2设计目的 (3)2.3设计要求 (3)三、方案的选择 (3)3.1方案一 (4)3.2方案二 (5)3.3最终方案 (6)四、单元电路设计 (6)4.1矩形波产生电路 (6)4.2三角波产生电路 (9)4.3正弦波产生电路 (11)五、总电路图 (13)六、波形仿真结果 (13)6.1矩形波仿真结果 (13)6.2三角波仿真结果 (14)6.3正弦波仿真结果 (15)6.4三种波形同时仿真结果 (15)七、PCB版制作与调试 (16)结论 (17)总结与体会 (18)致谢 (18)附录1 元件清单 (19)附录2 参考文献 (20)函数信号发生器设计报告一、概述信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以用三角函数方程式来表示。
能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。
函数信号发生器在电路实验和设备检测中具有十分广泛的用途。
例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。
在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。
二、技术性能指标2.1设计内容及技术要求设计并制作一个信号发生器,具体要求如下:1、能够输出正弦波、方波、三角波;2、输出信号频率范围为1——10Hz,10——100Hz;3、输出信号幅值:方波Up-p=24V,三角波Up-p=0——20V,正弦波U>1V;4、波形特征:方波Tr<10s(100Hz,最大输出时),三角波失真系数THD<2%,正弦波失真系数THD<5%;5、电源:±13V直流电源供电;按照以上技术完成要求设计出电路,绘制电路图,对设计的电路用Multisim进行必要的仿真,用PROTEL软件进行制板、焊接,然后对制作的电路完成调试,撰写设计报告测,通过答辩。
NE555定时器组成的方波信号发生器电路
一般使用NE555来制作非稳态多谐震荡器,由于充放电的时间不一致,所以并不能产生周期比相同的方波输出,但以下的电路加入了几个零件,达到可以输出对称方波的能力。
如下图所示,与一般多谐震荡器不同的是,在其充电回路中加进了一个正偏压的晶体管Q1。
Q1在R2的偏压作用下,可充分导通;而在C1放电时,会完全截止。
由于Q1关关电晶体和锗二极管在导通状态下,其正向导通电阻很小(小于几百欧姆),对充、放电时间常数影响不大,故其充、放电时间震荡周期及占空比(周期比)为:
T1=0.639(R1+RP1)‧C1
T2=0.639(R1+RP1)‧C1
T=0.639(2R1+2RP1)‧C1
这个电路还有另外一个优点是输出电压的幅值,周期比及频率受负载变化的影响极小。
10Hz-10kHz连续可调矩形波发生器的设计及仿真分析10Hz-10kHz连续可调矩形波发生器的设计及仿真分析摘要:本文概述了波形发生器的发展状况及其研究意义;比较和研究了信号发生电路选择方案、单片机选择方案、显示电路选择方案和按键电路选择方案;分析和设计了系统的框图、软件流程和硬件电路;比较和解析了通过对软件和硬件的仿真调试所得出的仿真数据;归纳了设计的误差并得出论文的结论。
关键词:矩形波发生器、连续可调、单片机、仿真Design and simulation analysis of10Hz-10kHz continuously adjustable squarewave generatorAbstract: This article outlines the development and significance of waveform generator, compares and researches the selective schemes of signal generating circuit, single chip microcomputer, display circuit and key circuit, analyzes and designs the whole diagram of the system, the software processes and hardware circuit, compares and resolves the simulation data obtained by the simulation software and hardware debugging, summarizes the error of design and comes to the conclusion of the paper.Keywords: square wave generator, continuously adjustability,single chip microcomputer, simulation引言波形发生器是指产生所需参数的电测试信号的仪器。
用单片机产生频率可调的方波信号。
输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。
要求用“增加”、“减小”2个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2秒后,给定频率以10次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。
用输出方波控制一个发光二极管的显示,用示波器观察方波波形。
开机默认输出频率为5Hz。
3.5.1模块1:系统设计(1)分析任务要求,写出系统整体设计思路任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O管脚的状态取反。
由于频率范围最高为200Hz,即每个周期为5ms(占空比1:1,即高电平2.5ms,低电平2.5 ms),因此,定时器可以工作在8位自动装载的工作模式。
涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。
问题的难点在按键连续按下超过2S的计时问题,如何实现计时功能。
系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。
中断程序负责方波的产生、按键连续按下超过2S后频率值以10Hz/s递增(递减)。
(2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图采用MCS51系列单片机At89S51作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。
数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244作为数码管的驱动。
在74HC244的7段码输出线上串联100欧姆电阻起限流作用。
独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。
发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。
图3-14 方波信号发生器的硬件电路原理图(3)分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图软件任务要求包括按键扫描、定时器的控制、按键连续按下的判断和计时、数码管的动态显示。
程序设计思路:根据定时器溢出的时间,将频率值换算为定时器溢出的次数(T1_over_num)。
使用变量(T1_cnt)暂存定时器T1的溢出次数,当达到规定的次数(T1_over_num)时,将输出管脚的状态取反达到方波的产生。
主程序采用查询的方式实现按键的扫描和数码管的显示,中断服务程序实现方波的产生和连续按键的计时功能。
单片机内部资源分配:定时器T1用来实现方波的产生和连续按键的计时功能,内部变量的定义:hz_shu:设定的频率数;T1_over_num: 根据设定频率计算后的定时器溢出的次数值;T1_cnt:定时器溢出次数;sec_over_num: 计时1s的定时器溢出的次数;second:连续按键的计时;state_val:连续按下的标志0=按键已经弹起;1=按键一直按下;led_seg_code:0-9数字的数码管7段码。
主程序和中断服务程序如图3-15,3-16所示。
图3-15 主程序的流程图(4)设计系统软件调试方案、硬件调试方案及软硬件联合调试方案软件调试方案:伟福软件中,在“文件\新建文件”中,新建C语言源程序文件,编写相应的程序。
在“文件\新建项目”的菜单中,新建项目并将C语言源程序文件包括在项目文件中。
在“项目\编译”菜单中将C源文件编译,检查语法错误及逻辑错误。
在编译成功后,产生以“*.hex”和“*.bin”后缀的目标文件。
硬件调试方案:在设计平台中,将单片机的P1.0-P1.1分别与2个独立式键盘通过插线连接起来,将P3.0与脉冲输出连接起来。
在伟福中将程序文件编译成目标文件后,将下载线安装在实验平台上,运行“MCU下载程序”,选择相应的flash 数据文件,点击“编程”按钮,将程序文件下载到单片机的Flash中。
然后,上电重新启动单片机,检查所编写的程序是否达到题目的要求,是否全面完整地完成试题的内容。
3.5.2 模块2:程序设计//晶振:12M T1-计时250微秒溢出中断一次;P1.0 P1.1 为增加、减少键 P3.0输出方波/*变量的定义:hz_shu: 设定的频率数T1_over_num: 根据设定频率计算后的,定时器溢的出次数值T1_cnt: 定时器计数溢出数sec_over_num: 计算1s内的计数second: 连续按键的计时state_val: 连续按下的标志0=按键已经弹起;1=按键一直按下去led_seg_code:数码管7段码*/#include "reg51.h"#include "math.h"sbit pulse_out=P3^0;//-------------------unsigned char data hz_shu,second,key_val,key_val_old;unsigned int data sec_over_num;unsigned int data T1_cnt,T1_over_num;unsigned char data state_val;char code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //led_seg_code[0-9]代表0-9的7段码//------------------------void delay(unsigned int i)//延时{ while(--i);}//------------------------unsigned char scan_key(){ unsigned char i,k;i=P1;if (i==0xff){ k=255; } //无键按下else //有键按下{ delay(10); //延时去抖动if(i!=P1){k=255;}else{ switch (i){ case 0xfe: k=0; break; //case 0xfd: k=1; break;}}}return k;}//----------------void led_show(){unsigned char i;i=hz_shu%10; //显示个位P0=led_seg_code[i];P2=0xfe;delay(10);i=hz_shu%100/10; //显示十位P0=led_seg_code[i];P2=0xfd;delay(10);i=hz_shu%1000/100; //显示百位P0=led_seg_code[i];P2=0xfb;delay(10);}//--------------------------unsigned int get_T1_over_num(unsigned char p) //p为频率数{unsigned int *k,h;double f;f=(double)p; //转化为浮点数f=0.5/f; //半个周期的时间f=f/0.00025; //中断溢出数=f/0.00025;h=f; //取整//四舍五入if (modf(f,k)>=0.5){ h=h+1; }return h;}/* C51有专门的库文件MATH.H,里面有个函数它是这样定义的extern float modf(float x, float *ip);调用它之后,整数部分被放入*ip, 小数部分作为返回值。
*///------------------------------------void timer1() interrupt 3 //T1中断{ T1_cnt++;if(T1_cnt>T1_over_num) //半周期的计数到达{ T1_cnt=0;pulse_out=!pulse_out; //反复取反,产生方波}if(state_val==1)//连续按键{ if (sec_over_num<4000) //计时未到1s{ sec_over_num++; }else //计时到1s时,执行else的代码{ sec_over_num=0;if(second<2) //当超过2秒,second一直为2,直到松开按键{second++;} //连续按下键少于2秒时,second继续增1。
else //连续按下键2秒,以10次/秒的速度连续增加{ TR1=0;switch (key_val){ case 0: if(hz_shu<190){ hz_shu=hz_shu+10;} //增10Hz/秒else{ hz_shu=200; }T1_over_num=get_T1_over_num(hz_shu);break;case 1: if(hz_shu>10){ hz_shu=hz_shu-10; } //减10/秒else{ hz_shu=1;}T1_over_num=get_T1_over_num(hz_shu);break;}TR1=1;}}}}//-------------------------main(){pulse_out=0; //初始化各变量hz_shu=5;T1_cnt=0;state_val=0;second=0;sec_over_num=0;T1_over_num=get_T1_over_num(hz_shu);//初始化51的寄存器TMOD=0x20;//用T1计时8位自动装载定时模式,T0计数p3.4的脉冲数 TH1=0x6; //250微秒溢出一次; 250(256-x)*12/12 -> x=6TL1=0x6; //200Hz的半周期为2.5毫秒,要溢出中断10次EA=1; //开中断ET1=1;TR1=1; //定时器T1while(1){ key_val=scan_key(); //扫描按键if (key_val!=key_val_old){ //说明有键按下或弹起key_val_old=key_val;if (key_val!=255){ //说明键按下state_val=0; //清除连续按键标志sec_over_num=0;switch (key_val){ case 0: //增1键hz_shu++;T1_over_num=get_T1_over_num(hz_shu);break;case 1: //减1键if(hz_shu>=2){hz_shu--;}else{hz_shu=1;}T1_over_num=get_T1_over_num(hz_shu);break;}}else //说明键弹起{ state_val=0; second=0;}}else //一直按下或弹起{ if (key_val!=255){ state_val=1; //连续按键}else{state_val=0;} //没有按键按下,一直处于弹起状态}led_show(); //数码管显示,动态扫描}}//----方波发生器-----------------。