参考
这是几年前写的一段程序,实际运行正确。BIT脉宽0.833mS,用51 Mcu ,晶振可能是11.0592MHz,用P1.6驱动红外LED。
你不能照搬搬,仅供参考。
;one bit pulse width with 38khz carrier wave
;发送一个“0”子程序
bitzer: mov r3,#32
osc0: cpl p1.6
mov r2,#3
nop
nop
nop
nop
djnz r2,$
cpl p1.6
mov r2,#3
nop
nop
nop
djnz r2,$
djnz r3, osc0
ret
;发一个“1”子程序,实际上是一个延时,使P1.6高电平0.833mS
bitone: setb p1.6
mov r3,#62
osc1: mov r2,#5
djnz r2,$
djnz r3,osc1
ret
;trans ir remote code subprogram(for tv/vga card)
发一个四字节编码子程序,该编码首地址已在DPTR中。
transr: mov r0,#3
acall bitzer
acall bitone
mov a,#0
tbyte: mov 25h,a
movc a,@a+dptr
mov r1,#8
tt0: jb acc.7,tt1
acall bitzer
jmp tt2
tt1: acall bitone
tt2: rl a
djnz r1,tt0
mov a,25h
inc a
djnz r0,tbyte
ret
发表时间:2005年3月13日17:10:54