|
#include <avr/io.h> //和单片机类型相对应的头文件,选择Atmega16做实验; #include <avr/delay.h>//延时头文件 int main(void) //主函数 { int m,n,i,x=1,y=1,z=1,o=1,p=1;//定义变量及赋初值 OSCCAL=0X9E;//系统时钟校准,不同的芯片和不同的频率, DDRA=0B11111111;//设置PA口为输出 PORTA=0B11111111; //PA所有端口输出高电平,8个LED熄灭 DDRC=0B00000011; //定义C口的PC0、PC1为输出口 PORTC=0B00000001; //PC0口输出高电平,PC1口输出低电平,绿灯亮 for(m=0;m<=50;m++) _delay_ms(50); //延时2.5秒 PORTC=0B00000010; //PC1口输出高电平,PC0口输出低电平,关闭绿灯,红灯亮 for(n=0;n<=50;n++) _delay_ms(50); //延时2.5秒 while(x<=20) //程序执行20次 { PORTC=0B00000001; for (i=0;i<=10;i++) _delay_ms(100);//PC0点亮 1S PORTC=0B00000010; for (i=0;i<=10;i++) _delay_ms(100);//PC1点亮 1S x++; PORTC=0B00000000;//PC0,PC1均熄灭 } while(y<=20) //程序执行20次 { PORTA=0B11111110; for (i=0;i<=10;i++) _delay_ms(100);//PA0点亮1S PORTA=0B11111101; for (i=0;i<=10;i++) _delay_ms(100);//PA1点亮1S y++; } while(z<=20) //程序执行20次 { PORTA=0B11111011; for (i=0;i<=10;i++) _delay_ms(100);//PA2点亮1S PORTA=0B11110111; for (i=0;i<=10;i++) _delay_ms(100);//PA3点亮1S z++; } while(o<=20) //程序执行20次 { PORTA=0B11101111; for (i=0;i<=10;i++) _delay_ms(100);//PA4点亮1S PORTA=0B11011111; for (i=0;i<=10;i++) _delay_ms(100);//PA5点亮1S o++; } while(p<=20) //程序执行20次 { PORTA=0B10111111; for (i=0;i<=10;i++) _delay_ms(100);//PA6点亮1S PORTA=0B01111111; for (i=0;i<=10;i++) _delay_ms(100);//PA7点亮1S p++; PORTA=0B11111111; } while(1) //程序一直执行该循环 { PORTC=0B00000001; for (i=0;i<=50;i++) _delay_ms(50);//PC0点亮 1S PORTC=0B00000010; for (i=0;i<=50;i++) _delay_ms(50);//PC1点亮 1S } }
12345.rar
|