哪位大侠能帮我写个单片机输出三角波的C语言程序,最好能解释一下原理

写三角波程序要不要用到数组?是用一维还是二维数组?

第1个回答  2012-12-26
#include <reg52.h> //51 单片机常用寄存器定义
#include <absacc.h>

#define DA0832com XBYTE[0X4000]
#define KEYcom XBYTE[0XA0ff]

#define DA_databus P0
#define uchar unsigned char
#define uint unsigned int
sbit P0_0=P0^0;
bit KEY;
uint count ;
/*************************************/
void delay_us()
{
uint i=2000;
while(i--){};
}
/*************************************/
void Init_sys()
{
TMOD=0x01;
TH0=0xEC;
TL0=0x77;
EA=1;
ET0=1;
TR0=1;
}
/*************************************/
void main(void)
{
Init_sys();
P2=0x40;
while(KEY==0)
{
P0=0xff;
delay_us();
P0=0;
delay_us();
}
while(KEY==1)
{
for(count=0;count<=100;count++)
{
P0=count;
}
for(count=101;count>=0;count--)
{
P0=count;
}

}
}
/*************************************/
void Timer0(void) interrupt 1 using 0
{
P2=0xa0;
P0=0x01;
if(P0_0==0)
{
while(P0_0==0);
KEY=1;
}
TH0=0xEC;
TL0=0x77;
P2=0x40;
EA=1;
ET0=1;
}
这是基于DAC0832的输出三角波的C语言程序!
相似回答