打印
[AVR单片机]

求助:最简单的流水灯程序

[复制链接]
2863|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhixf-0501|  楼主 | 2011-9-20 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<iom128v.h>
main()
{
    DDRA=0xff;
   PORTA=0b11111110;//这一步
   while(1)
   {
        PORTA=PORTA<<1;
   }//下一步
}

大家好,我是新手,刚开始学128,刚写得最简单流水灯程序,我想让他只亮一个灯,然后只这个灯顺序闪,但是为什么调试时候会一个一个都点亮了
还有就是当我调试到“这一步”的时候为什么所有的流水灯全部亮了,然后调试到下一步的时候才开始亮一个

另外比如“0b11101110”,为什么是0指示的亮而1指示的灭呢,我看视频怎么是相反的呢
恳求各位大侠帮我解决疑惑,谢上。

相关帖子

沙发
老鱼探戈| | 2011-9-20 11:39 | 只看该作者
还真是新手,LED怎么点亮都不知道~

使用特权

评论回复
板凳
zhixf-0501|  楼主 | 2011-9-20 11:49 | 只看该作者
小弟惭愧,还请大侠帮忙

使用特权

评论回复
地板
chen3bing| | 2011-9-20 13:52 | 只看该作者
要看你的硬件是怎么接的。

使用特权

评论回复
5
xwhua188| | 2011-9-20 15:11 | 只看该作者
首先看硬件的连接方式。然后用定时器配合定时亮,熄灯就可以实现了。

使用特权

评论回复
6
ayb_ice| | 2011-9-20 20:10 | 只看该作者
PORTA++

使用特权

评论回复
7
ccxlslr| | 2011-9-21 13:10 | 只看该作者
呵呵,太快.看不清就全点亮了,那个不是循环移位。

使用特权

评论回复
8
diweo| | 2011-9-21 19:17 | 只看该作者
照你的情况,应该是输出0点亮。
那么,在芯片复位的时候,PORTA=0x00,DDRA=0x00.当执行完DDRA=0xFF后,PORTA还是0x00,当然全亮了。再执行完 PORTA=0b11111110才只点亮最后一个。
而且,在循环中,执行一次循环PORTA=0b11111100,点亮2个,再执行6个循环后,PORTA又变成0x00了,全点亮了,再下去的循环不论再执行多少次,PORTA都是0x00,所以一直是全部点亮的。

使用特权

评论回复
9
fu10| | 2011-9-21 19:53 | 只看该作者
呵呵......的确是新手,调试跟实时运行是不一样的,调试时能看见结果,运行可能就看不见了,调试是延时很长的运行,还有软件太简单,运行起来就什么都看不见了.......

使用特权

评论回复
10
joyme| | 2011-9-22 09:06 | 只看该作者
加延时呀,不延时这么快得频率刷新,你将会看到所有的灯都是亮的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

1

粉丝