要求:利用DA转化产生几种不同的波形,例如三角波,锯齿波等等
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define juchi 0
#define fangbo 1
#define sanjiao 2
#define zhengxian 3
uchar xdata DA_CS _at_ 0xA000;
uint i;
uchar tag;
void delay(int ms)
{
int i,j;
for(i = 0;i < 50;i++)
for(j = 0;j < 60;j++)
{
;
}
}
void time0() interrupt 1
{
TH0=(65535-10000)/256;
TL0=(65535-10000)%256;
switch(tag){
case juchi:
//锯齿
i++;
DA_CS=i;
break;
case fangbo:
i+=85;
if(i==255){
i=0;
}
DA_CS=i;
break;
case sanjiao:
for(i=0;i<254;i++){
DA_CS=i;
// if(i = 0x80) delay(30);
delay(1);
}
for(i=255;i>1;i--){
DA_CS=i;
// if(i = 0x80) delay(30);
delay(1);
}
break;
case zhengxian:
break;
}
}
void main()
{
TMOD=0x01;
TR0=1;
IE=0x82;
TH0=(65535-10000)/256;
TL0=(65535-10000)%256;
i=0;
tag=sanjiao;
while(1);
}