CC2530单片机用定时器产生LED渐亮渐灭解读课件.pptxVIP

CC2530单片机用定时器产生LED渐亮渐灭解读课件.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
呼吸灯呼吸灯呼吸灯原理:脉冲宽度调制方法:改变灯泡亮灭的时间条件:灯亮时间+灯灭时间=常量灯亮时间+灯灭时间20ms方法一:延时亮亮延时灭灭延时(周期减亮延时)N判断:改变亮度的时间到了吗?Y增加亮时间/减少亮时间#include ioCC2530.h #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 //定义LED1为P1.0口控制 /**************************** //初始化程序 *****************************/ void InitLed(void)//初始化函数 { P1DIR |= 0x01; //P1_0定义为输出 LED1 = 1; //LED1灯初 始化熄灭 } void ys(uchar h)//延时{ uchar i,j; for(i=0;ih;i++) for(j=0;j200;j++);//改变判断语句可以改变周期(有闪烁感时,改小)}/*************************** 主函数 ***************************/ void main(void) { uchar h=0;//h越大越亮 uchar zt=1;//zt为1是渐亮,为2是渐灭 uint js=0; InitLed(); //调用初始化函数 while(1) { if(h0)//不是最暗时(最暗时不亮) { LED1=0;//亮 ys(h);//占空比为ys(h)/ys(254); } if(h254)//不是最亮时(最亮时不灭) { LED1=1;//灭 ys(254-h);//周期为ys(254);(改变254时可以改变周期,但是会改变亮度的精度) } js++; if(js=4)//改变占空比的时间(感觉渐亮渐灭太快可以改大) { js=0; if(zt==1)//渐亮状态 h=h+1; else//渐暗状态 h=h-1; if(h==0)//最暗时 zt=1;//设置状态为渐亮 if(h==254)//最亮时 zt=2;//设置状态为渐灭}}}方法二:定时器+通道输出比较方法:0x0000~T1CC0是周期T1CC0T1CCnT1CCn~T1CC0是灭时间向上比较输出1,向下比较输出0。定时器基本要求:1.选择定时器。T12.定时器工作方式。自由运行3.定时器的溢出值(T1CC0)。0xFFFF4.启动定时器。启动设置定时器设置T1CTL-定时器1的控制和状态 P105~周期=65536*1/16Mhz 4ms 1CTL=0x01;了解T1STAT-定时器1状态P105T1CC0OVFIF:定时器T1溢出中断标志(T1STAT0x200时,定时器T1溢出)T1CCnCHnIF:定时器T1通道n中断标志(定时器通道在T1CCn时),假如是通道2,T1STAT0x040时,灯就灭了。输出比较模式1.输出的引脚,P1.0设置为输出。P1的8个引脚对应8个设置位,最高位为P1.7设置位,最低位为P1.0设置位。P1DIR=0x01;为了避免直接赋值会冲掉P1的其它输出口,所以用“按位或”比较好。P1DIR=P1DIR | 0x01;P1DIR |= 0x01;输出比较模式2.外设I/o引脚。信息:P1.0、定时器T1、备用位置2、通道2、外设功能P1.0定时器T1通道2备用位置2输出比较模式3.外设控制。PERCFG=0100 0000B;=0x40;输出比较模式4.输出的引脚,P1.0设置为外设功能P1的8个引脚对应8个设置为最高位为P1.7设置位,最低位为P1.0设置位。P1SEL=0x01;为了避免直接赋值会冲掉P1的其它外设功能口,所以用“按位或”比较好。P1SEL=P1SEL | 0x01;P1SEL |= 0x01;输出比较模式5.设置T1CCTL2-定时器1通道2捕获/比较控制T1CC0T1CC2110 01000T1CCTL2=0x64;输出比较模式6.设置T1CC2-定时器1通道2捕获/比较值。先写低位,再写高位T1CC2L=0xFF;T1CC2H=h;程序初始 P1DIR |= 0x01; //P1.0设置为输出 LED1 = 1;//灭 T1CTL = 0x01; //定时器1的控制和状态 PERCFG=0X40;//外设控制 P1SEL|=0x01;//P1.0设置为外设功能 T1CCTL2=0x64;//定时器1通道2比较控制 T1CC2L=0xFF;//定时器通道2比较值 T1CC2H=h;程序初始化N判断:通道2有没有中断(1周期一次)Y清除中断标志,js++;N判断:改变亮

文档评论(0)

158****9949 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体 成都林辰禄信息科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510104MA64LRAJ9H

1亿VIP精品文档

相关文档