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 ...
随机推荐
- shell命令(一)
什么是shell? Shell是一个应用程序,它连接了用户和Linux内核,让用户能够更加高效.安全.低成本地使用Linux内核,这就是Shell的本质. shell与Linux系统关系图 shell ...
- 带你五分钟了解python的函数式编程与闭包
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:梁唐 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...
- Gun N' Rose Team Review
一看到这个项目就被他的功能给吸引了.回忆起以前看到一个东西很新奇想去网上查询它是什么,但是又不知道应该怎样去描述它,于是在搜索引擎的输入框中键入.删除.键入.删除的可笑经历的时候,我就越发感觉到这个a ...
- B - How many integers can you find 杭电1976
Now you get a number N, and a M-integers set, you should find out how many integers which are small ...
- Git敏捷开发--stash命令
save 执行git stash,默认以commit info保存当前的stash信息 当在某个commit下,执行多次stash时,无法友好地区分每个stash的改动.save 命令可以清晰地标识每 ...
- 解决vue element table行列不齐问题
全局加入如下样式即可(app.vue): body .el-table th.gutter{ display: table-cell!important; }
- window 下 jmeter+ant 自动生成html报告并发送邮件
一.安装ant 1.ant 下载地址:https://ant.apache.org/bindownload.cgi 2.下载完成解压到指定目录下 3.配置ant 环境变量 新建系统变量 -ANT_HO ...
- 立体匹配-----NCC视差匹配
目录 一.立体匹配算法 1.立体匹配算法分类 二.NCC 视差匹配方法 1.原理 2.NCC计算公式 3.算法流程 4.代码实现 5.不同场景运行 三.结论 四.遇到的问题及解决方法 一.立体 ...
- pytorch 去除维度为1的维度
out.squeeze(dim=1) out.squeeze_(dim=1)
- JavaScript中一种全新的数据类型-symbol
连续连载了几篇<ES6对xxx的扩展>,本节咱们换换口味,介绍一种全新的数据类型:Symbol,中文意思为:标志,记号.音标:[ˈsɪmbəl]. 数据类型 在介绍Symbol之前,我们简 ...