; PWM 控制 LED 灯渐亮渐灭程序

; 适用 ME500 开发系统

; 晶振为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

pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序相关推荐

  1. 单片机自动调光C语言,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序

    PWM控制led灯渐亮渐灭程序 适用ME500开发系统 短接JP41-2选用8个LED灯 PWM-PulseWidthModulation(脉冲宽度调制) PWM足?种周期?走而高低电平的rV空比可以 ...

  2. 8255A红绿灯c语言程序,51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序).doc...

    51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序) 51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序)2010-04-21 22:0 ...

  3. 计数显示器c语言程序,51单片机计数显示器Proteus仿真程序

    一.设计要求及目的 [实验目的] 熟悉51单片机的基本输入/输出应用,掌握Proteus ISIS模块的原理图绘图方法及单片机系统仿真运行方法. [实验内容] (1)观察Proteus ISIS模块的 ...

  4. 时钟加闹钟c语言程序,51单片机c语言电子钟(已加入调时、闹铃、整点报时功能)...

    <51单片机c语言电子钟(已加入调时.闹铃.整点报时功能)>由会员分享,可在线阅读,更多相关<51单片机c语言电子钟(已加入调时.闹铃.整点报时功能)(13页珍藏版)>请在技术 ...

  5. 带中文字库的240128的c语言程序,51单片机-240128液晶程序与调试

    原标题:51单片机-240128液晶程序与调试 今天终于把金鹏OCMJ8X15D-2液晶(240128点阵带字库无触屏液晶)调好了. 这块液晶能显示8行15个汉字,还有放大字形,从16*16点放大到3 ...

  6. 51单片机蜂鸣器演奏《小苹果》C语言程序,51单片机C语言蜂鸣器发声生日快乐播放程序...

    <51单片机C语言蜂鸣器发声生日快乐播放程序>由会员分享,可在线阅读,更多相关<51单片机C语言蜂鸣器发声生日快乐播放程序(4页珍藏版)>请在人人文库网上搜索. 1.按键发音/ ...

  7. 单片机汉字点阵c语言程序,51单片机C语言多种点阵屏驱动程序(开发软件为keil C...

    51单片机C语言多种点阵屏驱动程序(开发软件为keil C 2016-08-23 1 0 0 暂无评分 其他 1 积分下载 如何获取积分? 51单片机C语言多种点阵屏驱动程序(开发软件为keil C ...

  8. 单片机交通灯数码管c语言程序,51单片机C语言实现交通灯(红绿灯)源程序.doc

    51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /*1.程序目的:使用定 ...

  9. 单片机交通灯灯c语言程序,51单片机用C语言实现交通灯(红绿灯)源程序

    51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /* 1.程序目的:使用 ...

最新文章

  1. python安装依赖失败_python - pip安装jq依赖关系失败 - SO中文参考 - www.soinside.com
  2. 设计模式(4)-序列生成器之单例模式
  3. 【BZOJ3242】【UOJ#126】【NOI2013】快餐店
  4. Excel 常用函数 IF 用法
  5. 搞科研、学术的朋友注意了,停下手头的活,再忙也要看一下这个!
  6. 介绍一个基于simhash作海量文章排重的库:simhashpy
  7. Android中ExpandableListView控件基本使用
  8. 剑指offer 15.二进制中1的个数
  9. 小米 note3 android,小米Note3将更新MIUI10:基于安卓8.1 速度提升明显手感更加丝滑...
  10. uC/os内存优化——TLSF算法
  11. 如何把pdf转换成ezd_电脑怎么把pdf转换成ppt
  12. centos7配置ntp服务器
  13. 短信api的接口平台有哪些可以免费试用
  14. 传奇私服搭建网站的几种方法
  15. 【研报笔记】光大技术择时系列1:基于阻力支撑相对强度(RSRS)的市场择时
  16. springcloud入门——zookeeper
  17. C语言贪吃蛇游戏主要功能,C语言游戏-贪吃蛇
  18. excel操作系列之中文姓名转英文姓名
  19. 跨境电商 阿里巴巴外贸 之 为什么我要做外贸!
  20. 线程sta模式_STA和MTA线程模式的区别

热门文章

  1. Java 数组转化成集合
  2. Java throws和throw
  3. 灰色预测法 —— python
  4. php sslv3握手失败,Boost Beast握手:sslv3警报握手失败错误
  5. java stringbuffer原理_深入理解Java:String
  6. excel怎么更改坐标轴刻度_如何用excel制作帕累托图
  7. python神经网络实例_Python编程实现的简单神经网络算法示例
  8. python核心教程_python核心教程--第四章
  9. 机器人合金礼包_《Apex英雄》福利twitch礼包领取详细攻略,1机器人皮肤+5个包!...
  10. python筛选数据求均值_Python Pandas实现数据分组求平均值并填充nan的示例