AVR 流水灯
时间:10-02
整理:3721RD
点击:
刚刚学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>
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);
}
}

你要说出什么问题啊,? ?而且你这样写是不行的PORTA=~0X01;直接PORTA=0X01,不要“~”
我的这个程序是利用“~”进行取反。主要是在仿真的时候只有第一个灯亮。后面我又写了两个还是这样的问题,这个是不是仿真软件的问题?
#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);
}
}
}
把你的复位电路去掉,AVR是低电平复位的
用protues仿真么?晶振和复位都不用接的
嗯?不用接?、
直接把30PF和复位那些都去掉就可以了,哈哈
