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

📄 pwm产生程序.asm

📁 用一个定时器可以产生pwm产生程序,用户可用按键控制.
💻 ASM
字号:
;//标题:PWM产生程序 //
;//-------------------------------------------------------------------------------------------------------------//
;12MHZ晶振,使PWM输出为1KHZ,定时中断数设为N=10即每0。01ms中断一次,则TH1=FFH,TL1=F6H,由于设定中断时间为0.01us
;  这样可以设定占空比从1--100变化,即0.01us*100=1ms  1khz
;资源:定时器T1,P1.1输出,P1.2占空比加,P1.3 占空比减
;//---------------------------------------------------------------------------------------------------------------//
          zkb equ 21h
          intclick equ 22h
          deckey equ p1.3
          inckey equ P1.2
          pwmout equ p1.1
          BEEP  EQU P3.7
          org 0000h
          sjmp start
          org 001bh
          sjmp PWMINT1
          org 0030h
   start:mov sp,#30h
          mov tmod,#01h
          mov th1,#0ffh
          MOV TL1,#0F6H
          MOV ZKB,#50H
          SETB TR1
          SETB EA
          SETB ET1
          CLR INTCLICK
          MOV A,ZKB
     LOOP:JB INCKEY,LOOP1
          INC ZKB
          MOV A,ZKB
          MOV R1,A
          MOV A,#64H
          SUBB A,R1
          JC BEEP_BL
          SJMP LOOP
     LOOP1:JB DECKEY ,LOOP2
          CALL DELAY
          JB DECKEY,LOOP2
         MOV R1,#00H
          DEC ZKB
          MOV R1,ZKB
          MOV A,#02H
          SUBB A,R1
          JC BEEP_BL
          SJMP LOOP
     LOOP2:SJMP LOOP
   
          
   PWMINT1:CLR TR1
          INC INTCLICK
          MOV R1 ,#00H
          MOV R1,INTCLICK
          MOV A,#64H
          SUBB A,R1
          JC CLEAR
          MOV A,ZKB
          SUBB A,R1
          JC PWMOUT1
          CLR PWMOUT
          MOV TH1,#0FFH
          MOV TL1,#0F6H
          SETB TR1
          RETI
    CLEAR:mov INTCLICK ,#00h
          retI
  PWMOUT1:SETB PWMOUT
          retI
;------------------------------
;10ms延时子程序
;------------------------------
DELAY:
          MOV R6,#50
DELAY1:
          MOV R1,#100
          DJNZ R1,$
          DJNZ R6,DELAY1
          RET
;-----------------------------------------------
;蜂鸣器响一声子程序
;-----------------------------------------------
BEEP_BL:
           MOV   R6,#100
  BL1:     CALL  BL2
           CPL   BEEP
           DJNZ  R6,BL1
           MOV   R5,#25
           CALL  DELAY2
           RET

  BL2:     MOV   R1,#180
  BL3:     NOP
           DJNZ  R1,BL3
           RET
 DELAY2:                    ;延时R5×10MS
           MOV   R6,#50
  BL4:     MOV   R1,#100
  BL5:     DJNZ  R1,BL5
           DJNZ  R6,BL4
           DJNZ  R5,DELAY2
           RET
;---------------------------------------------------
           END










⌨️ 快捷键说明

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