第五章基于单片机的波形发生器设计5.1波形发生器的原理介绍波形发生器的设计是利用D/A转换原理,将被测数字量转换成模拟量,并用模拟方式显示出低频信号源,如方波、三角波、正弦波等等。通常数字电压表都采用大规模的D/A转换集成电路,测量精度高,读数方便,在体积、重量、耗电、稳定性及可靠性等方面性能指标均明显优于指针式万用表。其中D/A转换器将输入的数字量转换成模拟量,逻辑控制电路产生控制信号,按规定的时序将D/A转换器中各组模拟开关接通或断开,保证D/A转换正常进行。本系统以单片机AT89S52为系统的控制核心,结合D/A转换芯片ADC0832设计一个简易波形发生器。波形幅度的调节通过调节D/A转换器的RFE端口的电压调节来实现,具体为加一个电位器调节电压。波形的频率通过单片机的程序来实现调节。通过调节拨码开关来实现波形频率的调节。5.1.2波形发生器电路图图11波形发生器电路图5.2芯片介绍5.2.1DAC08320832采用双缓冲接口方式,其传送控制端接地,输入所存允许断ILE与+5V电源相连,利用一个地址码进行二次输出操作,完成数据的传送和激动转换,第一次操作室P2.6为高电平,将P0口数据线上的数据锁存于DAC0832的输入寄存器中。第二次操作是写控制信号由效,传送控制端为低电平,将输入寄存器中的内容锁存入0832的DAC寄存器中,D/A转换器便开始对锁存于DAC寄存器的8位数据进行转换,约经过1/2时钟周期后,在输出端(IOUT2、IOUT1)建立稳定的电流输出。运放的作用是将0832输出的模拟电流信号转换为电压波形。DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。DAC0832的外部引脚及功能介绍图如下:VREF8GND3VCC20CS1WR12DI34DI25DI16D107RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U1DAC0832图12DAC0832引脚图DAC0832内部结构资料:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接DI0~DI7:数据输入线,TLL电平。ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线,低电平有效。WR1:为输入寄存器的写选通信号。XFER:数据传送控制信号输入线,低电平有效。WR2:为DAC寄存器写选通输入线。Iout1:电流输出线。当输入全为1时Iout1最大。Iout2:电流输出线。其值与Iout1之和为一常数。Rfb:反馈信号输入线,芯片内部有反馈电阻.Vcc:电源输入线(+5v~+15v)Vref:基准电压输入线(-10v~+10v)AGND:模拟地,摸拟信号和基准电源的参考地.DGND:数字地,两种地线在基准电源处共地比较好5.3硬件焊接5.3.1元件清单表5波形发生器元件清单元件规格数量制板1ua7412ua741的对应接插器2DAC08321DAC0832的对应接插器1电阻315k2电阻47.5k1排针13针1导线若干拨码开关1电阻200欧姆8单片机最小系统版1按键4电位器10k15.3.2硬件实图图13波发生器硬件实图5.4波形发生器程序设计5.4.1设计框图5.4.2波形发生器程序ORG0000HAJMPSTARTORG0030HSTART:CLRP3.6JNBP3.2,MAINJNBP3.3,MAIN1JNBP3.4,MAIN2JNBP3.5,MAIN3SJMPSTARTKEYCHECK:JNBP3.2,MAINJNBP3.3,MAIN1JNBP3.4,MAIN2JNBP3.5,MAIN3RETMAIN:MOVR0,#7FH;产生锯齿波MOVA,#00HLOOP3:MOVX@R0,A函数发生器的设计K3键三角波K4键方波K5键正弦波K1键锯齿波INCALCALLKEYCHECKSJMPLOOP3LCALLDELAYLJMPSTARTMAIN1:MOVDPTR,#7FFFH;产生三角波MOVA,#00HLOOP1:MOVX@DPTR,AINCANOPCJNEA,#0FFH,LOOP1LOOP2:DECAMOVX@DPTR,ACJNEA,#00H,LOOP2INCALCALLKEYCHECKNOPAJMPLOOP1LCALLKEYCHECKLCALLDELAYLJMPSTARTMAIN2:MOVDPTR,#7FFFH;产生矩形波LOOP4:MOVA,#00HMOVX@DPTR,ALCALLDELAYLCALLKEYCHECKMOVA,#0FEHMOVX@DPTR,ALCALLDELAYLCALLKEYCHECKLJMPLOOP4MAIN3:;产生正弦波LOOP5:MOVA,R1MOVDPTR,#SETTABMOVCA,@A+DPTRMOVDPTR,#07FFFHMOVX@DPTR,ALCALLKEYCHECKINCR1SJMPLOOP5SETTAB:DB00H,00H,00H,00H,00H,00H,01H,02HDB02H,03H,04H,05H,06H,07H,08H,09HDB0AH,0BH,0DH,0EH,10H,11H,13H,15HDB16H,18H,1AH,1CH,1EH,20H,22H,25HDB27H,29H,2BH,2EH,30H,33H,35H,38HDB3AH,3DH,40H,43H,45H,48H,4CH,4EHDB51H,55H,57H,5AH,5DH,60H,63H,66HDB69H,6CH,6FH,72H,76H,79H,7CH,80HDB80H,83H,86H,89H,8DH,90H,93H,96HDB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAHDB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAHDB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7HDB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1HDB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99HDB96H,93H,90H,8DH,89H,86H,83H,80HDB80H,7CH,79H,78H,72H,6FH,6CH,69HDB66H,63H,60H,5DH,5AH,57H,55H,51HDB4EH,4CH,48H,45H,43H,40H,3DH,3AHDB38H,35H,33H,30H,2EH,2BH,29H,27HDB25H,22H,20H,1EH,1CH,1AH,18H,16HDB15H,13H,11H,10H,0EH,0DH,0BH,0AHDB09H,08H,07H,06H,05H,04H,03H,02HDB02H,01H,00H,00H,00H,00H,00H,00HDELAY:MOVR5,#1D1:MOVR6,#1D2:MOVR7,#5DJNZR7,$DJZZR6,D2DJNZR3,D1RETEND5.5示波器波形5.5.1三角波波形图14三角波波形5.5.2矩形波波形图15锯形波波形5.5.3锯齿波波形图16锯齿波波形5.5.4正弦波波形图17正弦波波形