图4
74LS22为四输入双与门
A1,B1,C1,D1为第一个与门的输入,Y1为第一个与门的输出。
A2,B2,C2,D2为第一个与门的输入,Y2为第一个与门的输出。在此系统中用来给单片机提供中断信号。 3.2.5 放大部分 LM324 LM324引脚图(管脚图)
11
图5 LM324引脚图
简介:
LM324系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。
3.3 系统的软件设计及接口电路
3.3.1 信号频率数据采集
本程序通过外部中断,接收减频或加频按键,单片机内部对接受的值经过运算得出波形的输出延时,从而产生频率的改变。电路较为简单,成本较低。 3.3.2 正弦波产生程序
输入正弦波的采样点,计算出256个(一个周期内)正弦波信号值。然后通过输出的两点间的延时来实现调频。依次循环输出,可得出正弦波。
采点值放在table2[]中,程序如下:
void sin()//正弦波 {
unsigned int i; for(i=0;i<256;i++)
{
12
}
}
DAC0832=table2[i]; delay(pinlv/256);
3.3.3 三角波产生程序
设个自变量i让它不断地自加1,直到加到255时,t=i,对t进行不断地自减1直到减到t=0,然后再不断地重复上述过程产生三角波。程序如下:
void tran()//三角波 { }
3.3.4 方波产生程序
设个自变量i=0使之延时一段时间,再另i=255时在延时与i=0相同的时间,然后再重复上述过程。程序如下:
void fang()//方波
unsigned char i; for(i=0;i<255;i++)
{ }
DAC0832=i; delay(pinlv/64);
for(i=255;i>0;i--)
{ }
DAC0832=i; delay(pinlv/64);
13
{ }
DAC0832=0; delay(pinlv/2);
DAC0832=0xff; delay(pinlv/2);
3.3.5 锯齿波产生程序
锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同的周期锯齿波。锯齿波发生原理与方波类似,只是高低两个时延的常数不同,所以用延时法,来产生锯齿波,设个自变量i让它不断地自加1,直到叫到255,DAC0832可以又自动归0,然后再不断地重复上述过程。程序如下:
void jvchi()//锯齿波 { }
3.3.6信号放大模块设计
unsigned char i;
for(i=0;i<255;i++)
{ }
DAC0832=i; delay(pinlv/256);
从单片机中输出的数字信号经过DAC0832转换后,由于信号的幅值比较小,所以
14
需要放大。采用常规的放大方式,采用两片运放,实现两级放大,设计的电路如图6:图6
图6放大电路接口
3. 3. 7数模转换模块设计
本设计模数转换采用常见的芯片:DAC0832,本设计采用直通方式进行模数转换。为了简洁起见,在仿真图中采用网络节点的方式进行连线,从单片机P0口输出的数据直接连接到模数芯片DAC0832的数据口。如图:
图7 DA转换接口电路
15