Bootstrap

单片机按键控制一个led灯亮灭的程序_51单片机IO端口基础知识及应用

文章目录

  1. 89C51单片机引脚信息
  2. 单片机IO端口内部结构
  3. 单片机IO引脚输出应用
  4. 单片机IO引脚输入应用
  5. 总结

89C51单片机引脚信息

我们在学习使用任何芯片到时候,可能第一个要注意的就是芯片的引脚信息了,因为我们必须弄懂每个引脚的功能才能更好的设计出对应的电路。本文就来说下89C51单片机的引脚IO端口及应用,学习单片机的IO口的应用也是入门单片机的第一步。

b7809b3b5187ad5f6c7948590b5f8ba4.png

上图是89C51单片机的封装引脚图,89C51单片机有4个IO端口为P0~P3,每个端口有8个引脚,分别对应8个位0~7,每个端口的引脚都可以作为输入输出使用。

单片机IO端口内部结构

353b356963e395d02e9bdb25b0aefacb.png

其中P3端口有复用功能,比如串口和外部中断功能等,从上两张图中引脚信息也可以看出。

38930a11a8bffa259d7e02c7e830cd93.png
ca300a8732bcd8d752efbaa0ef4549a7.png

在有使用外部存储器时,P2用作访问外部总线的高8位地址,P0端口用作分时访问外部总线低8位地址和8位数据。

0241cfb341a24d44bf023ef729f62e02.png

另外P0口没有内部上拉电阻,是一个真正的双向口,引脚内的是一个开漏结构。

29d79747fafc7d49ecd07c34e4a03f12.png

P1、P2、P3口的位结构都有一个上拉电阻,因而被称为"准双向口"。正是由于此上拉电阻的存在,所以有些时候P1、P2、P3端口的引脚的外部上拉电阻可以省略,P0端口的引脚某些时候需要考虑使用上拉电阻。下面就以P1端口为例,介绍下单片机引脚输入输出功能的应用。

单片机IO引脚输出应用

单片机IO引脚作为输出时,其实就是控制其引脚内部开关管的通断,从而使引脚输出对应的高低电平。下面给出一张控制led灯的电路图,并讲解IO输出高低电平的控制过程。

0220d1ff4ddb04be6b379245d8e76d44.png

上图中使用P1端口的一个引脚控制一个Led灯,红色剪头已经指出了Led亮时电流的流向,主要就是控制引脚内部的开关管的通断来控制Led灯亮灭。

19a91b8fce366b4549ee083326b7bbf5.png

如上图所示,输出数据0时,IO引脚内部开关管导通,从而使IO引脚低电平接地,所以Led灯亮。

9fd01d17ebb02b30223bc71192cfac5d.png

当内部总线输出数据为1时,IO引脚内部开关管截止,IO引脚与地断开,通过内部上拉电阻连接到Vcc,所以Led灭。

单片机IO引脚输入应用

单片机IO引脚作为输入时,主要通过外部不同的高低电平输入,从而读出对应的数据1和0的过程,下面就以一张按键输入电路为例讲解按键的识别过程。

b2c0146536a764081b0496a610ae1dc6.png

从上图中可以很直观的知道,在IO引脚作为输入时,需要先控制其内部开关管断开,不然开关管导通会使IO引脚一直接地,从而读到的会一直是0。在配置开关管断开后,我们就可以读IO引脚数据了,如果读到1,说明按键没有按下,引脚通过上拉电阻接到电源Vcc,如果读到0,说明按键按下,引脚通过按键连接到地。这样我们就可以判断按键按下了。

总结:

1.单片机每一个I/O口都可以独立地作输入或输出口使用,但P0和P2在访问外部存储器时作地址/数据总线,此时它们将不能再作为I/O口使用。

2.当I/O口作为输入时,必须通过程序输出1使内部开关管截止,这样从"管脚Px.x"输入的信号才能在"读管脚"信号的帮助下被正确读走。

3.P1、P2、P3因为内部上拉电阻而被称为"准双向口"。在作输入时,上拉电阻将"管脚Px.x"拉高并在外设输入低电平时向外输出电流。

4.P0口没有内部上拉电阻,是一个真正的双向口。作输入时因开漏结构而浮地。

欢迎大家点赞、评论、转发、收藏!有什么不对、不详细的地方也请大家指出补充。分享是种美德,如果觉得此文讲的不错的话,欢迎给个转发分享给更多的朋友。有什么问题也欢迎评论一起交流。更多有关电子电路、单片机、嵌入式、C语言编程、RTOS的知识,请关注我头条号:单片机嵌入式爱好者。会有更多干货文章分享,帮您加速解决实际工程中遇到的问题。

;