📄 auto1.bak
字号:
;*******design for auto clean macine 2003-8-11 am 9:00-pm 2:00*********
fire equ p1.0 ;红外发射口
jdq equ p1.2 ;继电器控制口
beep equ p1.3
lamp equ p1.1
pduan equ p3.2 ;int0 口
org 0000h
jmp main
org 0003h
jmp int_0
org 000bh
jmp t0_0
org 0030h
MAIN:
mov p1,#0ffh ;出始化I/O口
mov tmod,#01h
mov th0,#00h
mov tl0,#00h
setb ea
setb ex0
setb et0
setb tr0
setb pduan ;p3.2设置为输入状态
acall music1
start:
jmp start
t0_0: clr tr0
clr fire ;产生50k方波
setb fire
clr fire
setb fire
mov th0,#00h
mov tl0,#00h
setb tr0
reti
int_0:
clr ex0
acall music ;音乐
clr jdq ;开热风机
clr lamp ;开指示灯
wait: acall delay ;延时
jnb pduan,wait ;防止继电器跳动
setb lamp
setb jdq ;关继电器
setb ex0
reti
music:MOV R0,#059H ;beep! beep!beep!
S6: ACALL DELAY3
CLR BEEP
ACALL DELAY3
SETB BEEP
DJNZ R0,S6
ACALL DELAY5
THIR: MOV R0,#059H
S7: ACALL DELAY3
CLR BEEP
ACALL DELAY3
SETB BEEP
DJNZ R0,S7
acall delay5
THI: MOV R0,#059H
S8: ACALL DELAY3
CLR BEEP
ACALL DELAY3
SETB BEEP
DJNZ R0,S8
ret
music1:MOV R0,#0b9H ;beep !beep!
S9: ACALL DELAY3
CLR BEEP
ACALL DELAY3
SETB BEEP
DJNZ R0,S9
ACALL DELAY5
acall delay5
TH : MOV R0,#0b9H
S10:ACALL DELAY3
CLR BEEP
ACALL DELAY3
SETB BEEP
DJNZ R0,S10
ret
delay: mov r0,#17h ;3s @12MHz
de1: mov r1,#0ffh
de2: mov r2,#0ffh
de3: djnz r2,de3
djnz r1,de2
djnz r0,de1
ret
delay1:mov r0,#0ffh
del4: mov r1,#0ffh
del5: djnz r1,del5
djnz r0,del4
ret
DELAY3: MOV R6,#02H ;296.6US@12mhz
DEL10: MOV R5,#01dH
DEL11: nop
nop
DJNZ R5,DEL11 ; $
DJNZ R6,DEL10
RET
DELAY5: MOV R4,#14
DEL17: MOV R6,#0EbH ;82ms
DEL15: MOV R5,#0bH
DEL16:
DJNZ R5,DEL16 ; $
DJNZ R6,DEL15
DJNZ R4,DEL17
RET
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -