1、DDS信号发生器实验评测报告含原理图PCB和代码评阅成绩电子信息技术综合实训报告格式 竞赛题名称: DDS信号发生器的设计 队员名称: 评阅人签名:2018年9月15日竞赛题名称:DDS信号发生器的设计1、设计思路描述:本设计是一个以AT89C51单片机为核心基于DAC0832芯片的DDS信号发生器。信号发生器采用数字波形合成技术,通过硬件电路和软件程序相结合,可输出正弦波和三角波,波形的转换可通过软件控制。b5E2RGbCAP本设计通过按键选择波形,经过AT89C51单片机将数据输出到DAC0832,由数字信号转变为模拟信号,再通过运放器稳定地输出到示波器上。p1EanqFDPw原理框图如下
2、:2、硬件电路图:DAC0832是采样频率为八位的D/A转换器件,芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等。D/A转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接。DXDiTa9E3d下面是DAC0832引脚图和内部结构电路图 竞赛题名称: DDS信号发生器的设计 DAC0832引脚功能说明:DI0DI7:数据输入线,T
3、LL电平。 ILE:数据锁存允许控制信号输入线,高电平有效。 CS:片选信号输入线,低电平有效。 WR1:为输入寄存器的写选通信号。 XFER:数据传送控制信号输入线,低电平有效。 WR2:为DAC寄存器写选通输入线。 Iout1:电流输出线。当输入全为1时Iout1最大。 Iout2: 电流输出线。其值与Iout1之和为一常数。 Rfb:反馈信号输入线,芯片内部有反馈电阻。Vcc:电源输入线(+5v+15v Vref:基准电压输入线(-10v+10v AGND:模拟地,摸拟信号和基准电源的参考地。DGND:数字地,两种地线在基准电源处共地比较好。主控电路及数模转换电路分别如下:主控电路竞赛题
4、名称: DDS信号发生器的设计 数模转换电路3软件流程图:竞赛题名称: DDS信号发生器的设计 4测试方法描述:运用proteus软件设计好电路图,将程序代码编译好以后载入proteus中的AT89C51芯片进行仿真。RTCrpUDGiT5测试数据:仿真结果如下图所示:三角波正弦波6数据分析与结论:经过proteus软件的仿真,在示波器中完整地显示出了三角波和正弦波,整个电路设计基本成功。附件1:整体电路图:附件2:PCB图:附件3:程序设计:#include reg51.hunsigned char flag。bit time。unsigned char sin(unsigned char
5、x unsigned char code sin_tab=125,128,131,134,138,141,144,147,150,153,156,159, 162,165,168,171,174,177,180,182,185,188,191,193,196,198,201,203, 206,208,211,213,215,217,219,221,223,225,227,229,231,232,234,235, 237,238,239,241,242,243,244,245,246,246,247,248,248,249,249,250, 250,250,250,250,250,250,250
6、,249,249,248,248,247,246,246,245,244, 243,242,241,239,238,237,235,234,232,231,229,227,225,223,221,219, 217,215,213,211,208,206,203,201,198,196,193,191,188,185,182,180, 177,174,171,168,165,162,159,156,153,150,147,144,141,138,134,131, 128,125,122,119,116,112,109,106,103,100,97,94,91,88,85,82,79,76,73,
7、 70,68,65,62,59,57,54,52,49,47,44,42,39,37,35,33,31,29,27,25,27,29,27,25,23,21, 19,18,16,15,13,12,11,9,8,7,6,5,4,4,3,2,2,1,1,0,0,0,0,0,0,0,0,1,1,2, 2,3,4,4,5,6,7,8,9,11,12,13,15,16,18,19,21,23,25,27,29,31,33,35,37, 39,42,44,47,49,52,54,57,59,62,65,68,70,73,76,79,82,85,88,97,94,97, 100,103,106,109,11
8、2,116,119,122。 return sin_tabx。 5PCzVD7HxAvoid DAC0832(unsigned char x P2=x。void main( unsigned char i。 i=0。 TMOD=0X02。 /低半字节用来定义定时器0,用于控制输出波的频率 TH0=256-40。 /定时时间 ET0=1。 /定时中断允许控制位,允许 IT0=1。 /外中断0触发方式控制位,低电平有效 IT1=1。 EX0=1。 /外中断0允许控制位,允许 EX1=1。 EA=1。 /中断允许总控制位,允许 TR0=1。 /启动定时器工作 flag=0。 /开始时无输出 while(1 if(time=1 time=0。 if(i249 i=0。 else i+。 switch(flag case 0:DAC0832(0。 break。 case 1: /三角波 if(i125 DAC0832(250-i。 else DAC0832(i。 break。 case 2: /正弦波 DAC0832(sin(i。 break。 default: break。 void time0(interrupt 1time=1。void int0( interrupt 0flag=1。void int1( interrupt 2flag=2。