(1)采用定时器控制从 P1.0 输出 1000Hz 音频信号。
(2)采用定时器控制从 P1.0 和 P1.1 分别输出周期为 2ms 和50μs 的方波。
(1)汇编
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TINT0
MAIN:
MOV TMOD,#00000001B
MOV TH0,#0F9H
MOV TL0,#7EH
SETB TR0
SETB EA
SETB ET0
SJMP $
TINT0:
CPL P1.0
MOV TH0,#0F9H
MOV TL0,#7EH
RETI
END
实验室所用晶振为40MHZ,其机器周期为(1/40)*12=0.3μs,要产生的音频信号周期为1/1000s=1000μs,半个周期改变一次,所以定时器所需计数初值为:500/0.3=1666,-1666的补码为F97E(用电脑自带的计算器算的,点击左上角选择程序员模式就可以用了),高位放TH0,低位放TL0,用示波器测得实际输出频率为994HZ。
(2)汇编
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP TINT1
MAIN:
MOV R0,#28H
MOV TMOD,#00100000B
MOV TH1,#0ADH
MOV TL1,#0ADH
SETB EA
SETB TR1
SETB ET1
SJMP $
TINT1:
CPL P1.1
MOV TH0,#0ADH
MOV TL0,#0ADH
DJNZ R0,BACK
CPL P1.0
MOV R0,#28H
BACK:
RETI
END