博主福利:100G+电子设计学习资源包!

http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect
--------------------------------------------------------------------------------------------------------------------------

51单片机P0/P1/P2/P3口的区别:

P0口要作为低8位地址总线和8位数据总线用,这种情况下P0口不能用作I/O,要先作为地址总线对外传送低8位的地址,然后作为数据总线对外交换数据;

P1口只能作为I/O口(P1.0、P1.1以外);

P2口除了作为普通I/O口之外,在扩展外围设备时,要用作高8位地址线;

P3口除了作为普通I/O口之外,其每个引脚都有第二功能。

I/O端口具有以下特性:

① 端口自动识别:无论是P0 P2口的总线复用还是P3口的功能复用,内部资源会自动选择,不需要通过指令的状态选择。

② 准双向口功能:准双向口作为输入口时,应先使锁存器置"1",然后再读引脚。

③ P0作为普通I/O口使用:不使用并行扩展总线时,必须外加上拉电阻。

④ I/O口驱动特性:P0口作为I/O口时可输出驱动8个LSTTL输入端,P1-P3口则可以输出驱动4个LSTTL输入端

————————————————————————————————————————————

I/O接口直接输入输出实例

//《51单片机原理及应用(第二版)——基于Keil C与Proteus》第四章例4.3

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

程序分析:

电路中的P2口既用作输入也用作输出,P2.0-P2.3作为输入,P2.4-P2.7作为输出;

首先将 P2 = 0xff; P2口全部赋高电平 1111 1111,因为I/O作为输入时应先设置各个锁存器为"1",才能确保输入结果正确;

当P2.0-P2.3读入开关状态 if ((P2 & 0x0f) != 0x0f)时,通过对其移位 P2 = P2<< 4;,将P2.0-P2.3的值对应移到了P2.4-P2.7中

代码分析:

    

代码具体执行情况以及P2调试情况见下 ↓

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

调试及P2情况

Keil与Proteus联调,打开P2状态图;

开始调试并且未操作时,P2 = 0xff;,P2状态为 1111 1111,

闭合开关2,单击RUN执行,在这个执行过程中P2情况:

① 初始状态 1111 1111

② 闭合开关 1111 1101

④ "与运算" 0000 1101

//通过 (1111 1101 & 0000 1111) 运算得到 (0000 1101) 屏蔽掉高四位的情况,进行!= 0x0f 判断。

// 如果四开关同时断开,(1111 1111 & 0000 1111) == (0000 1111)

// 如果有任何一个开关闭合,则将执行左移操作

③ 左移四位 1101 0000

LED2 左端获得低电平,右端高电平,LED亮

所有开关断开,重新进入循环,P2 = 0xff;

程序代码执行结束,分析完毕。

https://www.cnblogs.com/hughdong/p/6729308.html

51单片机入门 - I/O口直接输入输出实例相关推荐

  1. 51单片机入门(一):输入输出

    概述 学习任何单片机(开发板)第一步都是了解输入输出.一般是从输出开始,比如对单个位进行操作(点亮流水灯),对多个位进行操作(数码管,点阵等).至于输入,最基础的便是键盘(按键) IO的结构 初学的时 ...

  2. 51单片机入门——矩阵按键

    文章目录 1.按键 1.1.独立按键 1.2.矩阵按键 2.按键的扫描与抖动 2.1.独立按键的扫描 2.2.按键抖动与消抖 2.3.矩阵按键的扫描 3.简易计算器 1.按键 1.1.独立按键 常用的 ...

  3. 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...

    (原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询) /************************************************************ ...

  4. 51单片机8255扩展c语言,51单片机8255A扩展IO口

    <51单片机8255A扩展IO口>由会员分享,可在线阅读,更多相关<51单片机8255A扩展IO口(23页珍藏版)>请在人人文库网上搜索. 1.一个芯片可扩展多个并行I/O口 ...

  5. 51单片机入门教程(1)——点亮一个LED灯

    51单片机入门教程(1)--点亮一个LED灯 一.什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器 ...

  6. 51单片机入门学习小结(流水灯与数码管)

    51单片机入门学习小结(流水灯与数码管) 对原理图的分析 以下是我所用单片机的原理图 这块51单片机一共有4个I/O口(意思为input/output),也代表着如果我们后续都要用到这四个的话那么功能 ...

  7. 51单片机入门模板(STC89C52RC)

    该模板适用于51单片机入门,比较易于理解,包含定时器和串口的操作. 可以在定时器T0中断服务函数和主循环中实现主要功能,在UART中断服务函数(T1定时器)中实现简单的串口通信接收命令的功能. 注:本 ...

  8. 51单片机入门基础介绍

    51单片机入门基础介绍 文章目录 51单片机入门基础介绍 前言 常用元器件 发光二极管 数码管 LED数码管的显示方式 按键 定时计数器 串行口控制寄存器SCON 中断系统 中断源及中断请求 中断允许 ...

  9. 51单片机入门——数字时钟

    文章目录 1. 前言 1.1. 设计要求 2. 硬件原理 2.1. 时钟信号(晶振) 2.2. 按键开关 2.3. 数码管显示 3. 原理图 3.1. 仿真原理图 3.2. AD原理图 3.3. PC ...

最新文章

  1. windows mysql 主从_mysql读写分离实战二-windows 上mysql主从数据库搭建及问题总结
  2. 物联网架构成长之路(3)-EMQ消息服务器了解
  3. 2.1、spring属性注入-Set方法注入
  4. 闭包总结(2018.03.19)
  5. HDU 4920 Matrix multiplication(矩阵相乘)
  6. python 删除文件夹_Python文件操作大全,随机删除文件夹内的任意文件
  7. c++ switch/case 使用 string的方法
  8. pb利用datawindow查询符合条件的数据并且过滤掉其他数据_牟宇航:百度OLAP数据库——Palo...
  9. 孙鑫-MFC笔记七--文件与注册表
  10. 信息学奥赛GoC编程测试题题库
  11. 单片机c语言控制直流电机转速,一个用单片机控制直流电机的PWM调速程序
  12. ad17 linux 版本,Altium Designer这些不同版本的软件之间的区别有多大呢?
  13. AutoCAD自定义填充图样详细教程
  14. Spring Interceptor vs Filter 拦截器和过滤器区别
  15. nginx配置文件被删怎么找回_恢复误删除的Nginx日志
  16. 8篇论文详解用户历史行为序列建模方法
  17. 新疆工程学院计算机在哪个校区,2021年新疆大学有几个校区,大一新生在哪个校区...
  18. idfa码如何查看_小E告诉你:如何快速登录和高效使用华为电子邮件
  19. office产品处于非活动状态——word无法修改
  20. 彻底删除oracle数据,彻底删除Oracle数据库的方法

热门文章

  1. Linux终端使用dbg进行调试
  2. 《工程伦理》全部 习题_答案
  3. 【新知识】使用getline()与get()来进行输入
  4. 淮阴工学院计算机课程,2017秋大学计算机(淮阴工学院)
  5. 什么是供应商管理体系?包括哪些内容
  6. windows 操作系统原版下载地址
  7. 有 C 基础,如何快速过度到 C++?
  8. 【mysql】哦买噶!多么强大的group by语句
  9. 深度神经网络算法有哪些,深度神经网络主要模型
  10. 【AtCoder】abc_198D - Send More Money【next_permutation暴力模拟】