4.基本IO口操作

news2024/11/20 10:22:32

CC2530端口资源:三个端口,表示为 P0、P1 和 P2。P0 和 P1 是完全的 8 位端口,而 P2 仅有 5 位可用

CC2530的IO口的一些功能:

  1. 通用IO口、外设IO口(定时器、USART、ADC)

  2. 输入引脚、输出引脚

  3. 当输入时,上拉、下拉、高阻态(三态)

寄存器简略介绍:

  1. PxSEL 置0为通用I/O口,置1为专用功能

  2. PxDIR 置0为输入模式,置1为输出模式

  3. PxINP 置0为上/下拉模式,置1位三态模式(高阻态)

    • 1.对应P1INP和P0INP来说,0~7位均满足上述规则

    • 2.对于P2INP来说,0 ~ 4位满足上述规则,5 ~ 7为专用功能,即5、6、7分别用来控制P0、P1、P2组端口的上下拉模式(0上拉、1下拉)

端口配置寄存器

PxSEL寄存器

寄存器 PxSEL,其中 x 为端口的标号 0~2,用来设置端口的每个引脚为通用 I/O(0) 或者是外部设备I/O(1)。

默认上电后为普通IO口上拉输入

image-20230916220122903

image-20230916220334606

P2组只有5个IO口,但是P2_1和P2_2是用于下载程序用的,所以这两个IO不需要配置

因此P2SEL的低3位分别对应P2_0、P2_3 、P2_4

PxDIR寄存器

在任何时候,要改变一个端口引脚的方向,就使用寄存器 PxDIR 来设置每个端口引脚为输入或输出

image-20230916220858280

如果使用输出功能,则不需要使用PxINP寄存器

PxINP寄存器

设置通用IO端口的输入模式:上拉、下拉或三态(高阻态)

  1. 选择输入端口是否为高阻态

    • 使用P0INP、P1INP以及P2INP的0~4位

    • 需要注意的是,P1_0 和 P1_1 没有上拉/下拉功能

image-20230916221847315

image-20230916221914713

  1. 如果选择了上下拉模式,使用P2INP的5~7位确定到底为上拉还是下拉

    • P2_5:确定P0口

    • P2_6:确定P1口

    • P2_7:确定P2口

image-20230916222013276

寄存器使用

对某一位置1,使用或运算【|】

对某一位置0,使用与运算【&】

例1:设置P1_0口为通用输出IO口

  P1SEL &= ~0x01;   //P1.0设置为通用I/O口
  P1DIR |= 0x01;    //P1.0设置为输出

例2:设置P0_6口为通用上拉输入IO口

  P0SEL &= ~0x40;//P0.6设置为通用I/O口

  P0DIR &= ~0x40;//P0.6设置为输入

  P0INP &= ~0x40;//P0.6设置为上下拉模式
  P2INP &= ~0x20;//P0.6设置为上拉输入

例3:结合例1和例2来实现监测外部P0_6口的高低电平,高电平点亮LED灯(P1_0)

实验现象:拔出跳线帽灯亮,插上跳线帽灯灭

#include<iocc2530.h>
/*
  PxSEL 置0为通用I/O口,置1为专用功能
  PxDIR 置0为输入模式,置1为输出模式
  PxINP 置0为上/下拉模式,置1位三态模式(高阻态)
    1.对应P1INP和P0INP来说,0~7位均满足上述规则
    2.对于P2INP来说,0~4位满足上述规则,5~7为专用功能,
    即5、6、7分别用来控制P0、P1、P2组端口的上下拉模式(0上拉、1下拉)
*/
void main(){

  //寄存器上电默认置0,即普通IO口上拉输入
  P1SEL &= ~0x01;   //P1.0设置为通用I/O口
  P1DIR |= 0x01;    //P1.0设置为输出

  P0SEL &= ~0x40;//P0.6设置为通用I/O口
  P0DIR &= ~0x40;//P0.6设置为输入
  P0INP &= ~0x40;//P0.6设置为上下拉模式

  P2INP &= ~0x20;//P0.6设置为上拉输入


  while(1){
    if(P0_6 == 1){
      //监测到高电平,点亮LED
      P1_0 = 0;
    }else{
      //监测到低电平,熄灭LED
      P1_0 = 1;
    }
  }
}

#include<iocc2530.h>
/*
PxSEL 置0为通用I/O口,置1为专用功能
PxDIR 置0为输入模式,置1为输出模式
PxINP 置0为上/下拉模式,置1位三态模式(高阻态)
1.对应P1INP和P0INP来说,0~7位均满足上述规则
2.对于P2INP来说,04位满足上述规则,57为专用功能,
即5、6、7分别用来控制P0、P1、P2组端口的上下拉模式(0上拉、1下拉)
*/
void main(){

//寄存器上电默认置0,即普通IO口上拉输入
P1SEL &= ~0x01; //P1.0设置为通用I/O口
P1DIR |= 0x01; //P1.0设置为输出

P0SEL &= ~0x40;//P0.6设置为通用I/O口
P0DIR &= ~0x40;//P0.6设置为输入
P0INP &= ~0x40;//P0.6设置为上下拉模式

P2INP &= ~0x20;//P0.6设置为上拉输入

while(1){
if(P0_6 == 1){
//监测到高电平,点亮LED
P1_0 = 0;
}else{
//监测到低电平,熄灭LED
P1_0 = 1;
}
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1035332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

奇安信天擎Linux客户端部署相关事项

奇安信天擎Linux客户端部署 一 Linux天擎客户端部署在线部署离线部署 二 Linux 单机部署需要开放的端口三 Linux天擎客户端停止和启动天擎的命令四 Linux天擎客户端卸载五 卸载后检查六 Linux天擎客户端病毒库更新操作步骤七 Linux客户端是否有补丁库&#xff1f; 一 Linux天擎…

设备巡检电力水利物业巡检小程序开源版开发

设备巡检电力水利物业巡检小程序开源版开发 以下是设备巡检电力水利物业巡检小程序开源版的可能功能列表&#xff1a; 用户登录/注册&#xff1a;用户可以通过手机号或其他方式进行登录和注册。 首页展示&#xff1a;展示设备巡检电力水利物业巡检小程序的基本信息和操作指南…

6.1 KMP算法搜索机器码

KMP算法是一种高效的字符串匹配算法&#xff0c;它的核心思想是利用已经匹配成功的子串前缀的信息&#xff0c;避免重复匹配&#xff0c;从而达到提高匹配效率的目的。KMP算法的核心是构建模式串的前缀数组Next&#xff0c;Next数组的意义是&#xff1a;当模式串中的某个字符与…

【力扣】83. 删除排序链表中的重复元素

题目描述 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2] 示例 2&#xff1a; 输入&#xff1a;head [1,1,2,3,3] 输…

笔试强训Day(一)

T1&#xff1a;组队竞赛 链接&#xff1a;组队竞赛__牛客网 牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 例如: 一个队伍三个队员…

【DDPM论文解读】Denoising Diffusion Probabilistic Models

0 摘要 本文使用扩散概率模型合成了高质量的图像结果&#xff0c;扩散概率模型是一类受非平衡热力学启发的潜变量模型。本文最佳结果是通过根据扩散概率模型和朗之万动力学的去噪分数匹配之间的新颖联系设计的加权变分界进行训练来获得的&#xff0c;并且本文的模型自然地承认…

Jupyter Notebook中的魔法命令

关于魔术命令 Jupyter Notebook 使用的 Python 内核通常是 IPython 内核。IPython 是 Python 的增强交互式解释器&#xff0c;它提供了许多额外的功能&#xff0c;使得在 Jupyter Notebook 中编写和执行 Python 代码更加方便和强大。所以jupyter使用的是IPython的语法 IPytho…

彩色图像处理在数字图像处理中的应用(数字图像处理概念 P5)

文章目录 彩色模型伪彩色处理全彩色数字图像处理基础彩色变换平滑和锐化 彩色模型 伪彩色处理 全彩色数字图像处理基础 彩色变换 平滑和锐化

有名管道及其应用

创建FIFO文件 1.通过命令&#xff1a; mkfifo 文件名 2.通过函数: mkfifo #include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *pathname, mode_t mode); 参数&#xff1a; -pathname&#xff1a;管道名称的路径 -mode&#xff1a;文件的权限&a…

MySQL学习笔记5

1、MySQL中的SQL语句&#xff1a; SQL 是 Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应 用语言,由 IBM 在 20 世纪 70 年代开发出来,作为 IBM 关系数据库原型 System R 的原型关 系语言,实现了关系数据库中的信息检索。 20 世纪 80 年代初,美…

【ardunio】青少年机器人四级实操代码(2023年9月)

目录 一、题目 二、示意图 三、流程图 四、硬件连接 1、舵机 2、超声波 3、LED灯 五、程序 一、题目 实操考题(共1题&#xff0c;共100分) 1. 主题&#xff1a; 迎宾机器人 器件&#xff1a;Atmega328P主控板1块&#xff0c;舵机1个&#xff0c;超声波传感器1个&…

OLTP和OLAP有什么区别和不同?

OLTP概念 操作型处理&#xff0c;叫联机事务处理OLTP(On-LineTransactionProcessing)&#xff0c;主要目标是做数据处理&#xff0c;它是针对具体业务在数据库联机的日常操作&#xff0c;通常对少数记录进行查询、修改。 用户较为关心操作的响应时间、数据的安全性、完整性和…

分享78个Python源代码总有一个是你想要的

分享78个Python源代码总有一个是你想要的 源码下载链接&#xff1a;https://pan.baidu.com/s/1ZhXDsVuYsZpOUQIUjHU2ww?pwd8888 提取码&#xff1a;8888 下面是文件的名字。 12个python项目源码 Apache Superset数据探查与可视化平台v2.0.1 API Star工具箱v0.7.2 Archery…

图形化思维:Graphviz和DOT语言的艺术与实践

前言 Graphviz和DOT语言是一对强大的工具&#xff0c;用于创建各种类型的图形&#xff0c;从流程图和组织结构图到网络拓扑图&#xff0c;无所不能。它们的灵活性和自定义性使得它们在数据可视化、系统设计、项目规划等各个领域都备受欢迎。然而&#xff0c;要想真正掌握Graph…

vulhub打靶第三周

第三周 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/chronos-1,735/ 环境折磨导致做晚了&#xff0c;再加上期末的考试多耽搁下来了&#xff0c;然后就是辗转反侧打比赛&#xff0c;拖了这么久&#xff0c;时隔三个月重新开打 因为陆陆续续打了两次&#xff0c;所…

《Web安全基础》09. WAF 绕过

web 1&#xff1a;基本概念1.1&#xff1a;DoS & DDos1.2&#xff1a;CC 攻击1.3&#xff1a;扫描绕过方式 2&#xff1a;WAF 绕过2.1&#xff1a;信息收集阶段2.2&#xff1a;漏洞发现阶段2.3&#xff1a;权限控制阶段2.3.1&#xff1a;密码混淆2.3.2&#xff1a;变量覆盖…

数量关系(高照)

数量关系&#xff08;内容&#xff09; 先问题&#xff0c;再材料 正向&#xff1a;约分、倍数反向&#xff1a;选项、代入 倍数特性 整除型

CSS 基础 4

(●◡●)target ⇛ 圆角边框 ⇛ 盒子阴影 ⇛ 文字阴影 圆角边框 在CSS3中新增了圆角边框的样式, 这样我们的盒子就可以变成圆角了. 圆角在我们生活中很常见, 例如: ① 我们浏览器的标签 显示就会是一个圆角边框 ② 浏览器的搜索栏 如何设置圆角边框?? 设置属性 border-…

VMware安装CentOS Stream 8以及JDK和Docker

一、下载镜像源 地址&#xff1a;https://developer.aliyun.com/mirror/?spma2c6h.25603864.0.0.285b32d48O2G8Y 二、安装配置 配置项 一共有以下这些&#xff0c;其中软件、软件选择 、安装目的地、网络主机名需要讲一下&#xff0c;其他都简单&#xff0c;自行设置即可。 …

关于DNS

DNS DNS 域名解析系统DNS服务器如何能够承担高并发量? DNS 域名解析系统 上网,想要访问服务器,就需要知道服务器的IP地址,IP地址,是一串数字,虽然这个数字使用点分十进制已经清晰不少了,但是仍然不方便人们记忆和传播,因此,我们就使用单词来代替IP地址,使用baidu,sogou,bilib…