设计并实现频率可控的正弦波信号发生器
基于fpga的dds正弦信号发生器的设计和实现

基于FPGA的DDS正弦信号发生器的设计和实现引言在电子领域中,正弦信号是一种重要的基础信号,被广泛应用于通信、音频、视频等各个领域。
而DDS(Direct Digital Synthesis)直接数字合成技术则是一种通过数字方式生成高精度、高稳定性的正弦波信号的方法。
本文将详细介绍基于FPGA的DDS正弦信号发生器的设计和实现。
设计目标本次设计旨在实现一个可配置频率范围广泛且精度高的DDS正弦信号发生器。
具体设计目标如下: 1. 实现频率范围可调节,覆盖从几Hz到数十MHz; 2. 提供高精度的频率控制,满足特定应用场景对频率稳定性和相位精度的要求; 3. 支持模数转换器(DAC)输出,并能够通过外部接口控制输出幅值; 4. 使用FPGA作为主要硬件平台,以满足高速计算和灵活配置需求。
系统架构基于FPGA的DDS正弦信号发生器主要由以下几个部分组成: 1. 数字控制模块(Digital Control Module):负责接收外部输入的频率、相位和幅值等参数,并将其转换为对DDS核心模块的控制信号; 2. DDS核心模块(DDS Core Module):根据接收到的控制信号,通过数学运算生成正弦波形的离散采样值; 3. 数字模拟转换模块(Digital-to-Analog Converter, DAC):将DDS核心模块输出的数字采样值转换为模拟电压信号; 4. 输出放大器(Amplifier):用于放大DAC输出的电压信号,并通过外部接口提供可调节幅值的正弦波输出。
DDS核心模块设计DDS核心模块是整个系统中最关键的部分,它负责根据输入参数生成正弦波的离散采样值。
下面是DDS核心模块设计中需要考虑的几个关键要素:相位累加器相位累加器是DDS核心模块中最基础且重要的组件之一。
它根据输入的频率和时钟信号,在每个时钟周期内累加相位增量,从而实现相位连续变化。
相位累加器可以使用一个定点数或浮点数寄存器来表示,并通过固定步长进行相位递增。
125KHz标准正弦波信号发生器

电子电路实验综合设计总结报告选题6:125kHz标准正弦波发生器班级:10-0433学号:2010043306姓名:汪尽涵日期:2013/4/13选题背景在标准的RFID(无线射频识别卡)中,按频率可分为几个等级,其中125KHz 是一个比较常用的频率,由于其制作方便、通信可靠,因此得到了广泛的应用,其中最重要的一部分就是产生一个125K Hz的正弦波信号加载到调制线圈中,但是常规的方法产生正弦波造价较高.本次实验所采用的方案是:用石英晶体、CD4060 等实现将 2MHz分频为125KHz;使用施密特触发器CD4049整形;利用R、C以及L设计振荡频率为125KHz的RLC串联谐振电路;OTL缓冲器提高电路的带载能力;利用比较器(74LS85)改变矩形波信号占空比来实现正弦波幅度可控。
用该方案来产生正弦波具有精度高,成本低,实现方便等特点。
设计选题及设计任务要求设计选题:1. 标准125KHZ正弦波发生器的设计实现任务要求:1.实现一个精确的125KHZ正弦波发生器;2.幅值大于1V可调,稳定度<0.5*10^-2,准确度<0.5*10^-6设计目的:1. 掌握OTL电路的工作原理和工程设计使用方法。
2. 掌握分频器的设计构建方法。
3. 掌握正弦波发生器的原理及实现方法。
4. 掌握电子电路系统设计的基本方法,培养提高综合多学科相关知识进行初步工程设计与实际调装系统电路的能力。
正文1.方案的设计方案一方案二方案三电路图如下可以等效为b-e型并联晶体振荡器的典型电路如图所示,该电路是一个双回路振荡器,它的固有谐振频率略高于振荡器的工作频率,负载回路选用的是并联谐振回路,可以抑制其他谐波,有利于改善输出波形,并且电路的输出信号较大,,因为在b-e型电路中,石英晶体则接在输入阻抗低的b-e之间,降低了石英晶体的标准性。
其等效电路如图所示。
和一般LC振荡器相比,石英晶体振荡器在外界因素变化而影响到晶体的回路固有频率时,它还具有使频率保持不变的电抗补偿能力,原因是石英晶体谐振器的等效电感Le与普通电感不同,当频率由Wq变化到Wo时,等效电感值将由零变到无穷大,这段曲线十分陡峭,而振荡器又刚好被限定在工作在这段线性范围内,也就是说,石英晶体在这个频率范围内具有极陡峭的相频特性曲线,因而它具有很高的电感补偿能力。
正弦信号发生器设计

正弦信号发生器作者:程锟、晏婷婷、覃雄伟摘 要:本设计以凌阳SPCE061A 单片机为核心,基于直接数字频率合成(DDS )技术制作了一个频率值能任意调节的多功能信号源。
该信号源在1KHZ~10MHZ 范围能输出稳定可调的正弦波,并具有AM 、ASK 和PSK 等调制功能。
信号输出部分采用电流放大型宽带运放做电流放大,再用宽带电压运放做电压放大,很好地解决了带宽和带负载能力的要求。
系统采用液晶显示模组CPCL501显示和键盘控制功能,在Ω50负载电阻下输出的电压峰-峰值p p V -≥1V 可调。
一、方案论证与选择1.题目分析:本设计要求可以输出较宽频带且频率稳定度足够高的正弦信号,并且具有一定的负载能力,同时可输出指标满足要求的AM 、ASK 、PSK 信号。
综合题目指标要求及相关分析,得到该设计的功能框架图如图一所示。
本设计可分为以下几个部分:频率合成模块、AGC (自动增益控制)模块、幅度控制模块、功率放大模块、调制模块及人机交流模块。
图一 功能模块框图2.方案比较(1)正弦信号发生模块方案一:采用反馈型LC 振荡原理。
选择合适的电容、电感就能产生相应的正弦信号。
其中电容采用变容二极管,通过控制二极管的电压来改变电容, 最终控制输出信号频率。
此方案器件比较简单,但是难以达到高精度的程控调节,而且稳定度不高。
方案二:采用FPGA 器件。
将某一标准正弦信号经过高速采样后送到外部存储器中储存好,然后用一个计数器产生地址读出存储器中的数据后送到D/A 转换器件中输出,可以通过改变计数器的参数,改变地址信号,实现,也可以通过处理数据改变信号的幅度。
但是此方案的输出波形受时钟影响较大,且不易于控制步进和进行功能扩展。
方案三:采用直接频率合成集成芯片AD9851。
AD9851是AD 公司生产的DDS 芯片,带并行和串行加载方式,AD9851 内含可编程DDS 系统和高速比较器,能实现全数字编程控制的频率合成。
一款在10Hz~1kHz范围内的频率可精确程控的可编程正弦波信号发生器电路图

信号发生器是指产生所需参数的电测试信号的仪器。
按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类。
信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以用三角函数方程式来表示。
我们这里为大家介绍一款可编程正弦波信号发生器电路图。
可编程正弦波信号发生器电路图
这款发生器在10Hz~1kHz范围内的频率可精确程控,波形失真度小于2%(采用示波器观测波形时,能观察出的波形失真度一般在5%以上。
)
在测试过程中,若要增大输出正弦信号的幅度,可再增加运算放大器的级
数。
若对帕型滤波后的波形还不够满意,可以接入一级采样保持电路。
采样保持电路的输出只响应每次D/A 转换输出的最终值,从而滤除了转换过程中产生的干扰和毛刺。
如果您有PCB 打样、中小批量板生产等需求的话,可以访问捷多邦官网 在线计价,也可以关注 捷多邦PCB 公众号在微信中直接咨询或下单。
捷多邦总部位于深圳,在杭州设外贸事业部,在惠州、坪山、沙井设三大线路板厂区。
品质先行:捷多邦专业做板,坚持240分钟沉铜电镀,拒绝导电胶。
极速交期:捷多邦在业内率先采用航空专线,当日下单最快次日即达。
欢迎体验!
原文链接:
https:///circuit/2897.html。
单片机频率可控的正弦波

课程设计任务书学生姓名:李旭专业班级:电信0806班指导教师:胡君萍工作单位:信息工程学院题目: 单片机原理与应用课程设计——设计并实现频率可控的正弦波信号发生器初始条件:(1)Proteus、伟福、KEIL仿真软件,XL1000综合仿真试验仪一台;(2)先修课程:微机原理与接口技术、单片机原理。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)利用DAC0832输出正弦波信号(用示波器观察输出波形),初始频率为50Hz,变频采用“+”、“-”键控制,实时测量输出信号的频率值,并分析和实测输出信号的频率范围。
具体完成以下任务:1.完成系统的方案设计,给出系统框图。
2.完成系统的硬件设计,给出硬件电路图和系统资源分配表。
3.完成系统的软件设计,给出程序流程图和程序清单。
4.运用Proteus(或伟福、KEIL)仿真软件对所设计的系统进行调试和仿真,直到预定的功能全部仿真通过,给出仿真结果;5.将程序下载到XL1000综合仿真试验仪,验证系统功能;或者自己制作出系统。
6.对所设计的系统进行性能分析(精度、实用性、成本等)。
7.完成课程设计报告。
时间安排:总体设计和硬件设计二天软件设计一天调试一天写报告,答辩一天参考书目:[1] 李群芳、张士军,单片微型计算机与接口技术, 电子工业出版社,2008[2] 张毅刚、彭喜元、董继成,单片机原理及应用,高等教育出版社,2004[3] 赵晓安,MCS-51单片机原理及应用,天津大学出版社,2001指导教师签名:年月日系主任(或责任教师)签名:年月日武汉理工大学《单片机原理与应用》课程设计说明书摘要正弦交流信号是一种应用极为广泛的信号。
在许多测试仪中需要用标准的正弦信号检测一些物理量。
正弦信号用作标准信号时,要求正弦信号必须有较高的精度、稳定度及较低的失真率。
传统的正弦信号发生器的频率变动由机械驱动可变元件完成,当这种信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大。
正弦信号发生器实验报告

正弦信号发生器实验报告引言本实验旨在设计并构建一个正弦信号发生器,用于产生具有特定频率和振幅的正弦波信号。
正弦信号在电子工程中具有广泛的应用,如通信系统、音频设备和信号处理等。
本实验将介绍设计思路、所需材料和步骤,以及实验结果和讨论。
设计思路为了设计一个正弦信号发生器,我们需要以下主要组件:1.振荡电路:产生正弦波信号的核心部分。
2.振幅调节电路:用于控制输出信号的振幅。
3.频率调节电路:用于控制输出信号的频率。
我们将使用基本的集成电路和电子元件来实现这些功能。
接下来,我们将逐步说明每个组件的设计和实现。
所需材料在开始实验之前,我们需要准备以下材料和工具:1.集成电路:例如操作放大器(Op-amp)。
2.电容器和电阻器:用于构建振荡电路和调节电路。
3.面包板:用于连接电子元件。
4.电源:为电路提供所需的电能。
5.示波器:用于测量信号的振幅和频率。
实验步骤1.第一步:振荡电路设计和构建–选择一个合适的振荡电路拓扑,如RC振荡电路。
–计算并选择所需的电容器和电阻器数值。
–使用面包板将电容器、电阻器和集成电路连接起来。
2.第二步:振幅调节电路设计和构建–选择一个合适的振幅调节电路拓扑,如非反相放大器。
–根据需要的振幅范围计算并选择所需的电阻器数值。
–使用面包板将电阻器和集成电路连接起来。
3.第三步:频率调节电路设计和构建–选择一个合适的频率调节电路拓扑,如电阻-电容调谐电路。
–根据需要的频率范围计算并选择所需的电容器和电阻器数值。
–使用面包板将电容器、电阻器和集成电路连接起来。
4.第四步:电源和示波器连接–将电源连接到电路以提供所需的电能。
–将示波器连接到电路以测量输出信号的振幅和频率。
5.第五步:实验验证和调试–打开电源,并使用示波器观察输出信号。
–调节振幅和频率调节电路,验证是否可以在所需范围内调节信号的振幅和频率。
实验结果和讨论经过实验验证和调试,我们成功设计和构建了一个正弦信号发生器。
该信号发生器能够在所需的频率范围内产生具有可调节振幅的正弦波信号。
正弦信号发生器设计1

目录摘要1.系统方案选择与论证1.1正弦信号输出方案1.2信号调制方案2.系统的总体设计与实现2.1系统正弦信号发生器的设计2.1.1正弦信号的仿真和分析2.1.2其他信号的仿真和分析2.2系统调制模块的设计2.2.1调幅电路(AM)2.2.2调频电路(FM)2.2.3 PSK电路2.2.4 ASK电路3.总结4.附录正弦信号发生器(A题)摘要:本系统是以ICL8038集成芯片为核心器件,附加线性调制电路,滤波和积分放大电路等模块组成的一种正弦信号发生器,制作简单,功能多。
所得到的信号输出稳定度和线性度满足题目要求,在输出的正弦信号的幅度上可以实现1V~6V内任意可调,输出频率范围虽然没有达到题目所要求的1KHz~10MHz范围,的是我们实现了在1Hz~1MHz范围内任意可调。
本文主要介绍了正弦信号发生器的设计与其所具有的功能,实现了竞赛题目的基本部分和提高部分的一些功能要求。
系统的硬件分为六个模块,即正弦信号产生模块,AM调幅电路模块,FM调频电路模块,PSK电路模块,ASK电路模块,单片机控制器与键盘显示电路模块。
一、正弦信号输出方案分析与论证正弦信号的产生可以分为以下两种方法:其一,可用专用的芯片产生,如MAX038,ICL8038等。
使用MAX038芯片,设计简单,可以产生精度和稳定度高,且频率范围大的正弦信号。
其二,采用数字合成方案(DDS),DDA技术频率高、转换速度快、信号纯度高、相位可控、输出信号无电流脉冲叠加、输出平稳渡过且相位和保持连续变化。
其方案原理流程图如下:DDS原理框图从题目要求来看,要求设计的正弦信号发生器的精度和稳定度都很高。
MAX038专用信号发生芯片在现在的条件下不能进行设计和相关的仿真,DDS方案的复杂度和难度都非常大,因此不容易实现。
从各个方面的因素来考虑,并且根据现有条件和自身的实际情况,我们采用芯片产生的方法,用的是ICL8038芯片。
ICL8038是一种具有多种波形输出的精密振荡集成电路, 只需调整个别的外部组件就能产生从0.001Hz~1MHz 的低失真正弦波、三角波、矩形波等脉冲信号。
正弦波信号发生器的设计及电路图

正弦波信号发生器的设计及电路图正弦波信号发生器的设计结构上看,正弦波振荡电路就是一个没有输入信号的带选频网络的正反馈放大电路。
分析RC串并联选频网络的特性,根据正弦波振荡电路的两个条件,即振幅平衡与相位平衡,来选择合适的放大电路指标,来构成一个完整的振荡电路。
很多应用中都要用到范围可调的LC振荡器,它能够在电路输出负载变化时提供近似恒定的频率、几乎无谐波的输出。
电路必须提供足够的增益才能使低阻抗的LC电路起振,并调整振荡的幅度,以提高频率稳定性,减小THD(总谐波失真)。
1引言在实践中,广泛采用各种类型的信号产生电路,就其波形来说,可能是正弦波或非正弦波。
在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,这就需要能产生高频信号的振荡器。
在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火,超声波焊接,超声诊断,核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。
可见,正弦波振荡电路在各个科学技术部门的应用是十分广泛的。
2正弦波振荡电路的振荡条件从结构上来看,正弦波振荡电路就是一个没有输入信号的带选频网络的正反馈放大电路。
图1表示接成正反馈时,放大电路在输入信号某i=0时的方框图,改画一下,便得图2。
由图可知,如在放大电路的输入端(1端)外接一定频率、一定幅度的正弦波信号某a,经过基本放大电路和反馈网络所构成的环路传输后,在反馈网络的输出端(2端),得到反馈信号某f,如果某f与某a在大小和相位上一致,那么,就可以除去外接信号某a,而将1、2两端连接在一起(如图中的虚线所示)而形成闭环系统,其输出端可能继续维持与开环时一样的输出信号。
正弦信号发生器方案设计

正弦信号发生器设计方案一、方案比较论证所有方案可按模拟式和数字式分为两大类模拟式:①利用电阻、电容、运放等传统器件搭建LC或RC正弦信号发生器。
通过改变电路中的元件的参数值来调节输出频率。
这种方式成本低廉,但由于采用大量分立器件,受其工作原理的限制频率稳定度较低(只有10-3量级)。
另外实现扩展功能中的各种调制等也比较麻烦,电路复杂,调试困难,精度差。
②采用专用信号发生芯片MAX038来实现正弦信号波形的输出。
是美信公司的低失真单片信号发生集成电路,内部电路完善,使用该器件能够产生精确的高频三角、锯齿、正弦及方波。
使用该芯片设计简单,但扩展功能电路部分实现起来和采用分立器件同样复杂,而且频率精度和稳度均难以达到要求。
③采用基于锁相环(PLL)技术或者非线性器件频率变换技术的频率合成器。
由晶体振荡器和锁相环组成的系统中,前者保证工作频率稳定度,后者完成输出频率的调整,但是这时输出频率只能是晶体谐振频率的整数倍。
故虽然频率稳定能达到要求却很难做到频率输出范围1KHZ—10MHZ和100HZ步进的要求。
数字式:①采用AD公司专用的DDS芯片AD9851合成FM和AM的载波,采用传统的模拟调制方式来实现AM调制和FM调制。
但该方案需要额外的模拟调制FM和AM的调制电路,且制作和调制电路都比较麻烦,还难免引入一定的干扰,而且此方案中的PSK调制也不容易实现。
②采用AD公司的AD9856作为调制芯片,是内含DDS的正交调制芯片,可以实现多进制的数字幅度调制,多进制的数字相位调制和多进制的数字幅度相位联合调制。
故AM 调制,PSK调、ASK调制都可以通过它实现但是AD9856不便于调频且控制复杂。
③利用微处理器和DAC实现DDS信号产生器。
微处理器能够实现DDS的电路结构,即实现相位累加器、波形的数据表、同时实现数字/模拟转换器的控制时序。
利用微处理器完成加法运算需要读取的数据进行运算,再把运算结果送到目标单元。
制作一个正弦信号发生器的设计

制作一个正弦信号发生器的设计
一、正弦信号发生器的概念
正弦信号发生器是一种可以产生所需频率的正弦波信号的设备,可以
帮助开发者测量和分析频率特性,也可以用于相关系统的诊断。
正弦信号
发生器可以产生指定频率的正弦波形,以满足不同系统的需求。
它也可以
通过波形对比法进行精确的波形测量,用于分析电子系统特性。
(1)电路设计
正弦信号发生器的电路设计主要有两种:一种是基于模拟电路的设计,另一种是基于数字电路的设计。
(1)模拟电路
模拟电路设计采用的是电路模块,主要有振荡器、滤波器、缓冲器和
调制电路。
(a)振荡器
振荡器主要由振荡电路和调整元件组成,振荡器的作用是形成振荡的
正弦波,以满足信号发生器产生不同频率的要求。
(b)滤波器
滤波器的作用是滤除振荡器产生的额外噪声,以得到纯净的正弦信号。
(c)缓冲器
缓冲器的主要作用是将振荡器的正弦波输出,缓冲器的作用是减少信
号失真,使正弦波更加完美。
(d)调制电路
调制电路的作用是对信号发生器产生的正弦波进行调制,使其能够输出更加稳定的信号频率。
(2)数字电路
采用数字电路设计的正弦信号发生器。
制作一个正弦信号发生器的设计

★项目2:数字信号源
项目简述:设计制作一个正弦信号发生器。
(1)正弦波输出频率范围:1kHz~10MHz;
(2)具有频率设置功能,频率步进:100Hz;
(3)输出信号频率稳定度:优于10-2;
(4)输出电压幅度:1V到5V这间;
(5)失真度:用示波器观察时无明显失真。
(6)输出电压幅度:在频率范围内
50负载电阻上正弦信号输出电压的峰-峰值V opp=6V±1V;
(7)产生模拟幅度调制(AM)信号:在1MHz~10MHz范围内调制度m a可在30%~100%之间程控调节,步进量50%,正弦调制信号频率为1kHz,调制信号自行产生;
(8)产生模拟频率调制(FM)信号:在100kHz~10MHz频率范围内产生20kHz最大频偏,正弦调制信号频率为1kHz,调制信号自行产生;
(9)产生二进制PSK、ASK信号:在100kHz固定频率载波进行二进制键控,二进制基带序列码速率固定为10kbps,二进制基带序列信号自行产生;
开发时间:2007 开发人数:1
运行环境:windows xp、Quartus II
相关内容:(还未整体综合)
下面是调幅原理图:
下面是调频原理图:
下面是正弦信号发生器设计原理图:
下面是PSK设计原理图:。
基于DDS的正弦波信号发生器的设计

基于DDS的正弦波信号发生器的设计DDS(Direct Digital Synthesis,直接数字合成)技术是一种通过数字计算得到各种波形信号的合成技术。
正弦波信号发生器是一种用于产生正弦波信号的电子设备,通常用于各种测量、实验和测试中。
本文将介绍基于DDS的正弦波信号发生器的设计。
1.设计目标我们的设计目标是开发一个基于DDS的正弦波信号发生器,具有以下特点:-可以生成多种频率的正弦波信号;-可以通过数字控制方式调整频率;-可以输出稳定的、低失真的正弦波信号。
2.设计思路-选择一个固定的时钟频率作为DDS系统的时钟频率;-使用一个相位累加器来产生一个递增的相位值,该相位值与输出的正弦波信号频率相关;-使用一个查表ROM存储正弦波的采样值,根据相位值从查表ROM中读取相应的采样值;-使用一个数字到模拟转换器(DAC)将采样值转换成模拟信号输出。
3.系统设计基于上述思路,我们可以设计一个基于DDS的正弦波信号发生器,具体步骤如下:-设计一个用于控制频率的数字控制模块。
该模块可以接收一个控制信号,根据控制信号计算应当输出的频率,并将频率值传递给相位累加器。
-设计一个相位累加器模块。
该模块可以接收一个时钟信号和一个频率值,并根据时钟信号和频率值递增相位值,并将相位值传递给查表ROM模块。
-设计一个查表ROM模块。
该模块可以接收一个相位值,并根据相位值从查表ROM中读取相应的采样值。
-设计一个数字到模拟转换器(DAC)模块。
该模块可以接收一个采样值,并将采样值转换成模拟信号输出。
4.系统性能考虑在设计基于DDS的正弦波信号发生器时,需要考虑一些性能指标以确保输出的信号质量,如下所示:-频率范围:选择合适的时钟频率和相位累加器实现合理的频率范围。
-分辨率:根据需要的输出信号精度选择合适的查表ROM大小和DAC分辨率。
-失真度:选择合适的查表ROM分辨率和DAC精度,以及合适的滤波器设计,以保证输出信号的低失真度。
毕业设计正弦信号发生器

正弦信号发生器摘要本系统以单片机和FPGA为控制和处理核心,基于直接数字频率合成原理,利用DDS集成芯片AD9851实现了300Hz~13MHz、步进为0.1Hz的正弦信号发生器和高频偏的DDS调频(FM)信号发生器;通过模拟乘法器MC1496实现调幅功能,其低频调制信号由FPGA和DAC0800构成DDS低频发生器产生;利用可变增益宽带放大器AD600实现幅度程控,通过检波和ADC反馈给单片机,检测和调整输出电压,实现精确的幅度控制。
使用了多种抗干扰措施以减少噪声并抑制高频自激;后级功放采用两片宽带运放AD811组成桥式功率放大器来实现。
本系统硬件设计应用了EDA工具,软件采用模块化的编程思想。
关键字:正弦信号发生器 DDS 调幅幅度控制桥式功率放大器AbstractBased on the principle of DDS, the system uses the A T89C51 and FPGA as the control and processing unit ,and uses the DDS chip AD9851 to realize the Sine and FM signal generator .The signal generator can output Sine signal of 300 Hz ~13M Hz with 0. 1 Hz frequency step, the MC 1496 is used to realize AM performance, the Amplitude control of signals are realized by using chip AD600,the low frequency modulation signal is produced by DDS made of FPGA and DAC 0800..Many methods are employed to diminish noises and restrain high frequency self-excitation. The test results show that the system achieves the requirements of design.正弦信号发生器一、方案论证与选择本系统难点有:1.产生稳定性高、频率步进较低、频带范围较广且具有一定带负载能力的正弦信号源;2.以1kHz为调制信号,在较大动态范围(100kHz~10MHz)内产生频偏为10kHz的调频信号;3.产生AM、ASK、PSK等调制信号。
基于fpga的dds正弦信号发生器的设计和实现

基于fpga的dds正弦信号发生器的设计和实现
基于FPGA的DDS正弦信号发生器可以使用两种常见的实现
方法:Look-Up Table (LUT) 方法和相位累积器方法。
1. LUT方法:
- 首先,定义一个存储正弦波样本值的LUT (Look-Up Table),LUT的大小取决于所需的精度和波形频率范围。
- 使用一个计数器来生成一个相位值,该相位值是一个0到LUT大小之间的数字。
- 将该相位值作为索引,通过查找LUT来获取对应的正弦波
样本值。
- 将该正弦波样本值通过数字-模拟转换器(DAC)转换为模拟
信号输出。
2. 相位累积器方法:
- 使用一个固定频率的时钟作为参考信号输入,例如50 MHz。
- 使用一个相位累积器累积每个时钟周期的相位值。
- 计算相位值对应的正弦波样本值,并通过DAC转换为模拟信号输出。
- 相位累积器的更新频率由所需的输出频率确定,可以通过
增加或减小相位值的增量来调节输出频率。
需要注意的是,FPGA上实现DDS正弦信号发生器时,需要
一个高速的DAC来将数字信号转换为模拟信号输出。
同时,
为了提高性能和减少功耗,可以采用流水线技术,通过并行处理来提高输出频率的精度和速度。
此外,还可以通过添加相位调制、振幅调制等功能来进一步扩展DDS正弦信号发生器的
功能。
要设计和实现基于FPGA的DDS正弦信号发生器,可以使用硬件描述语言如Verilog或VHDL编写相应的代码,并使用FPGA开发工具进行综合、布局以及生成比特流文件。
最后,将比特流文件加载到目标FPGA芯片上,就可以实现DDS正弦信号发生器的功能。
简易正弦波信号发生器的设计

三. 预习要求
1. 复习RC正弦波振荡器及集成运算放大器设计放大 器等相关知识。 2.根据设计任务要求,正确选择元器件参数及集成运 算放大器型号。 3. 将设计好的电路在Multisim或EWB软件上进行仿真 验证并修改。 4. 画出系统电路图,列出元器件清单。
四. 设计方案参考
由于本设计的正弦波信号发生器产生的频率不高, 故选择桥式RC正弦波发生器非常合适。将该信号发生 器产生的信号经过求和运算电路,即可实现该信号发 生器输出幅值可调和直流偏移可调功能。
六. 思考题
1. 简述减小RC桥式正弦波信号发生器输出波形失 真度的方法。 2. 集成运算放大器的转换速率参数指标SR对该正弦 波发生器有何影响? 3. 请在上述正弦波信号发生器电路的基础上,再增 加输出方波、三角波信号的功能,并画出设计的 电路图。 4. 若要进一步提高正弦波信号的输出频率范围,应 采取什么措施?若要提高正弦波信号发生器的输 出功率,应采取什么方法?
实验九 简易正弦波信号发生器的设计
一、实验目的
1. 熟悉模拟电子电路的设计方法及步骤。 2. 掌握正弦波信号发生器的设计、安装及调 试方法。 3. 加深对集成运算放大器的特性理解及应用。 4. 掌握模拟电子电路的测量技术及提高排查 故障的能力。
二. 设计任务要求
要求利用集成运算放大器等元器件设计一简易的 低频正弦波信号发生器,要求如下: 1. 输出正弦波信号的频率调节范围100Hz~1kHz。 2. 输出正弦波的幅值调节范围0~5VP-P(1kΩ负 载)。 3. 输出直流电平设置范围-5V~+5V(1kΩ负载)。
Rw1 RC正弦波振荡器 求和电路
Vo
ቤተ መጻሕፍቲ ባይዱ
+V
Rw2
设计并实现频率可控的正弦波信号发生器-单片机课设

1Proteus软件简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:68000系列、8051系列、A VR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
特点:支持ARM7,PIC ,A VR,HC11以及8051系列的微处理器CPU模型,更多模型正在开发中;交互外设模型有LCD显示、RS232终端、通用键盘、开关、按钮、LED等;强大的调试功能,如访问寄存器与内存,设置断点和单步运行模式;支持如IAR、Keil和Hitech等开发工具的源码C和汇编的调试;一键“make”特性:一个键完成编译与仿真操作;内置超过6000标准SPICE模型,完全兼容制造商提供的SPICE模型;DLL界面为应用提供特定的模式;14种虚拟仪器:示波器、逻辑分析仪、信号发生器、规程分析仪等;高级仿真包含强大的基于图形的分析功能:模拟、数字和混合瞬时图形;频率;转换;噪声;失真;付立叶;交流、直流和音频曲线;模拟信号发生器包括直流、正旋、脉冲、分段线性、音频、指数、单频FM;数字信号发生器包括尖脉冲、脉冲、时钟和码流;集成PROTEUS PCB设计形成完整的电子设计系统。
正弦波信号发生器的设计与实现

在此设计中的基于DDS技术的信号发生器,是通过用单片机编程将控制字并行送入DDS芯片AD9850,然后由AD9850产生波形输出,即采用基于相位累加器的数字频率合成法,利用直接数字合成芯片AD9850产生波形。
在上世纪70年代,随着微处理器的出现,可以使生更复杂的波形。这一时期比基于软件的波形发生器,在本质上,该DAC采用一个微处理器的程序控制,就可以得到各种简单的波形。
二十一世纪,随着集成电路技术的飞速发展,已经有工作频率超过千兆赫的DDS芯片,而且还促进的函数波形发生器的发展,2003年,安捷伦33220A能够产生17种波形的产品,最高频率可达20M,2005年的产品N6030A能够产生了500MHz的频率,采样频率为1.25GHz。
直接数字频率合成器DDS组件后,DDS组件限制速度和数字噪声引起的这两个主要的缺点阻碍了DDS技术的发展与应用。近年来,超高速数字电路的发展以及对DDS的深入研究,DDS的最大工作频率和噪声性能接近的锁相环率合成器,并达到了相当的水平。随着微电子技术的迅速发展,直接数字频率合成技术得到了迅速的发展,它不同于人其他现代频率合成技术的频率合成,具有优越的性能和特点。反映在较宽的带宽,频率转换时间短,频率分辨率高,输出相位连续,可生产各种其他宽带正交信号和调制信号,可编程数字,控制灵活,具有很高的价格。现在广泛的应用在通信,导航,遥测,雷达,电子战和现代仪器仪表行业等领域[1]。
正弦波信号发生器制作

正弦波信号发生器的成本和普及度也是需要解决的问题。为了降低成本和提高普及度,可以开发具有市 场竞争力的产品,优化生产工艺,降低制造成本,同时加强市场推广和宣传。
THANK YOU
波形转换电路
波形转换电路是将振荡信号转换成正弦波信号的关键部分,通常采用 RC电路或LC电路等。
03功率放大电路源自功率放大电路的作用是将转换后的正弦波信号进行放大,以满足输出功
率的要求。
应用领域
科学研究
正弦波信号发生器在科学研究领域中广泛应用于物理、化 学、生物和材料科学等领域,如振动分析、光谱分析、生 物电信号处理等。
正弦波信号发生器制作
目录
• 正弦波信号发生器简介 • 正弦波信号发生器的硬件设计 • 正弦波信号发生器的软件设计 • 正弦波信号发生器的调试与优化 • 正弦波信号发生器的应用实例 • 正弦波信号发生器的未来发展与挑战
01
正弦波信号发生器简介
定义与特点
定义
正弦波信号发生器是一种能够产生正弦波信号的电子设备。
工程实验
在工程实验中,正弦波信号发生器可用于模拟各种物理量, 如电压、电流、力等,以便进行各种实验和测试。
测试测量
正弦波信号发生器在测试测量领域中广泛应用于各种电子 设备和仪器的测试和校准,如示波器、频谱分析仪、信号 发生器等。
02
正弦波信号发生器的硬件设计
电源电路设计
电源电路
为整个信号发生器提供 稳定的直流电源,通常 采用线性电源或开关电
幅度精度
提高信号幅度的精度,以 满足高精度应用需求。
05
正弦波信号发生器的应用实例
在通信系统中的应用
信号传输
正弦波信号发生器可以产生稳定的正弦波信号,用于通信系 统中的信号传输。这种信号具有恒定的振幅、频率和相位, 能够保证信号传输的质量和稳定性。
频率可调的正弦波发生器电路图

频率可调的正弦波发生器电路图频率可调的正弦波发生器电路图下图所示电路是一种频率可调的移相式正弦波发生器电路。
其频率稳定度通过实际测试为0.002%。
该电路性价比高,用很便宜的几个元件在很宽的频段内。
实现频率连续可调。
笔者在实验时将频段分为低、中、高三个频段。
用拨动开关进行切换。
用双联电位器R8、R9调节其阻值,实现了输出频率从0.7Hz~60kHz连续可调的功能。
该电路采用±15V供电,通过R1l可调整输出正弦波的峰峰值。
只要U1A 的放大倍数满足大于l的条件。
电路即可产生振荡。
输出正弦波的峰值,最大可达20V左右。
C3、C4、。
R8、R9决定输出频率。
其输出最高频率还取决于运放的截止频率。
以下是实际调试中输出波形和电容、电位器的参数值:低频段:0.67Hz~42Hz:双联电位器阻值:100kΩ/lOOkΩ);信号峰-峰值:2l~22V;中频段:27Hz~1500Hz:双联电位器阻值:100kΩ/100kΩ:信号峰-峰值:19.6~17.8V;高频段:1.28kHz~60Hz;双联电位器阻值:lOOkΩ/100kΩ:信号峰-峰值:14~15.5V。
下图电路中A点和B点(输出)与图2中的A点和B点的输出波形卡同对应。
A点为U2A的输出波形。
B点为U3A的输出波形。
从仿真结果不难看出。
A点刚好比B点的相位延迟90度,信号经过U3A再移相90度后。
刚好移相180度。
此时B点和U1A输出的相位刚好相差180度。
电路要求C3、R8和C4、R9两个网络参数的值要完全相同才会获得最理想的波形。
由于笔者没有相关仪器,无法测量正弦波的失真度,但是从软件仿真和硬件实验来看,输出波形还是挺让人满意的。
要想实现输出频率的连续调节。
就必须同时改变R8、R9的阻值。
实验证明用双联电位器可实现频率的连续调节。
但由于电位器的固有噪声在旋动中会有波形跳动的现象,所以电位器的品质直接影响着频率输出的稳定性。
本电路的最高输出频率取决于C3、C4、R8、R9选频网络的值和运放的响应频率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书学生姓名: 专业班级:电信0904班指导教师:沈维聪工作单位:信息工程学院题目:设计并实现频率可控的正弦波信号发生器初始条件:1.提供实验室机房及其Keil软件;2.提供51单片机开发板要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):要求:利用DAC0832输出正弦波信号(用示波器观察输出波形),初始频率为50Hz,变频采用“+”、“-”键控制,实时测量输出信号的频率值,并分析和实测输出信号的频率范围。
具体包括:(1)设计原理或方法(2)系统硬件线路设计图(3)程序框图(4)资源分配表(5)源程序(6)性能分析(7)课程设计的心得体会;(8)参考文献(不少于5篇)。
时间安排:本学期第19周参考文献:1、刘瑞新等单片机原理及应用教程机械工业出版社。
2、张毅刚,单片机原理及应用,北京:高等教育出版社。
3、徐仁贵,微型计算机接口技术及应用,北京:机械工业出版社。
4、李广弟等单片机基础北京航空航天出版社。
5、楼然苗等 51 系列单片机设计实例北京航空航天出版社。
指导教师签名: 年月日系主任(或责任教师)签名: 年月日目录一、总体设计原理 (3)二、系统硬件设计 (3)2.1、DAC0832模块 (3)2.2、控制系统模块 (5)2.3、显示模块 (7)三、软件部分 (8)四、源程序 (9)五、性能分析 (14)六、总结与心得 (15)七、参考文献 (16)摘要:本课程设计并实现频率可控的正弦波信号发生器。
控制系统采用AT89C52,利用2片DAC0832输出正弦波信号(用示波器观察输出波形),其中一片为另外一片体提供参考电压进而可以控制峰峰值。
利用单片机的选通方式对2片DA分别进行时分复用,达到介绍IO口的资源作用。
为了实现完整的正弦波信号输出,这里采取256个点,末级采用高精度放大器OP07并通过低通滤波器实现完美的波形输出。
加LCD1602对其频率和幅度进行实时显示,通过控制系统预置幅度步进可以达到0.1V.频率初始化为50HZ。
完全满足系统的要求,并且扩展了发挥部分。
关键词:AT89C52;DAC0832;低通滤波;op07一、总体设计原理本系统采用AT89C52做控制系统,利用2片DAC0832输出正弦波信号(用示波器观察输出波形),系统初始频率为50Hz,变频采用“+”、“-”键控制,当按下“+”键是正弦波的频率自动加1输出,当按下“—”时,正弦波频率自动减一输出,实时测量输出信号的频率值,通过LCD1602动态显示,利用另一片DAC0832输出控制幅值的大小,改变正弦波的参考电压,步进值设定为0.1V。
实时监控正弦波型号达到幅度和频率。
图1二、系统硬件设计2.1、DAC0832模块DAC转换器是一种将数字量转换成模拟量的器件,其特点是接收、保持和转换的是数字信息,不存在随温度和时间的漂移问题,因此电路的抗干扰性能较好。
DAC0832是8位分辨率的D/A转换集成芯片,它具有价格低廉、接口简单及转换控制容易等特点。
它由8位输入锁存器、8位DAC寄存器、8位DIA转换电路及转换控制电路组成,能和CPU数据总线直接相连,属中速转换器,大约在1us 内将一个数字量转换成模拟量输出。
DAC0832 的结构和引脚如图2.1:D0~D7:8位数据输入线,TTL电平,有效时间应大于 90ns(否则锁存器的数据会出错);ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR1、XFER 的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;IOUT2:电流输出端2,其值与IOUT1值之和为一常数;Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;Vcc:电源输入端,Vcc的范围为+5V~+15V;VREF:基准电压输入线,VREF的范围为-10V~+10V;AGND:模拟信号地DGND:数字信号地图21.直通方式直通方式就是使 DAC0832 内部的两个寄存器(输入寄存器和DAC 寄存器)处于不锁存状态,数据一旦到达输入端DI7~DI0,就直接送入D/A 转换器,被转换成模拟量。
当ILE为高电平,CS 和WR 1﹑WR 2和XFER 端都接数字地,这时锁存信号LE 1 ﹑LE2 均为高电平,输入寄存器和DAC 寄存器均处于不锁存状态,即直通方式。
2.单缓冲方式单缓冲方式就是使两个寄存器中的一个处于缓冲方式,另一个处于锁存方式,数据只通过一级缓冲器送入D/A 转换器。
通常的做法是将和XFER 均接地,使DAC 寄存器处于直通方式,而把ILE接高电平,接端口地址译码信号,WR 1接CPU系统总线的IOW 信号,使输入寄存器处于锁存方式。
单缓冲方式只需执行一次写操作即可完成D/A 转换。
一般不需要多个模拟量同时输出时,可采用单缓冲方式。
3.单缓冲方式单缓冲方式就是使两个寄存器均处于锁存方式,数据要经过两级锁存(即两级+1224 56U4:A74LS2291012138U4:B74LS22图3本设计采用DAC0832实现电流输出满足I1+I2是一定值。
为将电流转换成电压,这里采用具有极低的输入失调电压OP07。
通过在晶圆阶段执行调整而获得,而且这种低失调电压一般不需要进行任何外部零点校准。
此外还具有低输入偏置电流(OP07E为±4 nA)和高开环增益(OP07E为200 V/mV)特性。
低失调电压和高开环增益使之特别适合高增益仪器仪表应用。
2.2、控制系统模块这里控制系统采用AT89C52。
采用12M晶振,整体控制液晶显示和DAC0832的电压输出,并且实时进行正弦波输出。
当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
2.3、显示模块显示模块这里采用LCD1602。
进行实时扫描按键的值并显示DAC0832的电压值,并且根据正弦波的函数输出表以及延时的关系控制频率的输出并且显示在三、软件部分正弦波的实现相对方波和三角波相对比较复杂,因为正弦波的实现是输出各个点的值就行了,可是各个点值则要通过正弦函数来求出。
输出的数据刚好是256个数据,需要先将数存入数组中在大循环中取出数组,组成正弦波。
本设计采用按键扫面算法实现实时对频率和幅度的显示,并“+”、“-”按键实现调节,并且更新数据显示在液晶LCD1602上面。
图5四、源程序#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define uchar unsigned charsbit wr2=P3^7;sbit rs = P2^6;sbit rw= P2^5;sbit ep = P2^7;sbit gn=P2^4;sbit up=P2^3;sbit down=P2^2;sbit S1=P2^0;sbit S2=P2^1;sbit wr1=P3^0;sbit dir1=P3^1;sbit dir2=P3^4;uchar j,k=39,flag,amp=0xfa;uint freq;code uchar v[]="amplitude:";uchar vv[5];code uchar f[]="freqency:";code uint fj[40]={999,744,591,490,419,366,325,292,265,243,224,208,194,181,171,161,153,145,138,132,126,121,116,111,107,104,100,97,94,91,85,81,74,71,67,64,60,57,53,50};code uchar sj[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,33,36,38,40,42,45,48,51,55};uchar fv[6];code uchar sin[]={0x7F,0x84,0x88,0x8D,0x91,0x96,0x9B,0x9F,0xA4,0xA8,0xAC,0xB1,0xB5,0xB9,0x BD,0xC1,0xC5,0xC9,0xCD,0xD0,0xD4,0xD7,0xDA,0xDE,0xE1,0xE4,0xE6,0xE9,0xEB,0xE E,0xF0,0xF2,0xF4,0xF6,0xF7,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0 xFE,0xFD,0xFD,0xFC,0xFB,0xF9,0xF8,0xF7,0xF5,0xF3,0xF1,0xEF,0xED,0xEA,0xE8,0xE5,0 xE2,0xDF,0xDC,0xD9,0xD5,0xD2,0xCE,0xCB,0xC7,0xC3,0xBF,0xBB,0xB7,0xB3,0xAE,0xA A,0xA6,0xA1,0x9D,0x98,0x94,0x8F,0x8B,0x86,0x81,0x7D,0x78,0x73,0x6F,0x6A,0x66,0x61,0x5D,0x58,0x54,0x50,0x4B,0x47,0x43,0x3F,0x3B,0x37,0x33,0x30,0x2C,0x29,0x25,0x22,0x1F, 0x1C,0x19,0x16,0x14,0x11,0x0F,0x0D,0x0B,0x09,0x07,0x06,0x05,0x03,0x02,0x01,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x07,0x08,0x0A,0x0C, 0x0E,0x10,0x13,0x15,0x18,0x1A,0x1D,0x20,0x24,0x27,0x2A,0x2E,0x31,0x35,0x39,0x3 D,0x41,0x45,0x49,0x4D,0x52,0x56,0x5A,0x5F,0x63,0x68,0x6D,0x71,0x76,0x7A,0x7F}; void delay(uchar z){uchar x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com){rs=0;P0=com;delay(5); //用nop语句可以替代吗?ep=1;delay(5);ep=0;}void write_data(uchar date){rs=1;P0=date;delay(5); //用nop语句可以替代吗?ep=1;delay(5);ep=0;}void init_1602(){rw=0;write_com(0x38);delay(1);write_com(0x0c);delay(1);write_com(0x06);delay(1);write_com(0x01);delay(1);}void display_1602(uchar *v){uchar i=0;while(v[i]!='\0'){write_data(v[i]);i++;delay(1);}}void dealv(uchar amp){int i;i=amp*10;i=i/50;vv[0]=i/10+48;vv[1]='.';vv[2]=i%10+48;vv[3]='V';vv[4]='\0';}void dealf(){freq=fj[k];fv[0]=freq/100+48;fv[1]=freq%100/10+48;fv[2]=freq%10+48;fv[3]='H';fv[4]='z';fv[5]='\0';freq=0; //频率处理}void fudu(uchar amp){P1=amp;wr1=0;delay(1);wr1=1;}void keyscan1(){if(gn==0){delay(20);if(gn==0);{while(!gn);flag^=0x01;}}if(flag){dir1=0;if(up==0){delay(10);if(up==0);{while(!up);dir2^=1;amp+=5;if(amp>250) amp=0; //这是循环显示fudu(amp);dealv(amp);write_com(0x80+10);display_1602(vv);}}if(down==0){delay(100);if(down==0);{while(!down);dir2^=1;amp-=5;if(amp==0) amp=250;fudu(amp);dealv(amp);write_com(0x80+10);display_1602(vv);}}}else{dir1=1;if(up==0){delay(100);if(up==0);{while(!up);dir2^=1;k++;delay(10);if(k>39) k=0; //添加的判断函数dealf();write_com(0xc0+10);display_1602(fv);}}if(down==0){delay(80);if(down==0);{while(!down);dir2^=1;k--;delay(10); //if(k>=250) k=39; //增加的判断,当最小的时候回到最大,dealf();write_com(0xc0+10);display_1602(fv);}}}}void main(){uchar i;fudu(amp);init_1602();write_com(0x80);display_1602(v);write_com(0xc0);display_1602(f);dealv(amp);write_com(0x80+10);display_1602(vv);dealf();write_com(0x80+0x40+10);display_1602(fv);while(1){keyscan1();for(j=0;j<173;j++){P1=sin[j];wr2=0;for(i=sj[k];i>0;i--);//要注意此处延时的原理wr2=1;}}}五、性能分析本系统经实物测试以及液晶显示数据处理,能达到幅值步进0.1V,初始频率50HZ开始。