µ±Ç°Î»ÖãºÊ×Ò³ > msp430g2553ѧϰ±Ê¼Ç
for(i=0;i<255;i++) {
write_dac(i); }
for(i=255;i>0;i--) {
write_dac(i); } }
void square() //²úÉú·½²¨º¯Êý {
write_dac(0xff);
delay_us(500);
write_dac(0x00);
delay_us(500); }
void sin() //ÕýÏÒ²¨·¢Éúº¯Êý {
uchar i;
for(i=0;i<255;i++)
{
write_dac(sin_a[i]); } }
void step() //½×Ìݲ¨·¢Éúº¯Êý {
write_dac(0xff);
delay_us(500);
write_dac(0xc0);
delay_us(500);
write_dac(0x7f);
delay_us(500);
write_dac(0x3f);
delay_us(500);
write_dac(0x00);
delay_us(500); }
void main(void) {
WDTCTL = WDTPW + WDTHOLD;
uchar s1[] ={\ wave_shaper \
// Stop WDT
uchar s2[] ={\
uchar s3[] ={\
uchar s4[] ={\
BCSCTL1 = CALBC1_12MHZ; //É趨CPUʱÖÓDCOƵÂÊΪ12MHz
DCOCTL = CALDCO_12MHZ;
P2DIR |=BIT3+BIT4; //Òº¾§µÄÁ½ÌõÏß
P1DIR = 0xff; //0832µÄÊý¾Ýλ
P2DIR |= BIT6+BIT7; //°ÑP26ºÍP27ÅäÖÃΪÆÕͨIO ²¢ÎªÊä³ö½Å ĬÈÏΪ¾§ÕñµÄÊäÈëºÍÊä³öÒý½Å×÷Ϊdac0832µÄ
P2SEL &= ~(BIT6+BIT7); //csºÍwr¿ØÖƶË
P2SEL2 &= ~(BIT6+BIT7);
init_lcd(); //³õʼ»¯LCD
IO_interrupt_init();
wr_string(0,0,s1); //µÚÒ»ÐеÚÒ»¸öλÖÃÏÔʾs1
wr_string(0,1,s2); //µÚ¶þÐеÚÒ»¸öλÖÃÏÔʾs2
wr_string(0,2,s3); //µÚÈýÐеÚÒ»¸öλÖÃÏÔʾs3
wr_string(0,3,s4); //µÚËÄÐеÚÒ»¸öλÖÃÏÔʾs4
wr_int(2,3,key); //ÏÔʾ°´¼ü°´Ï´ÎÊý
wr_string(5,3,s_step);
_EINT(); //enable interrupt
for(;;)
{
if(key==13)
{
sin();
}
else if(key==14)
{
square();
}
else if(key==15)
{
triangular();
}
else if(key==16)
{
saw();
}
else
¹²·ÖÏí92ƪÏà¹ØÎĵµ