找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2114|回復(fù): 24
收起左側(cè)

可以將一個(gè)現(xiàn)成的單片機(jī)LED流水燈程序擴(kuò)展賦值到所有I/O口嗎?

[復(fù)制鏈接]
ID:876947 發(fā)表于 2024-5-6 09:53 | 顯示全部樓層 |閱讀模式
求大俠指教:可以將一個(gè)現(xiàn)成的單片機(jī)LED流水燈程序擴(kuò)展賦值到所有I/O口嗎?是不是將原有(比如P1口)指向移植到其它(P2、P3、P4......)口就可以了?
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-5-6 11:22 | 顯示全部樓層
應(yīng)該可以把
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-5-6 13:26 | 顯示全部樓層
當(dāng)然可以了,修改IO口置位復(fù)位指令就行。
回復(fù)

使用道具 舉報(bào)

ID:858964 發(fā)表于 2024-5-6 14:20 | 顯示全部樓層
在原程序中修改I/O口, 例如將P1 改為P2 .P3,P4,...
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-6 14:44 | 顯示全部樓層
Kxuan163 發(fā)表于 2024-5-6 14:20
在原程序中修改I/O口, 例如將P1 改為P2 .P3,P4,...

你好!我說的是同時(shí)賦值到所有的I/O口。
回復(fù)

使用道具 舉報(bào)

ID:27984 發(fā)表于 2024-5-6 14:46 | 顯示全部樓層
代碼中可以修改I/O口, 將P1 改為P2 .P3,P4,...
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-5-6 15:39 | 顯示全部樓層
白水大蝦2016 發(fā)表于 2024-5-6 14:44
你好!我說的是同時(shí)賦值到所有的I/O口。

顯然是不可能的,8051就沒有這種指令。
回復(fù)

使用道具 舉報(bào)

ID:1010435 發(fā)表于 2024-5-6 23:27 | 顯示全部樓層
P1=......
P2=......
P3=......
P4=......
......是相同的數(shù)值  復(fù)制一下不就行了 4個(gè)口同時(shí)流水
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2024-5-6 23:49 | 顯示全部樓層
白水大蝦2016 發(fā)表于 2024-5-6 14:44
你好!我說的是同時(shí)賦值到所有的I/O口。

單片機(jī)是8位1組并行IO口,一條指令最多傳送8位,要么加74HC273或74HC595鎖存,F(xiàn)PGA可以無限位并行傳送。
回復(fù)

使用道具 舉報(bào)

ID:1110945 發(fā)表于 2024-5-7 00:00 | 顯示全部樓層
白水大蝦2016 發(fā)表于 2024-5-6 14:44
你好!我說的是同時(shí)賦值到所有的I/O口。

雖然不能同時(shí)賦值到所有的I/O口,但可以緊跟著賦值到其它的I/O口,
中間的時(shí)間間隔很短,從宏觀上看我們感覺是“同時(shí)”的。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2024-5-7 06:27 | 顯示全部樓層
白水大蝦2016 發(fā)表于 2024-5-6 14:44
你好!我說的是同時(shí)賦值到所有的I/O口。

絕對同時(shí)不可能,相對同時(shí)(相差幾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;
        }
}
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-7 11:46 | 顯示全部樓層
wulin 發(fā)表于 2024-5-7 06:27
絕對同時(shí)不可能,相對同時(shí)(相差幾u(yù)s秒)可以。
#include

明白了,謝謝哈!
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-7 12:17 | 顯示全部樓層
npn 發(fā)表于 2024-5-6 23:49
單片機(jī)是8位1組并行IO口,一條指令最多傳送8位,要么加74HC273或74HC595鎖存,F(xiàn)PGA可以無限位并行傳送。

這我就明白了,謝謝大俠!
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-7 12:18 | 顯示全部樓層
明日之星8 發(fā)表于 2024-5-7 00:00
雖然不能同時(shí)賦值到所有的I/O口,但可以緊跟著賦值到其它的I/O口,
中間的時(shí)間間隔很短,從宏觀上看我們 ...

明白了,謝謝大俠!
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-7 12:20 | 顯示全部樓層
wulin 發(fā)表于 2024-5-7 06:27
絕對同時(shí)不可能,相對同時(shí)(相差幾u(yù)s秒)可以。
#include

學(xué)習(xí)了,謝謝大俠!無限感謝!
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-7 12:25 | 顯示全部樓層
wulin 發(fā)表于 2024-5-7 06:27
絕對同時(shí)不可能,相對同時(shí)(相差幾u(yù)s秒)可以。
#include

請教大俠:流水燈語句放在此語句的什么位置?前端、中端還是終端?
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2024-5-7 16:14 | 顯示全部樓層
白水大蝦2016 發(fā)表于 2024-5-7 12:25
請教大俠:流水燈語句放在此語句的什么位置?前端、中端還是終端?

temp=temp<<1|1;這就是流水
回復(fù)

使用道具 舉報(bào)

ID:961114 發(fā)表于 2024-5-7 17:03 | 顯示全部樓層
為啥會(huì)有如此奇怪的問題,初學(xué)者就先學(xué)習(xí)范例程序啊
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-8 10:58 | 顯示全部樓層
npn 發(fā)表于 2024-5-6 23:49
單片機(jī)是8位1組并行IO口,一條指令最多傳送8位,要么加74HC273或74HC595鎖存,F(xiàn)PGA可以無限位并行傳送。

明白,謝謝哈!
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-8 10:59 | 顯示全部樓層
wulin 發(fā)表于 2024-5-7 06:27
絕對同時(shí)不可能,相對同時(shí)(相差幾u(yù)s秒)可以。
#include

學(xué)習(xí)了,謝謝哈!
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-8 11:00 | 顯示全部樓層
wulin 發(fā)表于 2024-5-7 06:27
絕對同時(shí)不可能,相對同時(shí)(相差幾u(yù)s秒)可以。
#include

請教大俠:流水燈語句放在此語句的什么位置?前端、中端還是終端?
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-8 11:02 | 顯示全部樓層
STC莊偉 發(fā)表于 2024-5-7 17:03
為啥會(huì)有如此奇怪的問題,初學(xué)者就先學(xué)習(xí)范例程序啊

就是個(gè)菜鳥呀
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-8 12:15 | 顯示全部樓層

老師你好!是全亮,將Delay_ms(1000)數(shù)值修改沒用,什么原因呢?
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2024-5-8 13:42 | 顯示全部樓層
白水大蝦2016 發(fā)表于 2024-5-8 12:15
老師你好!是全亮,將Delay_ms(1000)數(shù)值修改沒用,什么原因呢?

這個(gè)簡單程序是基于51單片機(jī),12M晶振驗(yàn)證過的。改延時(shí)只能改變流水快慢。原代碼延時(shí)是1秒。
回復(fù)

使用道具 舉報(bào)

ID:876947 發(fā)表于 2024-5-9 12:09 | 顯示全部樓層
wulin 發(fā)表于 2024-5-8 13:42
這個(gè)簡單程序是基于51單片機(jī),12M晶振驗(yàn)證過的。改延時(shí)只能改變流水快慢。原代碼延時(shí)是1秒。

謝謝!
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表