这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » 51单片机流水灯疑问

共19条 2/2 1 2 跳转至
高工
2012-02-16 02:05:23     打赏
11楼
至于后面那句,那就只能用阴差阳错形容了,先读p2口,得00000100,与0x0f取与结果还是00000100不变,灯继续亮。之后i再加1继续循环。但这句话本意是如楼上说,与0xf0取与,四个引脚全部清零,灭灯,目的是消除因为视觉暂留而引起的残影,但因为这一路阴差阳错,竟然没造成什么不正确的现象

高工
2012-02-16 02:16:42     打赏
12楼
论坛这不识数的两分钟五次回帖限制正让人抓狂,也该修复这个bug了,好多月了,还是记不准

菜鸟
2012-02-16 13:44:54     打赏
13楼
谢谢您的回复,我还是不太明白,您说“在for循环的判断中,i先赋值为0,再判断是否小于4,加为1,1右移五位,当然第二灯亮”,请问为什么判断小于四后要加为1,第一个循环i=0啊。这是i左移4位,由00000001变成了00010000,而恰好是P2.4为高电平,带动MTA亮。

另外我认为这个程序没有消除残影,delay(10)延时是200ms,这个时间是肉眼能分辨的。流水灯也没有必要消除残影吧。
0x0f取与的思路是:将00010000(MTA亮)200ms后变成00000000(全部灯灭200ms),然后在00100000(MTB亮)200ms,后变成00000000(全部灯灭200ms),然后在01000000(MTC亮)200ms,后变成00000000(全部灯灭200ms),然后在10000000(MTD亮)200ms,后变成00000000(全部灯灭200ms),一次循环,请问为什么要与0xf0相与呢?

本人菜鸟,望指点

菜鸟
2012-02-16 13:46:26     打赏
14楼
我用keil的debug调试过,i也是从0开始啊,是不是硬件问题

菜鸟
2012-02-16 16:06:01     打赏
15楼
呵呵,好好学习 天天向上

专家
2012-02-16 17:42:04     打赏
16楼
程序似乎也没啥了,暂时也没发现什么问题,200ms肉眼应该能分辨出来,这样吧,你在你的开发软件上加一个断点试一下,看一下是什么效果,查看一下数据内容!这样就能出来结果了!

菜鸟
2012-02-16 18:40:05     打赏
17楼
谢谢,目前找不到问题,我在看看。

专家
2012-02-18 15:19:32     打赏
18楼
如果基础不牢,调试很多时候比编程的时间长

高工
2012-02-19 00:36:41     打赏
19楼
那天用手机看贴,发现完全驴唇不对马嘴,实在不好意思

共19条 2/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]