利用定时器控制产生占空比可变的 PWM 波
------------------------------------------------------------------------------------------------
利用定时器控制产生占空比可变的 PWM 波
利用定时器控制产生占空比可变的 PWM
波 *
; 按K1,PWM值增加,则占空比减小,LED 灯渐
暗。 *
; 按K2,PWM值减小,则占空比增加,LED 灯渐
亮。 *
;当PWM值增加到最大值或减小到最小值时,蜂鸣器将报
警 *
;资源:p0口,8路指示灯。p1.0,p1.4亮度控制按键(端口按键)
p3.3小喇叭报警 *
;*******************************************************
*************************
;,,,,,,,,,,,,,,,,,,,,,,,,,,,
, PWM EQU 7FH ;PWM赋初始值
PWM 定义
为,7FH
OUT EQU P0 ;1个LED灯的接口OUT 定义
为,P0.1
INCKEY EQU P1.0 ;K1,PWM值增加键。INCKEY 定义
为,P1.4
——————————————————————————————————————
------------------------------------------------------------------------------------------------
DECKEY EQU P1.4 ;K2,PWM值减小键。DECKEY 定义为,P1.5
BEEP EQU P3.3 ;BEEP 定义为,接口3第3位 ;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,
ORG 0000H
SJMP START
ORG 000BH
SJMP INTT0
ORG 001BH
SJMP INTT1
ORG 0030H
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,
;主程序
;定时器0工作在模式1,定时器1工作在模式2。
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,
START:
MOV SP,#30H
MOV TMOD,#21H
MOV TH1,PWM ;脉宽调节
MOV TL1,#00H
——————————————————————————————————————
------------------------------------------------------------------------------------------------
MOV TH0,#0FCH ;1ms延时常数
MOV TL0,#066H ;频率调节
SETB EA
SETB ET0
SETB ET1
SETB TR0
LOOP: MOV A,PWM ;
JB INCKEY,LOOP1 ;增加键是否按下, CALL DELAY ;延时去抖动
JB INCKEY,LOOP1
CJNE A,#0FFH,PWMINC ;是否到最大值,
CALL BEEP_BL ;是,蜂鸣器报警。 SJMP LOOP
PWMINC:
INC PWM ;调节脉宽(脉宽减小) SJMP LOOP
LOOP1: JB DECKEY,LOOP2 ;减小键是否按下, CALL DELAY ;延时去抖动
JB DECKEY,LOOP2
CJNE A,#02H,PWMDEC ;是否到最小值,
CALL BEEP_BL ;是,蜂鸣器报警。 SJMP LOOP
——————————————————————————————————————
------------------------------------------------------------------------------------------------
PWMDEC:
DEC PWM ;调节脉宽(脉宽增加) LOOP2:
SJMP LOOP
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ;T0中断服务子程序 (频率)
;控制定时器1中断
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, INTT0:
CLR TR1
MOV TH0,#0FCH ;1ms延时常数
MOV TL0,#066H ;频率调节
MOV TH1,PWM
SETB TR1
MOV OUT,#00H ;启动输出
RETI
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ;T1中断服务子程序 (脉宽)
;控制PWM脉冲宽度
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, INTT1:
CLR TR1 ;脉宽调节结束
MOV OUT,#0FFH ;结束输出
——————————————————————————————————————
------------------------------------------------------------------------------------------------
RETI
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ;10ms延时子程序
;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, DELAY:
MOV R6,#50
DELAY1:
MOV R7,#100
DJNZ R7,$
DJNZ R6,DELAY1
RET
——————————————————————————————————————
本文档为【利用定时器控制产生占空比可变的 PWM 波】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。