模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

910查看 | 7回复

[DIY交流] PWM 无极调光程序分享

[复制链接]
发表于 2019-3-12 21:06:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

PWM 无极调光程序分享 16位pwm调光 作者:ldy7474 3474

分享下刚调通的无极调光程序1023级可调
程序结构简单明了
#include <STC15W408AS.h> //STC12C5A60S2 专用头
#include "STC15W-ADC.h" //STC15W4K-ADC 硬件ADC模数转换
#define uint  unsigned int
#define uchar unsigned char
unsigned int ADC0;
sbit led=P5^5;
sbit pwm=P1^0;
uint cycle,high,low;
void delay(uint t)
{
while(t--);
}
void main()
{
InitADC();      //ADC初始化
cycle=1024; //周期
while(1)
{
  ADC0=ADC(0);
     high=ADC0;
  led=1;
  delay(high);
  led=0;
  low=cycle-high;//低电平时间等=于周期-高电平时间      
  delay(low);
  
  
  }
   
}

发表于 2019-3-12 21:26:10 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

发表于 2019-3-12 21:27:16 | 显示全部楼层
adc的头文件整上来哈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-12 21:32:46 | 显示全部楼层

/*----------------------------

----------------------------*/
extern void          _nop_     (void);
#define ADC_POWER   0x80            //ADC电源控制位
#define ADC_SPEEDLL 0x00            //540个时钟
/////-----初始化ADC-----/////
void InitADC(void)
{
    P1ASF = 0xC7;                   //设置为AD口:P1.0,P1.1,P1.2,P1.6,P1.7.
    ADC_RES = 0;                    //清除结果寄存器
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
//  Delay(2);                       //ADC上电并延时
}
/*----------------------------
读取ADC结果
extern void          _pop_     (unsigned char _sfr);
extern void          _nop_     (void);
----------------------------*/
typedef unsigned char BYTE;
#define ADC_FLAG    0x10            //ADC完成标志
#define ADC_START   0x08            //ADC起始控制位
/////-----读取ADC某一个端口-----/////
unsigned int ADC(BYTE ch)
{        unsigned int ADC10;
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
    _nop_();                        //等待4个NOP
    _nop_();
    _nop_();
    _nop_();
    while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成
    ADC_CONTR &= ~ADC_FLAG;         //Close ADC
        ADC10=ADC_RES*4+ADC_RESL;
    return ADC10;                   //返回ADC结果
}
回复 支持 反对

使用道具 举报

发表于 2019-3-13 08:12:45 | 显示全部楼层

顶一个PWM 无极调光程序分享 16位pwm调光 作者:wyd1996 7689 PWM 无极调光程序分享 16位pwm调光 作者:wyd1996 5602
回复 支持 反对

使用道具 举报

发表于 2019-3-13 13:34:34 | 显示全部楼层
看不懂,但还是要支持
回复 支持 反对

使用道具 举报

发表于 2019-3-13 18:49:31 | 显示全部楼层
这个程序的确可以调光。不过不实用,建议使用定时器或者硬件PWM实现调光。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-13 20:05:18 | 显示全部楼层
pkintel 发表于 2019-3-13 18:49
这个程序的确可以调光。不过不实用,建议使用定时器或者硬件PWM实现调光。
...

不实用?和定时器中断有何必然关联  
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!