文档库 最新最全的文档下载
当前位置:文档库 › 蜂鸣器两只老虎程序

蜂鸣器两只老虎程序


#include
#define uchar unsigned char
#define uint unsigned int
void int_clk()
{
if (CALBC1_8MHZ == 0xFF || CALDCO_8MHZ == 0xFF)
{
while(1); // If calibration constants erased, trap CPU!!
}
BCSCTL1 = CALBC1_8MHZ; // Set range
DCOCTL = CALDCO_8MHZ; // Set DCO step + modulation
BCSCTL3 |= LFXT1S_2; // Set LFXT1
}
void delay(unsigned long t)
{
while( t--!=0);
}
void delayms(uint n)
{
uint i,j;
for(i=n;i>0;i--)
for(j=1500;j>0;j--) _NOP();
}
/*
void delay(int n)
{
uint i,j;
for(i=n;i>0;i--)
for(j=15;j>0;j--)
_NOP();
}*/
void delay_1us(void) {
unsigned int i;
for (i = 0; i < 11; i++)
;
}

void delay_nus(unsigned int n) {
unsigned int i = 0;
for (i = 0; i < n; i++)
delay_1us();
}


void beep(uint i)
{
P1OUT |= BIT2;

delay_nus(i);
P1OUT &= ~BIT2;
delay_nus(i);


}
void main()
{
P1DIR = 0x01 | 0x40;
WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
int_clk();
int a[] = { 0,87,76,71,62,54,48,};

int c[] = {0,226,229,232,234,236,238,240,} ;
int d[] = {0,1,2,3,1,1,2,3,1,3,4,5,5,5,
3,4,5,5,5,5,5,6,5,4,3,1,5,6,
5,4,3,1,3,5,5,1,1,1,3,5,5,1,
1,1,3,5,5,1,1,1,} ;
//int d[] = { 0,5,5,6,5,1,7,5,5,6,5,2,1,5,5,5,3,1,};




while(1)
{
unsigned int i;
unsigned int j;
P1DIR |= BIT2;
for(j=1;j<50;j++)
{

for(i=1;i{
beep(a[d[j]]);
}
if(j%2==0)
{
P1OUT |= BIT0;
P1OUT &= ~BIT6;
}
else
{
P1OUT |= BIT6;
P1OUT &= ~BIT0;
}
}

}



}


相关文档