logo资料库

DAC0832产生三角波.doc

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
DAC0832产生三角波
#include //头文件
#define uchar unsigned char
#define uint unsigned int
#define dadata P0//定义波形输出口
void delay(uint xms)//延时子函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()//主函数
{
uchar temp=0,a=0;//设置初值
while(1)//等待
{
if(a==0)//输出三角波上升沿部分
{
dadata=temp;//输出数据
delay(5);//延时
temp++;//三角波上升沿
if(temp==50)//到达最大值
a=1;//上升结束准备进入下降沿部分
}
if(a==1)//输出下降沿波形部分
{
dadata=temp;//输出数据
delay(5);//延时
temp--;//三角波下降沿
if(temp==0)//到达最小值
a=0;//进入下一周期
}
}
}
DAC0832 产生三角波 (1)计划及任务要求 利用 DAC0832(DAC0830)可实现输出三角波波形信号,按照 DAC0832 芯片工作步骤,硬 RP1 RESPACK-8 1 23456789 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 2 3 -15v 1 1 4 +15v U3:A 1 LM324 (A) A B C D 件设计采用直通方式。 (2)硬件电路设计 19 18 9 29 30 31 1 2 3 4 5 6 7 8 U1 XTAL1 XTAL2 RST PSEN ALE EA P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51 D0 D1 D2 D3 D4 D5 D6 D7 -5v P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 D3 D2 D1 D0 1 2 3 4 5 6 7 8 9 10 U2 CS WR1 GND DI3 DI2 DI1 DI0 VREF RFB GND DAC0832 VCC ILE(BY1/BY2) WR2 XFER DI4 DI5 DI6 DI7 IOUT2 IOUT1 20 19 18 17 16 15 14 13 12 11 D4 D5 D6 D7 (3)软件程序设计 #include //头文件 #define uchar unsigned char #define uint unsigned int #define dadata P0//定义波形输出口 void delay(uint xms)//延时子函数 { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void main()//主函数 { uchar temp=0,a=0;//设置初值 while(1)//等待 { if(a==0)//输出三角波上升沿部分 { dadata=temp;//输出数据 delay(5);//延时 temp++;//三角波上升沿 if(temp==50)//到达最大值 a=1;//上升结束准备进入下降沿部分 } if(a==1)//输出下降沿波形部分 { dadata=temp;//输出数据 delay(5);//延时 temp--;//三角波下降沿
if(temp==0)//到达最小值 a=0;//进入下一周期 } } }
分享到:
收藏