51单片机:io口

今天进入正式章节:单片机的io口。首先要弄懂io的两大功能,第一:普通io,第二:第二功能,如:串口、AD转换、外部中断口。当使用引脚的第二功能时不能使用为普通io口

那么io有哪几类呢?这里说的是51单片机总的io分为哪几类。单片机总的io会分为这几类:电平可变化的io口和VCC、GND两类。其中电平可变化的io有P0口、P1口、P2口、P3口、P4口、P5口。那么所谓P0.0又是什么呢?这里个人理解为:p0.0属于P0,P0称为P0口,P0.0称为P0.0端口,如果需要定义一个端口,可使用 sbit Sftclk = P0^0,这样就申明了一个端口P1.6为Sftclk,注意这里是端口而不是口。如果需要使用口怎么办呢?可使用 P0 == 0xFF,这样就可以让P0口的所有端口置成1,即P0.0 = 1,P0.1 = 1......P0.7 = 1,这就是P0口和P0.0的区别。

注意:C-51的数据类型扩充定义:
sfr : 特殊功能寄存器声明
sfr16 : sfr的十六位数据声明
sbit : 特殊功能位声明
bit : 位变量声明

接着说单片机的口,P0口普通的io,没有第二功能的,而除了P0口外的其他口都有第二功能,多的第二功能甚至有四个功能。

1:P0端口的结构及工作原理
P0端口8位中的一位结构图见下图: 

由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。
下面,我们先就组成P0口的每个单元部份跟大家介绍一下:
先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据
总线上。
D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。大家看上图中的D锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。
多路开关

  • 29
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值