您的位置 首页 FPGA

PWM方波发生51程序

PWMHDATA30H;高电平脉冲的个数PWMDATA31H;PWM周期COUNTERDATA32HpwmhminDATA33HORG0000HAJMPMAIN;ORG0003H;AJMPINT_X0

PWMHDATA30H;高电平脉冲的个数

PWMDATA31H;PWM周期
COUNTERDATA32H
pwmhminDATA33H

ORG0000H
AJMPMAIN
;ORG 0003H
;AJMP INT_X0
;ORG 0013H
;AJMP INT_X1
ORG000BH
AJMPINT_T0
ORG0100H
MAIN:
MOVSP,#60H;给仓库指针赋初值
mov ie,#87h

MOVPWMH,#02H;
MOVCOUNTER,#01H
MOVPWM,#14H
MOVTMOD,#02H;定时器0在形式2下作业
MOVTL0,#38H;定时器每200us发生一次溢出
MOVTH0,#38H;主动重装的值
SETBET0;使能定时器0中止
SETBEA;使能总中止
SETBTR0
SETB IT0
SETB IT1
sjmp $

INT_X0:

MOV A,PWMH
CJNE A,PWM,INC1
SJMP EXIT1
INC1:
clr TR0
MOV A,PWMH
INC A
MOV PWMH,A
EXIT1:
setb TR0
RETI
INT_X1:

MOV A,PWMH
CJNE A,#01h,DEC1
SJMP EXIT2
DEC1:
clr TR0
MOV A,PWMH
DEC A
MOV PWMH,A
EXIT2:
setb TR0
RETI
INT_T0:

INCCOUNTER;计数值加1
MOVA,COUNTER
CJNEA,PWMH,INTT01;假如等于高电平脉冲数
CLRP1.0;P1.0变为低电平
INTT01:CJNEA,PWM,INTT02;假如等于周期数
MOVCOUNTER,#01H;计数器复位
SETBP1.0;P1.0为高电平
INTT02:
RETI

END

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/266127.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部