void Delay(void)
{
unsigned int i,j;
for(i=600;i>0;i--)
{
for(j=600;j>0;j--)
;
}
}
//主函数 程序从这里开始运行
void main(void)
{int k;
unsigned char posi
tion=0;
PORTA = 0xff;
DDRA = 0xff;
while(1){
for(k=0;k<16;k++)
{
PORTA = 0xaa; //1脚为高,0脚为低,0脚灯亮
Delay();
Delay(); //延时
PORTA = 0x55; //0脚为高,1脚为低,1脚灯亮
Delay();
//延时
}
for(k=0;k<16;k++)
{
PORTA = ~(1<<position); //1脚为高,0脚为低,0脚灯亮
if(++position>=8)
position=0;
Delay(); //延时
Delay();
Delay();
}
for(k=0;k<16;k++)
{
PORTA = ~(0x80>>position); //1脚为高,0脚为低,0脚灯亮
if(++position>=8)
position=0;
Delay(); //延时
Delay();
Delay();}
for(k=0;k<16;k++)
{
PORTA = rand();
Delay();
Delay();}
}
}
延迟加到10000*10000都不行
就是无论延时多长,灯闪烁起来看着毫无规律,似乎并没有按程序来,是软件仿真的问题吗
不行就上传吧,我给你试试。我有iar的编译软件。
一周热门 更多>