k0 BIT P1.0 ; 各位老师大家好,这个是98C51的红外线发射有几个句子我不明白,请你们解释一下。
k1 BIT P1.1
k2 BIT P1.2
k3 BIT P1.3
k4 BIT P1.4
k5 BIT P1.5
k6 BIT P1.6
k7 BIT P1.7
bz bit 00h ;不明白
k0h equ #0f1h
k0l equ #0c8h ;k0键输出频率300Hz833
k1h equ #0f8h
k1l equ #0ech ;k1键输出频率600Hz417
k2h equ #0feh
k2l equ #0eah ;k2键输出频率900Hz278
k3h equ #0ffh
k3l equ #030h ;k3键输出频率1200Hz208
k4h equ #0ffh
k4l equ #059h ;k4键输出频率1500Hz167
k5h equ #0ffh
k5l equ #075h ;k5键输出频率1800Hz139
k6h equ #0ffh
k6l equ #089h ;k6键输出频率2100Hz119
k7h equ #0ffh
k7l equ #098h ;k7键输出频率2400Hz104
ORG 0000H
aJMP START
ORG 000BH ;定时器T0入口
aJMP intt0
ORG 001bH ;定时器T1入口
aJMP intt1
org 0030h
intt0: cpl p3.4
mov a,r1
mov th0,a
mov a,r2
mov tl0,r2
reti
intt1: clr tr0
clr et0
clr tr1
clr et1
setb bz ;不明白
setb p3.4
reti
start: MOV P1,#0FFH
mov p3,#0ffh
MOV TMOD,#11H ;计数器T0、T1工作在方式1
setb ea ;开所有中断
xh: *** k0,d01
acall ys
Jb k0,d01 ;k0
jnb k0,$ ;不明白
acall sett1
mov r1,k0h
mov r2,k0l
acall sett0
jnb bz,$ ;不明白
d01: *** k0,d02
acall ys
Jb k0,d02 ;k1
jnb k0,$
acall sett1
mov r1,k1h
mov r2,k1l
acall sett0
jnb bz,$
D02: *** k0,d03
acall ys
Jb k0,d03 ;k2
jnb k0,$
acall sett1
mov r1,k2h
mov r2,k2l
acall sett0
jnb bz,$
D03: *** k0,d04
acall ys
Jb k0,d04 ;k3
jnb k0,$
acall sett1
mov r1,k3h
mov r2,k3l
acall sett0
jnb bz,$
D04: *** k0,d05
acall ys
Jb k0,d05 ;k4
jnb k0,$
acall sett1
mov r1,k4h
mov r2,k4l
acall sett0
jnb bz,$
D05: *** k0,d06
acall ys
Jb k0,d06 ;k5
jnb k0,$
acall sett1
mov r1,k5h
mov r2,k5l
acall sett0
jnb bz,$
D06: *** k0,d07
acall ys
Jb k0,d07 ;k6
jnb k0,$
acall sett1
mov r1,k6h
mov r2,k6l
acall sett0
jnb bz,$
D07: *** k0,d08
acall ys
Jb k0,d08 ;k7
jnb k0,$
acall sett1
mov r1,k7h
mov r2,k7l
acall sett0
jnb bz,$
d08: ajmp xh
ys: mov r5,#80h
ys1: djnz r5,ys1
ret
sett1: MOV TH1,#3ch ;定时时间约为100ms
MOV TL1,#0b0h
setb tr1 ;启动T1计时
setb et1 ;允许T1中断
clr bz
ret
sett0: MOV TH0,r1
MOV TL0,r2
setb tr0
setb et0
ret
end
|