標(biāo)題: 可以將一個現(xiàn)成的單片機(jī)LED流水燈程序擴(kuò)展賦值到所有I/O口嗎? [打印本頁]

作者: 白水大蝦2016    時間: 2024-5-6 09:53
標(biāo)題: 可以將一個現(xiàn)成的單片機(jī)LED流水燈程序擴(kuò)展賦值到所有I/O口嗎?
求大俠指教:可以將一個現(xiàn)成的單片機(jī)LED流水燈程序擴(kuò)展賦值到所有I/O口嗎?是不是將原有(比如P1口)指向移植到其它(P2、P3、P4......)口就可以了?
作者: xiaobendan001    時間: 2024-5-6 11:22
應(yīng)該可以把
作者: Hephaestus    時間: 2024-5-6 13:26
當(dāng)然可以了,修改IO口置位復(fù)位指令就行。
作者: Kxuan163    時間: 2024-5-6 14:20
在原程序中修改I/O口, 例如將P1 改為P2 .P3,P4,...
作者: 白水大蝦2016    時間: 2024-5-6 14:44
Kxuan163 發(fā)表于 2024-5-6 14:20
在原程序中修改I/O口, 例如將P1 改為P2 .P3,P4,...

你好!我說的是同時賦值到所有的I/O口。
作者: zt2010    時間: 2024-5-6 14:46
代碼中可以修改I/O口, 將P1 改為P2 .P3,P4,...
作者: Hephaestus    時間: 2024-5-6 15:39
白水大蝦2016 發(fā)表于 2024-5-6 14:44
你好!我說的是同時賦值到所有的I/O口。

顯然是不可能的,8051就沒有這種指令。
作者: mtt661    時間: 2024-5-6 23:27
P1=......
P2=......
P3=......
P4=......
......是相同的數(shù)值  復(fù)制一下不就行了 4個口同時流水
作者: npn    時間: 2024-5-6 23:49
白水大蝦2016 發(fā)表于 2024-5-6 14:44
你好!我說的是同時賦值到所有的I/O口。

單片機(jī)是8位1組并行IO口,一條指令最多傳送8位,要么加74HC273或74HC595鎖存,F(xiàn)PGA可以無限位并行傳送。
作者: 明日之星8    時間: 2024-5-7 00:00
白水大蝦2016 發(fā)表于 2024-5-6 14:44
你好!我說的是同時賦值到所有的I/O口。

雖然不能同時賦值到所有的I/O口,但可以緊跟著賦值到其它的I/O口,
中間的時間間隔很短,從宏觀上看我們感覺是“同時”的。
作者: wulin    時間: 2024-5-7 06:27
白水大蝦2016 發(fā)表于 2024-5-6 14:44
你好!我說的是同時賦值到所有的I/O口。

絕對同時不可能,相對同時(相差幾u(yù)s秒)可以。
#include <reg51.h>

void Delay_ms(unsigned int t)
{
        unsigned int i,j;
        for(i=t;i>0;i--)
                for(j=120;j>0;j--);
}

void main(void)
{
        unsigned long temp=0xfffffffe;
        while(1)
        {
                P0=temp;
                P1=temp>>8;
                P2=temp>>16;
                P3=temp>>24;
                Delay_ms(1000);
                temp=temp<<1|1;
                if(temp==0xffffffff)
                        temp=0xfffffffe;
        }
}

作者: 白水大蝦2016    時間: 2024-5-7 11:46
wulin 發(fā)表于 2024-5-7 06:27
絕對同時不可能,相對同時(相差幾u(yù)s秒)可以。
#include

明白了,謝謝哈!
作者: 白水大蝦2016    時間: 2024-5-7 12:17
npn 發(fā)表于 2024-5-6 23:49
單片機(jī)是8位1組并行IO口,一條指令最多傳送8位,要么加74HC273或74HC595鎖存,F(xiàn)PGA可以無限位并行傳送。

這我就明白了,謝謝大俠!
作者: 白水大蝦2016    時間: 2024-5-7 12:18
明日之星8 發(fā)表于 2024-5-7 00:00
雖然不能同時賦值到所有的I/O口,但可以緊跟著賦值到其它的I/O口,
中間的時間間隔很短,從宏觀上看我們 ...

明白了,謝謝大俠!
作者: 白水大蝦2016    時間: 2024-5-7 12:20
wulin 發(fā)表于 2024-5-7 06:27
絕對同時不可能,相對同時(相差幾u(yù)s秒)可以。
#include

學(xué)習(xí)了,謝謝大俠!無限感謝!
作者: 白水大蝦2016    時間: 2024-5-7 12:25
wulin 發(fā)表于 2024-5-7 06:27
絕對同時不可能,相對同時(相差幾u(yù)s秒)可以。
#include

請教大俠:流水燈語句放在此語句的什么位置?前端、中端還是終端?
作者: wulin    時間: 2024-5-7 16:14
白水大蝦2016 發(fā)表于 2024-5-7 12:25
請教大俠:流水燈語句放在此語句的什么位置?前端、中端還是終端?

temp=temp<<1|1;這就是流水
作者: STC莊偉    時間: 2024-5-7 17:03
為啥會有如此奇怪的問題,初學(xué)者就先學(xué)習(xí)范例程序啊
作者: 白水大蝦2016    時間: 2024-5-8 10:58
npn 發(fā)表于 2024-5-6 23:49
單片機(jī)是8位1組并行IO口,一條指令最多傳送8位,要么加74HC273或74HC595鎖存,F(xiàn)PGA可以無限位并行傳送。

明白,謝謝哈!
作者: 白水大蝦2016    時間: 2024-5-8 10:59
wulin 發(fā)表于 2024-5-7 06:27
絕對同時不可能,相對同時(相差幾u(yù)s秒)可以。
#include

學(xué)習(xí)了,謝謝哈!
作者: 白水大蝦2016    時間: 2024-5-8 11:00
wulin 發(fā)表于 2024-5-7 06:27
絕對同時不可能,相對同時(相差幾u(yù)s秒)可以。
#include

請教大俠:流水燈語句放在此語句的什么位置?前端、中端還是終端?
作者: 白水大蝦2016    時間: 2024-5-8 11:02
STC莊偉 發(fā)表于 2024-5-7 17:03
為啥會有如此奇怪的問題,初學(xué)者就先學(xué)習(xí)范例程序啊

就是個菜鳥呀
作者: 白水大蝦2016    時間: 2024-5-8 12:15
wulin 發(fā)表于 2024-5-7 16:14
temp=temp

老師你好!是全亮,將Delay_ms(1000)數(shù)值修改沒用,什么原因呢?
作者: wulin    時間: 2024-5-8 13:42
白水大蝦2016 發(fā)表于 2024-5-8 12:15
老師你好!是全亮,將Delay_ms(1000)數(shù)值修改沒用,什么原因呢?

這個簡單程序是基于51單片機(jī),12M晶振驗證過的。改延時只能改變流水快慢。原代碼延時是1秒。
作者: 白水大蝦2016    時間: 2024-5-9 12:09
wulin 發(fā)表于 2024-5-8 13:42
這個簡單程序是基于51單片機(jī),12M晶振驗證過的。改延時只能改變流水快慢。原代碼延時是1秒。

謝謝!





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1