C51单片机的IO口介绍(上)

描述

前面两篇文章我铺垫了IO输出高低电平的方法:

sbit LED = P1^0;//给一个IO定义名字
LED = 1;//操作这个IO的高低电平


P1 = 0xFF;//直接修改一组IO寄存器的数据

我们知道,C51里一共有4组IO,分别是P0,P1,P2,P3

寄存器

每一组有8位,分别是.0 ~ .7

寄存器

单片机里面有特定的4个寄存器对应这四组IO,分别是

对应IO组P0P1P2P3
寄存器地址0x800x900xA00xB0

值得一提的是,在"reg52.h"中已经对这些寄存器进行了定义

sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;

有了这些在reg52.h的头文件里的定义,我们就能直接用P0,P1,P2,P3这些关键字修改寄存器的数值了

P0 = 0xDF;
P1 = 0x3F;
P2 = 0xDE;
P4 = 0x58;

这些寄存器都是可位寻址的,具体的各个IO的地址和上面各组寄存器的地址我们先不用记住(因为我们基本上用不上)

但是我们要记住每一组IO中,各个IO对应的位:

IO.7.6.5.4.3.2.1.0
76543210

如果我们要让7,5,4IO都是高电平,其他的都是低电平,对应的二进制:1011 0000(高位在前)

因为是可位寻址,所以我们可以用sbit,对特定的一个IO定义一个名字

比如说我们的LED接在P0.0

sbit LED = P0^0;

这篇文章先写到这里,接下来我们介绍单片机的IO的简单结果,至于后事如何,且听下回分解

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分