1.51系列单片机内部主要有四大功能模块,分别是I/O口模块、中断模块、定时器模块和串口通信模块(串行I/O口)。51开发的重点其实就是对这四个部分进行具体的开发,而其对这四个模块的开发实质则又是能否对每个模块所对应寄存器的正确操纵。单片机的内部结构可以大概归纳如下图:四大功能模块相关的寄存器又可分为四大部分:
I/O口相关:P1 P2 P3 P4
中断相关:IP IE
定时器相关:TMOD TCON TL0、TH0、TL1、TH1
串口通信相关:PCON SBUF
2.51单片机内部共有21个特殊功能寄存器SFR,从下图中可以看出,每个SFR占1个字节,多数字节单元中的每一位又有专用的“位名称”。这21个SFR又按是否可以位寻址分为两大部分,ACC、IE、P1等11个可以位寻址,SP、TMOD等不可以位寻址。
3.能位寻址是指能够对它的每一位都可以进行位操作,比如我们常用的用十六进制的数据0x01为p1口赋值使得p1^0输出高电平,这种叫做能位寻址;不可寻址,则是指不能单独进行每一位的操作,如TMOD定时器工作模式及工作方式寄存器,在进行操作时,只能写TMOD=0xXX。再以IE寄存器为例进行位操作的解释。IE寄存器为中断允许寄存器,如各位的作用如图.其中第7位EA是51单片机5个中断的总开关,如要进入任何一个中断时,需先把EA打开,因为可以进行位操作,此时程序有两种写法:1)IE=0x80(假如其它位为0,即1000 0000),也可以直接写EA=1,后者EA=1即属于位操作。
关于能否进行位操作,可以通过查相关资料知道,当然还有个技巧就是其字节地址换成10进制后能否被“8”整除,能被“8”整除的就能进行位操作,不能被“8”整除就不能,如P1地址为90H,10进制为144 144/8=18,能被整除,所以可以位操作。再如TMOD地址为89H, 10进制为137 137/8=17.125,不能被整除,所以不可以位操作。