mình mới học asembly, mình tìm trên mạng đc chương trình "đo nhiệt độ hiển thị ra 4 led 7 thanh" như sau:
vang bit p1.0 ;1
xanh bit p1.1 ;2
do bit p1.2 ;3
start bit p1.3 ;4
eoc bit p1.4 ;5
ale bit p1.5 ;6
org 000h ;7
td: lcall cdoi ;8
lcall hex_bcd ;9
lcall bcd_7doan ;10
lcall hienthi ;11
jmp td ;12
cdoi: setb ale ;13
clr ale ;15
setb start ;16
jb eoc,$ ;17
clr start ;18
mov r7,#150
de: lcall hienthi
djnz r7,de
mov a,p3
cjne a,#30,ktc
ktc: jc sang_vang
cjne a,#41,ktc1
ktc1: jnc sang_do
clr xanh
setb do
setb vang
ret
sang_do: clr do
setb xanh
setb vang
ret
sang_vang:
clr vang
setb do
setb xanh
ret
hex_bcd:
mov b,#10
div ab
mov 10h,b
mov 11h,a
ret
bcd_7doan:
mov dptr,#900h
mov a,10h
movc a,@a + dptr
mov 20h,a
mov a,11h
movc a,@a + dptr
mov 21h,a
ret
hienthi: mov p0,21h
clr p2.7
lcall delay
mov p2,#0ffh
mov p0,20h
clr p2.6
lcall delay
mov p2,#0ffh
mov p0,#09ch
clr p2.5
lcall delay
mov p2,#0ffh
mov p0,#0c6h
clr p2.4
lcall delay
mov p2,#0ffh
ret
delay: mov 7fh,#100
djnz 7fh,$
ret
ORG 900H
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
END
mình không hiểu dòng lệnh thứ 17 nghĩa là gì (jb eoc,$), mong bạn nào biết chỉ rõ giúp mình.
vang bit p1.0 ;1
xanh bit p1.1 ;2
do bit p1.2 ;3
start bit p1.3 ;4
eoc bit p1.4 ;5
ale bit p1.5 ;6
org 000h ;7
td: lcall cdoi ;8
lcall hex_bcd ;9
lcall bcd_7doan ;10
lcall hienthi ;11
jmp td ;12
cdoi: setb ale ;13
clr ale ;15
setb start ;16
jb eoc,$ ;17
clr start ;18
mov r7,#150
de: lcall hienthi
djnz r7,de
mov a,p3
cjne a,#30,ktc
ktc: jc sang_vang
cjne a,#41,ktc1
ktc1: jnc sang_do
clr xanh
setb do
setb vang
ret
sang_do: clr do
setb xanh
setb vang
ret
sang_vang:
clr vang
setb do
setb xanh
ret
hex_bcd:
mov b,#10
div ab
mov 10h,b
mov 11h,a
ret
bcd_7doan:
mov dptr,#900h
mov a,10h
movc a,@a + dptr
mov 20h,a
mov a,11h
movc a,@a + dptr
mov 21h,a
ret
hienthi: mov p0,21h
clr p2.7
lcall delay
mov p2,#0ffh
mov p0,20h
clr p2.6
lcall delay
mov p2,#0ffh
mov p0,#09ch
clr p2.5
lcall delay
mov p2,#0ffh
mov p0,#0c6h
clr p2.4
lcall delay
mov p2,#0ffh
ret
delay: mov 7fh,#100
djnz 7fh,$
ret
ORG 900H
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
END
mình không hiểu dòng lệnh thứ 17 nghĩa là gì (jb eoc,$), mong bạn nào biết chỉ rõ giúp mình.
Comment