微控制器大神請進,51微控制器彙編程式,程式可發至

2021-06-29 05:25:15 字數 1759 閱讀 9440

1樓:生活如歌

1 p1口做輸出口,編寫程式,使p1口接的8個發光二極體l1—l8按16進位制加一方式點亮發光二極體。程式如下:

org 0540h

ha1s: mov a,#00h;a初值為0

ha1s1: jb p3.3,ha1s1;如果p3.3為1則等待(有脈衝變0一次)

mov r2,#20h;r2賦值為20

lcall delay;延時(去抖動)

jb p3.3,ha1s1;如果為1則返回繼續判斷

ha1s2: jnb p3.3,ha1s2;等待脈衝變為高電平(等待鍵釋放)

mov r2,#20h;r2重新賦值為20

lcall delay;延時

jnb p3.3,ha1s2;如果沒釋放則返回繼續等待

inc a;a加1

push acc;a入堆疊保護

cpl a;a取反

mov p1,a;a送p1

pop acc;a的值出棧恢復原值

ajmp ha1s1;返回程式開始處

delay: push 02h;02h(r2)入棧保護,因為下面的迴圈中都是20次(r2中的數,所以三次入棧),不過這個程式這樣寫真是很彆扭

delay1: push 02h

delay2: push 02h

delay3: djnz r2,delay3

pop 02h

djnz r2,delay2

pop 02h

djnz r2,delay1

pop 02h

djnz r2,delay

retend

二、把上面的要求p3.3輸入替換成int0外部中斷輸入,寫個完整的彙編程式,其他要求不變!

org 0000h

ljmp main

org 0013h

ljmp zdx1

org 0100h

main: setb ex1

setb ea

mov a,#00h

mov p1,#0ffh

sjmp $

zdx1: inc a

push acc

cpl a

mov p1,a

pop a

retiend

2樓:匿名使用者

p3.3是外中斷1,不是0.

org 00h

ajmp main

org 13h

ajmp ex1int

org 30h

main:

setb ea

setb ex1

setb it1

main1:

mov p1,r0

cjne r0,#0,main1

mov r0,#0

ajmp main1

ex1int:

inc r0

retiend

3樓:匿名使用者

org 0000h ; protues**通過jmp main

org 0003h

int00: inc a ; int0 中斷 計數cpl a

mov p1,a ; p1 輸出顯示 計數cpl a

reti

main: mov sp, #7fh ; 初始化設定setb it0 ; 開中斷

setb ex0

setb ea

sjmp $end

急!!51微控制器匯程式設計序問題

缺少消抖環節。延時10ms後,再去判斷是否按下。loopmain jb counts 為1轉移,因為沒有按鍵。lcall dl10ms 為0,是有鍵按下,等10msjb counts 為1轉移,因為剛才是按鍵抖動。ljmp cou 依然為0,才去執行按鍵的功能程式。樓上說的消抖是乙個方面,也就是說當...

51微控制器倒序指令組合語言,51微控制器的指令是組合語言嗎

func 版 mov r0,0 權 mov r7,8 loop rlc a xch a,r0 rrc a xch a,r0 djnz r7,loop mov a,r0ret 51微控制器的指令是組合語言嗎?組合語言 assembly language 是一種用於電子計算機 微處理器版 微控制器或其他...

微控制器組合語言兩數比較大小,51微控制器用組合語言怎麼程式設計幾個有符號數的比較大小

微控制器有比較指令cmp的嗎,請回答者再看看書吧。可以用cjne指令,它有比較功能,如cjne a,data,label 當a data時,進製位置一,就可以判斷了。程式如下 clr c 先把進製位清零,以防誤判cjne a,data,no equ 不等則轉到no equ,相等則直接順序執行 執行相...