0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STC51单片机的IO配置问题解决方案

单片机技术宅 来源:cc 2019-01-16 15:31 次阅读

我们人类可以通过连接手脚上神经网络,肌腱,控制着我们的肌肉做出各种动作,完成各种造型。那单片机里的肌腱和神经就是今天我们要讲的主角----单片机的IO口。

我们学习单片机,到底学什么呢?最终落脚点,就是落在单片机的IO口上,其实最终就是操作单片机的IO口,什么串口通讯,IIC通信协议,中断,定时器,最终在单片机上体现出来的还是我们对单片机IO口的操作。既然那么重要,今天我们就来好好的说一说单片机的IO口。

说起单片机的IO口,大家肯定会笑话小编,这么简单的东西,还要你说。对,它是简单,看遍你是个人写的单片机教程,最开始讲编程就是从操作单片机IO口开始,都是从点亮一个LED灯开始,是的点亮一个LED灯,就是对单片机IO的最简单的操作,要么给高电平,要么给低电平,这也是操作IO的唯一的两个方法。怎么说?举个例子:要在某个IO上输出PWM信号,其实就是有规律的在这个IO上交替的给高低电平,给的速度快慢决定了PWM信号的频率,给的高电平的时间所占一个高低电平周期的多少,决定了这个PWM信号的占空比。这么一说,高大上的PWM信号是不是就简单多了。

说了这么多,下面我们具体来说STC51单的IO的配置和各个模式的区别。

· 正 · 文 · 来 · 啦 ·

STC的51单片机为了更多更能的使用和运用于不同场合,STC51单片机设计了4中IO口模式,分别是:准双向IO口模式、推挽输出模式、高阻输入模式和开漏输出模式。每个IO口的模式配置,需要两个寄存器结合起来进行设置。这两个寄存器分别是PnM1和PnM0,(在STC8系列芯片中n=0,1,2,3,4,5,6,7),以P0口为例,配置P0口需要P0M1和P0M0两个寄存器进行配置,具体如下图:

即P0M1寄存器的第0位和P0M0寄存器的第0位组合起来配置P0.0位的模式,P0M1寄存器的第1位和P0M0寄存器的第1位组合起来配置P0.1位的模式,P0口的其他位以此类推。具体的PnM1和PnM0寄存器的组合方式如下表所示:

1、准双向I/O模式题

准双向I/O模式与标准51相比,虽然在内部结构上是不同的,但在用法上类同,比如要作为输入时都必须先写“1”置成高电平,然后才能去读引脚的电平状态。兼容传统的51单片机,在上电复位后,常规的IO都是准双向IO模式。在准双向IO模式下,端口输出1时能力很弱,允许外部将其拉低,输出0时驱动能力很强,可以吸收很大电流(20mA)。从输出示意图可以看出,在此模式下有三个晶体管来适应不同的需求。当端口寄存器输出1且引脚也为1时,晶体管“弱上拉”打开,提供基本的驱动电流,如果引脚输出的1被外部电路拉低时,“极弱上拉”打开,且关闭“弱上拉”,此时外部需要有足够的灌电流来拉低引脚电平;当端口寄存器为1,且引脚悬空时,“极弱上拉”打开,提供微弱的电流来维持引脚的高电平;当端口寄存器由0变到1时,“强上拉”打开来加快引脚上电平从0到1的转换,强上拉打开后,引脚上电平由0到1的转换需要两个时钟周期,所以需要读外部状态的时候,在端口写1后需要加两个空操作来等待引脚电平的转换,完了读取到的状态才是实际引脚状态。

准双向IO输出示意图

2、推挽输出模式

推挽输出的特点是不论输出高电平还是低电平都能驱动较大的电流,比如输出高电平时可以直接点亮LED(要串联几百欧限流电阻),而在准双向I/O模式下很难办到。

推挽输出模式输出示意图

3、高阻输入模式

此模式下,电流既不能流入也不能流出,这样可以获得比较高的输入阻抗,这在模拟比较器ADC应用中是必需的。高阻态是数字电路中的术语,它既不是高电平也不是低电平,上一级电路输出到高阻输入接口,此接口不会对上一级电路的状态有影响,和没接一样,不产生电流的衰减,电平也由接入的电平决定,电路分析时高阻态可做开路理解。可以把它看作输出(输入)电阻非常大。这样在做ADC转换的时候是必须要的,我们都知道电压表的内阻我们认为是无穷大的,在此,我们用ADC转换实现电压表的时候,就需要在高阻模式下进行。注意,在此模式下,不提供20mA的灌电流的吸收能力。

高阻输入模式示意图

4、开漏输出模式

开漏输出模式既可读外部状态,又可以对外输出高低电平,但是必须加上拉电阻。当端口锁存器输出0时,内部将关闭所有上拉晶体管,此时可以提供20mA的灌电流吸收能力;当端口寄存器输出1是,外部必须接上拉电阻,这也是此模式下的最大的优点----电气兼容性好,外部上拉电阻接3V电源,就能和3V逻辑器件接口,如果上拉电阻接5V电源,又可以与5V逻辑器件接口。

开漏输出模式示意图

STC8A特例一 ----内部集成了上拉电阻

内部已经集成了3.7K的上拉电阻,可以通过上拉电阻控制寄存器实现禁止和使能。使能上拉电阻控制寄存器相关位后,对应引脚上将接通单片机内部的3.7K电阻,可以省去外部上拉电阻,禁止上拉电阻控制寄存器后将断开内部上拉电阻。官方给出的资料显示,此3.7K上拉电阻实测为4.2K左右,而且在P3.0和P3.1上的上拉电阻可能会略小一些。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620822
  • IO
    IO
    +关注

    关注

    0

    文章

    397

    浏览量

    38509

原文标题:一文解决STC51单片机的IO配置问题

文章出处:【微信号:chuxue_MCU,微信公众号:单片机技术宅】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STC51单片机入门分享!

    STC51单片机入门 (C语言)十多年的单片机学习与运用经验,再经历了3年的编写时间,将自己的知识拿来给大家分享,如果您是单片机初学者或对单片机
    发表于 11-03 18:54

    STC51单片机学习板原理图

    STC51单片机学习板原理图
    发表于 08-12 12:44

    stc51单片机引脚功能介绍

    stc51单片机引脚功能介绍,以DIP封装为例(双列直插式)有40只引脚40只引脚分为3类1、电源和时钟:VCC、GND、XTAL1、XTAL2电源引脚接入单片机工作电源时钟引脚XTAL和XTAL2
    发表于 07-21 06:24

    基于STC51单片机的风扇设计要求

    基于STC51单片机的风扇设计要求:利用直流电机充当风扇键盘可以调整风扇的转速设计概述:​  按照设计要求,风扇的开与关需要用到独立键盘,转速控制需要用到PWM技术。所需要的单片机芯片为
    发表于 09-08 08:00

    怎么实现基于STC51单片机的密码锁设计?

    怎么实现基于STC51单片机的密码锁设计?
    发表于 10-20 06:42

    基于STC51单片机的串口使用的程序源代码

    基于STC51单片机的串口使用的程序源代码
    发表于 11-16 19:12 49次下载

    基于STC51单片机的串口收发的源代码

    基于 STC51单片机的串口收发的源代码
    发表于 11-16 19:14 54次下载

    STC51单片机核心板(走线图)

    STC51单片机核心板(走线图)
    发表于 12-17 11:44 33次下载

    STC51单片机串口温度c程序

    STC51单片机温度c程序数码管显示串口发送给电脑
    发表于 12-17 16:33 28次下载

    STC51单片机的必备软件使用

    STC51单片机的必备软件使用
    发表于 10-16 10:24 19次下载
    <b class='flag-5'>STC51</b><b class='flag-5'>单片机</b>的必备软件使用

    STC51单片机的中断与定时器进行配置的参考资料免费下载

    本文档的主要内容详细介绍的是STC51单片机的中断与定时器进行配置的参考资料免费下载。
    发表于 08-19 17:31 5次下载
    <b class='flag-5'>STC51</b><b class='flag-5'>单片机</b>的中断与定时器进行<b class='flag-5'>配置</b>的参考资料免费下载

    STC51单的IO配置和各个模式的区别资料下载

    电子发烧友网为你提供STC51单的IO配置和各个模式的区别资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望
    发表于 03-31 08:43 0次下载
    <b class='flag-5'>STC51</b>单的<b class='flag-5'>IO</b>的<b class='flag-5'>配置</b>和各个模式的区别资料下载

    【转载】配置Keil C51配置开发 STC51单片机过程

    内容1. Keil C51 下载2. 配置开发STC51单片机配置 Keil IDE与TEASOFT编辑1.
    发表于 11-13 16:51 20次下载
    【转载】<b class='flag-5'>配置</b>Keil C<b class='flag-5'>51</b><b class='flag-5'>配置</b>开发 <b class='flag-5'>STC51</b><b class='flag-5'>单片机</b>过程

    一文解决STC51单片机IO配置问题

    我们学习单片机,到底学什么呢?最终落脚点,就是落在单片机IO口上,其实最终就是操作单片机IO口,什么串口通讯,IIC通信协议,中断,定时
    发表于 02-10 11:13 6次下载
    一文解决<b class='flag-5'>STC51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>IO</b><b class='flag-5'>配置</b>问题

    stc51单片机怎么烧录

    烧录STC51单片机是一项常见的操作,下面将详细介绍如何进行烧录以及所需的步骤和工具。本文将按照如下顺序进行详解: STC51单片机简介 硬件烧录工具介绍 硬件烧录步骤 软件烧录工具介
    的头像 发表于 01-02 17:41 1000次阅读