- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STC12系列单片机的PWM输出汇编语言示例程序
STC12系列单片机的PWM输出汇编语言示例程序
对于以下程序我的理解是:equ是一个符号定义伪指令pulse_width_max equ 0f0HMOV A,#pulse_width_max?????? 它的意思是:将pulse_width_max里的值作为数值赋到寄存器A里.MOV A,pulse_width_max???????? 它的意思是:将pulse_width_max里的值作为地址赋到寄存器A里.
我的8个PWM给你参考(2774字)coody[63次]2006-8-29 15:01:43;**************************************************************
;**************************************************************
T0interrupt: ;max 53T
PUSH PSW
PUSH ACC
;*************************** 30T ***********************************
MOV P1,PWM_TEMP
INC PWM_DUTY
MOV A,PWM_DUTY
JNZ L_PWM
MOV PWM_TEMP,PWM_TEMP1
SJMP L_QuitPWM
L_PWM:
CJNE A,PWM0,L_NotClearPWM0
SETB B_PWM0
L_NotClearPWM0:
CJNE A,PWM1,L_NotClearPWM1
SETB B_PWM1
L_NotClearPWM1:
CJNE A,PWM2,L_NotClearPWM2
SETB B_PWM2
L_NotClearPWM2:
CJNE A,PWM3,L_NotClearPWM3
SETB B_PWM3
L_NotClearPWM3:
CJNE A,PWM4,L_NotClearPWM4
SETB B_PWM4
L_NotClearPWM4:
CJNE A,PWM5,L_NotClearPWM5
SETB B_PWM5
L_NotClearPWM5:
CJNE A,PWM6,L_NotClearPWM6
SETB B_PWM6
L_NotClearPWM6:
CJNE A,PWM7,L_NotClearPWM7
SETB B_PWM7
L_NotClearPWM7:
L_QuitPWM:
;**************************************************************
L_QuitT0Interrupt:
POP ACC
POP PSW
RETI
;这是呼吸灯的程序,PWM从P0.0输出
ORG 00H
SJMP MAIN
ORG 000BH
LJMP TIME0
ORG 001BH
JMP TI个ME1
ORG 0030H
MAIN:
MOV SP,#70H
MOV TMOD,#21H
MOV 30H,#50
MOV R7,30H
MOV R6,#100
MOV TL0 ,#LOW(65536-15000)
MOV TH0,#HIGH(65536-15000)
MOV TL1,#(256-200)
MOV TH1,#(256-200)
MOV TCON,#00H
SETB PT1
SETB EA
SETB ET0
SETB ET1
SETB TR0
SETB TR1
SJMP $
TIME1:
DJNZ R7,T1_1
; MOV R7,30H
CLR P0.0
T1_1:
DJNZ R6,T1_END
MOV R7,30H
MOV R6,#100
SETB P0.0
T1_END:
RETI
TIME0:
MOV TL0 ,#LOW(65536-15000)
MOV TH0,
文档评论(0)