⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm电机.asm

📁 proteus实例集锦
💻 ASM
字号:
LEN  EQU  30H     ;高电平比例初值存放单元
GAO  DATA 31H     ;高电平存放单元
DI   DATA 32H     ;低电平存放单元
GORD BIT  20H     ;高电平或低电平位判断存放单元
ORG  0000H
AJMP MAIN
ORG  000BH
AJMP DVT0
ORG  0030H
MAIN:MOV LEN,#10
     SETB P2.0
     CLR P2.2
     SETB GORD    ;置高低电平判断位为1
     MOV GAO,LEN ;置高电平初值
     MOV A,#100   ;置周期总长值
     SUBB A,GAO   ;求低电平比例值
     MOV DI,A     ;存低电平比例值
     MOV TMOD,#01H;置定时器0为定时工作方式1
     MOV TH0,#0FEH;赋定时器初值
     MOV TL0,#0CH
     SETB ET0     ;开定时器0
     SETB EA
     SETB TR0
LOOP:AJMP LOOP    ;等待

DVT0:PUSH PSW     ;保护现场
     PUSH A
     MOV TH0,#0FEH;重新赋初值
     MOV TL0,#0CH
     MOV A,LEN
     CJNE A,#0,PD1  ;判断高电平比例初值是否为0
     CLR P2.1
     AJMP DVT2
PD1: CJNE A,#100,PD2;判断高电平比例初值是否为100
     SETB P2.1
     AJMP DVT2
PD2: JNB GORD,DVT1;判断高低电平位是否为0,为0转
     DJNZ GAO,DVT2;判断高电平是否已完
     CLR P2.1     ;置P2.1为低电平
     CLR GORD     ;置高低电平位为0
     MOV GAO,LEN ;
     MOV A,#100
     SUBB A,GAO
     MOV DI,A     ;求低电平比例值
     AJMP DVT2
DVT1:DJNZ DI,DVT2 ;判断低电平是否已完
     SETB P2.1    ;置P2.1为高电平
     SETB GORD    ;置高低电平位为1
     MOV GAO,LEN
DVT2:POP A        ;恢复现场
     POP PSW
     RETI         ;返回中断

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -