业余无线电DDS的制作

合集下载

DDS信号发生器设计

DDS信号发生器设计

DDS信号发生器设计DDS(直接数字频率合成)信号发生器是一种数字技术制造高质量频率合成信号的装备。

本文将介绍DDS信号发生器的设计原理、关键技术和性能评估。

一、设计原理:DDS信号发生器的设计原理基于数字频率合成技术,其核心是数字信号处理器(DSP)和数字锁相环(PLL)。

DDS信号发生器通过频率控制字(FTW)和相位控制字(PTW)控制DDS芯片的输出频率、波形和相位。

在DDS芯片中,数字频率合成器通过数模转换器将较高的待合成信号转换为模拟信号,进而通过滤波器、放大器等模拟电路产生高质量的输出信号。

二、关键技术:1.高精度的频率合成:DDS信号发生器需要具备高精度的频率合成能力。

此需求需要DDS芯片具备较高的分辨率和较低的相位噪声。

分辨率是DDS芯片产生频率变化最小步进的能力,通常用位数来表示。

较高的分辨率可以确保DDS信号发生器输出的频率表现更加连续平滑。

相位噪声则与DDS芯片的时钟抖动、量化噪声等因素有关,较低的相位噪声能够保证信号在频谱中的纯净度。

2.高动态范围的输出:DDS信号发生器通常需要提供广泛的频率范围和大范围内的输出功率调节。

此需求需要DDS芯片具备高动态范围的输出能力。

动态范围包括频率动态范围和幅度动态范围。

频率动态范围是指DDS信号发生器能够合成的频率范围,幅度动态范围则指DDS信号发生器能够调节的输出功率范围。

通过优化DDS芯片的设计,可以提高输出的动态范围。

3.高速的输出信号更新:DDS信号发生器需要具备快速更新输出信号的能力。

通常,DDS芯片具备更高的时钟频率和更大的内存储存能力可以实现更高的输出信号更新速率。

高速更新输出信号可以保证DDS信号发生器能够满足实时调节信号的需求。

三、性能评估:DDS信号发生器的性能评估包括频率稳定度、相位噪声、调制信号质量等几个方面。

频率稳定度是指DDS信号发生器输出频率的稳定性,通常通过测量短期和长期的频率漂移来评估。

相位噪声则是度量DDS信号发生器输出信号相位纯净度的参数,使用杂散频谱测量方法和相位噪声密度谱评估。

DDS设计步骤

DDS设计步骤

实验九DDS信号发生器设计步骤(1)新建一个文件夹,命名为“DDS”。

把实验八中的MIF128.MIF 文件和ROM78.VHD文件和ROM78.bsf复制到“DDS”文件夹中。

(2)新建一个原理图文件,命名为TOP,放一个INPUT后,保存到“DDS”文件夹中,建立工程。

(3)按照以下步骤设计累加器。

按照下图,选择“tools”菜单中的“megawizard…….”,在下图按“NEXT”。

下图的左边选择“LPM_ADD_SUB”,右边找到“DDS”文件夹,输入文件名AA1,按“NEXT”。

在下图按“NEXT”。

在下图按“NEXT”。

在下图按“NEXT”。

在下图选择单选钮“YES,I….”,按“NEXT”。

在下图按“NEXT”。

在下图中”aa1.bsf”前面打钩,按“finish”。

(4)按照以下步骤设计寄存器。

按照下图,选择“tools”菜单中的“megawizard…….”,在下图按“NEXT”。

下图的左边选择“LPM_FF”,右边找到“DDS”文件夹,输入文件名DFF32,按“NEXT”。

接下来按3次NEXT后,按FINISHI,完成寄存器设计。

(5)往工程中添加已经完成的代码和符号见下图,选择“PROJECT”菜单的“ADD/REMOVE….”菜单项。

然后点击浏览按钮,找到MIF128.MIF文件点击”ADD”按钮;找到ROM78.VHD文件点击”ADD”按钮;找到ROM78.bsf文件点击”ADD”按钮。

(6)打开TOP.bdf,按照下图放入所需符号并连线。

(7)编译,仿真。

下图是仿真波形图的局部。

DDS信号发生器设计和实现

DDS信号发生器设计和实现

DDS信号发生器设计和实现一、引言DDS(Direct Digital Synthesis)是一种基于数字信号处理技术的信号发生器设计方法。

DDS信号发生器是通过数字的方式直接生成模拟信号,相比传统的方法,具有频率稳定、调制灵活、抗干扰能力强等优势,广泛应用于频率合成、通信系统测试、医疗设备、雷达系统等领域。

本文将介绍DDS信号发生器的设计和实现。

二、DDS信号发生器的原理1.相位累加器:负责生成一个连续增加的相位角,通常以一个固定精度的二进制数表示。

2.频率控制器:用于控制相位累加器的相位角速度,从而控制信号的频率。

3.数字到模拟转换器:将相位累加器的输出转换为模拟信号。

4.系统时钟:提供时钟信号给相位累加器和频率控制器。

三、DDS信号发生器的设计步骤1.确定要生成的信号的频率范围和精度需求。

2. 选择适合的数字信号处理器或FPGA进行设计。

常用的DSP芯片有AD9910、AD9858等,FPGA则可选择Xilinx、Altera等厂商的产品。

3.根据需求设计相位累加器和频率控制器,相位累加器的位数和频率控制器的速度决定了信号的精度。

4.确定数字到模拟转换器的采样率和分辨率,选择合适的D/A转换芯片。

5. 编写控制程序和信号生成算法,包括相位累加器和频率控制器的控制。

可以使用C语言、Verilog HDL等进行编程。

6.进行硬件的布局和连线,将各个组件按照设计要求进行连接。

7.进行电源和接地的设计,确保稳定的供电和减少噪声干扰。

8.进行数字信号处理器或FPGA的编程,烧录控制程序。

9.进行信号输出测试,调整参数和算法,确保生成的信号符合要求。

10.编写使用说明书和性能测试报告,并对信号发生器进行完整性和可靠性测试。

四、DDS信号发生器的实现案例以实现一个简单的正弦信号发生器为例,介绍DDS信号发生器的实现过程。

1.确定生成的正弦信号范围为1Hz~10kHz,精度为0.1Hz。

2. 选择Xilinx的FPGA芯片,根据需要设计12位的相位累加器和24位的频率控制器。

DDS信号源设计原理

DDS信号源设计原理

DDS信号源设计原理DDS(Direct Digital Synthesis,直接数字合成)是一种通过数字方式生成频率可调的信号的技术。

它主要由数字频率合成器(NCO)、数字控制的相位发生器和数字滤波器组成。

DDS信号源的设计原理涉及到数字信号处理、频率合成、相位发生和滤波等方面。

首先,DDS信号源的核心是数字频率合成器(NCO),它可以生成具有可调频率和可编程幅度的周期性信号。

NCO通过将一个参考时钟的频率分频得到一个相对稳定的时钟信号,并使用累加器来计算相位增量,然后通过查表的方式生成所需频率的正弦(或余弦)波形。

由于NCO的频率可以通过改变相位增量来实现,因此可以非常方便地实现频率的可编程性。

其次,DDS信号源在频率合成的过程中,利用相位发生器来实现频率可调。

相位发生器的作用是将相位增量乘以一个系数(在一定精度下实现乘法可以采用简化的移位和累加操作),得到每个时刻的相位值,并利用相位值查询三角函数表得到对应的幅度值。

通过改变相位增量和系数,可以实现对频率的精确控制。

此外,DDS信号源还采用数字滤波器来去除合成信号中的高频成分和噪声。

由于NCO合成的信号是采样间隔上是离散的,因此会引入非线性失真和混频等问题,这些问题都会导致合成信号中存在高频成分。

数字滤波器可以通过差分方程或频域滤波器的方式实现,将合成信号的频谱进行滤波,剔除不需要的高频成分和噪声。

总的来说,DDS信号源的设计原理可以归结为以下几个步骤:1)使用NCO生成参考时钟的分频时钟和相位增量;2)采用相位发生器将相位增量和系数相乘得到相位值;3)查表得到对应的幅度值;4)利用数字滤波器对合成信号进行滤波,去除高频成分和噪声;5)输出滤波后的合成信号。

DDS信号源具有以下优点:1)频率可调范围广;2)分辨率高,频率精度高;3)相位连续性好,相位精度高;4)幅度可编程;5)输出信号稳定性好;6)具有快速切换、变频和调制的能力等。

因此,在许多领域,例如无线通信、雷达测距、音频信号处理等方面都广泛应用了DDS信号源技术。

DDS信号发生器设计

DDS信号发生器设计

DDS信号发生器设计DDS(Direct Digital Synthesis)信号发生器是一种数字信号发生器,通过数字方式产生任意频率、任意波形的信号。

在信号处理中,DDS信号发生器具有重要的作用,例如在通信系统、音频信号生成、测试测量仪器等领域都需要使用到DDS信号发生器。

DDS信号发生器基本原理是通过数字的方式产生一个频率为Fs的正弦波,然后对该正弦波进行相位和幅度的调制,从而得到所需要的信号。

具体来说,DDS信号发生器主要由相位累加器、相位查找表、数字控制振荡器(NCO)以及低通滤波器等组成。

首先是相位累加器,它主要用于产生相位信息。

通过一个计时器不断累加一个步进量,得到一个连续变化的相位值。

相位累加器的工作原理是通过一个加法器加上步进量,然后将结果输出给相位查找表。

接下来是相位查找表,它主要用于存储正弦波的值。

相位查找表中存储了一个完整周期的正弦波值,根据相位累加器的输出值,可以从相位查找表中读取相应的正弦波值。

然后是数字控制振荡器(NCO),它主要用于控制频率。

通过调整相位累加器的步进量,可以改变输出信号的频率。

当相位累加器的步进量为1时,输出信号的频率为Fs。

当步进量为2时,输出信号的频率为Fs/2,以此类推。

最后是低通滤波器,它主要用于去除由于相位调制引起的高频成分。

由于DDS信号发生器在频率上是离散的,会产生一些高频的杂散信号。

通过使用低通滤波器,可以去除这些高频成分,得到我们所需要的信号。

综上所述,DDS信号发生器通过数字方式产生信号,具有灵活性高、调制精度高的优点。

在DDS信号发生器的设计中,需要注意一些关键参数的选择,例如采样率、分辨率、时钟稳定性等。

此外,还需要注意信号输出的波形质量、相位噪声、非线性失真等指标的优化。

在实际应用中,DDS信号发生器通常需要结合外部DAC(数字模拟转换器)芯片进行实现。

DAC芯片将数字信号转换为模拟信号,从而输出到各种应用中。

总而言之,DDS信号发生器是一种重要的数字信号发生器,通过数字方式产生任意频率、任意波形的信号。

dds信号源的工作原理

dds信号源的工作原理

dds信号源的工作原理好吧,让我们聊聊dds信号源的工作原理。

dds可不是一个陌生的词,它的全称是直接数字合成。

想象一下,你正在听一首欢快的音乐,这个音乐其实是由各种不同频率的声音组合而成的,dds信号源就像一个超级厉害的DJ,能够把各种声音完美混合,制造出你想要的音效。

它就像魔法师一样,用数字信号把音频从简单的波形变成复杂的音乐。

你知道,音波就像水波一样,有高有低,有快有慢,正是这些变化让音乐变得丰富多彩。

说到工作原理,dds信号源的核心是相位累加器。

简单点说,这就像一位计算员,不断在为每一个时刻计算相位。

想象一下,你在听到一首歌的节拍,那个节拍就是相位。

每一秒钟,dds信号源都会更新一次,就像你每次眨眼都能看到不同的风景一样。

通过这个累加器,dds能够生成不同频率的波形,比如正弦波、方波、三角波等,就像调音师在调音台上调节不同音轨。

dds信号源的灵活性超强!它可以很轻松地改变频率,就像你随时可以换台电视节目一样。

如果你需要一个低频的信号,轻松搞定;如果你想要高频的,那也是毫无问题。

听起来是不是很酷?再加上,它的精度也很高,能够产生非常稳定的信号,这对于许多电子设备来说,简直是如虎添翼。

我们聊聊它的应用。

dds信号源在通信、音频合成、测量等领域都大显身手。

比如在无线通信中,信号需要经过调制才能有效传输,dds正是这个过程中不可或缺的帮手。

它能够以极高的精度生成各种调制信号,确保信息能够准确无误地传递。

就像传递秘密一样,你得确保每一个细节都完美无缺。

再说音频合成,想象一下你在一场音乐会上,舞台上灯光闪烁,乐队正在尽情演奏。

dds信号源能为这些乐器提供各种各样的音效,甚至可以模拟不同乐器的声音。

嘿,谁说只有真正的乐器才能发出美妙的声音?通过数字合成,任何人都能成为音乐大师,随心所欲地创造出自己独特的旋律。

测量也是dds信号源的重要战场。

在测试设备时,稳定的信号可以帮助工程师快速找出问题,正如一位侦探在寻找线索。

简易DDS频率合成器设计

简易DDS频率合成器设计

目录第一章系统分析与设计方案 (1)1.1 DDS设计原理介绍 (1)1.2直接数字式频率合成器(DDS)的基本结构 (1)1.3基本DDS结构的常用参量计算 (1)1.3.1 DDS的输出频率f out 。

(1)1.3.2 DDS产生的相位。

(1)1.3.3 DDS的频率分辨率。

(1)1.3.4 DDS的频率输入字FW计算。

(2)1.4 DDS的工作原理 (2)1.4.1相位累加器与频率控制字FW (2)1.4.2 相位控制字PW (2)第二章软件设计 (3)2.1 Verilog HDL程序 (3)2.1.1 8位加法器程序代码 (3)2.1.2 16位加法器程序代码 (3)2.1.3 8位寄存器程序代码 (3)2.1.4 16位寄存器程序代码 (4)2.1.5 dds代码程序 (4)2.1.6 ROM的创建 (4)第三章实验仿真 (5)3.1 原理图 (5)3.1.1 ROM (5)3.1.2 八位加法器 (5)3.1.3 十六位加法器 (5)3.1.4 八位寄存器 (6)3.1.5 十六位寄存器 (6)3.2 仿真波形 (6)3.3 D/A转换电路 (9)3.3.1 DAC0832结构及工作原理 (9)3.3.2 D/A转换电路模块 (10)3.4 实验结果 (10)3.5 调试过程 (10)3.5.1对adder8、adder16、reg8、reg16的调试 (10)3.5.2. D/A转换电路的调试 (10)3.5.3.输出波形的调试 (10)第四章心得体会 (11)第五章参考文献 (12)第一章系统分析与设计方案1.1 DDS设计原理介绍DDS即Direct Digital Synthesizer数字频率合成器,是一种基于全数字技术,从相位概念出发直接合成所需波形的一种频率合成技术,是一种新型的数字频率合成技术。

具有相对带宽大、频率转换时间短、分辨力高、相位连续性好等优点,很容易实现频率、相位和幅度的数控调制,广泛应用于通讯领域。

DDS信号发生器制作

DDS信号发生器制作

DDS信号发生器制作DDS(Direct Digital Synthesis)信号发生器是一种数字信号发生器,它使用数字信号处理技术直接产生目标频率的信号。

相比于传统的模拟信号发生器,DDS信号发生器具有更高的频率稳定性、更好的频谱纯净度和更灵活的频率、相位和振幅调节能力。

在许多仪器测量、通信、雷达、医学诊断等领域都有着广泛的应用。

DDS信号发生器的核心是一个数字信号处理器(DSP),其基本原理是使用一个定时器或频率计数器作为时基,通过特殊的数字频率控制字(Frequency Tuning Word)对一个数字控制振荡器(NCO)进行调节,从而产生目标频率的输出信号。

频率控制字可以通过不同的方法输入,如通过前端面板控制、通过计算机软件控制等。

通过不同的控制字输入,DDS信号发生器可以产生不同频率、相位、振幅的输出信号。

DDS信号发生器的基本结构包括频率控制模块、相位控制模块和振幅控制模块。

频率控制模块用于选择目标输出频率,并计算对应的频率控制字;相位控制模块用于选择目标输出相位,并计算对应的相位控制字;振幅控制模块用于选择目标输出振幅,并计算对应的振幅控制字。

这些控制字通过直接控制数字控制振荡器的相位累加、频率增量和振幅增益,从而实现对输出信号的调节。

DDS信号发生器在实际应用中,通常需要具备以下功能:输出频率范围广、频率分辨率高、频率稳定度好、低谐波和噪声水平、精确的相位调节、输出波形形状可变等。

为了达到这些要求,DDS信号发生器通常包括高性能的时钟源、高速数字模拟转换器、高速存储器、高速加法器以及高精度的参考时钟等核心组件。

1.硬件设计:包括选取合适的数字信号处理器和外围电路、设计时钟源和频率控制模块、选择和设计高速数字模拟转换器等。

2.软件设计:包括编写数字信号处理器的程序,实现频率、相位和振幅的控制、设置输出波形的形状和参数等功能。

3.系统调试:包括硬件的电路调试和软件的程序调试,确保整个DDS 信号发生器的运行稳定和输出信号的准确性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

业余无线电DDS的制作DDS顾名思义就是数字直接频率合成器,在早期的无线电设备都是用的模拟合成器,如:MC145151P,MC145152等,这些合成器物美价廉,但是调试麻烦,VCO频率漂移,温度影响等。

在这里,以AD9850,AD9851,AD9951为代表的DDS在广大无线电爱好者中都有很好的口碑和应用。

我在DIY以NE602和MC1496P的QRP机器时,DIY了以AD9851,12864(带字库)的LCD显示器的DDS。

给广大的HAM朋友在DIY DDS时作参考。

单片机:STC89C52LCD:12864,带字库,这样的选择可以显示一些中文。

DDS:AD9851。

各个接口在程序里有定义,直接按定义的接口连接硬件。

DDS的初始值为14.270MHZ,改变程序的90000就可以改变中频的频率。

程序如下:#include<reg52.h>// #include<DS1820.h>sbit clk=P2^0;sbit fq=P2^1;sbit rst=P2^2;sbit dat=P2^3;sbit lcd_rs=P2^4;sbit lcd_rw=P2^5;sbit lcd_en=P2^6;sbit lcd_rst=P2^7;sbit lcd_psb=P1^7;sbit fqup=P3^2;sbit fqdown=P3^3;sbit bj=P3^4;sbit mode=P3^5;#define ldata P0#define uchar unsigned char#define uint unsigned intunsigned char phase_word=0x00;unsigned char power_down=0x00;unsigned char mult=0x01;unsigned char ww[5]={0x09,0x0e,0x38,0xe3,0x8e};unsigned long freq,set_value,aa,bb,cc,da,ee; //uchar a,b,c,d,e,f,g,h,i,dd,zz,kk;uint key;void delay_us(unsigned int tm){while(tm--);}//***************LCD判忙********************************************** bit lcd_busy(){bit result;lcd_rs=0;lcd_rw=1;lcd_en=1;delay_us(10);result=(bit)(P0&0x80);lcd_en=0;return(result);}//*************LCD写指令*************************** void lcd_cmd(uchar cmd){while(lcd_busy());lcd_rs=0;lcd_rw=0;lcd_en=0;delay_us(4);ldata=cmd;delay_us(4);lcd_en=1;delay_us(4);lcd_en=0;}//**************LCD写数据****************************** void lcd_dat(uchar dat){while(lcd_busy());lcd_rs=1;lcd_rw=0;lcd_en=0;ldata=dat;delay_us(4);lcd_en=1;delay_us(4);lcd_en=0;}//*********************LCD初始化******************** void lcd_init(){lcd_psb=1;lcd_rst=0;delay_us(3000);lcd_rst=1;delay_us(3000);lcd_cmd(0x34);delay_us(5000);lcd_cmd(0x30);delay_us(5000);lcd_cmd(0x0c);delay_us(5000);lcd_cmd(0x04);delay_us(5000);lcd_cmd(0x01);delay_us(5000);}//*****************************************void lcd_clr(){lcd_cmd(0x01);delay_us(5);}//************************************************ void init_dds(){rst=1;delay_us(10000);rst=0;delay_us(10000);fq=0;delay_us(2);clk=1;delay_us(2);clk=0;delay_us(2);fq=1;delay_us(2);fq=0;delay_us(2);}//写数据void write_dds(unsigned long dds) {unsigned char i,j,temp;ww[0]=dds&0xff;ww[1]=(dds>>8)&0xff;ww[2]=(dds>>16)&0xff;ww[3]=dds>>24;ww[4]=(phase_word<<3)||power_down<<2||mult; fq=0;clk=0;for(i=0;i<5;i++){temp=ww[i];for(j=0;j<8;j++){clk=0;if(temp&0x01)dat=1;else dat=0;delay_us(2);clk=1;delay_us(2);temp>>=1;}}clk=0;fq=1;delay_us(3);fq=0;}//写频率void write_freq(unsigned long freq){unsigned long dds;dds=23.860929422*freq;//23.860929422write_dds(dds);}//********************数据转换************************** void lcd_zh(){a=cc/10000000+0x30;b=(cc/1000000)%10+0x30;c=(cc%1000000)/100000+0x30;d=(cc%100000)/10000+0x30;e=(cc%10000)/1000+0x30;f=(cc%1000)/100+0x30;g=(cc%100)/10+0x30;h=cc%10+0x30;}//********************显示函数**************************void lcd_display(){uchar i;for(i=0;i<1;i++){// lcd_clr();switch(zz){lcd_clr();case0:lcd_cmd(0x81);delay_us(10);lcd_dat(0x4c);delay_us(10);lcd_dat(0x53) ;delay_us(2);lcd_dat(0x42);delay_us(2);break;//LSBcase1:lcd_cmd(0x81);delay_us(10);lcd_dat(0x55);delay_us(10);lcd_dat(0x53) ;delay_us(2);lcd_dat(0x42);delay_us(2);break;//USBcase2:lcd_cmd(0x81);delay_us(10);lcd_dat(0x41);delay_us(10);lcd_dat(0x4d) ;delay_us(2);lcd_dat(0x20);delay_us(2);break;//AMcase3:lcd_cmd(0x81);delay_us(10);lcd_dat(0x46);delay_us(10);lcd_dat(0x4d) ;delay_us(2);lcd_dat(0x20);delay_us(2);break;//FMcase4:lcd_cmd(0x81);delay_us(10);lcd_dat(0x43);delay_us(10);lcd_dat(0x57) ;delay_us(2);lcd_dat(0x20);delay_us(2);break;//CWcase5:lcd_cmd(0x81);delay_us(10);lcd_dat(0x46);delay_us(10);lcd_dat(0x53) ;delay_us(2);lcd_dat(0x4b);delay_us(2);break;//FSK}lcd_cmd(0x86);delay_us(10);lcd_dat(0x1b);delay_us(2);lcd_dat(kk);delay_us(2);lcd_cmd(0x90);delay_us(2);lcd_dat(0x20);delay_us(2);lcd_dat(a);delay_us(2);lcd_dat(b);delay_us(2);lcd_dat(0x2e);delay_us(2);lcd_dat(c); delay_us(2); lcd_dat(d); delay_us(2); lcd_dat(e); delay_us(2); lcd_dat(0x2e); delay_us(2); lcd_dat(f); delay_us(2); lcd_dat(g); delay_us(2); lcd_dat(h); delay_us(2); lcd_cmd(0x96); delay_us(10); lcd_dat(0x4d); delay_us(2); lcd_dat(0x48); delay_us(2); lcd_dat(0x7a); delay_us(2);}}void scan_key(){fqup=1;fqdown=1;bj=1;mode=1;if(key<10000)key++;if(fqup==0){if(key==6){switch(dd){case 0: bb=aa;aa=aa+1;cc=aa-da;break;case 1: bb=aa;aa=aa+10;cc=aa-da;break;case 2: bb=aa;aa=aa+100;cc=aa-da;break;case 3: bb=aa;aa=aa+1000;cc=aa-da;break;case 4: bb=aa;aa=aa+10000;cc=aa-da;break;case 5: bb=aa;aa=aa+100000;cc=aa-da;break;case 6: bb=aa;aa=aa+1000000;cc=aa-da;break;}}}else if(fqdown==0){if(key==6){switch(dd){case 0: bb=aa;aa=aa-1;cc=aa-da;break;case 1: bb=aa;aa=aa-10;cc=aa-da;break;case 2: bb=aa;aa=aa-100;cc=aa-da;break;case 3: bb=aa;aa=aa-1000;cc=aa-da;break;case 4: bb=aa;aa=aa-10000;cc=aa-da;break;case 5: bb=aa;aa=aa-100000;cc=aa-da;break;case 6: bb=aa;aa=aa-1000000;cc=aa-da;break;}}}else if(bj==0) //步进选择{if(key==6){dd++;kk=dd;kk=kk+0x31;if(dd==6){kk=0x31;dd=0;}}}else if(mode==0){if(key==6){zz++;if(zz==6)zz=0;switch(zz){case 0:if(zz==5){bb=aa;aa=aa-700;aa=aa-1500;da=da-1500;break;}else {aa=aa-3000;da=da-3000;break;} //LSB,这里有问题待调试case 1:bb=aa;aa=aa+3000;da=da+3000;break;//USBcase 2:bb=aa;aa=aa-1500;da=da-1500;break; //AMcase 3:bb=aa;aa=aa;da=da;break;//FMcase 4:bb=aa;aa=aa-700;da=da;break;//CWcase 5:bb=aa;aa=aa+700;da=da;break;//FSK}}}else key=0;}//*************主程序***************************** void main(void){P0=0;P1=0;P2=0;P3=1;lcd_clr();// TCON=0x05;// IE=0x85;lcd_init();init_dds();zz=1;aa=23270000+1500;da=9000000+1500;cc=aa-da;bb=aa;write_freq(aa);lcd_zh();kk=0x31;lcd_display();while(1){scan_key();if(aa!=bb){write_freq(aa);lcd_zh();}lcd_display();}}提供一张在网上的参考图图中接口可能与程序中定义不同,DIY时要更改。

相关文档
最新文档