51单片机的输入/输出口(IO口)

发布者:快乐的旅程最新更新时间:2021-03-22 来源: eefocus关键字:51单片机  输入  输出口  IO口 手机看文章 扫描二维码
随时随地手机看文章

MCS-51单片机有4个双向的8位I/O口的P0~P3口为三态双向口 P1,P2,P3口为准双向口(用作输入时,口线被拉成高电平,所以称为准双向口)。


P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。 P0口还可以用来输出外部存储器的第8位地址。 由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。


P1口是专门供用户使用的I/O口,用户可以利用它作为I/O口线使用。P1口是准双向口。每一位均由锁存器(SFR)、输出驱动器和输入缓冲器组成。 它们的上拉电阻实际上不是线性电阻,而是由场效应管构成 ,每位锁存器均由D触发器组成。


每个I/O口都有两种读入方法:读锁存器和读引脚。每种读入方法都有相应的指令 。读引脚指令一般都是以I/O端口为原操作数的指令。 执行读引脚指令时,要打开三态门输入口状态。例如:读P1口的输入状态时。读引脚指令为:MOVA.P1根据I/O口的结构及CPU的控制方式,当执行读引脚操作后,口锁存器状态与引脚状态应当是相同的。 但当给口锁器写某一状态后,相应的口引脚是否呈现锁存器状态,就与外电路的连接有关。例如:用I/O口线驱动三极管的基极时,该口线的位锁存器的写入 1后,将使三极管导通,而三极管一旦导通后,基极电平为“0”。 如果改口线无读引脚操作时,口锁存器与引脚状态不一致。


关键字:51单片机  输入  输出口  IO口 引用地址:51单片机的输入/输出口(IO口)

上一篇:基于AT89C51 单片机的节拍器
下一篇:浅谈单片机的按键去抖问题

推荐阅读最新更新时间:2024-11-11 21:31

51单片机-交通灯-红绿灯
1. 视频 bilibili视频地址: https://www.bilibili.com/video/av91934816 51单片机-交通灯-红绿灯 2. 文件 文件下载地址: https://download.csdn.net/download/weixin_43130546/12194351 3. 说明 绿灯亮10秒;黄灯亮5秒;红灯亮10秒 4. 代码 #include reg52.h sbit DULA = P2^6; sbit WELA = P2^7; unsigned char code DUTable = { 0x3F,0x06,0x5B,0x4F, 0x66,0x6D,0x7
[单片机]
51单片机学习:定时器0实验
实验名称:定时器0实验 接线说明: 实验现象:下载程序后,D1指示灯间隔1s闪烁 注意事项: ***************************************************************************************/ #include reg52.h typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8; //定义LED1管脚 sbit LED1=P2^0; /********************************************************************
[单片机]
单片机为什么要晶振_51单片机晶振频率
首先解释一下单片机为什么需要晶振。 晶振是什么?全称是石英晶体振荡器,是一种高精度和高稳定度的振荡器。通过一定的外接电路来,可以生成频率和峰值稳定的正弦波。而单片机在运行的时候,需要一个脉冲信号,做为自己执行指令的触发信号,可以简单的想象为:单片机收到一个脉冲,就执行一次或多次指令。 第二个问题,是不是外接晶体的值可以随意选择呢? 当然不是,这就像不同的发动机有不同的最大功率一样,每种型号的的单片机都有最大能接受的晶体频率。先说51,它能够外接的最大晶体是24M,AVR单片机能够外接的最大晶振是16M。更高级的可编程芯片,例如FPGA,ARM,可以达到几百M,不过暂时不在我们的考虑范围之内。 第三个问题,为什么5
[单片机]
单片机为什么要晶振_<font color='red'>51单片机</font>晶振频率
单片机的动手实践篇--51单片机玩转12864
12864液晶的驱动和1602的类似,只不过是多了几个扩展的功能,不如画图功能: 这里讲一下:不要简单的认为12864是y轴64,x为128,那是点阵的分布,不是读写的分布,如正图表示,y轴的32行,从0到31,x轴的16 从0到15,0到7为上半个屏幕,8到15在下半个屏幕,所以绘图的时候,有两个部分要进行书写 在12864上载入任意一幅图: 示例代码: #include reg52.h #define uint unsigned int #define uchar unsigned char sbit lcdrs = P2^4;//数据还是指令的选择端口 sbit lcdwr = P2^5;//读写操作端口 sb
[单片机]
单片机的动手实践篇--<font color='red'>51单片机</font>玩转12864
基于AT89C2051单片机的晶闸管触发电路的设计与实现
自晶闸管被用作开关元件以来,其触发电路经过了晶闸管分离元件阶段和集成电路阶段后进入了单片机嵌入阶段。使用以单片机为核心的触发电路虽然避免了前两个阶段元件多、故障率高和低智能化的缺点,但可靠性、迅速性和抗干扰性还存在诸多不足。 本设计详细介绍了一种基于AT89C2051单片机的晶闸管触发电路,具有高集成度、智能化、体积小、安全、迅速、可靠稳定等优点,今后必将被广泛应用。文中以晶闸管投切电容器为例来详细说明触发电路的工作原理。 1 触发电路的硬件设计 硬件电路以ATMEL公司的AT89C2051单片机为核心,包括晶闸管过零检测电路、控制器投切命令电路、脉冲隔离放大电路等几部分组成,硬件框图如图1所示。 1.1 AT89C205
[单片机]
基于AT89C20<font color='red'>51单片机</font>的晶闸管触发电路的设计与实现
基于51单片机的电子秤设计-LCD12864
一.硬件方案 本设计利用压力传感器采集因压力变化产生的电压信号,经过电压放大电路放大,然后再经过模数转换器转换为数字信号,最后把数字信号送入单片机。单片机经过相应的处理后,得出当前所称物品的重量及总额,然后再显示出来。此外,还可通过键盘设定所称物品的价格。 主要由51单片机(STC89C51/52、AT89C51/52均可使用)+LCD12864液晶显示屏+HX711AD转换模块+LED指示灯+蜂鸣器电路+矩阵按键+10kg压力传感器等;如图: 二.设计功能 (1)可以输出量程为10kg物体的重量,精度为0.001kg; (2)可通过按键设置单价,并根据实际重量计算出总价; (3)支持去皮功能、切换量程等功能,输出的重量和
[单片机]
基于<font color='red'>51单片机</font>的电子秤设计-LCD12864
51单片机单键开关
51单片机单键开关程序,按一下点亮led,再按一下关闭led. 主程序: /************************** 说明: 按键被按下时led灯灭 **************************/ #include reg52.h #define uint unsigned int #define uchar unsigned char //定义按键端口 sbit key = P1^0; //定义LED灯端口 sbit led = P2^0; //延时函数声明 void delay(uint xms); //程序入口 void main(){ while(1){ //第一次判断 if(key == 0
[单片机]
单片机C语言C51的输入输出
在C51语言中,它本身不提供输入和输出语句,输入和输出操作是由函数来实现的。在C51的标准函数库中提供了一个名为“stdio.h”的一般I/O函数库,它当中定义了C51中的输入和输出函数。当对输入和输出函数使用时,须先用预处理命令“#include stdio.h ”将该函数库包含到文件中。 在C51的一般I/O函数库中定义的I/O函数都是通过串行接口实现,在使用I/O函数之前,应先对51单片机的串行接口进行初始化。选择串口工作于方式2(8位自动重载方式),波特率由定时器/计数器1溢出率决定。例如,设系统时钟为12MHZ,波特率为2400,则初始化程序如下: SCON=0x52; TMOD=0X20; TH1=0
[单片机]
单片机C语言C51的<font color='red'>输入</font>输出
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved