找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1964|回复: 5
打印 上一主题 下一主题
收起左侧

ATTINY13A单片机顺序点亮灯程序哪里不对?

[复制链接]
跳转到指定楼层
楼主
主要点亮PB0~PB4的五个LED,
第一次  0 1 1 1 1     LED分别接PB0~PB4,0低电平点亮,1高电平息灭
第二次 0  0 1 1 1
第三次  0 0 0  1 1
第四次0 0 0 0 1
第五次 0 0 0 0 0
然后一直全部亮

void main(void)
{
sys_init();       脚位初始化
while(1)
{

PORTB=(0<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4);    //点亮第一个LED
  delay_ms(1000);
PORTB=(0<<PB0)|(0<<PB0)|(1<<PB2)|(1<<PB3)|(1<<PB4);    //点亮第一、二个LED
  delay_ms(1000);
PORTB=(0<<PB0)|(0<<PB0)|(0<<PB0)|(1<<PB3)|(1<<PB4);     //点亮第一、二、三个LED
  delay_ms(1000);
PORTB=(0<<PB0)|(0<<PB0)|(0<<PB0)|(0<<PB0)|(1<<PB4);    //点亮第一、二、三、四个LED
  delay_ms(1000);
PORTB=(0<<PB0)|(0<<PB1)|(0<<PB2)|(0<<PB3)|(0<<PB4);   //全部点亮
  while(1);
}
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:342822 发表于 2019-9-13 14:49 | 只看该作者
需要设置端口方向

#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
//sys_init();       脚位初始化
DDRB=0xff;//B端口设置为输出

{

PORTB=(0<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4);    //点亮第一个LED
  _delay_ms(1000);
PORTB=(0<<PB0)|(0<<PB0)|(1<<PB2)|(1<<PB3)|(1<<PB4);    //点亮第一、二个LED
  _delay_ms(1000);
PORTB=(0<<PB0)|(0<<PB0)|(0<<PB0)|(1<<PB3)|(1<<PB4);     //点亮第一、二、三个LED
  _delay_ms(1000);
PORTB=(0<<PB0)|(0<<PB0)|(0<<PB0)|(0<<PB0)|(1<<PB4);    //点亮第一、二、三、四个LED
  _delay_ms(1000);
PORTB=(0<<PB0)|(0<<PB1)|(0<<PB2)|(0<<PB3)|(0<<PB4);   //全部点亮
  while(1);
}
}
回复

使用道具 举报

板凳
ID:342822 发表于 2019-9-13 14:50 | 只看该作者
WINAVR编译通过
回复

使用道具 举报

地板
ID:342822 发表于 2019-9-13 14:56 | 只看该作者

回复

使用道具 举报

5#
ID:72649 发表于 2019-9-14 09:19 | 只看该作者
void sys_init(void)
{
        DDRB = 0xff;        //将所有I/O口均初始化为输出状态
        PORTB = 0xff;       
}
已经端口初始化
回复

使用道具 举报

6#
ID:72649 发表于 2019-9-14 09:27 | 只看该作者
谢谢,一切正常了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表