pwm调制amc7135驱动三挡调光 紫光灯

材料说明
单片机是stc15f104e
led灯是360-370nm的紫光灯
两颗amc7135并联驱动
四路无线遥控


思路:
用单片机输出频率20khz的pwm波形来驱动amc7135达到调光的作用,用思路无线遥控的其中一路来控制单片机输出三种(100% 70% 30%)占空比的pwm信号。

 



 

单片机最小系统


 


四路无线遥控器


 

amc7135驱动 

 

紫光led,最大驱动电流500ma


 

组装起来


 

30%亮度


 

70%亮度


 

100%亮度


 


对应的电流
130ma


 


330ma


 


530ma


 


重点来了

看看下面的电路图,很简单的原理



 


这个单片机是用内部晶振的12mhz
下面看看程序


#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P3^3;
sbit kong=P3^2;
uchar num,num1=0,gao=3,di=7,flag=1;
void kongkey();
void pwm();
void kongkey()
{
                        if(kong==1)
                        {
                                num1++;                                        //收到遥控的一次信号加1
                                if(num1==3)                                //到第三档再跳回第一档
                                        num1=0;
                                while(kong);                        //等待信号接收完毕
                        }
                        switch(num1)
                        {
                                case 0:
                            gao=3;
                                di=7;                                        //最低亮度
                                break;
                                case 1:
                            gao=7;
                                di=3;
                                break;
                                case 2:
                            gao=10;
                                di=0;                                        //最高亮度
                                break;
                        }
}

void main()
{
                        TMOD=0X02;                                        //设置定时器0为工作方式2(0000 0010)
                        TH0=251;                                                //装初值
                        TL0=251;                                        
                        EA=1;                                                        //开总中断
                        ET0=1;                                                //开定时器0中断
                        TR0=1;                                                //启动定时器0
                        led=1;
                        while(1)
                        {
                                kongkey();
                        }
}
void T0_time() interrupt 1
{
                        num++;                                                //5us中断一次
                        if(flag==1)                                        //高电平标识判断
                        {
                                led=1;
                                if(num==gao)
                                {
                                        num=0;
                                        if(gao==10)
                                        {
                                                flag=1;
                                        }
                                        else
                                        {
                                                flag=0;
                                        }
                                }
                        }
                        if(flag==0)                                        //低电平标识判断
                        {
                                led=0;
                                if(num==di)
                                {
                                        num=0;                  
                                        flag=1;
                                }
                        }
}这个电路可以把无线遥控换成开关,就是手电筒的驱动电路了。谢谢大家看完贴子,哪里有错误或可以修改的,希望大家积极指出,互相学习,谢谢大家!

我自己在单片机和自己熟悉的行业上做了快10年了,不说自己的水平怎么样。说牛不牛,说不牛也牛,该骄傲的时候还是要骄傲的,那是对自己的肯定。该谦虚的时候也要谦虚学习,毕竟单片机是一个系统工程,方方面面的东西不是自己都能熟悉和精确把握的。要想自己混的不错,还是那句话——“和自己所处的行业结合,那才是王道。”

来自:http://www.geekfans.com/thread-77982-1-1.html 

点击"阅读原文"进入.

> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

直接使用汇编指令编写单片机程序,对硬件的控制更加直接,可以直接操作物理地址,寄存器,端口等;其它更高级的语言(如:C语言)对硬件的控制是依赖于类库来实现的。并且,对于一些对程序大小和运行速度有非常严苛要求的项目而言,都必须使用汇编指令。C语言只是为了方便编写,与机器打交道的其实都是2进制得代码,汇编语言就是这些代码好记忆的名称和规则,只是比C语言难理解些。

生成海报
点赞 0

Abin

我还没有学会写个人说明!

相关推荐

蓝桥杯单片机基础之PWM(Pulse width modulation)

概念 对于PWM的概念这里就不过多赘述,大家可以直接查看一些文章对于pwm的介绍,下面给一段我认为比较好的说法: 脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许