前面两篇文章我铺垫了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组 | P0 | P1 | P2 | P3 |
---|---|---|---|---|
寄存器地址 | 0x80 | 0x90 | 0xA0 | 0xB0 |
值得一提的是,在"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 |
---|---|---|---|---|---|---|---|---|
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
如果我们要让7,5,4IO都是高电平,其他的都是低电平,对应的二进制:1011 0000(高位在前)
因为是可位寻址,所以我们可以用sbit,对特定的一个IO定义一个名字
比如说我们的LED接在P0.0
sbit LED = P0^0;
这篇文章先写到这里,接下来我们介绍单片机的IO的简单结果,至于后事如何,且听下回分解
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6002文章
43982浏览量
620900 -
寄存器
+关注
关注
30文章
5037浏览量
117763 -
C51单片机
+关注
关注
11文章
164浏览量
34482 -
IO口
+关注
关注
3文章
164浏览量
23763
发布评论请先 登录
相关推荐
《C51单片机及C语言知识点必备秘籍》电子发烧友网创新系...
本帖最后由 jfzhangjin 于 2014-10-31 14:35 编辑
电子发烧友网讯:应广大电子发烧友网读者要求,本电子书《C51单片机及C语言知识点必备秘籍》为《单片机
发表于 10-31 14:32
【下载】《单片机语言C51应用实战集锦》
。Keilc51是目前单片机开发最为流行的软件。目录· · · · · ·程序一 实时时钟芯片DS1302的C51程序例子程序二 C430与C51
发表于 02-09 15:30
【下载】《单片机语言C51应用实战集锦》
。Keilc51是目前单片机开发最为流行的软件。本书收集并整理了许多实用的采用C51单片机开发的程序,这些程序既可以给读者以开拓思路,参考的用途,又是实际的开发程序,可以直接作为程序应
发表于 04-08 16:51
评论