1、void juchibo(void);void sanjiaobo(void);void Read_Key(void);void delay(uint);void delay1(uint);void delay2(uint);int main(void) /GCC中main文件必须为返回整形值的函数,没有参数 DDRA=0xFF; DDRC=0xFF; DDRG=0xFF; PORTC=0x00; PORTG=0x00; TCNT0=0; num=0; DDRF = 0x1C; while(1) Read_Key(); switch(num) case 1:fangbo(); break; c
2、ase 2:zhengxianbo(); case 3:juchibo(); case 4:sanjiaobo(); void fangbo(void) uint i,j=0; uint ys=30; uchar b=0xFF; TCCR0=_BV(CS0); while(num=1) for(i=0;iys+1;i+) loop_until_bit_is_set(TIFR,TOV0); TIFR|=_BV(TOV0); if(j) PORTA=b,j=0; else CLR_WAVE,j=1; case 5:ys=ys-30;num=1; case 8:ys=ys+30; case 6:b=
3、0xFF; case 9:b=0x7F; /方波void zhengxianbo(void) TCCR0=_BV(CS00); uint ys=700; if(num=2) / j=0;/ DDRA=0xFF;/ PORTA=tosinj; /正弦波 for(j=0;j=b) a=0; if(a0;x-) for(y=200;yy-);void delay1(uint y) uint i; for(i=y;ii-);void delay2(uint z)x-);void Read_Key(void) PORTF = 0xE0; temp=PINF; temp=temp&0xE0; if(tem
4、p!= 0xE0 )/若有键按下,则表达式为1 delay(200); temp=PINF; temp=temp& /按键消抖 if(temp!= 0xE0 ) /再次判断是否有按键动作 / DDRF = 0x1C; / PORTF=0xfc; PORTF=0xec;delay(10); temp=PINF; temp&=0xe0; if(temp!=0xe0) switch(temp) case 0x60:num=7;break; case 0xa0: case 0xc0: / default : while(temp!=0XE0) temp=PINF; temp=temp& else / DDRF = 0x1C; / PORTF=0xfc; PORTF=0xf4; temp=PINF; temp& switch(temp) case 0x60:num=8; case 0xa0:num=5; case 0xc0: / default : while(temp! temp=PINF; temp=temp& else / DDRF = 0x1C; / PORTF=0xfc; PORTF=0xf8; if(temp!num=9;num=6;