您的位置 首页 汽车

51单片机特别功用寄存器(SFR)介绍

1、21个寄存器介绍51系列单片机内部主要有四大功能模块,分别是IO口模块、中断模块、定时器模块和串口通信模块(串行IO口),如其结构和功

1、21个寄存器介绍

51系列单片机内部首要有四大功用模块,分别是I/O口模块、中止模块、定时器模块和串口通讯模块(串行I/O口),如其结构和功用如下图:

图151单片机结构和功用图

51单片机把握的好坏,其实便是能否正确操作这四个功用模块,而其操作的本质则又是能否对每个模块所对应寄存器的正确操作。所以下面要点介绍一下51系列单片机内部的特别功用寄存器(简称SFR,以下阐明以此替代)。(关于什么叫特别功用寄存器,这儿先不作介绍,不明白的请查阅51单片机相关材料。)

51单片机内部共有21个SFR,其布局如图2,从图中能够看出,每个SFR占1个字节,大都字节单元中的每一位又有专用的“位称号”。这21个SFR又按是否能够位寻址分为两大部分,ACC、IE、P1等11个能够位寻址,SP、TMOD等不能够位寻址。


图2 51单片机SFR布局图

2、位寻址解说
下面以P1、IE寄存器(可位寻)和TMOD(不行位发)为例解说一下位寻址。

能位寻址是指能够对它的每一位都能够进行位操作,如图3,如P1口接8个灯,灯阳极接正极,阴极接单片机的P1口的8个脚。现在要让接P1口第1个引脚的灯亮,程序中能够写P1=0xfe,也能够先界说deng1=P1^0,即P1口的第1位,至于为什么写P1^0,是因为KEIL软件规则的,然后deng1=0。也便是P1=0xfe和deng1=0都是能够点亮第一个灯,后者deng1=0归于位操作,前者P1=0xfe归于总线操作,也便是8个引脚一同操作。图3 8位灯接线图

下面再以IE寄存器为例进行位操作的解说。IE寄存器为中止答应寄存器,如各位的效果如图4.其间第7位EA是51单片机5个中止的总开关,如要进入任何一个中止时,需先把EA翻开,因为能够进行位操作,此刻程序有两种写法:1)IE=0x80(假设其它位为0,即1000 0000),也能够直接写EA=1,后者EA=1即归于位操作。这儿要留意和前面P1口第1个引脚操作不同的是,前面程序中需先界说deng1=P1^0,这儿程序中则不需求界说EA=IE^7,因为KEIL软件中的REG52.H头文件中现已界说好了,这儿需求特别留意。

图4 IE中止答应寄存器

至于什么叫不行寻址,则是指不能独自进行每一位的操作,如TMOD定时器作业形式及作业方式寄存器,在进行操作时,只能写TMOD=0xXX。

关于能否进行位操作,能够经过查相关材料知道,当然还有个技巧便是其字节地址换成10进制后能否被“8”整除,能被“8”整除的就能进行位操作,不能被“8”整除就不能,如P1地址为90H,10进制为144 144/8=18,能被整除,所以能够位操作。再如TMOD地址为89H, 10进制为137 137/8=17.125,不能被整除,所以不能够位操作。

3、详细编程中对寄存器的留意
以上解说了位操作的概念,下面接着阐明这21个SFR在详细编程中需求留意的当地。

现在单片机开发过程中首要运用两种言语,一种是汇编言语,一种是C言语。如果是运用汇编言语则21个SFR都需求了解,而且其地址这些都需求记住。如果是C言语编程就相对简略些了,因为现在C言语的通用性,绝大部分单片机开发都运用C言语,这儿说以C为言语进行编程需留意的当地。

在用C编程中咱们只需求撑握IP、IE、SCON、TCON、P1、P2、P3、P4、PCON TMOD、TL0、TH0、TL1、TH1、SBUF15个寄存器,如图5所示,已用红线和蓝线标出,留意红线的能进行位操作,蓝线的不能进行位操作。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/317419.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部