8051单片机内部有21个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间80H~FFH中,以便能使用统一的直接寻址方式来访问。这些特殊功能寄存器颁在以下各个功能部件中:
(1)CPU:ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成);
(2)中断系统:IP、IE;
(3)定时器/计数器:TMOD、TCOM、TL0、TH0、TL1、TH1;
(4) 并行I/O口:P0、P1、P2、P3;
(5) 串行口:SCON、SBUF、PCON。
51单片机的寄存器基本上都是8位的,而16位都是由两个组装起来的,例如DPTR以及定时器T0与T1。51是基础,在学好51后,可以适当学学STM32以及ARM,或者是飞思卡尔的板子。
如果你是用C编译器,那么根本就不用考虑这个问题,因为编译器都为你解决了,你只需要定义16位的变量(如int型)
但如果你是用汇编语言写程序,那么就得为程序分配内存单元(字型变量),利用四个或四个以上的八位寄存器,先低八位进行运算,然后进行高八位的运算,但其中要注意状态寄存器的变化。
在单片机里1到65535的数值定义单片机一般为8位,就是1个字节,一个字节最大为十进制的255,十六进制的FF;那么16位的单片机就是2个字节长度,255*255=65535,这就是16位单片机钟双字节寄存器的长度。
=65.535ms,计数器初值设置50ms,65536-50000=15536=3CB0H,,使用一个计数器计数20(10个=500ms取反,常用1s闪烁使用)个50ms=1s。
主要寄存器:
(1)累加器A累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。
(2)数据寄存器DR数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。
16位寄存器确实是指的16位2进制数,但寄存器是CPU的内部资源,不是存储单元。
存储单元是存储器(也就是内存)的基本单位,即一个存储单元是一个字节,8位。
数据指针(DPTR)
是一个16位的特殊功能寄存器, 其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示,DPTR既可以作为一个16位的寄存器来处理,也可以作为两个独立的8位寄存器来使用。主要功能是存放16位地址,作为片外RAM寻址用的地址寄存器(间接寻址),故称数据指针,也可以将外部RAM中地址的内容传送到内部RAM的地址所指向的内容中。
单片机如何定义16位寄存器的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机如何定义16位寄存器