微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > AVR 流水灯

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);
}
}


你要说出什么问题啊,? ?而且你这样写是不行的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和复位那些都去掉就可以了,哈哈

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top