c51的PWM控制汇编程序

来源:本站
导读:目前正在解读《c51的PWM控制汇编程序》的相关信息,《c51的PWM控制汇编程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《c51的PWM控制汇编程序》的详细说明。
简介:本文给出一个c51的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

;-----------------------------------------------

;蜂鸣器响一声子程序

;-----------------------------------------------

BEEP_BL:

MOV R6,#100

BL1: CALL BL2

CPL BEEP

DJNZ R6,BL1

MOV R5,#25

CALL DELAY2

RET

BL2: MOV R7,#180

BL3: NOP

DJNZ R7,BL3

RET

DELAY2: ;延时R5×10MS

MOV R6,#50

BL4: MOV R7,#100

BL5: DJNZ R7,BL5

DJNZ R6,BL4

DJNZ R5,DELAY2

RET

;---------------------------------------------------

END

提醒:《c51的PWM控制汇编程序》最后刷新时间 2024-03-14 00:58:47,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《c51的PWM控制汇编程序》该内容的真实性请自行鉴别。