
数事技术与血用
波形发生器的设计
明坤刘康旭
山东曲阜273100)
(曲阜师范大学
设计开发
摘要:此系统是基于予STC89C52RC单片机的波形信号发生器。使用STC89C52RC单片机作为控制核心,该系统由数字/模根转换电路(DAC0832)、 PCF8951转换电路、运放电路(LM324)、按健电路和LM016L液晶显承屏等组成。通过按健可控制方流、三角波、锡齿流、梯形波、正弦波的产生,频率幅度可调节,在不同的接口处同时输出三路波形(一路方波,两路可变相同波形),并通过液晶显示屏显示。设计方法简单、性能良好,此系统可在多种需要低频信号的场所使用,使其具有良好的实用性。
关键词:51单片机数字模拟转换电露速放电路LM016L液晶显示屏中图分类号:TN741
文献标识码:A
1系统的设计指标
(1)产生指定波形可以通过DAC来实现,不同波形产生实质上是对输出的二进制数字量进行相应改变来实现的。本题目中,方波信号是利用定时器中断产生的,每次中断时,将输出的信号按位反即可,三角波信号是将输出的二进制数字信号依次加1,达到0xf时依次减1,并实时将数字信号经D/A转换得到;锯齿波信号是将输出的二进制数字信号依次加1,达到0xff时置为0x00,并实时将数字信号经D/A转换得到的,(2)梯形波是将输出的二进制数字信号依次加 1,达到0xff时保持一段时间,然后依次减1直至0x00,并实时将数字信号经D/A转换得到的:(3)正弦波是利用MATLAB将正弦曲线均匀取样后,得到等间隔时刻的y方向上的二进制数值,然后依次输出后经D/A转换得到。
对于该波形发生器的设计,我们采用了以STC89C52单片机芯片作为核心处理器,编程实现各种不同类型信号的产生,最后再把波形输出到示波器上。结构简单,思路井并有条。根据设计的基本要求,我们又把其细分为不同的功能模块,各个功能模块相互联系,相
互协调,通过单片机程序构成一个统一的整体。 2系统的软件设计
核心程序,
void sanjiao)//三角波 writc_com(0x01),
write_com(0x80+0x01),for(i=0,(table1[i]1 '),i++)
writc_data(tablcl[il),
delayms(u), fiagl=l,
while( flag1 )
for(i=0x00,i<0xff,i++)
SBUF=i, while(!TI), toL
write_data(table2(iD),
delayms(1), flagl=l,
while( flegl )
for(i0x00,f<0xff,++)
SBUF=i. while(!TI), TI = o,
P2-i DAC(i),
c8_wrl=0,"0dour nop.0,
文章编号:1007-9416(2015)07-0183-01
P2=i, DACi),
cs_wrl=0,*0~dor a(-dour
delay(spd),
for(i0xff,i>0x00.i)
SBUFwi. while(!TD),"o
P2=it DACG),"o'dor"o"dor cs_wrl=l,
delay(speed) cs_wr1=0, voidtixing0//梯形波 write_com(0x01), write_com(0x:80+0x01),
for(i0,(table2[i]1 *),i++)
cs_wrl=l, deiay(speed),
voidzhengxianO //正弦波
1write com(0x01), write_com(0x80+0x01),
for(i0,(table3lill = "V0'),i++) write_data(table3iD),
delayms(1), fiagl1,
cs.wrl-l, delay(spoed);
for(i0xff,i>0x00,i--)
SBUFi while(!TI),'o P2=0xff. DAC(oxfm),*0[ms*()"dour""0'dor 1[6(poxs)Mejap
for(i=0xff,i>0x00,i)
SBUPi. while(ITI); TI = 0.
P2-i, DAC(),* Jnop-0, +o-dour
SBUPi, while(!TD) 0 =
P2=i, DAC(),
cs wrl=o. o'dour*o-dour cs._wrlm1 delay(speed);
..下转第228页
收稿日期:20150625
作者简介:明坤(1993一),男,山东滕州人,曲章师范大学本科在读,研究方向:通信工程(物联网);刘康旭(1994—),男,山东淄博人,曲卓师范大
学科在读,研究方向:通信工程(物联网)。
183
万方数据