您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第2章 C8051F单片机的结构与原理
12.1C8051F系列单片机的总体结构2.2C8051F020存贮器组织2.3CIP-51指令系统2.4中断系统2.5端口输入/输出2.6电源管理方式第2章C8051F单片机的结构与原理22.1C8051F系列单片机总体结构2.1.1C8051F系列单片机简介2.1.2CIP-51内核2.1.3C8051F020单片机的片上资源32.1.1C8051F系列单片机简介(1)集成的混合信号片上系统SOC(Systemonchip)。完全兼容MCS-51内核的微控制器、除标准8051的数字外设部件外,还集成了数据采集和控制系统中常用的模拟外设、其它数字外设及功能部件。是真正能独立工作的片上系统(SOC)。CPU有效地管理模拟和数字外设,可以关闭单个或全部外设以节省功耗。FLASH存储器还具有在系统重新编程的能力,既可用作程序存储器又可用作于非易失性数据存储。42.1.1C8051F系列单片机简介(2)片内JTAG调试电路允许对安装在最终应用系统上的产品进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。5调试环境示意图SiliconLabs提供一个集成开发环境(IDE),包括编辑器、宏汇编器、调试器和编程器。62.1.2CIP-51内核C8051F系列单片机内核采用与MCS-51兼容的CIP-51。标准8051中,除MUL和DIV以外所有指令都需要12或24个系统时钟周期,最大系统时钟频率为12-24MHz。CIP-51内核采用流水线结构,70%的指令执行时间为1或2个系统时钟周期,只有4条指令的执行时间大于4个系统时钟周期。执行周期数122/333/444/558指令数2650516731217微控制器内核峰值执行速度比较82.1.3C8051F020单片机的片上资源高速、流水线结构的与8051兼容的CIP-51内核(可达25MIPS)全速、非侵入式的在系统调试接口JTAG(片内)真正12位、100ksps的8通道ADC,带PGA和模拟多路开关真正8位500ksps的ADC,带PGA和8通道模拟多路开关两个12位DAC,具有可编程数据更新方式64K字节可ISP的FLASH存储器4352(4096+256)字节的片内RAM可寻址64K字节地址空间的外部数据存储器接口硬件实现的SPI、SMBus/I2C和两个UART串行接口5个通用的16位定时器/计数器具有5个捕捉/比较模块的可编程计数器/定时器阵列(PCA)片内看门狗定时器(Watchdog)、VDD监视器和温度传感器9C8051F020芯片示意图10C8051F020原理框图高速微控制器内核数字IO模拟外设112.2C8051F020存贮器组织MCS-51存贮器组织(哈佛结构)物理结构上可分为:•片内、片外程序存储器(8031和8032没有片内程序存储器)•片内、片外数据存储器按功能和寻址可分为:•程序存储器、内部数据存储器、外部数据存储器、特殊功能寄存器和位地址空间5大部分122.2C8051F020存贮器组织程序存储器内部数据存储器、SFR外部数据存储器132.2.1程序存贮器(1)共有64KB的程序存储器空间,地址0x0000-0xFFFF。采用FLASH存储器。存储器中有512字节(0xFE00–0xFFFF)保留给厂商使用,不能用于存储用户程序。C8051F020的FLASH存储器中有一个附加的128字节的扇区,可用于非易失性数据存储。它的地址范围是从0x00到0x7F。要访问该扇区,PSCTL寄存器中的SFLE位必须被设置为逻辑1。142.2.1程序存贮器(2)用MOVC指令读Flash存储器的存储单元,比如查表操作。使用编程工具通过JTAG接口对Flash存储器编程或者使用MOVX指令对存储器编程(写),编程前设置程序存储器写允许位PSWE(PSCTL.0)为1。编程前要先执行擦除操作,将PSWE(PSCTL.0)置1后再往扇区的任何一个单元写入任意一个数据即可实现擦除功能。擦除功能将数据位全置1,禁止擦除后的写操作只能对数据位清0。15软件对FLASH的编程过程禁止中断置位FLWE(FLSCL.0),允许用户软件擦/写FLASH置位PSEE(PSCTL.1),允许FLASH扇区擦除置位PSWE(PSCTL.0),允许FLASH写用MOVX向待擦扇区的任意地址写任意数据,即擦除清PSEE,禁止FLASH擦除用MOVX写入数据清PSWE,禁止写开中断16FLASH用户编程示例//写Flash中pwrite开始地址,pgen指向待写数据,n为要写入的数据个数voidWFlash(int*pwrite,int*pgen,unsignedcharn){unsignedchari;EA=0;//关中断FLSCL=0x01;//FLWE(FLSCL.0)置1,允许用户程序写/擦FLASHPSCTL=0x03;//将PSWE、PSEE置1*pwrite=0;//启动擦除过程PSCTL=0x01;//PSEE=0,PSWE=1(禁止擦除)for(i=0;in;i++)*pwrite++=*pgen++;//写入n个数据PSCTL=0x00;FLSCL=0x00;EA=1;//开中断}172.2.2内部数据存贮器共256字节的RAM,地址0x00到0xFF。低128字节用于通用寄存器和临时存储器,采用直接或间接寻址方式。0x00-0x1F:4个通用寄存器区,每个区有8个寄存器(R0~R7)。每次只能用其中一个区的通用寄存器,主、子程序间切换区号,省去这部分现场保护。0x20-0x2F:既可以按字节寻址又按位寻址访问。高128字节只能用间接寻址访问。18内部数据存贮器图示192.2.3特殊功能寄存器SFR何谓特殊功能寄存器SFR(SpecialFunctionRegisters)?离散分布在0x80-0xFF中,采用直接寻址方式。与内部RAM高128B在物理上是两个独立空间,靠寻址方式区分。字节地址是8的倍数的SFR可进行位寻址。CIP-51有120多个SFR,具体见P20表2-3,MCS-51只有21/26个。20常用的特殊功能寄存器ACC(Accumulator)累加器:存放运算操作数和结果。B(BRegister)寄存器:乘除法中与ACC配合使用。SP(StackPointer)8位堆栈指针:复位值为0x07,使用时根据需要可重新赋值。数据入栈,SP加1,与80X86相反。DPTR(DataPointer)16位数据指针:访问外部存储器的地址指针,用于寄存器间接寻址。可分为DPL和DPH两个8位来用。PSW(ProgramStatusWord)8位程序状态字,存放程序运行的状态信息。21PSW的各位定义(1)位7(CY):进位标志•有进/借位(减法)时,置1。位6(AC):辅助进位标志•向高半字节有进/借位时,置1。位5、1(F0、F1):用户标志•可供用户编程使用的通用标志位。R/WR/WR/WR/WR/WR/WR/WR复位值CYACF0RS1RS0OVF1PARITY00000000位7位6位5位4位3位2位1位0SFR地址:0xD022PSW的各位定义(2)位4-3(RS1-RS0):寄存器工作区选择位RS1RS0寄存器区片内RAM地址000区0x00-0x07011区0x08-0x0F102区0x10-0x17113区0x18-0x1F位2(OV):溢出标志。•ADD、ADDC或SUBB指令引起符号位变化溢出。•MUL指令引起溢出(结果大于255)。DIV指令的除数为0。位0(PARITY):奇偶标志。•若ACC中有奇数个1时该位置1,有偶数个1时清0。232.2.4位寻址区包括两部分:•内部RAM中的0x20-0x2F单元;P22表2-4•部分SFR(字节地址为8的倍数的)。CIP-51中的布尔处理器,能对位地址直接寻址,执行置“1”、清“0”、取反、测试等操作。242.2.5外部RAM和片内XRAMMCS-51内部只有128或256字节的数据存储器,不够时可以在芯片外部扩展64KB的外部数据存储器(XRAM)。C8051F020同样有64KB的外部数据空间。但在芯片内部有属于外部数据存储器空间的4096字节RAM,还有一个外部数据存储器接口(EMIF),可用于访问芯片外存储器和I/O接口。外部存储器空间用MOVX指令和DPTR、R0或R1用间接寻址方式访问。用R0或R1时高8位地址由EMIOCN提供.I/O端口和外部RAM统一编址(与80X86不同)。251.XRAM存储器空间的访问16位形式的MOVX指令,访问DPTR指向的存储器单元。如:MOVDPTR,#1234h;立即数0x1234→DPTRMOVXA,@DPTR;(0x1234)→A8位形式的MOVX指令,用EMIOCN存放待访问地址的高8位,由R0或R1给出待访问地址的低8位。如:MOVEMIOCN,#12h;地址高字节0x12→EMIOCNMOVR0,#34h;地址低字节→R0MOVXA,@R0;(0x1234)→A26EMI0CF寄存器位5(PRTSEL),端口选择位•0:EMIF选择P0~P3(低端端口);1:EMIF选择P4~P7(高端端口)位4(EMD2),(地址/数据线)复用方式选择位•0:复用;1:非复用位3、2(EMD1、EMD0),工作模式选择位•00:只用片内(4KB);01:不带块选择的分片方式•10:带块选择的分片方式;11:只用片外位1、0(EALE1、EALE0),ALE宽度选择(仅时复用有效)•00~11:1~4个SYSCLK周期R/WR/WR/WR/WR/WR/WR/WR/W复位值--PRTSELEMD2EMD1EMD0EALE1EALE200000011位7位6位5位4位3位2位1位0SFR地址:0xA327外部数据存储器工作模式只用内部存储器不带块选择的分片带块选择的分片只用外部存储器28外部存储器接口复用方式29复用方式16位MOVX指令的写时序30复用方式16位MOVX指令的读时序31外部存储器接口非复用方式32非复用方式16位MOVX指令的读时序352.3CIP-51指令介绍与标准MCS-51指令集完全兼容:指令共111条,在二进制码和功能上与MCS-51产品完全等价,包括操作码、寻址方式和对PSW标志的影响。指令时序与标准8051不同,CIP-51中机器周期与时钟周期相等,MCS-51中机器周期=12×时钟周期。采用流水线结构,大多数指令执行所需的时钟周期数与指令的字节数一致。条件转移指令,不发生转移时比发生转移时少一个时钟周期。362.3.1寻址方式(1)8051单片机的寻址方式有七种:1.寄存器寻址指令中地址码给出的是某一通用寄存器的编号,寄存器的内容为操作数。如:MOVA,R0;A←(R0)2.直接寻址直接寻址时,指令中地址码部分直接给出操作数的有效地址。如:MOVA,4FH;A←(0x4F)372.3.1寻址方式(2)3.寄存器间接寻址指令中给出的寄存器的内容为操作数的地址,而不是操作数本身,即寄存器内容为地址指针。仅R0、R1、DPTR、PC可以。如:MOVA,@R1;A←((R1))4.立即寻址指令中地址码部分给出的就是操作数。如:MOVA,#6FH;A←0x8F382.3.1寻址方式(3)5.变址寻址操作数地址=变址寄存器的内容+偏移量。如:MOVCA,@A+DPTR;A←((A)+(DPTR))又称基址+变址寻址,基址寄存器可以是DPTR或PC,变址寄存器只能是A。只能用于程序存储器的读操作。6.相对寻址转移目标地址=PC基地址(下条指令的地址)+偏移量rel。如:SJMPrel;PC←(PC)+2+rel7.位寻址操作数是二进制数的某一位。位寻址区和部分SFR。SETBbit;
本文标题:第2章 C8051F单片机的结构与原理
链接地址:https://www.777doc.com/doc-3196694 .html