找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 101|回复: 0
打印 上一主题 下一主题
收起左侧

Zigbee:cc2530实现led闪烁程序

[复制链接]
回帖奖励 6 黑币 回复本帖可获得 2 黑币奖励! 每人限 1 次(中奖概率 50%)
跳转到指定楼层
楼主
ID:1118179 发表于 2024-4-26 11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(编写帖子额的时候不太熟练,倒置部分结构乱了)   一:解决问题思路     
  所有单片机,想要达到led闪烁,都需要延迟函数.延迟分为硬件延迟和软件延迟两种.硬件延迟涉及到定时器的概念,是后面要讲的内容,这里采用软件延迟的方法.
   1  软件延迟(两种实现方式)
     1.1 用指令实现延时
         CC2530的每个指令是一个时钟,而标准的8051的指令周期是12个时钟。若选用32MHZ的时钟频率,那么时钟周期是1/32 us,一个指令也就是1/32us.   而CC2530系统上电默认是16MHZ的内部RC振荡器   
  1.  ZStack中大多使用的延时函数如下:
  2.   void Delay_us(uint16 value){
  3.   while (value--)
  4.   {
  5.   asm(“NOP”); //一个指令周期占用一个时钟周期
  6.   asm(“NOP”);
  7.   asm(“NOP”);
  8.   }
  9.   }
  10.   void Delay_ms(uint16 value)
  11.   {
  12.   while(1)
  13.           Delay_us(1000);
  14.   }
复制代码
   1.2  for循环实现延时  (仅做参考,主要用于讲解

  1. void delay_us(int n)   
  2. {
  3. while(n--)
  4. {
  5.         unsigned char a,b;
  6.     for(a=173;a>0;a--)
  7.           for(b=143;b>0;b--) ;
  8. }
  9.    
  10. }
复制代码




2.   配置寄存器
     2.1配置寄存器顺序
       1.PxSEL    //端口功能选择  0为通用I/0  1为外设
       2.PxDIR    //端口方向选择  0为输入   1为输出   LED不需要配置 PxINP寄存器

     2.2 PXSEL 和PXDIR详细配置参数    (这里没办法粘贴图片,就直接给连接可以自行跳转
2-2 CC2530的通用IO及相关寄存器 - 夏日清凉~ - 博客园 (cnblogs.com)


  3.demo
我的CC2530 led1和led2 是P1_0和P1_1;  而且是低电平点亮  这个根据实际情况近些年编写</div><div><div class="blockcode">

  1. #include <ioCC2530.h>
  2. #define led1(x) P1_0=~x
  3. #define led2(x) P1_1=~x
  4. void Delay_us(uint16 value){
  5.   while (value--)
  6.   {
  7.   asm(“NOP”); //一个指令周期占用一个时钟周期
  8.   asm(“NOP”);
  9.   asm(“NOP”);
  10.   }
  11.   }
  12.   void Delay_ms(uint16 value)
  13.   {
  14.   while(1)
  15.    Delay_us(1000);
  16.   }
  17.   
  18. void main()
  19. {
  20.   P1SEL &=~0x07;
  21.   P1DIR |= 0x03;
  22.   
  23.   
  24.   
  25.   
  26.   while(1)
  27.   {
  28.     led2(1);
  29.     led1(0);
  30.     Delay_ms(1000);
  31.     led1(1);
  32.     led2(0);
  33.     Delay_ms(1000);
  34.   }
  35.   
  36. }
复制代码







文章参考:CC2530单片机精确延时的时间分析-CSDN博客
十二、CC2530系统时钟设置_通过配置时钟频率控制寄存器和时间频率状态寄存器实现cc2530使用外部32mhz晶-CSDN博客




评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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