历史上的今天
今天是:2025年01月26日(星期日)
2019年01月26日 | 单片机(STC12C5A60S2)内部PWM实现呼吸灯
2019-01-26 来源:eefocus
上个文章写了用单片机的两个定时器给大家实现了呼吸灯,其实上个文章是在为大家解析PWM的原理,今天我们将使用单片机内部自带的PWM来进行呼吸灯设计,自己可以查看该单片机型号的中文资料。所看章节如下:

直接上代码吧,大家可以查看代码,如果不明白的可以给我留言,^_^。
#include
unsigned char dy[15]={16,32,48,64,80,96,112,128,144,160,176,192,208,224,240}; // CCAP0H值的分配,为了实现不同的占空比
void modify_duty();
void Init_PWM();
void delay();
void main()
{
Init_PWM();
while(1)
{
modify_duty();
}
}
void Init_PWM() // PWM功能的初始化
{
CMOD = 0X02; // 设置脉冲源
CCAPM0 = 0X42; // 开启比较器,允许输出脉宽调制信号
PCA_PWM0 = 0X00; // 组成9位比较器,可以设置成1,也可以设置成0
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++);
}
}
可以看结果了:

史海拾趣
|
PCB设计中格点的设置 合理的使用格点系统,能是我们在PCB设计中起到事半功倍的作用。但何谓合理呢? 很多人认为格点设置的越小越好,其实不然,这里我们主要谈两个方面的问题:第一是设计不同阶段的 ...… 查看全部问答> |
|
一.添加设置过孔 在DXP 中添加布线过孔(Via)可以直接利用热键TAB,在Layer 中设置不同的走线层即可自动添加过孔,务必在先确定一点并且在不同的层面上,自动添加的过孔会以浮动的形式根据需要确定位置!连接布线的焊盘的移动式和光标 ...… 查看全部问答> |
|
小弟毕业设计就快完了,搞的是PPC2003软件设计。在开发过程中,现在还留了点问题下来。 一、有没有能够实现将某个文件中所有的EXE文件,文件名及文件路径存入一个表中的操作或是函数; 二、我用的是VS2005自带的仿真上的数据库,没有另外安装 ...… 查看全部问答> |
|
急求:北京 C++/C# 日文项目 (日语能读,英语能写) 月给8K (高分帮顶) 日文项目:C++/C#均可 2年以上开发经验 外语要求:能读懂式样书,读懂日文技术文章。 英文要求:日常email通信 月薪给予:6K~8K,亦可面谈 工作地点:微软 联系方式:dexin.yang@hisoft.com … 查看全部问答> |
|
我用51单片机与pc机进行串口通讯,上位机软件用的是出口调试助手3.0,下位机是我自己编的,主要目的是pc向单片机发个数据,单片机接收后向p2口输出,之后再把接收到的数据发给pc。但是我发现pc上发出与收到的数据总是不一致。例如,我用pc输出字符 ...… 查看全部问答> |
|
菜鸟提问:如何用应用程序修改WINCE的DEFAULT LANGUAGE 如何用应用程序修改WINCE的DEFAULT LANGUAGE呢? 我写了程序如下: unsigned short SLANGID = MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED); wprintf(L\"langid = %d,slangid = ...… 查看全部问答> |
|
冰天雪地×体跪问,驱动程序安装问题(如果问题解决,100分送) 冰天雪地×体跪问,驱动程序安装问题(如果问题解决,100分送) 我的驱动程序开发环境为WINNT4+VC6+NT4DDK+DriverStudio2.5,用DriverStudio2.5生成驱动程序框架,驱动程序开发完编译后,在我的开发机上安装运行,一切正常,但是当我把驱动程序拷 ...… 查看全部问答> |
|
最近在学linux驱动开发,在做中断程序的时候不知道为什么就是进不了中断服务函数,下面贴出源码,希望各位大侠们给点帮助,不胜感激~ //s3c2440_key.c(底层驱动程序) //#include #include #include #include #include //#include # ...… 查看全部问答> |
|
IAR WorkBench怎么生成可烧的.hex文件?[求助] IAR WorkBench怎么生成可烧的.hex文件? 我用 XELTEX的3000U 烧片子,在IAR WorkBench里找不到可以烧录的选择?那位告知一下, 万分感谢! 是不是需要用其他软件来做?IAR WorkBench只能来调试 或者用jatg口来输入编译完的程序???… 查看全部问答> |




