📄 hui2051.asm
字号:
ORG 0000H
AJMP START
ORG 000BH
AJMP TIMER0
ORG 001BH
AJMP TIMER1
ORG 0030H
START:
MOV TMOD,#12H ;设定T0的工作方式为2,T1的工作方式为1
MOV TH0,#9CH ;T0每计算100产生一个中断(一个PWM波周期是100uS)
MOV TL0,#9CH
SETB EA ;开中断
SETB ET0
SETB ET1
SETB TR0 ;T0开始计数
LOOP:
MOV A,#P1 ;把89S51输出的占空比数值,存进30H
MOV 30H,A
AJMP LOOP
TIMER0: ;T0中断程序
MOV A,#0FFH ;给T1赋初值
CLR C ;初值为65535-30H(高电平信号为30H中的占空比数)
SUBB A,30H
MOV TL1,A
MOV TH1,#0FFH
SETB P3.7 ;P3.7为PWM波形输出端口
SETB TR1 ;开定时器T1
RETI
TIMER1: ;T1中断程序
CLR P3.7 ;P3.7置0,(PWM波低电平信号为100-占空比数)
CLR TR1 ;关T1
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -