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 功能 實現燈的閃爍 輸入...