找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6894|回复: 1
收起左侧

51单片机pwm的控制汇编语言源程序

[复制链接]
ID:258258 发表于 2017-12-6 17:08 | 显示全部楼层 |阅读模式
原理图:

仿真图

仿真图

采用time0产生pwm波,int0中断记录外部脉冲,time1计时1秒定时
以下是程序:
K1  EQU  P1.0    ;¼ó
K2  EQU  P1.1    ;¼õ

ORG  0000H
AJMP MAIN
ORG  0040H

MAIN:
    MOV   SP,#60H
        MOV   R1,#3      ;3õê¼Õ¼¿Õ±è50%
        MOV   R2,#4
        MOV   R3,#0
        MOV   TH0,#0FFH
        MOV   TL0,#9CH
        MOV   TH1,#3CH
        MOV   TL1,#0B0H
        MOV   TMOD,#11H
    MOV   IE,#8FH
        SETB  IT0
        SETB  IT1
        SETB  TR0
        SETB  TR1
LOOP:     
    MOV A,R1                        
    JB K2,S1                  
    CALL DELAY                        
    JB K2,S1            
    CJNE A,#9,PWMINC                 
    CALL  LED                     
    SJMP LOOP
PWMINC:            
    INC R1                           
    SJMP LOOP   
S1:   
    JB K1,S2                    
    CALL DELAY                     
    JB K1,S2            
    CJNE A,#1,PWMDEC                  
    CALL  LED                  
    SJMP LOOP
PWMDEC:            
    DEC R1               
S2:    SJMP LOOP

;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG   000BH
AJMP  TIME0
ORG   0100H
TIME0:
    MOV A,#9
    SUBB A,R2
        JNC DONE
        INC R2
        SJMP LOOP1
DONE: MOV R2,#1
LOOP1:  CLR  C
        MOV A,R2
                SUBB A,R1
                JNC LOOP2
                SETB P1.6
                SJMP OUT1
LOOP2:  CLR P1.6
OUT1:  RETI

;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG   0003H
LJMP  IN0
ORG   1000H
IN0:
     INC R3
         RETI
         
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;


LED:
    CPL P1.2
        RET
        
DELAY:
    MOV  R7,#100
DE: MOV  R6,#100
    DJNZ R6,$
        DJNZ R7,DE
        RET
        
        END


回复

使用道具 举报

ID:828826 发表于 2020-10-12 16:11 | 显示全部楼层
能不能注释一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表