精华内容
下载资源
问答
  • 基于可编程逻辑器件的工作原理和开发方法,采用Verilog硬件描述语言,在可编程逻辑器件实验箱上实现一个方波信号发生器,能够实现一定频率范围内方波信号的产生。(基于quartus II,可仿真) 1.可调节信号频率;2.可...
  • 本文为读者介绍了方波信号发生器的硬件电路原理图,供读者参学习。
  • 本文为读者提供了用CD4046组成的方波信号发生器的原理框图,供读者学习参考。
  • 高频方波信号发生器的研制,李曙俏,,基于对各种方波发生器原理的分析和波过程试验装置对方波发生器的要求,设计一个高频方波信号发生器。在第一部分的电路中,采用输
  • 正弦波 方波信号发生器 的原理图 以及PCB制图 包括了整个系统的设计
  • 基于DDS同频正弦波与方波信号发生器的研究与设计,贺国锋,,介绍了一种基于DDS技术的20HZ-1MHZ正弦波与方波信号发生器的设计,详细论述了DDS的工作原理,在设计中将DDS模块集成到一个单片FPGA上,��
  • 两路相位可调方波信号发生器的设计与实现,陈晨,肖攸安,本文介绍了两路相位可调方波信号发生器的原理与设计。实现了系统的硬件设计和软件设计,并运用Proteus仿真软件对所设计的系统进行��
  • 其中包括方波信号发生器(1Hz-10MHz可调,分5个挡位,占空比20%-80%可调)。等精度测量法,待测信号占空比和频率信息有数码管显示,按键切换显示。资源非常可靠完整,分数价值远远不止5分。这个也是2015全国电赛的...
  • 基于NE555的方波信号发生器

    千次阅读 2019-08-24 17:06:44
    基于NE555的方波信号发生器 欢迎使用Markdown编辑器 一、功能简介 该电路是基于NE555芯片的多谐振荡器,用于产生我们所需要的方波信号,并且振荡频率在1到10KHz可调,占空比保持不变。 二、电路图及工作原理分析 先...

    基于NE555的方波信号发生器

    欢迎使用Markdown编辑器

    一、功能简介
    该电路是基于NE555芯片的多谐振荡器,用于产生我们所需要的方波信号,并且振荡频率在1到10KHz可调,占空比保持不变。

    二、电路图及工作原理分析电路原理图

    先将NE555的2、6脚接在一起组成施密特触发电路,再将Vo经过RC积分电路接回输入端就得到了多谐振荡器。
    对 C1充电时,根据二极管的单向导电性,电流通过R1,R4, VD1,C1;充电时间为:

    展开全文
  • 一位老师写的方波电路论文,挺实用的,属于模电吧,集成运算放大器构成方波信号发生器的电路分析
  • 基于51单片机的两路相位频率可调方波信号发生器
  • 一个可编程的方波发生器是可以产生用变量(逻辑1和逻辑0)表示的方波。时间间隔由两个4位无符号整数控制信号m和n指定。高电平和低电平持续时间分别为m×100ns和n×100ns。要求: 1编写程序并进行...
  • 仿真实现输出周期为毫秒级的方波信号,周期可通过按键设置并通过LED数码管显示。通过虚拟示波观察波形。
  • 方波设计 采用1602LCD实时显示小车行驶的时间,小车停止行驶后,轮流显示小车行驶时间、行驶距离、平均速度以及各速度区行驶的时间。本设计结构简单,较容易实现,但具有高度的智能化、人性化,一定程度体现了智能。
  • 通过4*4键盘输入,1602显示,输出给定周期的方波 周期范围20us-15s
  • 咚咚咚————【封装驱动】Si5351A方波信号发生器发送任意[8K-160Mhz]频率程序(一)效果展示(二)源码分享(三)需要改进的地方及不足 (使用阿波罗STM32F7开发板) (一)效果展示 <img src=...

    咚咚咚————【封装驱动】Si5351A方波信号发生器发送任意[8K-160Mhz]频率程序


    (使用阿波罗STM32F7开发板)

    (一)效果展示

    (二)源码分享

    芯片SI5351A源代码下载
    可以支持一下吗QAQ

    SI5351A.c

    /********************************************
    主控芯片:STM32F405RGT6主频168Mhz
    晶体频率:HSE=8Mhz  SYSCLK=168Mhz
    模块型号:STM32串口初始化
    通讯方式:
    函数功能:Si5351时钟芯片
    作者:苏夏雨
    授权:未经作者允许,禁止转载
    ********************************************/
    #include "si5351a.h"
    #include "delay.h"
    void IICstart()//IIC总线起始信号
    {
    	  SDA(1);
    	  CLK(1);
    	  SDA(0);
        delay_us(100); 
    	  CLK(0);
        delay_us(100); 	
    }
    void IICstop()//IIC总线停止信号
    {
    	  CLK(0);
        delay_us(100); 
    	  SDA(0);
        delay_us(100); 
    	  CLK(1);
        delay_us(100); 
    	  SDA(1);	
        delay_us(100); 
    }
    void IICsend(u8 DATA)//IIC总线发送信数据
    {
    		u16 i;
        for(i=0;i<8;i++) //发送一个字节数据 
        {     
            CLK(0); 		 //拉低时钟线,准备开始给SDA赋值
    			
            if((DATA&0x80)==0)  
            {SDA(0);}  
            else  
            {SDA(1);}  
    				
            DATA<<=1;  
            delay_us(100);    
            CLK(1);
            delay_us(100);      //等待从设备把数据接收完
    		}  
        CLK(0);  
        SDA(1);	 				   //释放数据线   
        delay_us(100);   
        CLK(1); 
        delay_us(100); 
    		while(i<1000){i++;}//等待从设备应答ACK 
    		CLK(0); 					 //释放时钟线,为下次操作做准备
    }
    void IICsendreg(uint8_t reg, uint8_t data)
    {
      IICstart();      //起始信号
      delay_us(200);  
      IICsend(0xC0);   //发送设备地址+写信号
      delay_us(200);  
      IICsend(reg);    //内部寄存器地址
      delay_us(200);  
      IICsend(data);   //内部寄存器数据
      delay_us(200);  
      IICstop(); 
    }
    void Si5351Init()//初始化Si5351芯片
    {
    		GPIO_InitTypeDef GPIO_Initure;
        __HAL_RCC_GPIOB_CLK_ENABLE();			//开启GPIOB时钟
    		GPIO_Initure.Pin=GPIO_PIN_10|GPIO_PIN_11;//PB10,11引脚
    		GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;//复用推挽输出
    		GPIO_Initure.Pull=GPIO_PULLUP;//上拉模式
    		GPIO_Initure.Speed=GPIO_SPEED_HIGH;//GPIO速度高速
    	  HAL_GPIO_Init(GPIOB,&GPIO_Initure);//初始化GPIOB
    }
    void SetFrequency(uint32_t frequency)//设置时钟频率
    {
      uint32_t pllFreq;
      uint32_t xtalFreq = XTAL_FREQ;// 晶体频率
      uint32_t l;
      float f;
      uint8_t mult;
      uint32_t num;
      uint32_t denom;
      uint32_t divider;
      divider = 900000000 / frequency;	//锁相环频率:900 mhz
      if (divider % 2) divider--;				//确保一个更整数除法比率
      pllFreq = divider * frequency;		//计算pllFrequency:分频器*所需的输出频率
      mult = pllFreq / xtalFreq;				//确定所需的pllFrequency的乘数
      l = pllFreq % xtalFreq;						//它有三个部分:
      f = l;														//乘是一个整数,必须在15 . . 90
      f *= 1048575;											//num和分母项是小数部分,分子和分母
      f /= xtalFreq;										//每20位(范围0 . . 1048575)
      num = f;													//实际的乘数是乘+ num /分母项
      denom = 1048575;									//为简单起见我们将分母最大1048575
    																		//设置锁相环与倍增系数计算
      SetPLLClk(SI_SYNTH_PLL_A, mult, num, denom);
    		//设置MultiSynth分配器0分计算。
    		//最后R分裂阶段可以除以2的幂,从1 . . 128。
    		//由常量SI_R_DIV1 reprented SI_R_DIV128(见si5351a。h头文件)
    		//如果你想在1兆赫兹以下输出,你必须使用
    		//最后R分裂阶段
    
      SetMultisynth(SI_SYNTH_MS_0,divider,SI_R_DIV_1);
    		//重置锁相环。这将导致输出的故障。对于小的变化
    		//参数,不需要复位锁相环,没有故障
    
      IICsendreg(SI_PLL_RESET,0xA0);	
    		//最后打开CLK0输出(0 x4f)
    		//并设置MultiSynth0是锁相环的输入
      IICsendreg(SI_CLK0_CONTROL, 0x4F|SI_CLK_SRC_PLL_A);
    }
    void SetPLLClk(uint8_t pll, uint8_t mult, uint32_t num, uint32_t denom)//设置PPL时钟
    {
      uint32_t P1;					// PLL config register P1
      uint32_t P2;					// PLL config register P2
      uint32_t P3;					// PLL config register P3
    
      P1 = (uint32_t)(128 * ((float)num / (float)denom));
      P1 = (uint32_t)(128 * (uint32_t)(mult) + P1 - 512);
      P2 = (uint32_t)(128 * ((float)num / (float)denom));
      P2 = (uint32_t)(128 * num - denom * P2);
      P3 = denom;
    
      IICsendreg(pll + 0, (P3 & 0x0000FF00) >> 8);
      IICsendreg(pll + 1, (P3 & 0x000000FF));
      IICsendreg(pll + 2, (P1 & 0x00030000) >> 16);
      IICsendreg(pll + 3, (P1 & 0x0000FF00) >> 8);
      IICsendreg(pll + 4, (P1 & 0x000000FF));
      IICsendreg(pll + 5, ((P3 & 0x000F0000) >> 12) | ((P2 & 0x000F0000) >> 16));
      IICsendreg(pll + 6, (P2 & 0x0000FF00) >> 8);
      IICsendreg(pll + 7, (P2 & 0x000000FF));
    }
    void SetMultisynth(uint8_t synth,uint32_t divider,uint8_t rDiv)//设置多synth
    {
      uint32_t P1;					// Synth config register P1
      uint32_t P2;					// Synth config register P2
      uint32_t P3;					// Synth config register P3
    
      P1 = 128 * divider - 512;
      P2 = 0;							// P2 = 0, P3 = 1 forces an integer value for the divider
      P3 = 1;
    
      IICsendreg(synth + 0,   (P3 & 0x0000FF00) >> 8);
      IICsendreg(synth + 1,   (P3 & 0x000000FF));
      IICsendreg(synth + 2,   ((P1 & 0x00030000) >> 16) | rDiv);
      IICsendreg(synth + 3,   (P1 & 0x0000FF00) >> 8);
      IICsendreg(synth + 4,   (P1 & 0x000000FF));
      IICsendreg(synth + 5,   ((P3 & 0x000F0000) >> 12) | ((P2 & 0x000F0000) >> 16));
      IICsendreg(synth + 6,   (P2 & 0x0000FF00) >> 8);
      IICsendreg(synth + 7,   (P2 & 0x000000FF));
    }
    

    SA5351A.h

    /********************************************
    主控芯片:STM32F405RGT6主频168Mhz
    晶体频率:HSE=8Mhz  SYSCLK=168Mhz
    模块型号:STM32串口初始化
    通讯方式:
    函数功能:Si5351时钟芯片
    作者:苏夏雨
    授权:未经作者允许,禁止转载
    ********************************************/
    #ifndef _si5351a_h
    #define _si5351a_h
    #include "system.h"
    //Si5351寄存器声明
    #define SI_CLK0_CONTROL	16			// Register definitions
    #define SI_CLK1_CONTROL	17
    #define SI_CLK2_CONTROL	18
    #define SI_SYNTH_PLL_A	26
    #define SI_SYNTH_PLL_B	34
    #define SI_SYNTH_MS_0		42
    #define SI_SYNTH_MS_1		50
    #define SI_SYNTH_MS_2		58
    #define SI_PLL_RESET		177
    
    #define SI_R_DIV_1		0x00			// R-division ratio definitions
    #define SI_R_DIV_2		0b00010000
    #define SI_R_DIV_4		0b00100000
    #define SI_R_DIV_8		0b00110000
    #define SI_R_DIV_16		0b01000000
    #define SI_R_DIV_32		0b01010000
    #define SI_R_DIV_64		0b01100000
    #define SI_R_DIV_128		0b01110000
    
    #define SI_CLK_SRC_PLL_A	0x00
    #define SI_CLK_SRC_PLL_B	0b00100000
    #define XTAL_FREQ	25000000			// Crystal frequency
    //IIC总线引脚配置
    #define SDA(n) {n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_RESET);}
    #define CLK(n) {n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_11,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_11,GPIO_PIN_RESET);}
    //相关函数声明
    void Si5351Init(void);//初始化Si5351的GPIO
    void SetPLLClk(uint8_t pll, uint8_t mult, uint32_t num, uint32_t denom);//设置PPL时钟
    void SetFrequency(uint32_t frequency);//时钟Si5351时钟频率
    void SetMultisynth(uint8_t synth,uint32_t divider,uint8_t rDiv);//设置多synth
    #endif
    

    (三)需要改进的地方及不足

    学校里的示波器只有100M带宽,所以只能测试有效值低于12.5Mhz的方波(频率太高带宽就不够用了,一般是示波器带宽除以八)后续频率的测试没有进行…

    展开全文
  • 系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成
  • 【资源下载】下载地址:点击下载(1181)百度网盘 ; 8253 SET CTR8253 EQU 86H; 8253 CONTROL WORD PORT0 EQU 80H PORT1 EQU 82H PORT2 EQU 84H ;...-------将通道1设为方式3,1kHz的方波 MO.

    【资源下载】下载地址:点击下载(1181) 百度网盘

    ; 8253 SET
    CTR8253 EQU 86H; 8253 CONTROL WORD
    PORT0 EQU 80H
    PORT1 EQU 82H
    PORT2 EQU 84H
    
    ;------------------
    STT:
        MOV DX, CTR8253
        MOV AL,76H ; CH 1, MODE 3,    AH,AL
        OUT DX, AL
    ;-------将通道1设为方式3,1kHz的方波    
        MOV DX,PORT1
        MOV AX,09C4H
        OUT DX, AL   
        MOV AL,AH
        OUT DX,AL         
        
    ;==========LOOP=================
    ST1:
        CALL SET_CHO_MODE1_8253
        CALL DELAY_1S
        JMP ST1
    ;======================================
    ;-----通道0接通道1产生的方波信号,进行计数,1000个计数后产生一个高电平
    ;---==通道0工作在方式0计数
    DELAY_1S PROC

     

     

      

     

    展开全文
  • 信号发生器 :control_knobs: 我在大学里用MATLAB编写的用于科学计算模块的信号发生器。 该程序生成并绘制具有用户定义的频率,时间跨度,相位和采样点数量的正弦波,方波或锯齿波。 同时,它计算生成波的傅立叶变换...
  • 一、综合设计实验题目和要求 本实验主要内容为: 设计一个能产生正弦波、方波和三角波...第三部分:实现三角波信号发生器,将方波信号发生器的RC积分电路替代为积分运算电路作为延时环节,可以得到按线性规律变换的三角

    一、综合设计实验题目和要求

    本实验主要内容为:
    设计一个能产生正弦波、方波和三角波的信号发生器(不要使用集成信号发生器芯片),要求信号发生器任意时刻只有一种波形输出,且波形频率和幅度可调。

    二、总体方案设计

    分析题目要求,得出本设计可以分为六个模块:

    第一部分:实现正弦波信号发生器,可利用文氏电桥振荡电路;

    第二部分:实现方波信号发生器,使用迟滞比较器、RC积分电路,正反馈组成的网络;

    第三部分:实现三角波信号发生器,将方波信号发生器的RC积分电路替代为积分运算电路作为延时环节,可以得到按线性规律变换的三角波;同时为满足正反馈,将积分电路的输出接到迟滞比较器的同相输入端;

    第四部分:实现输出信号的调幅功能,有两种方案,一是用利用滑动变阻器的分压,二是使用变压器。由于滑动变阻器有最大输出幅度,尽管方便调节,但不一定能够符合实际需求,因此选择使用变压器;

    第五部分:实现输出信号的调频功能,分析原理可以得出,三个信号发生电路的输出信号频率均与时间常数RC有关,因此可以固定三个信号发生电路输出频率公式中除RC以外的部分相同,就可以使用单一键来控制三个信号的输出频率

    第六部分:实现单一时刻只有一种信号输出,使用单刀四掷开关,分别对应无输出、正弦波输出、方波输出、三角波输出

    三、详细设计

    1、系统原理图

    在这里插入图片描述

    图一:整机电路图
    注:A用于调节频率,幅度需要手动通过调节变压器匝数比调节

    2、设计说明

    下面是各个模块的具体设计

    2.1正弦波发生器

    在这里插入图片描述

    图2:正弦波信号发生器

    采用文氏电桥电路
    其中R11=R13为可变电阻用于调频,C3=C4=0.1uF,R11,R13,C3,C4构成RC串并联选频网络,其选频特性为:

    起振条件为:
    Rf>=2R3

    2.2方波信号发生器

    在这里插入图片描述

    图3:方波信号发生器

    迟滞比较器用来实现高低电平两种状态,滑动变阻器和C实现时间延迟,R2使电路形成正反馈,谐振频率为:
    f=1/2RCln(1+2R1/R4)

    为使方波发生器输出的频率与正弦波一致,有:
    R1/R4=1.8
    取R4=10kΩ,则有R1=1.8kΩ

    2.3三角波发生器

    在这里插入图片描述

    图4:三角波信号发生器

    将方波信号发生器的RC积分电路替代为积分运算电路作为延时环节,可以得到按线性规律变换的三角波;同时为满足正反馈,将积分电路的输出接到迟滞比较器的同相输入端
    f=R3/4RCR2
    满足与前两个电路频率相等,可得:
    R3/R2=1/pi

    2.4输出模块

    在这里插入图片描述

    图5:输出模块电路

    由单刀四掷开关和变压器组成,单刀四掷开关用来切换输出波形,变压器用于调节输出信号的幅度

    四、实验结果和分析

    1、 仿真调试结果

    1.1正弦波输出

    在这里插入图片描述

    图6:正弦波信号输出波形

    1.2方波信号输出

    在这里插入图片描述

    图7:方波信号输出波形

    1.3三角波信号输出

    在这里插入图片描述

    图8:三角波信号输出波形

    2、结果分析

    初始参数得到的输出信号T=6.338ms
    观察波形可得,通过键A调节可变电阻可以调节输出信号的频率,且三种输出波形的频率调节是同步的,即切换开关不会改变输出信号的频率。通过手动调节变压器的匝数比来改变输出电压

    误差分析:
    RC振荡电路稳定需要一定的时间,需要等电路稳定时再观察波形

    五、总结和建议

    该设计电路还有很大的提升空间,例如:如何快捷地改变变压器的匝数比使调节输出振幅更加方便,如何通过调节各个电路的参数使得输出的振幅也能够保持一致,由于时间关系不再继续深入。

    展开全文
  • vhdl dds 方波 正弦波 信号发生器
  • 方波/三角波/正弦波信号发生器(ICL8038)电路图
  • 此为课程设计,主要用于学生学习,一个模拟信号发生器的电路图及其他相关资料,供大家需要的参考,主要是方波三角波信号产生模拟
  • 设计一个方波—三角波—正弦波信号发生器电路 正弦波输出频率为1000Hz,频偏不大于 2% 正弦波输出幅度大于5V,方波输出幅度不小于1V 要求输出波形失真小,电路工作稳定且可靠,布线美观
  • 方波—三角波—正弦波信号发生器。附有pdf文档和Multisim11仿真电路。
  • 信号发生器,包括方波产生电路,三角波产生电路,正弦波产生电路,仿真图,仿真数据均包含其中。
  • ICL8038信号发生器 正弦波 方波 三角波 低频信号发生 波形发生 原理图和PCB 目录ICL8038信号发生器 正弦波 方波 三角波 低频信号发生 波形发生 原理图和PCB基本原理芯片选型原理图&3D-PCB具体讲解模块原理图-PDF...
  • 方波/三角波/正弦波信号发生器(ICL8038) 该信号发生器采用了精密波形发生器单片集成电路ICL8038。该电路能够产生高精度正弦波,方波,三角波,所需外部元件少。频率可通过外部元件调节。ICL8038的正弦波形失真=1%...
  • 方波与正弦波与锯齿波函数信号发生器,对于做课设有一定帮助哦

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,022
精华内容 408
关键字:

方波信号发生器