找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4568|回复: 3
打印 上一主题 下一主题
收起左侧

单片机无线遥控LED亮度

[复制链接]
跳转到指定楼层
楼主
ID:83710 发表于 2015-6-24 22:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    最近买了个无线遥控器,四路控制,编码用的是PT2264,解码用的是PT2272,闲着无聊,打算做个LED亮度的控制器。一般PT2264配套的解码用的是PT2294。没想到PT2272也能跟PT2264配套使用,匹配电阻为824(PT2272)跟475(PT2264)。
                       
    主控器用的是AT89C2051,用PWM来控制LED的亮度,为保证LED灯不会感到闪烁,PWM的频率必须不小于60Hz。用定时器0工作方式0定时1ms产生一个中断,10ms一个周期,PWM频率为100Hz。 通过计算得出计数器的预存值为1C18,结果我直接就TH0=0x1C,TL0=0x18,结果程序运行时发现LED闪烁得很严重。原来工作方式0的计数器为13位而不是16位,用的是TH0的高8位和TL0的低5位,所以TH0=0xE0,TL0=0x18才对,而TH0=0x1C,TL0=0x18并不是1ms产生一个中断,而是7.27ms产生一个中断,10次中断一个周期的话,PWM的频率变成了13.7Hz当然会闪烁了。
   
   
源程序:
#include <reg51.h>
#define uchar unsigned char
sbit l1=P1^7;//led
sbit l2=P1^6;
sbit l3=P3^5;
sbit l4=P3^7;
sbit P1_2=P1^2;//遥控
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
uchar ti;
bit on,off,add,dec;//四个遥控键状态位
bit p0=1;//用来标记PWM的状态
void led_on(void);
void led_off(void);
uchar z=5;//亮度1-9
main()
{
IE = 0x83;  //开外中断0,定时中断0
IT0 = 1;//中断触发方式,后沿负跳有效
TMOD=0x00;//定时0工作方式0
TH0=0xE0;TL0=0x18;//初始定时时间
    TR0=0;//关定时器
IP=0x01;//中断优先级设置,外部中断高于定时中断
l1=0;l2=0;l3=0;l4=0;//关灯
while(1)
{
  if (on==1) {on=0;TR0=0;led_on();} //关闭定时器,LED开,使LED达到最亮
  if (off==1) {off=0;TR0=0;led_off();}//关闭定时器,LED关
  if (add==1) {add=0;if (z<9) z++;TR0=1;}
  if (dec==1) {dec=0;if (z>0) z--;TR0=1;}
}
}
void extern0() interrupt 0
{
EX0=0;
if (P1_2==1) on=1;//查询哪个键按下
if (P1_3==1) off=1;
if (P1_4==1) add=1;
if (P1_5==1) dec=1;
EX0=1;
}
void time0() interrupt 1//1ms触发一次
{
TR0=0;
TH0=0xE0;TL0=0x18;//重载计数值
ti++;
if (ti>=10) ti=0;//10ms时计数清零
if (ti<z) led_on(); else led_off();//根据z值控制PWM的占空比
TR0=1;
}
void led_on()//LED灯亮
{
l1=1;
l2=1;
l3=1;
l4=1;
}
void led_off()//LED灯灭
{
l1=0;
l2=0;
l3=0;
l4=0;
}                                                                                                                    
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:71698 发表于 2015-6-29 16:15 | 只看该作者
有电路图吗?
回复

使用道具 举报

板凳
ID:66287 发表于 2015-7-1 09:37 | 只看该作者
简单实用的DIY,顶一个!
回复

使用道具 举报

地板
ID:235414 发表于 2017-9-26 09:37 | 只看该作者
初学者啥都不懂。棒棒的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表