org 0000h
ljmp start
org 0003h
ljmp doorcheck
org 4000h
start:mov 40h,#00h
mov 41h,#00h
mov 42h,#00h
mov 43h,#00h
mov 44h,#00h
mov 45h,#00h
mov 46h,#00h
mov 47h,#00h
mov 48h,#00h
mov 49h,#00h
mov 50h,#00h
main:mov p3,#0ffh
l0:mov a,p3
anl a,#0ffh
mov 40h,a
cjne a,#0ffh,button
sjmp l0
button:mov dptr,#tab1
mov a,#00h
l1:push acc
movc a,@a+dptr
cjne a,40h,l2
pop acc
mov dptr,#tab2
jmp @a+dptr
l2:pop acc
inc a
cjne a,#05h,l1
sjmp l0
pr1:mov r0,44h
cjne r0,#03h,l3
mov 44h,#00h
sjmp l0
l3:inc 44h
sjmp l0
pr2:mov r0,45h
cjne r0,#0ah,l4
mov 45h,#00h
sjmp l0
l4:inc 45h
sjmp l0
pr3:mov r0,46h
acall show
cjne r0,#3ch,l5
mov 46h,#00h
sjmp l0
l5:inc 46h
sjmp l0
pr4:mov r0,46h
mov r1,47h
cjne r1,#3ch,l6
cjne r0,#3ch,l7
mov 47h,#00h
mov 46h,#00h
sjmp l0
l6:inc 47h
acall show
sjmp l0
l7:inc 46h
acall show
sjmp l0
pr0:jb p3.2,l8
setb p2.2
sjmp pr0
l8:setb it0
setb ex0
setb ea
mov p1,#0ffh
mov a,44h
mov dptr,#tab3
movc a,@a+dptr
mov p1,a
mov a,45h
mov b,#05h
mul ab
mov 48h,a
push 46h
push 47h
l9:mov 49h,#2dh
clr p2.0
l10:mov 50h,#0ah
l11:mov tmod,#01h
mov th1,#3ch
mov tl1,#0b0h
setb tr0
l12:jbc tf1,l13
sjmp l12
l13:djnz 50h,l11
mov r0,46h
mov r1,47h
cjne r1,#00h,l14
cjne r0,#00h,l15
pop 47h
pop 46h
ljmp ed
l15:mov 47h,#2ch
dec 46h
l14:dec 46h
acall show
djnz 48h,l10
setb p2.0
djnz 49h,l10
setb p2.2
ajmp l0
show:push 46h
push 47h
orl p2,#0fh
mov dptr,#tab4
mov a,46h
add a,#00h
da a
mov r1,a
anl a,#0f0h
cpl a
mov r2,#08h
lm1:movc a,@a+dptr
mov p0,a
clr p2.7
acall dlay
djnz r2,lm1
mov a,r1
anl a,#0fh
mov r2,#08h
lm2:movc a,@a+dptr
mov p0,a
clr p2.6
acall dlay
djnz r2,lm2
mov a,47h
add a,#00h
da a
mov r1,a
anl a,#0f0h
cpl a
lm3:mov r2,#08h
movc a,@a+dptr
mov p0,a
clr p2.5
acall dlay
djnz r2,lm3
mov a,r1
anl a,#0fh
lm4:mov r2,#08h
movc a,@a+dptr
mov p0,a
clr p2.4
acall dlay
djnz r2,lm4
pop 47h
pop 46h
ret
dlay:mov r6,#0ffh
dl1:mov r7,#0ffh
dl2:nop
nopdjnz r7,dl2
djnz r6,dl1
retdoorcheck:jb p2.0,re
setb p2.0
setb p2.1
push 46h
push 47h
jnb p3.2,$
pop 47h
pop 46h
re:reti
ed:clr p2.2
setb p2.0
tab1:db 0f0h,0e1h,0d1h,0b1h,71h
tab2:ajmp pr0
ajmp pr1
ajmp pr2
ajmp pr3
ajmp pr4
tab3:db 0feh,0fdh,0fbh
tab4:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
end
組合語言 微控制器基礎
以老師上課講的例題為例,進行程式分析。前兩步為跳過中斷區,一般程式都直接加上 org 0000h ljmp main org 1000h 定義源位址為1000h main mov a,30h 將 立即數30h 賦給 累加器a movc a,a pc 將 累加器a 下一條命令後程式計數器的值 對應位址...
微控制器彙編程式設計300例 微控制器基礎組合語言程式設計例項
微控制器組合語言程式設計 1 編寫程式,用位處理指令實現 p1.4 p1.0 p1.1 p1.2 p1.3 的邏輯功能。mov c,p1.1 anl c,p1.2 orl c,p1.0 orl c,p1.3 mov p1.3,c 2 編寫程式,若累加器a的內容分別滿足下列條件,則程式轉到lable儲...
tiri微控制器 51微控制器 微控制器組合語言學習
mcs 51微控制器的特殊功能暫存器 符號位址 功能介紹 bf0h b暫存器 acce0h 累加器psw d0h程式狀態字 th2 cdh定時器 計數器2 高8位 tl2 cch定時器 計數器2 低8位 rcap2h cbh外部輸入 p1.1 計數器 自動再裝入模式時初值暫存器高八位 rcap2l ...