#include <iom16v.h> //io端口寄存器配置文件,必须包含
#include <AVRdef.h>
#include <UserSys.h> //用户自定义头文件:保存在E:\iccv7avr\include文件夹下
void delay_ms(u16 delayval)
{
u16 i;//u16定义在UserSys.h内,是16位无符号数值;
while(delayval--)
{
for(i=0;i<1140;i++)
{
;
}
}
}
void main(void)
{
u8 i;
PORTA=0xFF;
DDRA=0xFF;
PORTB=0xFF;
DDRB=0xFF;
while(1)
{
for(i=0;i<8;i++)
{
PORTA = ~BIT(i);
delay_ms(500);
}
DDRA = 0xFF;
PORTA = 0xFF;
for(i=7;i>=0;i--)
{
PORTB = ~BIT(i);
delay_ms(500);
}
DDRB = 0xFF;
PORTB = 0xFF;
}
}
这个代码不能连续循环,接在PORTA和PORTB上的两排各8个LED灯,只能正常循环一次,之后都灭了,不能亮,过一段时间PORTB上的8个LED灯会循环一次。求高手解决
|