hui2051.asm

来自「汇编语言的ASM文件源码」· 汇编 代码 · 共 34 行

ASM
34
字号
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 + =
减小字号Ctrl + -
显示快捷键?