注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

quietheart

真正的幸福是来自内心的平定、安静、自在

 
 
 

日志

 
 

PWM控制LED灯渐亮渐灭程序(A51源程序)  

2008-04-15 10:57:11|  分类: 技术资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
PWM控制LED灯渐亮渐灭程序(A51源程序)
2007年01月16日 星期二 21:56
;/******************************************************************/
;/* ME300B单片机开发系统演示程序 - PWM控制LED灯渐亮渐灭程序        */
;/* LED显示                  */
;/* 作者: g                */
;/*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved  */
;/*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!           */
;/******************************************************************/; PWM 控制 LED 灯渐亮渐灭程序
; 适用 ME300B 开发系统
; 晶振为11.0592M
; 利用定时器控制产生占空比可变的 PWM 波
; 按K1,PWM值增加,则占空比减小,LED 灯渐暗。
; 按K2,PWM值减小,则占空比增加,LED 灯渐亮。
;当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。
;----------------------------
         PWM   EQU  7FH            ;PWM赋初始值
         OUT   EQU  P0               ;8个LED灯的接口 

         INCKEY EQU  P1.4          ;K1,PWM值增加键。
         DECKEY EQU  P1.5          ;K2,PWM值减小键。

         BEEP   EQU  P3.7
;----------------------------
         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


网友评论:
12007年01月16日 星期二 22:24


©2008 Baidu



引文来源  PWM控制LED灯渐亮渐灭程序(A51源程序)_欢迎光临......
  评论这张
 
阅读(372)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018