51单片机PWM控制LED亮灭

发布者:乡村乐园最新更新时间:2017-12-31 来源: eefocus关键字:51单片机  PWM控制  LED亮灭 手机看文章 扫描二维码
随时随地手机看文章

设计思路:用定时器中断产生最小时间单位T0,每m个T0组成一个子周期T10,其中前n个T0为LED导通时间,即Ton=n*T0,则Toff=(m-n)*T0
;每X个T10组成一个母周期T20,其中前y个T10为有效控制时间,后续的(x-y)个T10令LED熄灭或者子周期占空比调至最小。
;适当调节n/m和x/y的比例使显示效果达到最佳。
;以下是刚刚调试通过的小段程序,显示效果良好。
;实验过程本人有一种推测,不知是否成立:
;子周期的最小占空比的宽度应大于LED的点亮时间,即点亮LED的时间宽度n/m*T0应足够产生余辉。类似于动态数码管对点亮时间的要求。
;母周期的宽度应小于1/50s,提高刷新频率以令肉眼察觉不出闪烁。
;未经验证的推测,可能是错误的,请大家接着探讨。。。
;芯片: AT89C2051
;晶振:18.9375
;电路描述:输入5V电源,简易RC复位,P3.3对地接KEY(减1),P3.3对地接KEY2(加1),P3.7接三极管C106驱动LED。LED直径5mm,红色。限流电阻471、1/4W.
;功能描述:LED渐亮渐灭。按住KEY可以保持住当前某占空比的亮度(如一开始按住KEY再通电,将看到空度比为1%的亮度)。
;调节子周期和母周期,均可渐亮渐灭。 同时按下“加1”和“减1”按键切换选择调节对象(2004.11.04)
LED BIT P3.7
KEY BIT P3.3
SOV BIT 20H.0 ;子周期显示完毕标志
BOV BIT 20H.1 ;母周期显示完毕标志
SSS EQU 30H ;子周期占空宽度调节
T10 EQU 31H ;子周期宽度
AAA EQU 32H ;子周期占空宽度入口
BBB EQU 33H ;母周期占空宽度入口
T20 EQU 34H ;母周期宽度
MMM EQU 35H ;母周期占空宽度调节
A10 EQU 36H ;子周期宽度缓冲
B20 EQU 37H ;母周期宽度缓冲

KEY2 BIT P3.2
COM1 BIT P3.5
COM2 BIT P3.4
COM3 BIT P3.1
COM4 BIT P3.0
NOISE1 EQU 38H
NOISE2 EQU 39H
NOISE3 EQU 3AH

ORG 00H
LJMP MAIN
ORG 0BH
LJMP PWM

PWM:
MOV TH0,#0FFH
MOV TL0,#90H
PUSH ACC
;####################################################
JB BOV,OUTLOW
;*********************************************
JB SOV,IFSEND
DEC T10 ;保持计数同步
DJNZ SSS,LRET ;占空参数修正
MOV SSS,AAA ;复原子周期占空参数
MOV A,T10
CJNE A,#0,SCTN ;对占空比为100%时的修正
AJMP T10END
SCTN:
CLR LED
SETB SOV
AJMP LRET
IFSEND:
DJNZ T10,LRET
T10END:
MOV T10,A10 ;复原子周期宽度参数
SETB LED
CLR SOV ;子周期处理完毕
;**********************************************
DEC T20
DJNZ MMM,LRET
MOV MMM,BBB
MOV A,T20
CJNE A,#0,MCTN ;对占空比为100%时的修正
AJMP T20END
MCTN:
CLR LED
SETB BOV
AJMP LRET
OUTLOW:
CLR LED ;母周期低电平部分输出0
DJNZ T10,LRET
MOV T10,A10
DJNZ T20,LRET
T20END:
MOV T20,B20
SETB LED
CLR BOV ;母周期处理完毕
;#############################
LRET:
POP ACC
RETI

MAIN:
MOV P3,#00001100B
MOV TMOD,#01H
MOV A10,#10 ;子周期宽设置
MOV B20,#20 ;母周期宽设置
MOV T10,A10
MOV T20,B20
MOV AAA,#6 ;子周初始占空宽度设置
MOV BBB,#20 ;母周初始占空宽度设置
MOV SSS,AAA
MOV MMM,BBB
SETB ET0
SETB TR0
SETB EA
SETB LED
MOV 20H,#0;所有标志位清零
MOV R0,#250
MOV R1,#2 ;每隔0.07*250*2ms调节一次亮度

FREE: ;KEY BBBBBBBBBBBBBBBBBBBBBBBBBBBB
MOV PCON,#1
CHANGE2:
JB KEY,CHOU1
JB KEY2,CHOU1
DJNZ NOISE1,FREE
JNB KEY,$
JNB KEY2,$
AJMP FREE3
CHOU1:
MOV NOISE1,#0
DOWN1:
JB KEY,UP1
DJNZ NOISE2,FREE
DJNZ BBB,NEXT ;减1修正
MOV BBB,#1
NEXT:
JB KEY,FREE ;操作完成后待松键再退出
JNB KEY2,FREE
SJMP NEXT
UP1:
MOV NOISE2,#0
IFUP:
JB KEY2,LCRNOS
DJNZ NOISE3,FREE
INC BBB ;加1修正
MOV A,BBB
CJNE A,#21,NEXT2
MOV BBB,#20
NEXT2:
JB KEY2,FREE ;操作完成后待松键再退出
JNB KEY,FREE
SJMP NEXT2
LCRNOS:
MOV NOISE3,#0
AJMP FREE ;KEY B


FREE3: ;KEY
MOV PCON,#1
CHANGE1:
JB KEY,CHOU2
JB KEY2,CHOU2
DJNZ NOISE1,FREE3
JNB KEY,$
JNB KEY2,$
AJMP FREE
CHOU2:
MOV NOISE1,#0
DOWN2:
JB KEY,UP2
DJNZ NOISE2,FREE3
DJNZ AAA,NEXT3 ;减1修正
MOV AAA,#1
NEXT3:
JB KEY,FREE3 ;操作完成后待松键再退出
JNB KEY2,FREE3
SJMP NEXT3
UP2:
MOV NOISE2,#0
IFUP2:
JB KEY2,LCRNOS2
DJNZ NOISE3,FREE3
INC AAA ;加1修正
MOV A,AAA
CJNE A,#11,NEXT4
MOV AAA,#10
NEXT4:
JB KEY2,FREE3 ;操作完成后待松键再退出
JNB KEY,FREE3
SJMP NEXT4
LCRNOS2:
MOV NOISE3,#0
AJMP FREE3 ;
END

关键字:51单片机  PWM控制  LED亮灭 引用地址:51单片机PWM控制LED亮灭

上一篇:STC单片机AD和EEPROM的驱动C程序设计与编写
下一篇:单片机驱动MODE的方法和应用实例

推荐阅读最新更新时间:2024-03-16 15:51

51单片机的LCD显示
一、lcd1602 (一)、管脚展示 (二)、管脚释义 穿插:1602:意思:可以显示2行16列字符 (三)、时序图 1、 看的方法:先做垂线时间轴t,可以看到RS先变化(有交叉即变化),然后看到同一垂线上的R/W被拉低,DB0--DB7 改变电平,之后E被拉高,持续TPw (四)、LCD1602写命令和数据函数 static void lcd_write_cmd(unsigned char byte) { RS = 0;//写入命令,R/S被拉低 RW = 0;//写 LCDPORT = byte; E = 1;//E被拉高 delay_us(10);//延时 E = 0;//E被拉
[单片机]
<font color='red'>51单片机</font>的LCD显示
一文解析51单片机PWM双舵机控制
  PWM简介   脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。   脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。   什么是舵机   舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机是船舶上的一种大甲板机械。   本文主要介绍的是51单片机PWM双舵机控制,具体的跟随小
[单片机]
一文解析<font color='red'>51单片机</font>PWM双舵机控制
51单片机计数中断程序举例 外部按钮产生中断
本程序的功能很简单,按一次按钮1(接在12管脚上的)就引发一次 中断 0,取反一次P1。0,因此理论上按一下灯亮,按一下灯灭,但在实际做实验时,可能会发觉有时不“灵”,按了它没反应,但在大部份时候是对的,这是怎么回事呢?答案请在本站键盘应用中找,这个程序本身是没有问题的。 程序:外部中断实验 ORG 0000H AJMP START ORG 0003H ;外部中断地直入口 AJMP INT0 ORG 30H START: MOV SP,#5FH MOV P1,#0FFH ;灯全灭 MOV P3,#0FFH ;P3口置高电平 SETB EA SETB EX0 AJMP $ INT0: PUSH ACC P
[单片机]
51单片机访问大容量存储器的实现
1 引言   MCS-51系列单片机有着优越的性价比,因此应用面宽,使用量也非常大;然而它只有16位地址线,最大能访问的存储空间为64K,且扩展接口与存储器统一编址,扩展接口会占用大量的地址空间,致使该系列单片机在数据量大的数据采集系统中,存储空间明显不足。   笔者最近在开发一数据采集系统时,经分析、探索,找到了解决的办法。 2 使用大容量存储器的原理 2.1 使扩展接口不占用单片机的存储地址空间   由于MCS-51单片机的扩展接口与存储器统一编址,采用常规的方法扩展接口时会占用大量的地址空间,而多数应用系统均会要求扩展接口(本例有七段LED的段输出口、位输出口、键盘口各一个),为此,使扩展接口不占用单片机的存储地址空间对于要
[单片机]
<font color='red'>51单片机</font>访问大容量存储器的实现
51单片机烧写芯片无法工作的故障分析
故障现象: 做了一个单片机温度监测系统,仿真机上一切正常,烧写芯片无法工作。 相关电路框图: 用51做处理器,外围电路如图,一片双积分转换芯片ICL7135做AD,它的时钟需要125K,用51的ALE经过一片CD4024分频得到。1403提供基准源。另外,一片7660提供7135工作所需要的负压。 为了省电,把所有模拟电路部分电源用一个晶体管管理起来,由P1.0来控制。(上图为示意图,省去了电阻没画)P1.0为地的时候,模拟系统才上电 现在怪现象如下: 仿真机正常运行,烧写芯片后无反应。 仿真正常,说明外围芯片完全正常,电路也没有错误。 经过检查,晶体正常,复位可靠,EA高,程序堆栈都没有溢出,并排除其它一切低级错
[单片机]
<font color='red'>51单片机</font>烧写芯片无法工作的故障分析
实例源码2---基于51单片机的摇摇棒制作
#include #define uchar unsigned char #define uint unsigned int sbit key = P3^0;//定义切换画面开关 uchar Key_num;//定义按键次数 uchar Int0_num=0;//定义中断次数 uchar Direction;//定义摇动方向(从左到右) uchar code Embed ={ 0x40,0x00,0x20,0x00,0xd0,0x3f,0x4c,0x40,0x43,0x40,0x44,0x42,0x48,0x44,0xd8,0x43, 0x30,0x78,0x10,0x00,0x00,0x00,0xfc,0x07,0x00,0
[单片机]
基于51单片机对1602液晶板的并行操作
TX-1C板操作并行模式的1602液晶液晶第1,2脚是gnd和vcc第3脚是对比度调节第4脚是数据/指令选择端 RS 第5脚是读写选择端R/W,我们这次只写不读,故直接接地第6脚是读写使能EN第7到14脚是数据口。 操作并行模式的1602液晶 液晶第1,2脚是gnd和vcc 第3脚是对比度调节 第4脚是数据/指令选择端RS 第5脚是读写选择端R/W,我们这次只写不读,故直接接地 第6脚是读写使能EN 第7到14脚是数据口,我们接STC89C52RC的P0口 第15,16脚是背光源 最终液晶显示 Tom is playing the TNT game! C代码 #include #include“MY51.H” voidw
[单片机]
基于<font color='red'>51单片机</font>对1602液晶板的并行操作
基于单片机和PWM控制方法调速实现无刷控制器检测设计
引言 伴随着城市化进程,人们生活的交通距离不断扩大,代替燃油汽车和自行车的电动车的普及大幅度的提高了电力资源的利用效率,促进了国民经济的健康发展。电动自行车以电力作动力,骑行中不产生污染,无损于空气质量。从改善人们的出行方式、保护环境和经济条件许可情况等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。电动自行车所用直流电机分为有刷电机和无刷电机两种。其中有刷电机控制较简单。但其易磨损的电刷带来维修保养工作量相对较大、使用寿命相对较短等缺点。而直流无刷电机本身没有易磨损部件,电机寿命长,维修保养工作量小。但直流无刷电机采用电子换向原理工作,其控制过程比有刷电机复杂得多,因此对控制器质量的要求也高得多。 目前电动自行车采
[单片机]
基于单片机和<font color='red'>PWM控制</font>方法调速实现无刷控制器检测设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved