标题:
单片机用8位流水灯模拟二进制累加的问题
[打印本页]
作者:
denuvo_9
时间:
2019-3-26 22:58
标题:
单片机用8位流水灯模拟二进制累加的问题
如题 程序如下 开发板就是郭天祥的开发板 P1就是接的灯 置0就亮
#include<reg52.h>
void main()
{
unsigned int x,y,i,j;
x=0xFF;
y=0x00;
while(1)
{
P1=x;
y=y++;
x=~y;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
}
}
复制代码
keil没报任何错 但是流水灯就是不亮
把第六行改成“y=0x01;”第一个灯就一直在亮了
实在想不出是怎么回事了 感谢dalao指点
作者:
wulin
时间:
2019-3-27 08:08
错误: y=y++;
正确: y++; 或 y=y+1;
作者:
ping264888
时间:
2019-3-27 08:09
根据你说的,y=0x01, 第一个灯亮, 判断你的电路为高电平有效, 所以 x=~y 改为 x=y.
作者:
HC6800-ES-V2.0
时间:
2019-3-27 08:10
给你改好了。
只要把y=y++改为y++就好了。
y++的意思,就是y=y+1;
作者:
yzwzfyz
时间:
2019-3-27 08:25
硬件基础太差,先搞清楚,P1的输出与LED明暗的逻辑关系。
作者:
xuyaqi
时间:
2019-3-27 09:10
把 y=y++; 改成 y=y+1;试一下。
作者:
249449417@qq.co
时间:
2019-3-27 09:24
逻辑混乱
作者:
xinxinyu
时间:
2019-3-27 09:39
P1=y;
y++;
作者:
PBL
时间:
2019-3-27 09:51
把 y=y++;改成y=++y;就好,只是我自己也不明白,两个都是加1一个先加一个后加,但 y=y++;就没加?
作者:
就在这呢
时间:
2019-3-27 10:06
改成y=y+1 ;逻辑问题
作者:
sony819
时间:
2019-3-27 10:45
把 y=y++改成y=++y 就可以了
作者:
taotie
时间:
2019-3-27 14:37
#include<reg52.h>
void main()
{
unsigned int x,y,i,j;
x=1;
y=1;
while(1)
{
P1=x;
x=x*2;
y=x;
if (y==256)
{
x=1;
}
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1