下面是一个用51系列单片机产生双正弦波的c语言程序
//开发设计:51hei单片机教程网
#include< at89x51.h>
#include< absacc.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
#define ON_Y_DATAS XBYTE[0xDFFF]//Y点控制 ADDRESS:0xDFFF
#define ON_X_DATAS XBYTE[0xBFFF]//X点控制 ADDRESS:0xBFFF
#define OPEN_XY_DATAS XBYTE[0x7FFF]//Y点控制 ADDRESS:0x7FFF
void delayUs(uint16 User)
{
while(User--);
}
//测试波形 三角波
void testPulse(void)
{
uint8 data q;
ON_Y_DATAS=0;
ON_X_DATAS=0;
OPEN_XY_DATAS=0xFF;
delayUs(100);
for(q=0;q<15;q++)
{
ON_Y_DATAS = (q*0x10)+0x10;
ON_X_DATAS = (q*0x10)+0x10;
OPEN_XY_DATAS = 0xFF;
delayUs(100);
}
for(q=16;q>0;q--)
{
ON_Y_DATAS=(q*0x10)-0x10;
ON_X_DATAS=(q*0x10)-0x10;
OPEN_XY_DATAS=0xFF;
delayUs(100);
}
}
void main(void) //波形测试
{
while(1)
{
testPulse();
}
}
注意:转载必须保留文章出处.