51单片机(STC8)-- GPIO输入输出

文章目录

      • I/O口相关寄存器
        • 端口数据寄存器
        • 端口模式配置寄存器(PxM0,PxM1)
        • 端口上拉电阻控制寄存器(PxPU)
        • 关于I/O的注意事项
      • 配置I/O口
      • I/O设置demo
        • I/O端口模式
        • LED控制(I/O输出)
        • 按键检测(I/O输入)

STC8H 系列单片机所有的 I/0 口均有 4 种工作模式,可使用软件对 I/O 口的工作模式进行配置:

  • 准双向/弱上拉(标准 8051 输出口模式)
  • 推挽输出/强上拉
  • 高阻输入(电流既不能流入也不能流出)
  • 开漏输出。

I/O口相关寄存器

端口数据寄存器

在这里插入图片描述
读写端口状态
写 0: 输出低电平到端口缓冲区
写 1: 输出高电平到端口缓冲区
读:直接读端口管脚上的电平

端口模式配置寄存器(PxM0,PxM1)

I/O口工作模式配置相关寄存器为PxM0和PxM1,即需要配置两个寄存器才能设置某个I/O的工作模式
在这里插入图片描述
I/O口的4种工作模式配置如下
在这里插入图片描述

端口上拉电阻控制寄存器(PxPU)

在这里插入图片描述
端口内部4.1K上拉电阻控制位(注: P3.0和P3.1口上的上拉电阻可能会略小一些)
0:禁止端口内部的 4.1K 上拉电阻
1:使能端口内部的 4.1K 上拉电阻

I/O寄存器除上述常用的寄存器外,还有端口施密特触发控制寄存器、端口电平转换速度控制寄存器、端口驱动电流控制寄存器和端口数字信号输入使能控制寄存器等可简单了解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

关于I/O的注意事项

在这里插入图片描述

配置I/O口

每个I/O 的配置都需要使用两个寄存器进行设置
以 P0口为例,配置P0口需要使用 P0M0和 P0M1 两个寄存器进行配置,如下图所示
在这里插入图片描述
注意
虽然每 I/O 口在弱上拉(准双向口)/强推挽输出/开漏模式时都能承受 20mA 的灌电流(还是要加限流电阻,如1K、5600、4720等),在强推挽输出时能输出 20mA 的拉电流(也要加限流电阻),但整个芯片的工作电流推荐不要超过70mA,即从 Vcc流入的电流建议不要超过70mA,从Gnd流出电流建议不要超过70mA,整体流入/流出电流建议都不要超过 70mA

I/O设置demo

I/O端口模式
#include "stc8h.h"
#include "intrins. h "void main()
{P_SW2 |= 0x80;			//使能访问XFRP0M0 = 0x00;				//设置P0.0~P0.7 为双向口模式P0M1 = 0x00P1M0 = 0xff;				//设置P1.0~P1.7 为推输出模式P1M1 = 0x00P2M0 = 0x00;				//设置P2.0~P2.7为高阻输入模式P2M1 = 0xff;P3M0 = 0xff;				//设置P3.0~P37 为开模式P3M1 = 0xff;while(1);
}
LED控制(I/O输出)
#include<stc8hxx.h>
#include<intrins.h>sbit LED1 = P4^6;
sbit LED2 = P4^7;void Delay_ms(u16 times)		//@24.000MHz
{unsigned char i, j;while(times--){_nop_();i = 32;j = 40;do{while (--j);} while (--i);}
}void main()
{P4M0 |= 0xC0;P4M1 &= 0x00;LED1 = 1;LED2 = 1;while(1){LED1 = 0;LED2 = 1;Delay_ms(200);LED1 = 1;LED2 = 0;Delay_ms(200);}
}
按键检测(I/O输入)
#include<stc8hxx.h>
#include<intrins.h>sbit LED1 = P4^6;
sbit LED2 = P4^7;sbit KEY1 = P3^5;void Delay_ms(u16 times)		//@24.000MHz
{unsigned char i, j;while(times--){_nop_();i = 32;j = 40;do{while (--j);} while (--i);}
}void LED_Init()
{P4M0 |= 0xC0;P4M1 &= 0x00;LED1 = 1;LED2 = 1;
}void KEY_init()
{P3M0 &= ~(0x01<<5);P3M1 &= ~(0x01<<5);P3PU = 0x01<<5;
}void main()
{LED_Init();KEY_init();while(1){if(KEY1 == 0){Delay_ms(20);if(KEY1 == 0){LED1 = ~LED1;LED2 = ~LED2;}while(!KEY1);}}
}

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

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

相关文章

大数据Doris(四十三):创建物化视图

文章目录 创建物化视图 一、首先你需要有一个Base表

深入浅出Java虚拟机

文章目录 总体图类装载子系统一、类的加载过程一、加载二、链接三、初始化 二、类的加载器 运行时数据区一、程序计数器(ProgramCounter)二、虚拟机栈( Java Stack )三、本地方法栈&#xff08; Native Method Stack &#xff09;四、堆内存&#xff08;Direct Memory&#xff…

mysql 与 支持语言的连接驱动 jdbc connector JAR 包

有位网友问我有没有 mysql jdbc驱动 &#xff0c;我刚开始一脸懵逼&#xff0c;后来明白过来&#xff0c;在网上找了几篇文章看看了解了解&#xff0c;得出如下解决办法&#xff1a; Mysql jdbc 下载&#xff1a; 网址&#xff1a; MySQL :: Download Connector/J 步骤1 &a…

【信息安全原理】——拒绝服务攻击及防御(学习笔记)

&#x1f4d6; 前言&#xff1a;拒绝服务攻击&#xff08;Denial of Service, DoS&#xff09;是一种应用广泛、难以防范、严重威胁网络安全&#xff08;破坏可用性&#xff09;的攻击方式。本章主要介绍DoS的基本概念、攻击原理及防御措施。 目录 &#x1f552; 1. 定义&#…

nginx报错upstream sent invalid header

nginx报错upstream sent invalid header 1.报错背景 最近由于nginx 1.20的某个漏洞需要升级到nginx1.25的版本。在测试环境升级完nginx后&#xff0c;发现应用直接报错502 bad gateway了。 然后查看nginx的errlog&#xff0c;发现&#xff1a; upstream sent invalid head…

echarts 柱状图

记录echarts 柱状图基础案例以及相关配置。 1.基础柱状图 const myChart this.$echarts.init(this.$refs.echartsZx);const option {title: {text: 本周考试记录},//提示框tooltip: {trigger: axis,axisPointer: {type: shadow}},xAxis: {type: category,data: [Mon, Tue, W…

im6ull学习总结(二)Framebuffer 应用编程

1 LCD操作原理 linux中通过framebuffer驱动程序来控制LCD。framebuffer中包含LCD的参数&#xff0c;大小为LCD分辨率xbpp。framebuffer 是一块内存 内存中保存了一帧图像。 关于图像的帧指的是在图像处理中&#xff0c;一帧&#xff08;Frame&#xff09;是指图像序列中的单个…

【新版Hi3536AV100性能果真强悍】

Hi3536AV100是针对多路高清/超高清&#xff08;1080p/4M/5M/4K&#xff09;智能NVR产品应用开发的新一代专业高端SoC芯片。 Hi3536AV100集成了ARM Cortex-A55八核处理器和性能强大的神经网络处理器&#xff0c;支持多种智能算法应用。 Hi3536AV100支持32路1080p多协议解码及4路…

OpenCV-Python(21):凸缺陷检测及点到多边形最短的距离求解

学习目标 凸缺陷的查找求某一点到一个多边形的最短距离不同形状的匹配 凸缺陷 前面我们已经学习了轮廓的凸包&#xff0c;对象上的任何凹陷都被成为凸缺陷。OpenCV 中有一个函数cv2.convexityDefect() 可以帮助我们找到凸缺。函数使用如下&#xff1a; hull cv2.convexHull…

【量化】蜘蛛网策略复现

文章目录 蜘蛛网策略研报概述持仓数据整理三大商品交易所的数据统一筛选共有会员清洗数据计算研报要求数据全部代码 策略结果分析无参数策略有参数策略正做反做 MSD技术指标化 蜘蛛网策略 策略来自《东方证券-股指期货趋势交易之蜘蛛网策略——从成交持仓表中捕捉知情投资者行为…

C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# Windows窗体技术及基础控件(二)

C# 入门基础知识 - C# Windows窗体技术及基础控件 第12节 Windows窗体技术及基础控件12.8 Label 控件12.9 Button 控件12.10 TextBox控件12.11 RichTextBox 控件12.12 Timer控件12.13 CheckBox 控件12.14 RadioButton 控件12.15 ComboBox 控件、ListBox 控件和CheckedListBox 控…

什么是 NLP (自然语言处理)

NLP&#xff08;自然语言处理&#xff09;到底是做什么&#xff1f; NLP 的全称是 Natural Language Processing&#xff0c;翻译成中文称作&#xff1a;自然语言处理。它是计算机和人工智能的一个重要领域。顾名思义&#xff0c;该领域研究如何处理自然语言。 自然语言就是我…

构建全场景解决方案,中国移动磐维数据库赋能数字化建设加速向前

【引言】随着数字化转型的加速&#xff0c;数据成为企业的核心资产&#xff0c;数据库作为数据的基础设施&#xff0c;承载着企业的业务发展和创新能力。如何构建一个高效、稳定、安全的数据库平台&#xff0c;满足不同场景的数据需求&#xff0c;是企业面临的重要挑战。本文将…

前端必须的服务端项目,node + express (这篇文章就够用)包含源代码

作为一个前端程序员&#xff0c;刚开始入门的时候&#xff0c;你觉得只要学习前端代码&#xff08;js css html&#xff09;就行了&#xff0c;实际上&#xff0c;到后面很多知识都涉及到服务端&#xff0c;在我们学习的过程中难免需要写一些 demo。比如在浏览器的缓存、或者…

公司防泄密软件监控员工哪些行为?

公司防泄密软件通常监控员工在使用电脑和其他存储设备时的一系列行为&#xff0c;以确保数据安全和防止敏感信息泄露。以下是一些公司防泄密软件可能监控的员工行为&#xff1a; 文件访问和操作&#xff1a; 软件可能会监控员工对文件的访问、打开、编辑、复制和移动操作。异常…

基于鸿蒙OS开发一个前端应用

创建JS工程&#xff1a;做鸿蒙应用开发到底学习些啥&#xff1f; 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择File > New > Create Project来创建一个新工程。选择HarmonyOS模板库&#xff0c…

【MYSQL】-表的约束

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

Redis管道

问题引出 Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。一个请求会遵循以下步骤&#xff1a; 1 客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果)&#xff0c;并监听Socket返回&#xff0c;通常以阻塞模式等待服务端响应。 2 服务端…

B (1038) : DS哈希查找—二次探测再散列

文章目录 一、题目描述二、输入与输出1.输入2.输出 三、参考代码 一、题目描述 定义哈希函数为H(key) key%11。输入表长&#xff08;大于、等于11&#xff09;&#xff0c;输入关键字集合&#xff0c;用二次探测再散列构建哈希表&#xff0c;并查找给定关键字。 二、输入与输…

用户规模破亿!基于文心一言的创新应用已超4000个

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…