登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] stc12c5a60s2单片机的内部PWM呼吸灯

[复制链接]
发表于 2019-1-27 22:35:46 | 显示全部楼层 |阅读模式
学习笔记
学习科目: stc12c5a60s2单片机
学习安排: 上午看了有关单片机内部PWM的视频
下午进行程序的编写与调试
开始时间: 2019-01-27
结束时间: 2019-01-27
直接分析程序吧  要仔细阅读此单片机的数据手册!!!
#include<stc12c5a60s2.h>


unsigned char dy[15] = {16,32,48,64,80,96,112,128,
                        144,160,176,192,208,224,240};
void modify_duty();
void Init_PWM();
void delay();

void main()
{
        Init_PWM();
        while(1)
        {
                modify_duty();
        }       
}       
void Init_PWM()
{
        CMOD = 0x02;//设置脉冲源
        CCAPM0 = 0x42;//开启比较器,允许输出脉宽调制信号
        PCA_PWM0 = 0x00;//组成9位比较器
  CCAP0L = 0x80;//比较器中的初值
  CCAP0H = 0x80;//比较器初值重装
  CL = 0;//装载值为0
        CR = 1;// 启动计数模式
}       
void modify_duty()
{
        int i;
        for(i=0;i<15;i++)
        {
                CCAP0H = dy[i];
                delay();
        }
        for(i=13;i>=1;i--)
        {
                CCAP0H = dy[i];
                delay();
        }
}       
void delay()
{
        int i,j;
        for(i=0;i<200;i++)
        {
                for(j=0;j<200;j++);
        }
}       
       


好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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