单片机波形发生器程序及仿真图
1、/***************************************** 名称:用DAC0832生成锯齿波 ****************************************/#include <reg51.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned int#define DAC0832 XBYTE[0xfffe]uchar i=0,t;sbit k1=P3^0;sbit k2=P3^2;sbit k3=P3^4;
void delay(uint ms){ while(ms--) for(t=0;t<120;t++);}
void juchibo() //生成锯齿波{ if(k1==0) { delay(1); DAC0832=--i; delay(1); }}
void sanjiaobo ()//生成三角波{ if(k2==0) { delay(1); for(i=0;i<0xff;i++) { DAC0832=i; delay(1); } for(i=0;i<0xff;i++) { DAC0832=0xff-i; delay(1); } }
}
void fangbo() //生成方波{ if(k3==0) { delay(1); for(i=0;i<0xff;i++) { DAC0832=0xff; delay(1); DAC0832=0; delay(1); } }}
void main(){ while(1) { juchibo(); sanjiaobo (); fangbo(); }}
2、仿真图

3、运行图
