標題:
單片機用8位流水燈模擬二進制累加的問題
[打印本頁]
作者:
denuvo_9
時間:
2019-3-26 22:58
標題:
單片機用8位流水燈模擬二進制累加的問題
如題 程序如下 開發(fā)板就是郭天祥的開發(fā)板 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
根據(jù)你說的,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.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1