求大神幫忙,寫一份51微控制器,16位跑馬燈,p1口和p2口輸

時間 2021-09-06 09:19:34

1樓:匿名使用者

程式思路,用中斷按鈕,改變flag的值,主程式里根據flag的值,執行三種亮燈模式之一

uint a;

if(flag==0)//方式1,單燈亮

if(flag==1)//方式2單燈滅

}if(flag==2)//方式3 雙燈亮

2樓:專注51微控制器

led1 equ 30h

led2 equ 31h

org 0000h

ljmp main

org 0030h

main:

mov led1,#0ffh

mov led2,#0feh

mov r2,#16

loop:

mov p1,led1

mov p2,led2

mov a,led2

rlc a

mov led2,a

mov a,led1

rlc a

mov led1,a

xch a,led2

mov acc.0,c

xch a,led2

lcall delay

djnz r2,loop

mov led1,#7fh

mov led2,#0ffh

mov r2,#16

loop1:

mov p1,led1

mov p2,led2

mov a,led1

rrc a

mov led1,a

mov a,led2

rrc a

mov led2,a

xch a,led1

mov acc.0,c

xch a,led1

lcall delay

djnz r2,loop1

mov led1,#0feh

mov led2,#7fh

mov r2,#8

loop2:

mov p1,led1

mov p2,led2

mov a,led1

rl a

mov led1,a

mov a,led2

rr a

mov led2,a

lcall delay

djnz r2,loop2

ljmp main

delay:

mov r3,#100

dly:

mov r4,#250

djnz r4,$

djnz r3,dly

retend

大神們,51微控制器at89s52晶片p0口、p1口、p2口和p3口它們之間有什麼內在聯絡?有什麼區別?都有哪些功能?

3樓:匿名使用者

四個p口沒有內在聯絡。

p0是標準雙向口,但不能輸出高電平,需要上拉;

p1是常用輸入、輸出口,有內部上拉

p2常與p0構造外部儲存器地址,也用於輸入輸出p3具有外中斷、計數輸入等第二功能,也用於輸入輸出。

p1、p2、p3都有內部上拉,可以輸出高電平,但驅動能力很差,一般都是用低電平作有效訊號。

4樓:

p0-p3口都是plc的輸入輸出口,如p0,它是開路輸出,要取高電平要接上位電阻。p1,p2為輸入輸出口,不用接上位電阻。p3是輸入輸出口,同時還有第二功能。

通常p3不在程式裡定義第二功能,它就只是單純的輸入輸出口。微控制器的程式語言一般是彙編和c語言,我比較會c,彙編沒搞過,可也不難的。一個微控制器你要使用,須先做個最小系統,如復位,電源,晶振。

然後用keil寫c語言**,在用protues彷真。首先,用c語言寫標頭檔案,定義p口,#include//標頭檔案定義 sbit p0^3 d0; //p0.3口定義為d0 void main() //主函式,執行後p3.

0輸出低電平。如要使用p1、2、3都是可以的。如要使用p3的第二功能。

如p3.1是中斷口吧,只需在程式**內加上一句 ea=1; //開啟總中斷就可以使用第二功能了,此次該口不是單純的輸入輸出口了,而是一箇中斷口。

51微控制器p0p1p2p3口,到底有啥區別啊,他們的基本功能有啥

5樓:獅子最愛冥王星

51微控制器p0、p1、p2、p3口區別如下:

一、意思不同

p0口作輸出口用時,需加上拉電阻。p0口有複用功能。當對外部儲存器進行讀寫操作時,p0口先是

提供外部儲存器的低8位地址,供外部儲存器地址鎖存器鎖存,然後充當資料線,用於寫出或讀入數

據。p1口、p2口只是普通io口。

二、功能不同

p0口第一個功能是資料介面,第二個功能是地址低八位,p2口第二個功能是地址高八位。另外除了

p0口沒有內部上拉電阻外,其他三個都有內部上拉電阻。

三、用法

訊號輸出和互動介面,程式設計可以確定不同的功能,例如連線液晶屏,作為控制訊號輸出輸入等。

由於沒有埠複用功能,所以,p0口的v1變成了一個上拉電阻。由於內部就有上拉電阻,所以,作

為gpio時,p1口不需要接上拉電阻,當然,您接了也沒關係啦,就相當於兩個上拉電阻並聯。

基本功能:

一、p1 就沒多少功能,就是個準雙向i/o口。

二、p0當準io口使用,也就是既可以用作輸出口,也可以用作輸入口。

三、p3口除了是個準雙向i/o口外。第二功能很重要p3.0 (rxd)序列資料接收端,p3.1 (txd)

序列資料傳送端,p3.2 (int0)外部中斷0輸入,p3.3 (int1)外部中斷1輸入;

p3.4(t0)timer0計數器輸入,p3.5(t1)timer1計數器輸入,p3.6(wr)寫外部儲存器的脈衝

輸出,p3.7(rd)讀外部儲存器的脈衝輸出。

擴充套件資料

1、p0口:真正的雙向口,輸出鎖存,輸入緩衝,輸入前要先置1(keil包含的標頭檔案已經有動作

了,如果用匯編,要人工置1),輸出為漏極開路,輸出一般都要上拉電阻。輸入為高阻態,能驅動

8個ttl負載。當有片外儲存器時,作資料線使用。

2、p1口:最簡單的口,輸入也要先置1,無高阻態,只能是輸出或者輸入。能驅動4個ttl負載。

儲器。能驅動4個ttl負載。

4、p3口:i/o(輸入/輸出)與p1口一樣,但無論輸入輸出都要先置1。具有很多複用功能。

6樓:匿名使用者

一、意思不同

p0口作輸出口用時,需加上拉電阻。p0口有複用功能。當對外部儲存器進行讀寫操作時,p0口先是提供外部儲存器的低8位地址,供外部儲存器地址鎖存器鎖存,然後充當資料線,用於寫出或讀入資料。

p1口、p2口只是普通io口。

二、功能不同

p0口第一個功能是資料介面,第二個功能是地址低八位,p2口第二個功能是地址高八位。另外除了p0口沒有內部上拉電阻外,其他三個都有內部上拉電阻。

三、用法

訊號輸出和互動介面,程式設計可以確定不同的功能,例如連線液晶屏,作為控制訊號輸出輸入等。

由於沒有埠複用功能,所以,p0口的v1變成了一個上拉電阻。由於內部就有上拉電阻,所以,作為gpio時,p1口不需要接上拉電阻,當然,您接了也沒關係啦,就相當於兩個上拉電阻並聯。

基本功能:

一、p1 就沒多少功能,就是個準雙向i/o口。

二、p0當準io口使用,也就是既可以作輸出口,也可以作輸入口。

三、p3口除了是個準雙向i/o口外。第二功能很重要p3.0 (rxd)序列資料接收端,p3.

1 (txd)序列資料傳送端,p3.2 (int0)外部中斷0輸入,p3.3 (int1)外部中斷1輸入;

p3.4(t0)timer0計數器輸入,p3.5(t1)timer1計數器輸入,p3.6(wr)寫外部儲存器的脈衝輸出,p3.7(rd)讀外部儲存器的脈衝輸出。

擴充套件資料

1、p0口:真正的雙向口,輸出鎖存,輸入緩衝,輸入前要先置1(keil包含的標頭檔案已經有動作了,如果用匯編,要人工置1),輸出為漏極開路,輸出一般都要上拉電阻。輸入為高阻態,能驅動8個ttl負載。

當有片外儲存器時,作資料線使用。

2、p1口:最簡單的口,輸入也要先置1,無高阻態,只能是輸出或者輸入。能驅動4個ttl負載。

4、p3口:i/o(輸入/輸出)與p1口一樣,但無論輸入輸出都要先置1。具有很多複用功能。

7樓:匿名使用者

訊號輸出和互動介面,程式設計可以確定不同的功能,例如連線液晶屏,作為控制訊號輸出輸入等。

8樓:匿名使用者

首先,51微控制器p0p1p2p3口,都可以當準io口使用,也就是既可以作輸出口,也可以作輸入口。區別在於:

1、p0口作輸出口用時,需加上拉電阻。

2、p0口有複用功能。當對外部儲存器進行讀寫操作時,p0口先是提供外部儲存器的低8位地址,供外部儲存器地址鎖存器鎖存,然後充當資料線,用於寫出或讀入資料。

3、p1口、p2口只是普通io口。

4、p3口所有管腳運有特殊功能:

p3.0----rxd,序列通訊輸入口,不使用序列通訊功能時,可做普通io口使用

p3.1----txd,序列通訊輸出口,不使用序列通訊功能時,可做普通io口使用

p3.2----int0,外部中斷0輸入口,不使用外部中斷0功能時,可做普通io口使用

p3.3----int1,外部中斷1輸入口,不使用外部中斷1功能時,可做普通io口使用

p3.4----t0,定時器0外部計數輸入口,不使用定時器0外部計數功能時,可做普通io口使用

p3.5----t1,定時器1外部計數輸入口,不使用定時器1外部計數功能時,可做普通io口使用

p3.6----wr,外部儲存器寫訊號,不使用外部儲存器寫功能時,可做普通io口使用

p3.7----rd,外部儲存器讀訊號,不使用外部儲存器讀功能時,可做普通io口使用

9樓:

查查書吧!上面寫的清楚!

微控制器中斷問題求大神幫忙

include define uint unsigned int define uchar unsigned charuint i,t,shijian,x,num,num1 uchar disnum 0 uchar code tab sbit spk p1 2 接蜂鳴器void delay uint...

請大神幫我註釋下面的(51微控制器)程式,求詳細註釋啊,越詳細越好啊

滑動變阻器改變輸入電壓 adc0808將輸入模擬電壓轉化為8為數字訊號四位數碼管顯示輸入電壓 include include define ucharunsigned char define ucharunsigned char define uint unsigned intsbit start ...

求大神幫忙寫一份學生會的入會申請書

白羊小魚不會水 敬的學校領導 我是 級,x x 班學生,名叫 x x x 性格活潑 開朗,能吃苦,有理想,上進心很強,有組織能力,處事 沉著 果斷,能夠顧全大局。今天我能很榮幸地 表達我入學以來的願望 我要加入學生會這個組織 因為,學生會 是學校 的有力助手,也是同學們信賴的織。對於學生會這個組織,...