微控制器P1口高四位控制低四位的指示燈程式解析

時間 2021-10-14 21:22:44

1樓:

main:

mov a,p1 讀取io口的值

orl a,#0fh 低四位置高(用於採集端需要先輸出高電平)

swap a

mov p1,a

ljmp main

2樓:

main: mov a,#0fh ;0fh到累加器

orl p1,a ;p1與0fh或運算,p1的低4位置1,高4位不變

mov a,p1 ;p1的狀態值到累加器

swap a ;交換累加器的高低4位,即高4位變低4位,低4位變高4位。

mov p1,a ;累加器a到p1

ljmp main ;迴圈

這個程式有問題吧?p1會不停的變化的。

main:mov a,p1

orl a,#0fh

swap a

mov p1,a

ljmp main

這樣才不會變。

3樓:

main: ;程式開始

mov a,#0fh ;將00001111送人a

orl p1,a ;將a中的數和p1的數相或再送到送到p1口

mov a,p1 ; 將p1的數送到a

swap a ;將a中高四位數和低四位數互換

mov p1,a ;將a中的數送到p1

ljmp main ;程式跳到開始再開始執行

微控制器實驗 p1口低四位接發光二極體,高四位接開關,編寫程式,將開關狀態在發光二極體上顯示出來!

4樓:匿名使用者

這個很好辦啊

a=p1&0xf0; // 取p1口高四位

p1=a; //因為是開關,所以直接賦八位值,不影響高四位開關狀態

5樓:秋梵憐晴

a=p1&0xf0;

51微控制器的程式問題 將累加器a中低四位的狀態,通過p1口的高4位輸出.

6樓:匿名使用者

遮蔽a.7~a.4就是講累加器的高4位清零。p1.7~p.1.4是p1口的高4位。a.3~a.0是累加器的低4位

7樓:電子自控設計店鋪

anl是與 anl a,#0fh 是a與0fh相與,是將高四位變成0,低四位不變。a.7~a.4是a的高四位。

p1.7~p.1.4是微控制器的io口p1.7~p.1.4。

a.3~a.0是a的低四位

8樓:做而論道

a 中有八位數,記為:7654_3210

p1中有八位數,記為:8888_9999

anl a,#0fh ;遮蔽a.7~a.4 --- a=0000_3210

swap a ;高、低半位元組交換- a=3210_0000

anl p1,#0fh ;清p1口高四位 --p1=0000_9999

orl p1,a ;使p1.7~p.1.4按a中初始值的a.3~a.0值置位

---------------- p1 = 3210_9999

這就實現了:累加器a中低四位3210,通過p1口的高4位8888的位置輸出。

9樓:沙裡波特

回答的不錯。

六年多了,你怎麼還不採納?

51微控制器的程式問題將累加器A中低四位的狀態,通過P1口的高4位輸出

遮蔽a.7 a.4就是講累加器的高4位清零。p1.7 p.1.4是p1口的高4位。a.3 a.0是累加器的低4位 電子自控設計店鋪 anl是與 anl a,0fh 是a與0fh相與,是將高四位變成0,低四位不變。a.7 a.4是a的高四位。p1.7 p.1.4是微控制器的io口p1.7 p.1.4。...

用五一微控制器c語言程式設計,p1口控制發光二極體,實現每隔一秒,兩兩點亮,並迴圈

諾諾百科 一 include void delay unsigned char xms 延時xms int i,j for x i x 0 x for j 110 j 0 j void main p0 0x00 p0.0 p0.7分別接八個發光二極體,剛開始全滅 while 1 delay 1000...

急求求使微控制器控制p1埠的led燈做作左

include include define uchar unsigned char define uint unsigned int 名稱 delay 功能 延時,延時時間為 10ms del 輸入 del 輸出 無 void delay uint del 名稱 main 功能 實現燈的閃爍 輸入...