CC2530入门
一、简介
单片机(MCU)就是一个将微型计算机系统制作到里面的集成电路芯片。
微控制器的基本结构:内核+外设。内核通过寄存器控制外设;外设通过中断系统通知内核;内核与外设之间通过总线传输数据、地址及控制信息。
嵌入式程序设计基本套路为:读写寄存器、处理中断源、访问内部总线。
两个程序:在桌面电脑的集成开发环境上进行程序开发;在嵌入式微处理器系统中运行程序。
二、CC2530与IAR开发环境
选用的版本是IAR Embedded Workbench for 8051。
整个CC2530开发相关的环境包括:
1.安装集成开发环境:IAR-EW8051-8101。
2.安装仿真器“SmartRF4EB”的驱动程序。
3.安装代码烧写工具:Setup_SmartRF_Programmer_1.10.2。
4.安装TI的Zigbee协议栈:ZStack-CC2530-2.5.1a。
CC2530IO引脚图:

题目:跑马灯
创建-一个工程,为工程添加代码文件,实现一个跑马灯程序。也就是让4个LED灯轮流亮灭: LED5亮,延时,LED6亮,延时,LED3亮,延时,LED4亮,延时, LED5灭,延时,LED6灭,延时,LED3灭,延时,LED4灭,延时.....
我们可暂时定义一下引脚图:

需要掌握在IAR环境下进行CC2530的程序开发流程。
最重要的是配置工程文件
<1>配置芯片信息:General Options->Target->Device information

<2>配置仿真设备:Debugger->Setup->Driver

烧写程序有两种方法,一种是在IAR中联调,另外一种是生成.hex文件,通过烧写软件把程序烧写进设备。
#include "ioCC2530.h" #define LED5 P1_3 //对对应的引脚进行宏定义,定义为对应的LEDx
#define LED6 P1_4
#define LED3 P1_0
#define LED4 P1_1 void delay(unsigned int t) //简单的延时函数
{
while(t--);
}
void LEDRunning() 跑马灯代码
{
LED5 = 1; //高电平灯亮
delay(10000);
LED6 = 1;
delay(10000);
LED3 = 1;
delay(10000);
LED4 = 1;
delay(10000);
LED5 = 0; //低电平灯灭
delay(10000);
LED6 = 0;
delay(10000);
LED3 = 0;
delay(10000);
LED4 = 0;
delay(10000);
} void main(void)
{
P1SEL &= ~0x1b; //0001 1011->1110 0100 将P1_0,1,3,4 设置为普通IO口
P1DIR |= 0x1b; //0001 1011 将P1_0,1,3,4 设置为输出 P1_0=0;
P1_1=0;
P1_3=0;
P1_4=0; //默认引脚低电平关闭,引脚对应LED灯 while(1)
{
LEDRunning(); //调用函数,跑马灯
}
}
程序中用到的两个寄存器。



CC2530入门的更多相关文章
- 【CC2530入门教程-增强版】基础技能综合实训案例(基础版)-上位机源码
[CC2530入门教程-增强版]基础技能综合实训案例(基础版)-上位机源码 广东职业技术学院 欧浩源 一.需求分析 按照指定参数打开串口,与测控终端建立数据传输通道,并根据应用要求实现程序逻辑,具体 ...
- 【CC2530入门教程-01】IAR集成开发环境的建立与项目开发流程
[引言] 本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:1.CC2530单片机开发入门.2.通用I/O端口的输入和输出.3.外部中断初步应用.4.定时/计 ...
- 【CC2530入门教程-06】CC2530的ADC工作原理与应用
第6课 CC2530的ADC工作原理与应用 广东职业技术学院 欧浩源 一.A/D转换的基本工作原理 将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是AD ...
- 【CC2530入门教程-01】CC2530微控制器开发入门基础
[引言] 本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:[1]CC2530微控制器开发入门基础.[2]通用I/O端口的输入和输出.[3]外部中断初步应用. ...
- CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制
第2课 CC2530的通用I/O端口输入和输出控制 广东职业技术学院 欧浩源 一.CC2530的引脚概述 CC2530微控制器采用QFN40封装,有40 个引脚.其中,有21个数字I/O端口,其中 ...
- 【CC2530入门教程-03】CC2530的中断系统及外部中断应用
第3课 CC2530的中断系统及外部中断应用 广东职业技术学院 欧浩源 一.中断相关的基础概念 内核与外设之间的主要交互方式有两种:轮询和中断. 轮询的方式貌似公平,但实际工作效率很低,且不能及 ...
- 【CC2530入门教程-04】CC2530的定时/计数器原理与应用
第4课 CC2530的定时/计数器原理与应用 广东职业技术学院 欧浩源 一.定时/技术器的基本原理 定时/计数器,是一种能够对内部时钟信号或外部输入信号进行计数,当计数值达到设定要求时,向CPU提 ...
- 【CC2530入门教程-05】CC2530的串行接口原理与应用
第5课 CC2530的串行接口原理与应用 广东职业技术学院 欧浩源 一.并行通信与串行通信 微控制器与外设之间的数据通信,根据连线结构和传送方式的不同,可以分为两种:并行通信和串行通信. 并行通信 ...
- 【CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制
第2课 CC2530的通用I/O端口输入和输出控制 小蜜蜂科教 / 广东职业技术学院 欧浩源 [通用I/O端口视频教程:https://v.qq.com/x/page/x0793aol7us.ht ...
随机推荐
- JS数据结构与算法 - 剑指offer二叉树算法题汇总
❗❗ 必看经验 在博主刷题期间,基本上是碰到一道二叉树就不会碰到一道就不会,有时候一个下午都在搞一道题,看别人解题思路就算能看懂,自己写就呵呵了.一气之下不刷了,改而先去把二叉树的基础算法给搞搞懂,然 ...
- Fiddler 内置命令与断点
Fiddler还有一个藏的很深的命令框,就是眼前,我用了几年的Fiddler都没有发现它,偶尔在别人的文章发现还有这个小功能,还蛮好用的,整理下记录在这里. FIddler断点功能就是将请求截获下来, ...
- shell脚本知识
1.提示符变量PS1 修改提示符变量:PS1="[u\@\h \t \w]" 修改环境变量设置文件bash_profile需要使用source或者.加上该文件使之生效 位置参数从1 ...
- 实验一 熟悉IDLE和在线编程平台
实验目的 1.掌握python IDLE集成开发环境的安装与使用 2.熟悉在线编程平台 3.掌握基本的python程序编写.编译与运行程序的方法 实验内容 1.按照实验指导安装IDLE,尝试交互式运行 ...
- 10.添加script标签,判断onload是否完成
class Tools { static loadScript(url, callback) { let old_script = document.getElementById(url); if ( ...
- CVE-2019-0193 Apache solr velocity模块漏洞
Solr简单介绍 Solr是建立在Apache Lucene ™之上的一个流行.快速.开放源代码的企业搜索平台. Solr具有高度的可靠性,可伸缩性和容错能力,可提供分布式索引,复制和负载平衡查询,自 ...
- XCTF两个PHP代码审计的笔记
题目源码如下,考点是输入的$id和$row['id']的区别 关键在于红框内,可以知道题目的payload是要让$row['id']存在,查询的到数据,并且要让POST的id不能与adog相同.那显而 ...
- [php]微信测试号调取acces_token,自定义菜单以及被动响应消息
<?php /**自己写的 */ $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); $wechatObj-> ...
- 高级数据结构---红黑树及其插入左旋右旋代码java实现
前面我们说到的二叉查找树,可以看到根结点是初始化之后就是固定了的,后续插入的数如果都比它大,或者都比它小,那么这个时候它就退化成了链表了,查询的时间复杂度就变成了O(n),而不是理想中O(logn), ...
- Python之小型信息管理系统
#Author:msq #Time:2019/11/16 import re import os filename = "person.txt" def menu(): #输出菜单 ...