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…
从数据存储类型来说,8051系列有片内.片外程序存储器,片内.片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code.data.xdata.idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述).与ANSI-C稍有不同,它只分SAMLL.COMPACT.LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果. 在51系…
存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右. 内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器.现在的DDR2内存的读写速度一般为6~8GB/S,跟机器性能也有关系.从根本上讲,寄存器与RAM的物理结构不一样. 一般寄存器是指由基本…
[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是什…
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 :通用标志…
在网上看到这段代码,所以自己尝试了,可以跑起来,但是没有精确的定时功能,仅仅是任务的调度而已. 数组中是11,而不是12.这里写错了... /* 简单的多任务操作系统 其实只有个任务调度切换,把说它是OS有点牵强,但它对于一些简单的开发应用来说, 简单也许就是最好的.尽情的扩展它吧.别忘了把你的成果分享给大家. 这是一个最简单的OS,一切以运行效率为重,经测试,切换一次任务仅20个机器周期, 也就是在标准51(工作于12M晶振)上20uS. 而为速度作出的牺牲是,为了给每个任务都分配一个私有堆栈…
标准 C 语言定义了 32 个关键字,如下表(ANSI C的32个关键字): C51在此基础上针对单片机功能进行了扩展,详情见下表(C51编译器扩充关键字): C 51的数据类型 51单片机使用的C语言的存储器类型分为以下几种:…
单片机如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…
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 :通用标志位. PD :掉电方式位.PD=1时,进入掉电方式…