打印

[技术支持] 【HC89S001P套件试用】LED调光灯-锂电池供电

[复制链接]
39|1
跳转到指定楼层
楼主
本帖最后由 yygdzjs 于 2019-4-1 10:51 编辑

先说一下邮寄 HC89S003P DEMO 问题(ISP下载不稳定问题)
将供电上的电容由 47uf 改10uf ,就ISP下载就稳定了(见图片)

实验项目: LED调光灯 锂电池供电  
MCU: HC89S001P
输出引脚:  P21(按键)  P00(指示灯)  P03(冷光)  P04(暖光)
PWM的周期大于50HZ,选择100HZ 则为10ms(便于100整除)或10.24ms(便于256整除)
PWM的占空比 习惯性100等份 或 三色时256色的等份。
备注: 16Mhz  12位的PWM(0~4096)  
      如果周期10ms-- 1ms(pwm 时钟/1000)*10 < 4096
                        因为 1分频16Mhz 8分频2Mhz 32分频500Khz 128分频 125Khz
      所以  128分频 125Khz 满足要求  
                        ---PWM0C = 0x03;/PWM0高有效,PWM01高有效,时钟128分频


//---主函数-----
void main()
{
/************************************系统初始化****************************************/
        WDTCCR = 0x00;                                                //关闭看门狗
        //本例程为方便测试关闭看门狗,实际使用中,建议客户打开看门狗,详见WDT复位例程
        CLKSWR = 0x51;                                                //选择内部高频RC为系统时钟,内部高频RC 2分频,Fosc=16MHz
        CLKDIV = 0x01;                                                //Fosc 1分频得到Fcpu,Fcpu=16MHz
        
        ConfigGPIO(); //IO配置
        ConfigTimer0(1);  //定时器T0配置
  ConfigPwm0();  //pwm配置
        
        WDTC = 0x57;                                                //允许WDT复位,允许掉电/空闲模式下运行,1024分频
        //WDT使用的是RC44K时钟,WDT_CLOCK_1024是1024分频,初值为0xFF
        //定时时间         = 1024 * 0xFF / 44000
        //                        = 5.93s
        WDTCCR = 0xFF;                                                //写入00时,将关闭WDT功能(但不关闭内部低频RC)

        while(1)
        {
                WDTC |= 0x10;                                                //置寄存器 WDTC 的 第4位,清看门狗
                KeyTask1();
        }
}

其它具体见附件   原理方框图和流程图 -原理图-源代码 -






本帖子中包含更多资源

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

x
沙发
| 2019-4-1 11:49 | 只看该作者
厉害呀,加油加油,支持你
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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