【引言】

本系列教程就有关CC2530单片机应用入门基础的实训案例进行分析,主要包括以下6部分的内容:
【1】CC2530微控制器开发入门基础。
【2】通用I/O端口的输入和输出。
【3】外部中断初步应用。
【4】定时/计数器的定时应用。
【5】串行通信接口应用。
【6】A/D转换器数据采集应用。

---------------------------------------------------------------------------------------------------------------------

第1课    CC2530微控制器开发入门基础

小蜜蜂笔记网 / 广东职业技术学院    欧浩源

【视频教程】:CC2530概述与开发环境的搭建

【视频教程】:IAR环境下CC2530的开发流程

一、什么是单片机?

单片机:Micro controller,MCU,微控制器,是一种集成电路芯片,它通过超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、输入输出I/O端口、中断控制系统、定时/计数器和通信接口等多种功能部件集成到一块硅片上,构成了一个体积小但功能完善的微型计算机系统,简单的说,单片机就是一个将微型计算机系统制作到里面的集成电路芯片

不管复杂还是简单,微控制器的基本结构内核+外设。内核通过寄存器控制外设;外设通过中断系统通知内核;内核与外设之间通过总线传输数据、地址及控制信息。所以,嵌入式程序设计师跟底层硬件打交道的基本套路为:读写寄存器处理中断源访问内部总线

单片机的程序开发与程序运行分别在两套系统运行:在桌面电脑的集成开发环境上进行程序开发;在嵌入式微处理器系统中运行程序

二、CC2530微控制器与IAR开发环境

CC2530微控制器内部使用业界标准的增强型8051内核,结合了领先的RF收发器,是用于2.4GHz IEEE802.15.4的Zigbee应用的一个片上系统(SOC)解决方案。要进行CC2530的应用开发,就先要安装IAR相关的开发环境。IAR根据支持的微处理器种类不同分为许多不同的版本,由于CC2530使用的是增强型8051内核,所以这里应该选用的版本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。

三、CC2530项目开发流程入门

【1】创建工作区
    在菜单栏中,File->New->Workspace
【2】新建IAR工程
    在菜单栏中,Project->Create New Project...
    <1>在这里你只能新建8051内核的工程。
    <2>通过“Empty project”来新建一个空白工程。
    <3>要给新建工程命名和指定存储路径。
    <4>创建完毕,工程就会出现在左边工作区中。
【3】配置工程选项
    如果你只做在线仿真调试,只需要配置两个地方
    <1>配置芯片信息General Options->Target->Device information

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

【4】添加代码文件
    <1>在菜单栏中,File->New->File,创建一个空白文件。
    <2>通过执行File->Save命令将文件保存到指定位置。
    <3>在“Workspace”中的工程上鼠标右击,择Add->Add File...命令将代码文件添加到工程中。
【5】在代码文件中编写代码
     <跑马灯代码请参照课件或其他技术笔记>
【6】编译代码
    在菜单栏中,Project->Complie
    或者点击工具栏中的工具按钮。
    注:没有语法错误的程序才能通过编译。
【7】仿真调试
    <1>将仿真器SmartRF4EB与目标板进行正确的连接:排线上三角箭头与目标板的白色三角箭头对齐。
    <2>在菜单栏中,Project->Download and Debug,或者点击工具栏中“绿色三角符”按钮。

<3>进入仿真调试环境。

至此,大功告成,可以随意调试了。

【附件】:LED灯闪烁的源代码。

#include "ioCC2530.h"

#define D4  P1_1

void Delay(unsigned int t)
{
while(t--);
} void Init_Port()
{
P1SEL &= ~0x02;
P1DIR |= 0x02;
}
void main()
{
Init_Port();
while()
{
D4 = ;
Delay();
D4 = ;
Delay();
}
}

最新文章

  1. mysql workbench
  2. css 中input和select混排对齐问题
  3. 【转】#include_next &lt;filename.h&gt;
  4. Winbind authentication against active directory
  5. Go 错误处理
  6. ubuntukylin18.04Lts和deepin15.5与win10 1803双系统安装
  7. SQL学习笔记---常用命令
  8. 【转】forbids in-class initialization of non-const static member不能在类内初始化非const static成员
  9. Web应用增加struts2支持
  10. CSS兼容性详解
  11. python简单的ftp程序
  12. BZOJ.3673/3674.可持久化并查集(可持久化线段树 按秩合并/启发式合并)
  13. Remove 以及dorp做实验验证MongoDB删除文档后索引是否会自动删除
  14. Print or Cout an Unsigned Char Variable 打印无符号字符
  15. HttpClient配置SSL绕过https证书
  16. linux上传下载文件rz,sz
  17. 18-10-30 Scrum Meeting 2
  18. Android开发–Intent-filter属性详解
  19. SSIS中出现数据流数据源假死状态的解决办法
  20. Highcharts 基本区域图;Highcharts 使用负数区域图;Highcharts 堆叠区域图;Highcharts 百分比堆叠区域图

热门文章

  1. LintCode-38.搜索二维矩阵 II
  2. LintCode-73.前序遍历和中序遍历树构造二叉树
  3. Razor语法和Razor引擎大全
  4. fcntl函数详解
  5. Jmeter系列-自动生成html报告
  6. Java设计
  7. bzoj2437-兔兔与蛋蛋
  8. BZOJ4871 Shoi2017摧毁“树状图”(树形dp)
  9. Codeforces Round #510 Div. 2 Virtual Participate记
  10. 【题解】CF#24 D-Broken Robots