STC8H系列单片机入门教程之GPIO基本知识(一)

这篇具有很好参考价值的文章主要介绍了STC8H系列单片机入门教程之GPIO基本知识(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、I/O口工作模式

IO口即输入输出口,STC8H系列单片机支持四种工作模式, 即准双向口、推挽输出、高阻输入、开漏输出,每个IO通过两个寄存器进行配置,如下图所示,注:n = 0,1,2,3,4,5,6,7。

PnM1

PnM0

I/O口工作模式

0

0

准双向口(弱上拉),灌电流可达20mA,拉电流150-270uA

0

1

推挽输出,强上拉输出,可达20mA,需加限流电阻

1

0

高阻输入,电流既不能流入也不能流出

1

1

开漏输出,内部上拉电阻断开

 PnM1和PnM0各一个字节八个bit,对应Pn.0 – Pn.7。

例:P0M0的第0位和P0M1的第0位组合起来配置P0.0口的模式。

1.1、准双向口

准双向口即可作为输入也可作为输出,一般用于按键检测、IO口时序控制等等。

stc8h1k08t引脚图,单片机,嵌入式硬件

摘自STC8H系列单片机技术参考手册

1.2、推挽输出 

推挽输出驱动电流可达20mA,一般用于驱动LED灯、蜂鸣器等。

stc8h1k08t引脚图,单片机,嵌入式硬件

摘自STC8H系列单片机技术参考手册 文章来源地址https://www.toymoban.com/news/detail-851111.html

1.3、高阻输入 

当I/O口配置为高阻输入工作模式时,没有片内上拉MOSFET、上拉电阻和下拉MOSFET,I/O端口引脚处于完全悬空状态。该工作模式最大好处是:把I/O口配置为高阻输入模式时,其消耗的输入电流主要由外置的上拉电阻确定,可以做的仅可能的低功耗,单片机自身I/O口处于高阻输入工作模式,消耗电流非常小。

当STC8系列单片机I/O口配置为高阻输入工作模式时,一定在对应I/O端口引脚上外置上拉电阻,保证I/O口输入电平的稳定。

高阻态情况下,IO口输入电阻很大,不容易干扰那些输出电阻较大、驱动能力弱的装置输出到IO口上的电平。

stc8h1k08t引脚图,单片机,嵌入式硬件

摘自STC8H系列单片机技术参考手册 

1.4、开漏输出 

该工作模式与准双向口和推挽输出工作模式最大的不同是:其无上拉MOSFET,即MOS管漏极处于断开状态; 开漏输出的好处就是可以方便调节输出电平,需要外接上拉电阻,调节上拉电阻的大小进而调节驱动电流大小;

开漏输出的这一特性另一个好处在于可以实现“线与”功能,所谓的“线与”指的是多个信号线直接连接在一起,只有当所有信号全部为高电平时,合在一起的总线为高电平;只要有任意一个或者多个信号为低电平,则总线为低电平。而推挽输出就不行,如果高电平和低电平连在一起,会出现电流倒灌,损坏器件;

一般IIC总线上挂接多个从机,需要线与进行仲裁,所以IIC常常采用开漏输出,需要外接上拉电阻;IIC不同通信速率上升沿有不同的要求,调节上拉电阻大小进而改变上升沿的时间。

stc8h1k08t引脚图,单片机,嵌入式硬件

摘自STC8H系列单片机技术参考手册 

二、发光二极管 

发光二极管通常称为LED,不同颜色的LED正向导通电压不一样,如下为常规参考数据,实际以不同型号LED技术手册为准。

stc8h1k08t引脚图,单片机,嵌入式硬件

LED限流电阻计算方法:限流电阻 =(供电电压-正向电压)/正向电流,即R=(VCC-VF)/IF。

例:红色直插LED的正向电压为2.0V,正向电流为20mA,电源电压为5V,则 R=(5-2.0)/0.02=150Ω ,P=I*I*R=0.02*0.02*150=0.06 W< 0.25W (0805封装电阻功率)    所以采用150Ω/0805 电阻即可。

三、发光二极管控制电路

1、LED1、LED2、LED3、LED4均接3.3V单片机IO口;

2、采用推挽输出控制,高电平点亮LED,低电平熄灭LED;

3、为了降低LED的亮度,因此这里采用1K限流电阻,降低亮度。

stc8h1k08t引脚图,单片机,嵌入式硬件

 四、3.3V/5V不同电压IO互连处理

1、单片机工作在3.3V,需要直连5V外部器件,如果对应的I/O口作为输入,可在I/O口上串接一个隔离二极管,隔离高压部分,状态逻辑如下: a、当外部信号电压高于单片机工作电压二极管处于截止状态,I/O因内部上拉到高电平,所以单片机读取到I/O口状态为高电平; b、当外部信号电压为低时二极管导通,因为硅二极管导通压降一般为0.5-0.7V,I/O被钳位在0.5V-0.7V,小于0.8V时,单片机读取到I/O口状态为高电平;

参考电路如下:

stc8h1k08t引脚图,单片机,嵌入式硬件

摘自STC8H系列单片机技术参考手册 

2、单片机工作在3.3V,需要直连5V外部器件,如果对应的I/O口作为输出,可用一个NPN三极管隔离,参考电路如下:

stc8h1k08t引脚图,单片机,嵌入式硬件

摘自STC8H系列单片机技术参考手册 

 五、示例代码

#include "STC8H.h" //头文件,包含单片机寄存器和特殊寄存器地址的声明

#define	LED1	P41 //宏定义,预处理命令,相当于给指定的字符串起一个别名
#define	LED2	P73 //宏定义
#define	LED3	P72 //宏定义
#define	LED4	P71 //宏定义

/*主函数*/
void main(void)
{
	/*
	1字节=8位(1 byte = 8bit),c语言中这样表示进制:
	二进制前缀 0b或者0B
	十六进制前缀 0X或者0X
	如0x11 = 0b00010001
	*/
	P4M1 = 0X00; P4M0 = 0X02; //将P41设置为推挽输出模式
	P7M1 = 0X00; P7M0 = 0X0E; //将P71、P72、P73设置为推挽输出模式
	LED1 = 1; //P41设置为高电平,点亮LED1
	LED2 = 1; //P73设置为高电平,点亮LED2
	LED3 = 1; //P72设置为高电平,点亮LED3
	LED4 = 1; //P71设置为高电平,点亮LED4	
	while(1);
	/*
	while(1);的作用:
	大部分还是为了防止程序跑飞,因为很多时候执行完某段程序后单片机的
	程序指针PC(就是程序指针)并不会停止,仍然会继续从ROM中读取指令
	并执行,这样一来可能会出现程序跑飞的情况,进而出现不确定的结果,
	我们加个while(1)就能让程序在执行完后在原地循环,相当于停在原地,
	防止跑飞。
	*/
}

六、思考问题 

每个IO口电路结构上都会在GND和VCC上并联一个二极管,大家清楚这两个二极管的作用是什么吗?

stc8h1k08t引脚图,单片机,嵌入式硬件

摘自STC8H系列单片机技术参考手册 

到了这里,关于STC8H系列单片机入门教程之GPIO基本知识(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STC8H8K64U单片机-ADC采集数

    配置单片机的ADC时一定要将IO口配置成高阻输入模式, 以下是单片机引脚对应的ADC通道  

    2024年02月07日
    浏览(41)
  • 一键使用PWM并输出,STC8H系列库函数,PWM外设教程

    随着STC单片机的发展,外设功能也不断增加,开发时间也慢慢的延长了很多博主为了缩短开发时间自己开发了一种库文件。可以一键使用外设,顾名思义就是我们不用再去配置寄存器不用再去看开发手册只需要对外设有一定了解便可以非常灵活的使用这个库函数,并且我在每

    2024年02月15日
    浏览(50)
  • STC8H驱动hub75e接口的64*64LED点阵屏

    由于最近在做毕业设计,应导师要求学习LED点阵屏的显示原理,学习并驱动hub75e接口的64*64LED点阵屏。点阵屏上一个点有三个颜色分量R,G,B,1为亮,0为灭。当这个点为110时,颜色为红色和绿色的混合--黄色。          hub75e接口如上图所示,其中R1/G1/B1和R2/G2/B2为两个R

    2024年02月11日
    浏览(72)
  • 51单片机(STC8) -- 开发环境搭建(Keil C51)

    STC8H3K系列芯片概述 文章中所用的芯片选型为STC8H3K64S4,后续STC8案例均以该芯片展开 内核 • 超高速 8051 内核(1T),比传统 8051 约快 12 倍以上,指令代码完全兼容传统8051 • 21个中断源,4 级中断优先级 • 支持在线仿真 工作电压 • 1.9V~5.5V 工作温度 • -40℃~85℃ Flash 存储

    2024年01月25日
    浏览(51)
  • STC8G1K08单片机接收485发送的不等长混合数据

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:以下是本篇文章正文内容,下面案例可供参考 这里以芯力特的485芯片为例如图1: 引脚功能: 1.接收器输出端(接单片机的RXD引脚) 2.接收器输出使能控制(接收器输出使能控制。当/RE 接低电平

    2024年02月16日
    浏览(40)
  • 单片机读/写端口或引脚区别及具体1个用例(一种基于STC8G1K08A最小8脚嵌入式单片机LED安全夜灯方案)

    51单片机读引脚和读端口测试总结_单片机怎么读取引脚电平_爱嘟嘟的小屁孩的博客-CSDN博客 近期看了几篇有关单片机读/写端口或引脚的区别的文章,其中上面引用本CSDN的这篇文章,总结的2点感觉还不错,先引用一下: 1. 51单片机里对某一个I/O口进行读--改--写(例如上面的

    2024年02月08日
    浏览(52)
  • 基于STC15系列单片机的智能门锁

    一、项目背景及功能需求 1.1项目背景 智能门锁是一种智能化、高效、安全的门锁,它可以实现密码识别开锁方式,极大地提高了门锁的安全性和便利性。随着人们对安全性的要求越来越高,智能门锁已经成为了现代家庭和企业的必备设备。因此,本项目旨在设计一款基于S

    2024年02月04日
    浏览(65)
  • STC15系列单片机学习4:串口通讯

    在使用单片机的串口前,得先知道所使用的单片机有几个串口,再结合你的硬件电路图来使用哪个串口。 以下是STC15各系列单片机的串口数量,STC15W4K32S4系列有4个串口 工作模式0:同步移位寄存器(官方建议初学者不学) 工作模式1:8位串口,波特率可变 工作模式2:9位串口

    2024年04月13日
    浏览(44)
  • STC15系列单片机学习6:外部中断

    外部中断,就是通过单片机IO引脚电平的变化触发的中断。 STC15系列单片机的外部中断源一共有5个,分别是外部中断0(INT0)、外部中断1(INT1)、外部中断2(INT2)、外部中断3(INT3)、外部中断4(INT4);当然不是所有的STC15系列单片机都有着5个外部中断。 中断源 触发行为

    2024年03月12日
    浏览(173)
  • stc89C51系列单片机介绍

    STC89C51 是一款基于 8051 内核的高性价比单片机,由国内的 STC 微电子公司生产。STC89C51 系列单片机的特点是具有高速运行、丰富的外设接口、广泛的应用领域等优点。本文将从以下几个方面介绍 STC89C51 系列单片机。 STC89C51 系列单片机基于 80C51 内核,具有 1T 和 2T 两种不同的时

    2024年02月01日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包