单片机特殊功能寄存器(SFR)】的更多相关文章

单片机如8051有21个SFR,地址为80H~0FFH的128个字节中,可以直接用寻址方式来操作SFR.(类似于sbit) 为了能直接访问这些SFR,keil提供饿了一种自汉族形式的定义方法.这种方法只适用于8051系列单片机进行C编程. 方法:引入关键字“sfr”,语法为:sfr sfr_name=int address 如:sfr SCON=0x98: sfr TMOD=0x89: 具体值应该参照SFR表. 关于sbit的使用有三种方式: 1.sfr PSW=0xD0://   sbit O…
RAM 的 80-FF 需要间接寻址进行访问 如:  MOV R0,#80H;    MOV A,@R0 ;  (内存 80H地址内的数据放到A中) SFR的80-FF需要直接寻址进行访问如: MOV A, 80H;  (SFR P0 中的数据放到A中  等同于 MOV A,P0;)…
MCS - 51单片机中,除了程序计数器PC和4组工作寄存器组外,其它所有的寄存器均为特殊功能寄存器(SFR),分散在片内RAM区的高128字节中,地址范围为80H~0FFH.SFR中有11个寄存器具有位寻址能力,它们的字节地址都能被8整除,即字节地址是以8或0为尾数的. 为了能直接访问这些SPR,Franklin C51提供了一种自主形式的定义方法,这种定义方法与标准C语言不兼容,只适合与对MCS_51系列单片机进行C语言编程,特殊的能寄存器C51定义的一般语法格式如下: sfr  sfr-n…
1.21个寄存器介绍        51系列单片机内部主要有四大功能模块,分别是I/O口模块.中断模块.定时器模块和串口通信模块(串行I/O口),如其结构和功能如下图: 图1 51单片机结构和功能图 51单片机掌握的好坏,其实就是能否正确操作这四个功能模块,而其操作的实质则又是能否对每个模块所对应寄存器的正确操纵.所以下面重点介绍一下51系列单片机内部的特殊功能寄存器(简称SFR,以下说明以此代替).(关于什么叫特殊功能寄存器,这里先不作介绍,不懂的请查阅51单片机相关资料.) 51单片机内部共…
存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右. 内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器.现在的DDR2内存的读写速度一般为6~8GB/S,跟机器性能也有关系.从根本上讲,寄存器与RAM的物理结构不一样. 一般寄存器是指由基本…
MCS-51系列特殊功能寄存器(80H~FFH) 1. P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 2.SP 栈指针(81H) 3.DPTR 数据指针(由DPH和DPL组成) DPL 数据指针低八位 (82H) DPH 数据指针高八位 (83H) 4.PCON 电源管理寄存器 (87H) SMOD -- -- -- GF1 GF0 PD IDL SMOD :波特率倍增位.SMOD=0时,不变:SMOD=1时,倍增. GF1,GF0 :通用标志…
[R0~R15寄存器组] Cortex-M3处理器拥有R0~R15的寄存器组,如: [R0~R12通用寄存器]R0~R12都是32位通用寄存器,用于数据操作.其中: R0~R7为低组寄存器,所有的指令都可以访问. R8~R12为高组寄存器,只有32位Thumb2指令和很少的16位Thumb指令能访问. [R13堆栈指针SP]Cortex-M3拥有两个堆栈指针,然而它们是banked,任一时刻只能使用其中的一个. 主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理(包括中…
以一个挂接在APB2上的外设函数使能为例 A : RCC_APB2PeriphClockCmd():时钟使能函数 1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); B : RCC_APB2Periph_AFIO是什么呢? 1 #define RCC_APB2Periph_AFIO  ((uint32_t)0x00000001) RCC_APB2Periph_AFIO就是代表十六进制 1 C: 知道RCC_APB2Periph_AFIO是什…
查阅PIC单片机芯片手册,关于进位/借位位的说明为: C:进位/借位位. 1 = 结果的最高位发生了进位 0 = 结果的最高位未发生进位 同时有一条标注:借位的极性是相反的. 通过以上说明,可以将C的分析分为两种情况: 1.加法: 最高位发生了进位:C = 1: 最高位未发生进位:C = 0: 2.减法: 最高位发生了借位:C = 0: 最高位未发生借位:C = 1: 为了加深理解,在MPLAB中写入一段代码,通过观测STATUS寄存器的值来测试以上分析: ;测试SUBWF.ADDWF指令与状态…
我以为这是个很简单的问题,没想到还有一些初学者不会.可能他们也是跟我一样是直接学的如何操作单片机并没有学微机原理么. ARM和RISC-V的机器的系统架构都是哈佛结构的,意思是程序存储器.数据存储器和其他的乱七八糟的外设寄存器啥啥的都是存在同一个地址空间的,他们可以说使用同一个访问的指令去读去写.5…