刚刚学AVR ,写了一个流水灯,可是
仿真的时候除了问题,自己呢也找不到这个程序的问题在哪里。。。。求助于各位了
#include<iom16v.h>
#include<macros.h>
void delay(unsigned int a)
{
unsigned char i;
for(;a>0;a--)
for(i=6245;i>0;i--);
}
void main(void)
{
DDRA=0xff;
PORTA=0xff;
PORTA=0xff;
while(1)
{
PORTA=~0X01;
delay(100);
PORTA=~0X02;
delay(100);
PORTA=~0X04;
delay(100);
PORTA=~0X08;
delay(100);
PORTA=~0X10;
delay(100);
PORTA=~0X20;
delay(100);
PORTA=~0X40;
delay(100);
PORTA=~0X80;
delay(100);
}
}
-
我的这个程序是利用“~”进行取反。。。主要是在仿真的时候只有第一个灯亮。。。后面我又写了两个还是这样的问题,这个是不是仿真软件的问题?
#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint a)
{
uchar i;
for(;a>0;a--)
for(i=6245;i>0;i--);
}
void main(void)
{
DDRA=0xff;
PORTA=0xff;
DDRB=0xff;
PORTB=0xff;
while(1)
{
uint i;
for(i=0;i<8;i++)
{
PORTA &=~BIT(i);
delay(100);
PORTA |=BIT(i);
}
}
}
一周热门 更多>