1樓:做而論道
怎麼都是輸出?
沒有輸入作依據,根據什麼輸出不同的值?
把題目改為:
p1.0口輸入為1,則p1.3口輸出為1,p1.
0口輸入為0,則p1.3口輸出為0,p1.1口輸入為1,則p1.
4口輸出為1,p1.1口輸入為0,則p1.4口輸出為0
程式:org 0000h
mov c, p1.0
mov p1.3, c
mov c, p1.1
mov p1.4, c
sjmp 0000hend
2樓:匿名使用者
org 0000h
ljmp main
org 0030h
main:
mov p1.3,p1.0
mov p1.4,p1.1
mov p1.5,p1.2
sjmp mainend
3樓:一萬光年
org 0000h
l_main:
jb p1.0, l_p13_set_hclr p1.3
ajmp l_next
l_p13_set_h:
setb p1.3
l_next:
jb p1.1, l_p14_set_hclr p1.4
ajmp l_main
l_p14_set_h:
setb p1.4
ljmp l_mainend
微控制器組合語言程式設計,通過用at89c52微控制器定時/計數器0的定時功能構成一簡單的方波發生器
用微控制器組合語言編寫微控制器at89c52控制led燈
4樓:匿名使用者
控制埠週期的輸出0和1
led就跟著亮-滅了。
具體要根據你的電路來編寫軟體。
用keil編譯組合語言編寫的程式,顯示有錯誤且目標未建立,驅動是at89c52,程式如下:
5樓:匿名使用者
你的程式不全,缺少以下子程式或**:
1、delay
2、wri
3、wrd
4、delay1
5、dab2
at89c51微控制器怎麼用組合語言寫「多個延時程式」
6樓:匿名使用者
微控制器組合語言中要使一個延時程式可以被不同情況下呼叫而延時不同的時間,可以通過類似於c語言中傳遞引數的方式來實現,舉例如下:
org 0000h
ljmp main
org 0030h
main:
mov p0,#5ah ;p0上的led燈間隔點亮mov r7,#50 ;r7是延時傳遞引數lcall delay ;呼叫延時函式mov p0,#0a5h ;p0上led燈另一半點亮mov r7,#100 ;延時時間加長lcall delay
mov p0,#00h ;led等全部點亮mov r7,#150 ;延時再次加長lcall delay
mov p0,#0ffh ;燈滅
mov r7,#200 ;延時時間再次加長lcall delay
sjmp main ;迴圈
delay:
mov r2,#100
dly:
mov r3,#250
djnz r3,$
djnz r2,dly
djnz r7,delay ;r7是呼叫前賦值的傳遞引數。
retend
7樓:做而論道
標號可以用 $ 代替。
每使用一個 $,就可以少寫一個標號。
下面的寫法,和你原來的,轉移功能完全相同,但卻節約了三個標號。
delay:mov r7,#10
mov r6,#50
mov r5,#200
djnz r5, $ ; = d2: djnz r5, d2
djnz r6, $ - 4 ; = djnz r6, d1djnz r7, $ - 8 ; = djnz r7, d0ret
8樓:匿名使用者
;晶振24m
delay1s: ;子程式
mov a,r4
jz enddelay
mov r5,#10h ; ∵ 1s=2000000*0.5us
mov r6,#43h ; ∴ 2000000/2=1000000
mov r7,#40h ; 1000000用16進製表示為: 0f4240
; 所以 r5=0fh+1=10h
; r6=042h+1=043h
; r7=40h
loop: djnz r7,$ ; 延時時間≈2×[(r5-1)×256+r6-1]×256+r7
djnz r6,loop ; 當r5、r6等於0,相當於256參與運算
djnz r5,loop ; 當r5、r6等於0,相當於256參與運算
djnz r4,delay1s
enddelay: ret
上面是延時子程式,基礎延時是1s,呼叫前給r4賦值,r4的值就是延時的秒數,比如:
mov r4,#3 ;表示延時3秒
lcall delay1s
希望你能參考著用,這個用法有點像帶引數的函式
9樓:匿名使用者
如果延時時間是成倍數關係 的,可以以一個為基數 。比如10ms的子程式 ,呼叫10次就是100ms。
r不夠用,也可以用記憶體單元
10樓:0開拓者
例如delay_r7: ;delay=r7*10ms
de10ms: ;@12m
mov r6,#01h
dl1:
mov r5,#26h
dl0:
mov r4,#82h
djnz r4,$
djnz r5,dl0
djnz r6,dl1
djnz r7,de10ms
ret使用延時10ms: mov r7,#1lcall delay_r7
使用延時100ms:mov r7,#10
lcall delay_r7
使用延時2.5s: mov r7,#250lcall delay_r7
11樓:
r可以重複呼叫,所以是夠用的
組合語言與C 的區別,組合語言和C 語言有什麼區別
彙編是最基礎的程式語言.c 是一種物件導向物件的語言.c 要想在系統上執行,最終是轉換為機器碼.彙編也是,但是彙編轉換為機器碼比較容易.c 轉換則要先轉換為彙編.c也可以稱作高階語言.但是,c語言在c 之下.起一個過渡作用.如果你想學好程式設計.先學c語言或者組合語言.鄙人建議你先學組合語言 然後再...
組合語言程式設計的問題,組合語言程式設計問題
1.jmp bx 如果 bx 1020h,那麼 ip 1020h,因為此種形式為通過暫存器的段內間接轉移,執行時將把暫存器的內容直接送ip,所以執行此指令後ip的值為1020h 2.jmp tab bx si 如果 ds 2000h,bx 1020h,si 0002h,tab 0010h,21032...
組合語言程式編寫程式顯示藍屏
對的,建立彩色文字區80 25比較穩定,如果你要顯示滿屏,請把 mov cx,25 這一句中的25改成50 或75,即25的倍數,400 即可。assume cs code code segment start mov ax,0b800hmov es,ax mov di,0 mov cx,25 s ...