下面是一個(gè)用51系列單片機(jī)產(chǎn)生雙正弦波的c語言程序
//開發(fā)設(shè)計(jì):51hei單片機(jī)教程網(wǎng)
#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點(diǎn)控制 ADDRESS:0xDFFF
#define ON_X_DATAS XBYTE[0xBFFF]//X點(diǎn)控制 ADDRESS:0xBFFF
#define OPEN_XY_DATAS XBYTE[0x7FFF]//Y點(diǎn)控制 ADDRESS:0x7FFF
void delayUs(uint16 User)
{
while(User--);
}
//測(cè)試波形 三角波
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) //波形測(cè)試
{
while(1)
{
testPulse();
}
}
注意:轉(zhuǎn)載必須保留文章出處.