开机LED闪烁10次,SPEAKER鸣1次,然后PORTA端口接的6盏灯以不同花式闪烁。 ※PB2: SPEAKER,用于开机鸣叫※PB3: LED,用于开机闪烁 /**/ /*****************************************************This program was produced by theCodeWizardAVR V1.24.8d ProfessionalAutomatic Program Generator?Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.comProject : Version : Date : 2006-12-30Author : F4CG Company : F4CG Comments: Chip type : ATmega32Program type : ApplicationClock frequency : 4.000000 MHzMemory model : SmallExternal SRAM size : 0Data Stack size : 512*****************************************************/ #include < mega32.h > // Declare your global variables here /**/ /* This seems to produce the right amount of delay for the LED to be * seen */ void Delay() ... {unsigned char a, b;for (a = 1; a; a++)for (b = 1; b; b++);} // ----------------------------------- // 延时程序 // ----------------------------------- void delayms(unsigned char m) ... { unsigned char a, b; for (a = 1; a<m; a++) for (b = 1; b; b++) ;} unsigned int k = 0 ; void main( void ) ... {// Declare your local variables here// Input/Output Ports initialization// Port A initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;DDRA=0x00;// Port B initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;DDRB=0x00;// Port C initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;DDRC=0x00;// Port D initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;DDRD=0x00;// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=FFh// OC0 output: DisconnectedTCCR0=0x00;TCNT0=0x00;OCR0=0x00;// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: Timer 1 Stopped// Mode: Normal top=FFFFh// OC1A output: Discon.// OC1B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer 2 Stopped// Mode: Normal top=FFh// OC2 output: DisconnectedASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00;// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0x00;MCUCSR=0x00;// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00;// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00; DDRB = 0xFF; /**//* output */ PORTB = 0xFF; /**//* all off */ DDRA = 0xFF; /**//* output */ PORTA = 0xFF; /**//* all off */ for(k=0; k<10; k++) ...{ PORTB = 0xF7; delayms(100); PORTB = 0xFF; delayms(100); } PORTB = 0xFB; Delay(); PORTB = 0xFF; Delay(); TCCR0 = 0x04; TCNT0 = 0x06; while (1) ...{ for(k=0; k<5; k++) ...{ PORTA = ~(1<<k); delayms(100); } for(k=5; k>0; k--) ...{ PORTA = ~(1<<k); delayms(100); } for(k=0; k<5; k++) ...{ PORTA &= 0xE0; delayms(100); PORTA |= 0xFF; delayms(100); } for(k=5; k>0; k--) ...{ PORTA &= 0xFB; delayms(100); PORTA |= 0xFF; delayms(100); } for(k=5; k>0; k--) ...{ PORTA &= 0xE4; delayms(100); PORTA |= 0xFF; delayms(100); } for(k=5; k>0; k--) ...{ PORTA &= 0xF5; delayms(100); PORTA |= 0xFF; delayms(100); } for(k=5; k>0; k--) ...{ PORTA &= 0xEE; delayms(100); PORTA |= 0xFF; delayms(100); } for(k=5; k>0; k--) ...{ PORTA &= 0xEA; delayms(100); PORTA |= 0xFF; delayms(100); } };} // #pragma interrupt_handler Timer0:10 interrupt [ 8 ] void Timer0( void ) ... { PORTB = 0xF7; delayms(100); PORTB = 0xFF; delayms(100);}