請求幫忙,微控制器裡的組合語言,好心人士懂的幫幫。在此萬分感謝

2022-10-06 03:56:52 字數 940 閱讀 4230

1樓:

org 0000h

ajmp main

org 0100h

main: mov p1,#0ffh

clr p3.1 ;p3.1清零

mov sp,#30h;堆疊指標後移

wwwo: acall key_of ;呼叫子程式ajmp wwwo;死迴圈

key_of: setb p3.0;p3.0置1mov a,p3;把p3口狀態給累加器a

jnb acc.0,of_on;判斷累加器最低位是否為低電平(也就是p3.0),是就跳的of_on

retof_on: setb p3.0;p3.0置1mov a,p3;把p3口狀態給累加器a

jnb acc.0,ofo;判斷累加器高位是否為低電平(也就是p3.0),是就跳的ofo

retofo: setb p3.0;p3.0置1acall delay;延時

mov a,p3;把p3口狀態給累加器a

jnb acc.0,ofo;判斷累加器高位是否為低電平(也就是p3.0),是就跳的ofo

cpl p1.0;p1.0取反

cpl p3.1;p3.1取反

retdelay: mov r7,#0;延時函式mov r6,#30

del1: djnz r7,del1

djnz r6,del1

程式完成根據p3.0腳的狀態,控制p3.1,p1.0的輸出

2樓:晉安吉

程式通過判斷兩次p3.0的狀態為0應該是一個防抖處理,後面的ofo程式是確定是正確訊號輸入後等待訊號的恢復,然後再響應操作。估計p3.

0應該是連線一個按鍵,通過按鍵的方式控制p3.1和p1.0訊號的翻轉。

3樓:匿名使用者

程式很簡單,主要是通過判斷p3.0腳的狀態,控制p3.1和p1.0的翻轉。

微控制器組合語言填空,微控制器組合語言作業

delay mov r3,20 設定50ms計數迴圈初值 mov tmod,10h 設定時器1方式1mov th1,03ch 置定時器初值mov tl1,0b0h setb tr1 啟動t1lp1 jbc tf1 lp2 查詢計數溢位sjmp lp1 lp2 mov th1,03ch 重新制定時器初...

微控制器彙編程式,微控制器(組合語言)程式

這個是外部擴充套件的ram,fef0h是存資料的地址,mov dptr 0fef0h是給資料指標賦值,movx dptr,a是間接定址,將a中資料送到外部ram的fef0h中,中斷服務程式後面應該有reti,挺容易的,看看書,這例題允許了中斷,給出了中斷處理程式,自己看書學得較為深刻。ofefoh指...

關於微控制器組合語言開頭幾句

0100h的意思是將start 標號後面的指令地址放到100h這個地方,這是說給編譯器聽的.ljmp start 之後的地址到9fh都給別人用.0100意思就是從下面那句話開始,到再次出現 偽 的語句之前的程式全放在從0100h這個地址開始的程式段內。0100h表示主程式的起始地址。前面的類似pc中...