CC2530单片机用定时器产生LED渐亮渐灭_第1页
CC2530单片机用定时器产生LED渐亮渐灭_第2页
CC2530单片机用定时器产生LED渐亮渐灭_第3页
CC2530单片机用定时器产生LED渐亮渐灭_第4页
CC2530单片机用定时器产生LED渐亮渐灭_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、呼吸灯呼吸灯原理:脉冲宽度调制改变灯泡亮灭的时间条件:灯亮时间+灯灭时间=常量灯亮时间+灯灭时间20ms方法:呼吸灯方法一:延时亮延时灭灭延时(周期减亮延时)亮判断:改变亮度的时间到了吗?增加亮时间/减少亮时间NY#include #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 /定义LED1为P1.0口控制 /* /初始化程序 */ void InitLed(void)/初始化函数 P1DIR |= 0 x01; /P1_0定义为输出 LED1 = 1; /LED1灯初 始化熄灭 void ys(

2、uchar h)/延时 uchar i,j; for(i=0;ih;i+) for(j=0;j0)/不是最暗时(最暗时不亮) LED1=0;/亮 ys(h);/占空比为ys(h)/ys(254); if(h=4)/改变占空比的时间(感觉渐亮渐灭太快可以改大) js=0; if(zt=1)/渐亮状态 h=h+1; else/渐暗状态 h=h-1; if(h=0)/最暗时 zt=1;/设置状态为渐亮 if(h=254)/最亮时 zt=2;/设置状态为渐灭方法二:定时器+通道输出比较方法:T1CC0T1CCn向上比较输出1,向下比较输出0。0 x0000T1CC0是周期T1CCnT1CC0是灭时间启

3、动启动定时器基本要求:1.选择定时器。2.定时器工作方式。3.定时器的溢出值(T1CC0)。4.启动定时器。T1自由运行自由运行0 xFFFF设置定时器设置T1CTL-定时器1的控制和状态 P1050000 0001T1CTL=0 x01;周期周期=65536*1/16Mhz 4ms 了解T1STAT-定时器1状态P105OVFIF:定时器T1溢出中断标志(T1STAT&0 x200时,定时器T1溢出)CHnIF:定时器T1通道n中断标志(定时器通道在T1CCn时),假如T1CC0T1CCn是通道2,T1STAT&0 x040时,灯就灭了。输出比较模式1.输出的引脚,P1.0设置为输出。P1的

4、8个引脚对应8个设置位,最高位为P1.7设置位,最低位为P1.0设置位。P1DIR=0 x01;为了避免直接赋值会冲掉P1的其它输出口,所以用“按位或”比较好。P1DIR=P1DIR | 0 x01; P1DIR |= 0 x01;输出比较模式2.外设I/o引脚。定时器定时器T1备用位置备用位置2P1.0通道通道2信息:信息:P1.0、定时器、定时器T1、备用位置、备用位置2、通道、通道2、外设功能、外设功能输出比较模式PERCFG=0100 0000B;=0 x40;3.外设控制。输出比较模式4.输出的引脚,P1.0设置为外设功能P1的8个引脚对应8个设置为最高位为P1.7设置位,最低位为P

5、1.0设置位。P1SEL=0 x01;为了避免直接赋值会冲掉P1的其它外设功能口,所以用“按位或”比较好。P1SEL=P1SEL | 0 x01;P1SEL |= 0 x01;输出比较模式5.设置T1CCTL2-定时器1通道2捕获/比较控制10 10 0100T1CCTL2=0 x64;T1CC0T1CC2输出比较模式6.设置T1CC2-定时器1通道2捕获/比较值。先写低位,再写高位先写低位,再写高位T1CC2L=0 xFF;T1CC2H=h;程序初始 P1DIR |= 0 x01; /P1.0设置为输出 LED1 = 1;/灭 T1CTL = 0 x01; /定时器1的控制和状态 PERCF

6、G=0X40;/外设控制 P1SEL|=0 x01;/P1.0设置为外设功能 T1CCTL2=0 x64;/定时器1通道2比较控制 T1CC2L=0 xFF;/定时器通道2比较值 T1CC2H=h;程序初始化判断:通道2有没有中断(1周期一次)清除中断标志,js+;判断:改变亮度的时间到没判断:状态是不是渐亮h=h+1;h=h-1;通道2比较值重装判断:是不是最亮状态改为渐灭判断:是不是最暗状态改为渐亮YNNNNNYYNYY#include #define uint unsigned int #define uchar unsigned char /定义控制LED灯的端口 #define LE

7、D1 P1_0 /定义LED1为P10口控制 uchar h=0 x00;/h越大越亮/函数声明void InitLed(void); /初始化P1口 void InitT1(); /初始化定时器T1/* /初始化程序 */ void chushiLed(void) P1DIR |= 0 x01; /P1_0定义为输出 LED1 = 1; /LED1灯初 始化熄灭 /定时器初始化 void chushiT1() /系统不配置工作时钟时默认是2分频,即16MHz T1CTL = 0 x01; /1分频,自动重装 0X0000-0XFFFF P105 PERCFG=0X40;/定时器T1选择外设位置2 P77 P1SEL|=0 x01;/P1.0选择外设功能 T1CCTL2=0 x64;/定时器T1通道2向上比较置1,比较模式 P107 T1CC2L=0 xFF; T1CC2H=h; void main(void) uchar js=0; uchar a=1;/a=1为渐亮,a=2为渐灭。 chushiLed(); /调用初始化函数 chushiT1(); while(1) if(T1STAT&0 x04)0)/灭 T1STAT=T1STAT&0 xfb;/清除中断标志 js+; if(js=1)/改变亮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论