学习笔记:蓝桥杯单片机基础——P2

目录

  • 一、简述
  • 二、相关知识介绍
  • 2.1 二进制转换
  • 2.2 转换方法
  • 三、举一反三
  • 3.1 P2=(P2 & 0x1f) | 0xa0
  • 3.2 P2=(P2 & 0x1f) | 0xc0
  • 3.3 P2=(P2 & 0x1f) | 0xe0
  • 一、简述

    在蓝桥杯单片机锁存器控制IO口 编写代码时会用到它,可以优化代码。这是一个简单的二进制转换和运用到数电基础的“&”和“|”,即与和或。

    二、相关知识介绍

    2.1 二进制转换

    在8051单片机中,初始P2的各个引脚都为高电平,P2 ^ 0 到 P2 ^ 7 ,高四位和低四位都为1111 1111。而P2=(P2 & 0x1f) | 0x80 可以一步一步来转换。P2 & 0x1f 即高三位为0,低五位为1,
    初始74HC138译码器的值:
    HC138_A = 0;
    HC138_B = 0;
    HC138_C = 0;

    2.2 转换方法

    P2 : 1111 1111
    0x1f : 0001 1111
    P2 & 0x1f :0001 1111
    0x80 : 1000 0000
    P2=(P2 & 0x1f) | 0x80 :1001 1111
    得到 1001 1111 即
    HC138_A = 0;
    HC138_B = 0;
    HC138_C = 1;
    Y4接通

    三、举一反三

    3.1 P2=(P2 & 0x1f) | 0xa0

    P2 : 1111 1111
    0x1f : 0001 1111
    P2 & 0x1f :0001 1111
    0xa0 : 1010 0000
    P2=(P2 & 0x1f) | 0xa0 : 1011 1111
    得到 1011 1111 即
    HC138_A = 1;
    HC138_B = 0;
    HC138_C = 1;
    Y5接通

    3.2 P2=(P2 & 0x1f) | 0xc0

    P2 : 1111 1111
    0x1f : 0001 1111
    P2 & 0x1f :0001 1111
    0xc0 : 1100 0000
    P2=(P2 & 0x1f) | 0xa0 : 1101 1111
    得到 1011 1111 即
    HC138_A = 0;
    HC138_B = 1;
    HC138_C = 1;
    Y6接通

    3.3 P2=(P2 & 0x1f) | 0xe0

    P2 : 1111 1111
    0x1f : 0001 1111
    P2 & 0x1f :0001 1111
    0xe0 : 1110 0000
    P2=(P2 & 0x1f) | 0xa0 : 1111 1111
    得到 1011 1111 即
    HC138_A = 1;
    HC138_B = 1;
    HC138_C = 1;
    Y7接通

    物联沃分享整理
    物联沃-IOTWORD物联网 » 学习笔记:蓝桥杯单片机基础——P2

    发表评论