📄 基于单片机的全自动洗衣机程序.txt
字号:
timerm equ 79h
timers equ 7ah
org 0000
ljmp main
org 0003
ljmp sint0
org 000bh
ljmp st0
org 0013h
ljmp sint1
org 001bh
ljmp st1
dislab:
db 3fh,06h,5bh,4fh,66h
db 6dh,7dh,07h,7fh,6fh
main:
clr f0
mov 70h,#0
mov 71h,#3
mov 72h,#30
mov 73h,#5
mov 75h,#0
mov 76h,#1
mov 79h,#0
mov 7ah,#0
clr p1.0
clr p1.1
clr p1.2
setb p3.4
clr p3.4
clr p3.5
mov p0,#0
mov p2,#0
clr p3.0
clr p3.1
mov tmod,#11h
mov th0,#3ch
mov th1,#0b0h
mov tl0,#3ch
mov tl1,#0b0h
setb it0
setb it1
setb ea
setb ex0
mlab1:
jnb f0,$
mov a,72h
mov b,71h
div ab
mov 74h,a
mov r2,71h
lab2:
setb p3.0
clr f0
setb ex1
jnb f0,$
clr p3.0
setb p1.0
setb tr0
jb tr0,$
setb p3.1
clr f0
jnb f0,$
clr p3.1
djnz r2,lab2
clr p1.1
setb p1.0
setb tr1
jb tr1,$
clr p1.0
mov r2,#5
alarm:
setb p1.2
mov r3,#0
delay1:
nop
djnz r3,delay1
clr p1.2
delay2:
nop
djnz r3,delay2
djnz r1,alarm
clr f0
ljmp mlab1
sint1:
setb f0
reti
st0:
mov th0,#3ch
mov tl0,#0b0h
inc timers
push acc
mov a,timers
cjne a,#10,t0lab1
pop acc
mov timers,#0
inc timerm
push acc
mov a,timerm
cjne a,#60,t0lab1
pop acc
mov timerm,#0
mov a,#99
add a,72h
da a
mov r1,#72h
lcall display
push acc
mov a,70h
cjne a,#1,t0lab1
pop acc
jnb p1.0,t0lab21
clr p1.0
setb p1.1
ljmp t0lab22
t0lab21:
setb p1.0
clr p1.1
t0lab22:
inc 75h
mov a,74h
cjne a,75h,t0lab1
clr tr0
t0lab1:
reti
;***********************
;内中断1
;***********************
st1:
mov th1,#3ch
mov tl1,#0b0h
inc timers
push acc
mov a,timers
cjne a,#10,t1lab1
pop acc
mov timers,#0
inc timerm
push acc
mov a,timerm
cjne a,#60,t1lab1
pop acc
mov timerm,#0
mov a,#99
add a,73h
da a
mov r1,#73h
lcall display
mov a,73h
jnz t1lab1
clr tr1
t1lab1:
reti
;*********************
;外中断0
;*********************
sint0:
setb p3.5
clr p3.4
mov a,p3
anl a,#0c0h
cjne a,#0c0h,intlab1
clr p3.5
setb p3.4
mov a,p3
anl a,#0c0h
orl a,#20h
intlab1:
cjne a,0c0h,intlab3
inc 76h
mov r0,76h
cjne @r0,#5,intlab2
mov 76h,#1
intlab2:
push acc
mov a,76h
cjne a,#1,intlab21
pop acc
clr p1.3
setb p1.4
clr p1.5
reti
intlab21:
push acc
mov a,76h
cjne a,#2,intlab22
pop acc
setb p1.3
clr p1.4
clr p1.5
mov r1,71h
lcall display
reti
intlab22:
push acc
mov a,76h
cjne a,#3,intlab23
pop acc
setb p1.3
clr p1.4
setb p1.5
mov r1,72h
lcall display
reti
intlab23:
setb p1.3
setb p1.4
clr p1.5
mov r1,73h
lcall display
reti
intlab3:
cjne a,#6,intlab4
push acc
mov a,76h
cjne a,#1,intlab31
pop acc
xrl 70h,#0ffh
cpl p1.5
reti
intlab31:
push acc
mov a,76h
cjne a,#2,intlab32
pop acc
mov a,#1
add a,71h
da a
mov r1,71h
lcall display
reti
intlab32:push acc
mov a,76h
cjne a,#3,intlab33
pop acc
mov a,#1
add a,72h
da a
mov r1,72h
lcall display
reti
intlab33:mov a,#1
add a,73h
da a
mov r1,73h
lcall display
reti
intlab4:cjne a,#8,intlab5
push acc
mov a,76h
cjne a,#1,intlab41
pop acc
xrl 70h,#0ffh
cpl p1.5
reti
intlab41:push acc
mov a,76h
cjne a,#2,intlab42
pop acc
mov a,#99h
add a,71h
da a
mov r1,71h
lcall display
reti
intlab42:push acc
mov a,76h
cjne a,#3,intlab43
pop acc
mov a,#99h
add a,72h
da a
mov r1,72h
lcall display
reti
intlab43:mov a,#99h
add a,73h
da a
mov r1,73h
lcall display
reti
intlab5:setb f0
reti
display:mov a,r1
swap a
anl a ,#0fh
mov dptr,#dislab
movc a,@a+dptr
mov p0,a
mov a,r1
anl a ,#0fh
movc a,@a+dptr
mov p2,a
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -