8051单片机有四个8位并行I/O端口,记作P0,P1,P2和P3.每个端口都是8位准双向口,共占有32条引脚。每一条I/O线都 可以独立的用作输入或输出。
每个端口都包括锁存器,一个输出驱动器,作输出时数据可以锁存,作输入时数据可以缓冲。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向通用I/O端口使用。
在具有片外扩展存储器系统中,P2口送出高8位地址,P0口为双向总线,分别送出低8位地址和数据输入/输出。8051单片机四个I/O端口的电路设计非常巧妙,熟悉I/O端口逻辑电路,不但有利于正确合理地使用端口,而且会对设计单片机外围逻辑电路有所启发。
P0口的每一位由一个输出锁存器 ,二个三态输入缓冲器,输出驱动电路,控制电路与门,反相器,MUX控制构成。当CPU使控制线C=0时,数控开关MUX向下,P0口为通用I/O口;当C=1时,开关拔向反相器的输出,端口分时为地址/数据总线使用。
我们先来看P0口作为I/O口使用的情况:
当8051组成的系统无外扩存储器,CPU对片内存储器和I/O口读写时 。执行MOV指令,或EA=1的条件下执行MOVC指令时,由硬件自动使控制线C=0,开关MUX倒向下,它输出级T2与锁存器的Q反端接通;同时,因与门输出为0,输出级中的上拉场效应管T1处于截止状态,因此,输出级是漏极开路电路。这时P0口可作一般I/O口用。
一般I/O口又有输入和输出两种操作,我们先来看看P0用作输出口的情况。当CPU执行输出指令时,写入脉冲加在D锁存器上,这样与内部总线相连的数据取 反相后就出现在Q上,若D端数据为0,则反端数据为1,场效应管T2导通,输出0.此时引脚被上拉电阻拉成高电平,这样数据总线上的信号1被准确的送出到引脚上 。
8051有几条输出指令功能特别强,属于“读-改-写”指令。例如,执行一条ANL P0,A。指令的过程是:不直接读引脚上的数据,而是读P0口D端锁存器中的数据,当“读锁存器”信号有效,三态缓冲器1导通,Q端数据内部总线和累加器A中的数据进行“逻辑与”操作,结果送回P0端口锁存器。此时,锁存器的内部和引脚是一致的。
下面分析P0口作输入口的情况,缓冲器2用于CPU直接读口数据。当执行一条由端口输入的指令时,“读引脚”脉冲把该三态缓冲器打开,这样,端口上的数据经过缓冲器2读入到内部总线。这类操作由数据传送指令实现。在读入端口引脚数据时,由于输出驱动场效应管T2并接在引脚上,如果T2导通就会将输入的高电平拉成低电平,以至于产生误读。所以,在端口进行输入操作前,应先向端口锁存器写入“1”,也就是使锁存器Q反=0,因为控制线C=0,因此T1和T2截止,引脚处于悬浮状态,可作高阻抗输入。
下面我们看看控制线C=0时,P0口作为地址/数据总线使用的情况。当8031外扩存储器组成系统,CPU对外存储器读写,CPU片外存储器读写,即执行MOVX指令,或在EA=0的条件下执行MOVC指令时,由内部硬件自动使控制线C=1,开关MUX拨向反相器3输出端。这时P0可作地址/数据总线分别使用,并且又分为两种情况。
1、P0口可作输出地址/数据总线。在扩展系统中,一种是以P0口引脚输入低8位地址或数据信息。
2、另一种情况是有P0口输入数据。这种情况是在“读引脚”信号有效时打开输入缓冲器使数据进入内部总线。
综上所述,P0即可作一般I/O端口使用, 也可作地址/数据总线使用。
关键字:单片机 端口结构 P0口
引用地址:
8051单片机端口结构—P0口
推荐阅读最新更新时间:2024-03-16 15:50
单片机的外部结构-引脚功能
(1) 单片机(AT89S51)外观 (2) 单片机(AT89S51)的引脚功能图 (3) 51系列单片机8031、8051及89c51/89s51均采用40Pin封装的双列直接DIP结构。上图是它们的引脚配置:40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明: 1、电源引脚 Vcc 40脚 正电源脚,工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。 GND 20 接地端 2.外接晶体引脚 Pin
[单片机]
C8051F12X存储大量常量代码的编译技巧
Silicon Lahoratories公司的C8051F12X是与8051兼容,采用高速流水线工作方式,70%指令的执行时间为1个或2个系统时钟周期的高速集成混合信号SoC微控制器。片内调试电路提供全速、非侵入式的在片/在系统调试,支持断点、单步、观察点、堆栈监视器,可以观察/修改存储器和寄存器;使用内部集成PLL,时速度可达100MIPS或50MIPS;对于需要大量常量代码而又不想外扩ROM的系统设计,128KB的Flash是个很好的选择。 1 处理大量常量代码面临的困难 通常带中文液晶显示的系统采用的是不带中文字库的图形液晶显示模块,需要给点阵字库分配存储空间。常用的是16×16点阵字库,每个汉字占用32字节
[单片机]
51单片机红外解码库文件
遥控器就是下面图上的那种 完整的程序源码下载地址:http://www.51hei.com/bbs/dpj-20623-1.html 红外解码文件 ir.h/*--------------------------------------------------- 名称:红外驱动 编写:YuMin_Dong 时间:2012.11.26 ---------------------------------------------------*/ #ifndef _IR_H_ #define _IR_H_ uint8 irtime; uint8 irdata /*,irprodata */; bit irreceive_ok,irpro_
[单片机]
基于单片机DS18B20温度报警系统 无线蓝牙显示
一、系统方案 随着科学技术的不断发展带动着电子行业的地位越来越重,现在电子产品几乎在社会的各个领域都可以见到。这些技术的发展有效的带动着社会生产力的发展和信息化的提高,同时电子产品也越来越智能。 本设计采用AT89C51单片机为主控芯片,采用数字型防水温度传感器DS18B20制作温度检测报警器,通过四位数码管显示温度值,系统设立几个按键,可以通过按键进行设置温度的上、下限值,当所采集温度超过设定值时,系统会控制蜂鸣器和对应LED发出声光报警。这个设计简单、成本低、具有实用性。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是串口初始化: void Uart_init() { TMOD=0x20;//定时器0工作
[单片机]
单片机 mos管短路保护
在做产品的时候对mos管的短路保护很重要,最简单的办法就是加可恢复保险丝,但是这样一来会大大的加重生产的成本,对于量产的产品来说可是非常大的支出。 方法一、现在又很多单片机已经带有ad采集: 方法二: 直接检测单机io口的高低电平 这两种方法都大大的降低了生产产本,但是同时对器件有伤害、。
[单片机]
单片机定时/计数器的四种工作方式
1 工作方式0 定时器/ 计数器 的工作方式0称之为13位定时/计数方式。它由TL(1/0)的低5位和TH(0/1)的8位组成13位的 计数器 ,此时TL(1/0)的高3位未用。 我们用这个图来讨论几个问题: M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。 C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们编程者。如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会
[单片机]
学习单片机的八大步骤
学习使用单片机就是理解单片机硬件结构,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。 第一步:数字I/O的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、
[单片机]
基于AT89S52型单片机的红外无线PPM发射机设计
1 引言
在工业和生活环境中,便携式信息终端设备的出现加速了无线数字通信线路和局域网的引进,然而,由于无线电的局限性,使它在无线高速数据链路应用方面受阻。在此情况下红外(IR)无线光通信得到人们的重视 。作为一种室内短距离通信的传输介质,IR具有胜过无线电的显著优点:IR有巨大的带宽且不需许可证,可以进行高速数据传输;IR不穿透墙壁,因而消除了在不同房间进行通信时可能带来的干扰,而且通信时不容易被侦听,提高了通信的安全性;IR探测器的尺寸比IR无的波长大得多,避免了多径衰落;IR可强度调制,IR通信设备比无线电通信设备要便宜简单得多。
对室内无线电局域网,要求红外数据链路的峰值-平均光功率比高,高峰值功率可提高系统
[应用]