CC2530引脚概述

CC2530微控制器采用QFN40封装,有40 个引脚。其中,有21个数字I/O端口,其中P0和P1是8 位端口,P2仅有5位可以使用。这21个端口均可以通过编程进行配置。实际上,在P2端口的5个引脚中,有2个需要用作仿真,有2个需要用作晶振,你在CC2530的开发中真正能够使用的只有17个引脚

什么是SFR

特殊功能寄存器(SFR): 在微控制器内部,有一些特殊功能的存储单元,这些单元用来存放控制微控制器内部器件的命令、数据或运行过程中的一些状态信息。这些存储单元就叫做特殊功能寄存器。

操作微控制器的本质,就是对这些特殊功能寄存器进行读写操作,并且某些特殊功能寄存器可以位寻址。

每一个特殊功能寄存器本质上就是一个内存单元,而标识每个内存单元的是内存地址,不容易记忆。为了便于使用,每个特殊功能寄存器都会起一个名字,在程序设计时,只要引入头文件**“ioCC2530.h”**,就可以直接使用寄存器的名称访问内存地址了。

CC2530的通用I/O端口相关的常用寄存器有下面4个:

<1> PxSEL:端口功能选择,设置端口是通用I/O还是外设功能

<2> PxDIR:作为通用I/O时,用来设置数据的传输方向作为输入或者作为输出)。

<3> PxINP:作为通用输入端口时,选择输入模式是上拉下拉还是三态

<4> Px:数据端口,用来控制端口的输出或获取端口的输入。

设置寄存器中某些位的方法

在编写程序过程中我们常常会对相关寄存器进行写,进行写操作的时候无非就是对寄存器某位或某几位写0写1操作,这我们介绍两种对某位写0写1操作,且不影响其他位的值

对寄存器的某些位清0而不影响其他位

例如:寄存器P1TM的当前值是0x6c,现需要将该寄存器的第1位、第3 位和第5位设置为0,同时不能影响该寄存器其他位的值。

使用**“&=”**将寄存器指定位清0,同时不影响其他位的值。

正确写法:P1TM &= ~0x2A

因为:逻辑“与”操作的特点是,该位有0结果就为0,若为1则保存原来值不变。
首先将字节 0000 0000 中要操作的位设置为1,即0010 1010,在将该数值取反,即1101 0101,也就是**~0x2A**。再将该值与寄存器P1TM“相与”,那么有0的位,即1、3、5位将被清0,其余的位会保持原来的值不变。
所以:P1TM的当前值为0x6c,即0110 1100,
0110 1100 && 1101 0101 = 0100 0100,即1、3、5位清0,其他位不变。

<注意>:该方法只能操作多位同时清0,或者某一位清0的情况,如果要将寄存器的位既要清0又要置1,则不能采用这种写法。(其中原因自己思考一下)
在不少嵌入式应用的源码程序中,对于寄存器的第n位的清0操作也可以写成:寄存器 &= ~(0x01<<(n));其道理是一样的。

对寄存器的某些位置1而不影响其他位

例如:寄存器P1TM的当前值是0x6c,现需要将该寄存器的第1位、第4位和第5位设置为1,同时不能影响该寄存器其他位的值。

使用**“|=”**将寄存器指定位置1,同时不影响其他位的值。

正确写法:P1TM |= 0x32

因为:逻辑“或”操作的特点是,该位有1结果就为1,若为0则保存原来值不变。
首先将字节 0000 0000 中要操作的位设置为1,即0011 0010,也就是0x32。 再将该值与寄存器P1TM“相或”,那个有1的位,即1、4、5位将被设置为1,其余的位会保持原来的值不变。
所以:P1TM的当前值为0x6c,即0110 1100,
0110 1100 || 0011 0010 = 0111 1110,即1、4、5位置1,其他位不变。
同样要注意:该方法只能操作多位同时置1,或者某一位置1的情况。
对于寄存器的第n位的清0操作也可以写成:寄存器 |= (0x01<<(n))

常用寄存器介绍

端口功能选择

微控制器的大部分I/O端口都是功能复用的,在使用的时候需要通过功能选择寄存器来配置端口的功能

端口传输方向设置

对于输入的端口要设置其输入方式

输入方式用来从外界器件获取输入的电信号,当CC2530的引脚为输入端口时,该端口能够提供**“上拉”、“下拉”和“三态”三种输入模式**,可以通过编程进行设置。CC2530复位后,各个I/O端口默认使用的就是上拉模式。

通用I/O端口寄存器配置的基本思路


本次介绍就到这了,谢谢大家的观看!

CC2530学习(二)CC2530通用I/O端口输入和输出介绍相关推荐

  1. 【CC2530入门教程-02】CC2530的通用I/O端口输入和输出控制

    [CC2530入门教程-06]CC2530的ADC工作原理与应用 [CC2530入门教程-05]CC2530的串行接口原理与应用 [CC2530入门教程-04]CC2530的定时/计数器原理与应用 [ ...

  2. CC2530学习笔记(2)—— IO端口基本操作实验(按键控制亮灯)

    CC2530学习笔记(2)-- IO端口基本操作(按键控制亮灯) 关于CC2530的IO端口基本知识.IO端口有关寄存器的介绍和描述请参照:CC2530学习笔记(1)--  IO端口 电路原理图如图1 ...

  3. python学习[第十四篇] 文件的输入与输出

    python学习[第十四篇] 文件的输入与输出 标准文件类型 一般来说只要程序一执行,就会访问3个文件: 标准输入(键盘) stdin 标准输出(显示器缓冲区) stdout 默认输出到屏幕 标准错误 ...

  4. Proteus——开关控制端口输入、输出(汇编51两种语言)

    系列文章目录 Proteus--开关控制流水灯的实现 Proteus--开关控制端口输入.输出(汇编51两种语言) 更新ing 目录 系列文章目录 前言 一.题目 二.Proteus原理图 三.代码 ...

  5. 【Linux学习笔记④】——Shell程序设计【变量 输入与输出 条件表达式 判断语句 循环语句 Shell函数】

    ⌛️ 文章目录 一.Shell 概述 二.Shell 脚本的定义与执行 2.1 Shell 脚本的定义 2.2 Shell 脚本的执行 三.Shell 变量 3.1 用户自定义变量 3.2 环境变量 ...

  6. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

    http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

  7. C#(Csharp)笔记二十八——C# 文件的输入与输出

    一丶C# 文件的输入与输出 一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合.当打开文件进行读写时,它变成一个 流. 从根本上说,流是通过通信路径传递的字节序列.有两个主要的流:输入流 ...

  8. 【沃顿商学院学习笔记】公益创业——05关键输入和输出,及解决方案描述Screen-In Screen-Out Criteria, Describing the solutions

    公益创业--关键输入和输出Screen-In & Screen-Out Criteria 本章首先主要从针对早起项目创业从确定细分市场之后,我们通过关键的输入输出来增强项目的吸引力,确保项目能 ...

  9. 神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python输入和输出)

    从程序中学习知识点 1. #输出函数可以输出字符串常量 print("hello") #输出数学表达式 print(1+2) #输出变量 print(num) 2. #string ...

最新文章

  1. 机器学习泰斗- Michael I.Jordan最新演讲:机器学习前景与挑战
  2. js中split字符串分割示例
  3. 算法-动态规划(01背包)
  4. 最详细的创建虚拟机_创建_安装配置_配置启动向导
  5. cmd oracle 连接实例_C#连接Oracle数据库的实例方法
  6. JEEWX捷微企业号管家系统发布
  7. angularjs html压缩,Angularjs 依赖压缩及自定义过滤器写法
  8. leetcode python3 简单题202. Happy Number
  9. 获取Map集合中数据的方法
  10. 马云透露:未来10大行业即将消失!
  11. 理解设计模式——代理模式
  12. 基于Bootstrap的响应式网页
  13. Ruby ERB注入反序列化
  14. 头条视频不足一分钟有收益吗,头条30秒视频都有收益吗
  15. 用计算机sp画笑脸,用AI技术给名画P上笑脸,看上去整幅画的画风都不好了……...
  16. 微信之父Allen张小龙演讲全文:如何把产品做简单
  17. 最好的投资是自己,有关怎样投资自己
  18. Notepad++装JsonViewer插件
  19. A4黑白打印多少钱一张
  20. open edx 实现第三方登录-shibboleth单点登录

热门文章

  1. JFrame改变边界为圆角矩形
  2. 星卫士陈卫俊表示要用心打造做真正好用、良心的健康手表
  3. 计算机知识二级竞赛流程,计算机知识竞赛方案.doc
  4. hitcontraining_uaf
  5. 特征值和特征向量概述-面试必问3(含特征值、向量意义)
  6. 斯坦福大学数据可视化课程学习笔记:第二节 从数据到图像
  7. 如何利用百度云下载BT或磁力链等资源,而不用迅雷
  8. 含有运算放大器的电路分析
  9. 4-(9H-咔唑-9-基)苯甲醛 4-(9H-carbazol-9-yl)benzaldehyde cas:110677-45-7
  10. Mac 安装Nacos踩坑脱坑教程