SOC单片机的结构与原理_第1页
SOC单片机的结构与原理_第2页
SOC单片机的结构与原理_第3页
SOC单片机的结构与原理_第4页
SOC单片机的结构与原理_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.1C8051F系列单片机的总体结构

2.2C8051F020存储器组织2.3CIP-51指令系统2.4中断系统2.5端口输入/输出2.6电源管理方式2.7复位与时钟第2章SOC单片机的结构与原理

2.1C8051F系列单片机总体结构2.1.1C8051F系列单片机简介2.1.2CIP-51内核2.1.3C8051F020单片机的片上资源2.1.1C8051F系列单片机简介(1)集成的混合信号片上系统SOC(Systemonchip)。具有完全兼容MCS-51内核的微控制器(CIP-51)、除标准8051的数字外设部件外,还集成了数据采集和控制系统中常用的模拟外设、其它数字外设及功能部件。是真正能独立工作的片上系统(SOC)。CPU有效地管理模拟和数字外设,可以关闭单个或全部外设以节省功耗。FLASH存储器还具有ISP的能力,既可用作程序存储器又可用作于非易失性数据存储。2.1.1C8051F系列单片机简介(2)片内JTAG(jointtestactiongroup)调试电路允许对安装在最终应用系统上的产品进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。调试环境示意图SiliconLabs提供一个集成开发环境(IDE),包括编辑器、宏汇编器、调试器和编程器。/USB2.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指令数265051673121微控制器内核峰值执行速度比较MIPS(MillionInstructionsPerSecond)

2.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监视器和温度传感器C8051F020芯片示意图

C8051F020原理框图高速微控制器内核数字I/O模拟外设2.2C8051F020存贮器组织MCS-51存贮器组织(哈佛结构)物理结构上可分为:片内程序存储器片外程序存储器片内数据存储器片外数据存储器按功能和寻址(使用角度)可分为:程序存储器、内部数据存储器、外部数据存储器、特殊功能寄存器和位地址空间共5大部分

2.2C8051F020存贮器组织程序存储器内部数据存储器、位地址空间、SFR外部数据存储器2.2.1程序存贮器(1)容量:64KB,地址0x0000-0xFFFF。类型:FLASH存储器。存储器中有512字节(0xFE00–0xFFFF)保留给厂商使用,不能用于存储用户程序。有一个附加的128字节的扇区,可用于非易失性数据的存储。其地址范围是0x00-0x7F。要访问该扇区,SFLE(PSCTL.2)位必须被设置为逻辑1。通常情况下为只读的,设置程序存储器写允许位PSWE(PSCTL.0)后可写(用MOVX指令)。2.2.1程序存贮器(2)对程序存储器的操作类型读:使用MOVC指令实现,如查表操作。编程:使用编程工具通过JTAG接口进行。写:使用MOVX指令进行,要先设置程序存储器写允许位PSWE(PSCTL.0)为1。编程/写前要先执行擦除操作,将PSEE(PSCTL.1)和PSWE(PSCTL.0)置1后,再往扇区的任一单元写入任一数据即可擦除。擦除实际是将数据位全置1,禁止擦除后的写操作只能写入0。擦写前还要将FLWE(FLSCL.0)置1,以允许用户软件擦/写FLASH。为避免出错,对FLASH写操作之间要禁止中断。软件对FLASH编程的流程禁止中断置位FLWE(FLSCL.0),允许用户软件擦/写FLASH置位PSEE(PSCTL.1),允许FLASH扇区擦除置位PSWE(PSCTL.0),允许FLASH写用MOVX向待擦扇区的任一地址写任一数据,即实现擦除清PSEE,禁止FLASH擦除用MOVX写入需要的数据(实际是把不需要的1改为0)清PSWE,禁止写程序存储器清FLWE,禁止用户软件擦/写FLASH开中断2.2.2内部数据存贮器

共256字节的RAM,地址0x00到0xFF。低128字节:用于通用寄存器和临时存储器,采用直接或间接寻址方式。0x00-0x7F0x00-0x1F:4个通用寄存器区,每个区有8个寄存器(R0~R7)。每次只能用其中一个区的通用寄存器,主、子程序间切换区号,省去这部分现场保护。0x20-0x2F:既可以按字节寻址又按位寻址访问。0x30-0x7F:作一般存储器用、堆栈等高128字节:0x80-0xFF,只能用间接寻址访问。内容回顾单片机概述单片微型计算机、单片微控制器、嵌入式微控制器、为控制单元按片内ROM分类:无ROM型、ROM型、OTP型、EPROM型、EEPROM型、FLASH型发展与应用:四代;工业测控C8051F020存储器组织哈佛结构:程序、数据分开存放;有片内、片外之分按用法:程序存储器、片内RAM、片外RAM、SFR、位寻址空间内部数据存贮器图示只能间址2.2.3特殊功能寄存器SFR

寄存器:CPU或接口电路中用于存储数据的部件通用寄存器专用寄存器:51单片机中称为特殊功能寄存器SFR(SpecialFunctionRegisters)离散分布在0x80-0xFF中,采用直接寻址方式。与内部RAM高128B地址重叠,但在物理上是两个独立空间,靠寻址方式区分。字节地址是8的倍数(0x0、0x8结尾)的SFR可进行位寻址。CIP-51有120多个SFR,具体见P23表2-3,MCS-51只有21/26个。常用的特殊功能寄存器ACC(Accumulator)累加器:存放运算操作数和结果,在指令中常用A表示。B(BRegister)寄存器:乘/除法中与ACC配合使用。SP(StackPointer)8位堆栈指针:复位值为0x07,使用时根据需要可重新赋值。数据入栈,SP加1,与80X86相反。DPTR(DataPointer)16位数据指针:访问外部存储器的地址指针,用于寄存器间接寻址。可分为DPL和DPH两个8位来用。PSW(ProgramStatusWord)8位程序状态字,存放程序运行的状态信息。堆栈(补充)先进后出(后进先出)的特殊存储区域有数据入栈(PUSH)和出栈(POP)两种操作只有一个操作出入口,即栈顶,每次的PUSH、POP操作都在栈顶进行有一个专用寄存器指向当前栈顶,即堆栈指针SP,SP的初始值为07H,可以由程序设定每压入一个字节,SP加1,每弹出一个字节,SP减1栈底出、入口栈顶SP栈顶SP栈顶SP栈顶SP20H32H45H45HPSW的各位定义(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地址:0xD0PSW的各位定义(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。2.2.4位寻址区包括两部分:内部RAM中的0x20-0x2F单元;P24表2-4

部分SFR(字节地址为8的倍数的)。P23表2-3CIP-51中的布尔处理器,能对位地址直接寻址,执行置“1”、清“0”、取反、测试等操作。字节地址位地址D7D6D5D4D3D2D1D00x2F0x7F0x7E0x7D0x7C0x7B0x7A0x790x780x2E0x770x760x750x740x730x720x710x700x210x0F0x0E0x0D0x0C0x0B0x0A0x090x080x200x070x060x050x040x030x020x010x00名称/地址位地址D7D6D5D4D3D2D1D0SPI0CN/0xF80xFF0xFE0xFD0xFC0xFB0xFA0xF90xF8B/0xF00xF70xF60xF50xF40xF30xF20xF10xF0ADC0CN/0xE80xEF0xEE0xED0xEC0xEB0xEA0xE90xE8ACC/0xE00xE70xE60xE50xE40xE30xE20xE10xE02.2.5外部RAM和片内XRAM

MCS-51内部只有128或256字节的数据存储器,不够时可以在芯片外部扩展64KB的外部数据存储器(XRAM)

。C8051F020同样有64KB的外部数据空间。但在芯片内部有属于外部数据存储器空间的4096字节RAM,还有一个外部数据存储器接口(EMIF),可用于访问片外存储器和I/O接口。外部扩展数据存储器用EMIOCF寄存器进行配置。外部存储器空间用MOVX指令,通过DPTR、R0或R1间接寻址方式访问。用R0或R1时高8位地址由EMIOCN提供。I/O端口和外部RAM统一编址(与80X86不同)。1.XRAM存储器空间的访问用MOVX指令通过DPTR、R0、R1间接寻址实现16位地址形式DPTR中存放待访问存储单元的地址。如:MOVDPTR,#1234h ;立即数0x1234→DPTRMOVXA,@DPTR ;(0x1234)→A

8位地址形式EMIOCN中存放待访问地址的高8位,R0或R1存放待访问地址的低8位。如:MOV EMIOCN,#12h;地址高字节0x12→EMIOCNMOV R0,#34h ;地址低字节→R0MOVXA,@R0 ;(0x1234)→A2.3CIP-51指令介绍

与标准MCS-51指令集完全兼容:指令共111条,在二进制码和功能上与MCS-51

产品完全等价,包括操作码、寻址方式和对PSW标志的影响。指令时序与标准8051不同,CIP-51中机器周期与时钟周期相等,MCS-51中机器周期=12×时钟周期。采用流水线结构,大多数指令执行所需的时钟周期数与指令的字节数一致。条件转移指令,不发生转移时比发生转移时少一个时钟周期。2.3.1寻址方式(1)根据指令中给出的地址码,寻找操作数真实有效地址的方式,共七种:1.寄存器寻址

指令中地址码给出的是某一通用寄存器的编号,寄存器的内容为操作数。如:MOV A,R0 ;A←(R0)可为R0~R7、ACC、DPTR、B

2.直接寻址

直接寻址时,指令中地址码部分直接给出操作数的有效地址。如:

MOV A,4FH ;A←(0x4F)

2.3.1寻址方式(2)3.寄存器间接寻址 指令中给出的寄存器中的内容为操作数的地址,而不是操作数本身,即寄存器内容为地址指针。仅R0、R1、DPTR、PC可以。如:MOV A,@R1 ;A←((R1))注意:@为间接寻址的标志4.立即寻址 指令中地址码部分给出的就是操作数。如: MOVA,#6FH ;A←0x6F

注意:不要漏掉#号2.3.1寻址方式(3)5.变址寻址

操作数地址=变址寄存器的内容+偏移量。如: MOVC A,@A+DPTR ;A←((A)+(DPTR))又称基址+变址寻址,基址寄存器可以是DPTR或PC,变址寄存器只能是A。只能用于程序存储器的读操作(数据表)。6.相对寻址

转移目标地址=

PC(本条指令的地址)+2+偏移量rel。如:SJMP rel ;PC←(PC)+2+rel7.位寻址(位地址的直接寻址方式)操作数是二进制数的某一位。位寻址区和部分SFR。SETB bit ;(bit)←1程序计数器PC(补充)存放下一条要执行的指令的地址51单片机复位后,(PC)=0000H,所以从地址0处开始执行程序每取出一个指令字节后会自动加1,所以一条指令取出后,PC自动指向下一条指令例如:1005HSJMP80H执行后,程序转到1005H+2-128=0F87H注:rel为8位补码数据SJMPrel……PCPC+1PC+2PC+2+rel2.3.251指令集共111条,按其功能可分五大类:

算术运算指令

逻辑运算指令

数据传送指令

布尔运算指令

程序分支指令1.数据传送指令(1)数据传送指令访问数据存储器指令访问程序存储器指令(2条)访问片内数据存储器指令访问片外数据存储器指令一般传送指令8位(15条)16位(1条)特殊传送指令堆栈指令(2条)数据交换指令字节交换(3条)半字节交换(1条)1.数据传送指令(2)MOV(一般传送指令),共有以下16种寻址格式:

MOV A,Rn ;A←(Rn) MOV A,direct ;A←(direct) MOV A,@Ri ;A←((Ri)) MOV A,#data ;A←data MOV Rn,A ;Rn←(A)

MOV Rn,direct ;Rn←(direct)MOV Rn,#data ;Rn←data以A为目的以Rn为目的1.数据传送指令(3)MOV direct,A ;direct←(A) MOV direct,Rn ;direct←(Rn)

MOV direct,direct

;direct←(direct) MOV direct,@Ri ;direct←((Ri)) MOV direct,#data ;direct←data MOV @Ri,A ;(Ri)←(A) MOV @Ri,direct ;(Ri)←(direct) MOV @Ri,#data ;(Ri)←data

MOV DPTR,#data16

;DPTR←data16direct为目的@Ri为目的1.数据传送指令(4)MOVC(查表指令)MOVCA,@A+DPTR ;A←((A)+(DPTR))MOVCA,@A+PC ;PC←(PC)+1 ;A←((A)+(PC))例:MOVA,#03H MOVDPTR,#TABLE

MOVCA,@A+DPTR …… TABLEDB‘0123456789’ 结果:(A)=33HTABLE30H+131H+232H+333H……+939H1.数据传送指令(5)MOVX(外部数据存储器读、写指令,也用于Flash编程):MOVXA,@DPTR ;A←((DPTR)) MOVXA,@Ri ;A←((Ri)) MOVX@DPTR,A ;(DPTR)←(A) MOVX@Ri,A;(Ri)←(A)注意:8位MOVX指令的高8位地址由EMIOCN提供读写例:XRAM(1000H)→(2000H)方法1:

MOVDPTR,#1000HMOVXA,@DPTRMOVDPTR,#2000HMOVX@DPTR,A方法2:

MOVEMIOCN,#10HMOVR0,#00HMOVXA,@R0MOVEMIOCN,#20HMOVX@R0,A数据传送指令举例(补充)1.数据传送指令(5)PUSH(压栈):将数据推进堆栈 PUSH direct ;SP←(SP)+1;(SP)←(direct)POP(出栈):将数据由堆栈顶端取出 POP direct ;direct←(SP);SP←(SP)-1注意:堆栈只能按字节操作,压栈指针加1(向上生成),出栈指针减1,与80x86相反。只能用直接寻址。PUSHACC√PUSHA×1.数据传送指令(6)XCH(字节交换): XCH A,Rn ;(A)(Rn) XCH A,direct ;(A)(direct) XCH A,@Ri ;(A)((Ri))XCHD(半字节交换):XCHD A,@Ri

;(A)3~0

((Ri))3~0SWAP(累加器A高、低4位互换):SWAPA

;(A)3~0

(A)7~4内容回顾位寻址空间内部RAM中的0x20-0x2F单元部分SFR(字节地址为8的倍数的)外部数据存储器(XRAM)片内集成4KB提供一个扩展接口(EMIF),可扩到64KB可以用低端端口(P0~P3)、也可以用高端端口(P4~P7)复用/非复用四种使用方式:只用片内、只用片外、两种分片模式读、写指令:8位方式、16位方式的MOVX指令内容回顾寻址方式立即寻址#寄存器寻址直接寻址寄存器间接寻址@R0、@R1、@DPTR基址+变址寻址MOVC、@A+PC、@A+DPTR相对寻址位寻址内容回顾数据传送指令MOVMOVCMOVXPUSH、POPXCH、XCHD、SWAP数据传送指令举例(补充)设内部RAM40H、41H单元中连续存放4个压缩的BCD码数据,编程将其倒序排列。

MOVA,41HSWAPAXCHA,40HSWAPAMOV41H,A40HBCD2BCD141HBCD4BCD340HBCD3BCD441HBCD1BCD22.算术运算指令—加法

ADD(加法)指令,有4种寻址格式:

ADD A,Rn;A←(A)+(Rn)

(n:0~7) ADD A,direct;A←(A)+(direct) ADD A,@Ri ;A←(A)+((Ri))(i:0~1) ADD A,#data;A←(A)+dataADDC(带进位加法)指令,有4种寻址格式:ADDCA,Rn ;A←(A)+(Rn)+(CY) ADDCA,direct;A←(A)+(direct)+(CY) ADDCA,@Ri;A←(A)+((Ri))+(CY) ADDCA,#data;A←(A)+data+(CY)结果影响PSW的CY、AC、OV。2.算术运算指令—加法DA(十进制调整)指令:将A累加器内容作BCD码调整。

DA A ;若AC=1或A3~0>9,则A←(A)+0x06 ;若CY=1或A7~4>9,则A←(A)+0x60

INC(加1)指令: INC A ;A←(A)+1 INC direct ;direct←(direct)+1INC @Ri ;(Ri)←((Ri))+1 INC Rn ;Rn←(Rn)+1 INC DPTR ;DPTR←(DPTR)+1

加法指令举例(补充)(61H、60H)+(63H、62H)→61H、60HMOVR0,#60HMOVR1,#62HMOVA,@R0

ADDA,@R1MOV@R0,AINCR0INCR1MOVA,@R0

ADDCA,@R1MOV@R0,A63HX2H62HX2L61HX1H(SUMH)60HX1L(SUML)+R0R1R1R02.算术运算指令—减法SUBB(带借位减法指令): SUBB A,Rn ;A←(A)-(Rn)-(CY) SUBB A,direct ;A←(A)-(direct)-(CY) SUBB A,@Ri ;A←(A)-((Ri))-(CY) SUBBA,#data ;A←(A)-data-(CY)结果影响PSW的CY、AC、OV。DEC(减1)指令DEC A ;A←(A)-1 DEC direct ;direct←(direct)-1 DEC @Ri ;(Ri)←((Ri))-1 DEC Rn ;Rn←(Rn)-1无不带借位的减法指令SUB2.算术运算指令—乘/除法MUL(乘法指令): MUL AB ;(A)×(B)→BA若运算后B≠0,则置OV=1。DIV(除法)指令:将累加器A和寄存器B作无符号相除。DIV AB ;(A)/(B),A←商、B←余数除法指令举例(补充)将A中的数转换成3位BCD数,百位存放在片内RAM的20H单元,十、个位存放在21H单元中。分析:(A)÷100→商(百位)→20H余数÷10→商(十位)→21H;余数(个位)→21H MOVB,#100 DIVAB MOV20H,A MOVA,B MOVB,#10 DIVAB SWAPA ADDA,B MOV21H,AA:11111000B(248)20H0221H483.逻辑运算指令—与ANL(逻辑与指令):共有以下6种寻址格式:

ANL A,Rn ;A←(A)∧(Rn) ANL A,direct ;A←(A)∧(direct) ANL A,@Ri ;A←(A)∧((Ri)) ANL A,#data ;A←(A)∧data ANL direct,A ;direct←(direct)∧(A) ANL direct,#data ;direct←(direct)∧data常用于将数据的某些位清03.逻辑运算指令—或ORL(逻辑或指令):共有以下6种寻址格式:

ORL A,Rn ;A←(A)∨(Rn) ORL A,direct ;A←(A)∨(direct) ORL A,@Ri ;A←(A)∨((Ri)) ORL A,#data ;A←(A)∨data ORL direct,A ;direct←(direct)∨(A) ORL direct,#data ;direct←(direct)∨data常用于将数据的某些位置13.逻辑运算指令—异或XRL(逻辑异或指令):共有以下6种寻址格式:

XRL A,Rn ;A←(A)⊕(Rn) XRL A,direct ;A←(A)⊕(direct) XRL A,@Ri ;A←(A)⊕((Ri)) XRL A,#data ;A←(A)⊕data XRL direct,A ;direct←(direct)⊕(A) XRL direct,#data ;direct←(direct)⊕data常用于将数据的某些位取反3.逻辑运算指令—A清0、取反、移位CLR(累加器清零指令):将累加器A内容清除为0。 CLR A ;A←0CPL(累加器取反指令):将累加器A内容每位求反。CPL A ;A←(A)的每位求反,即0→1,1→0RL(累加器左移指令):将累加器A的内容左环移一位。RL A

RLC(累加器带进位左移指令):将累加器A的内容与进位左环移一位。

RLC AA7

A0A7A0CY3.逻辑运算指令—A移位、交换RR(累加器右移指令):将累加器A的内容右环移一位。

RRAA7A0A7A0CYA7~A4A3~A0RRC(累加器带进位右移指令):将累加器A的内容与进位右环移一位。RRCASWAP(4位互换指令):将累加器A的高4位与低4位互换。SWAPA逻辑运算指令举例(补充)将累加器A中压缩BCD码拆成两个非压缩BCD码,低位存入30H单元,高位存入31H单元。

PUSHACCANLA,#0FHMOV30H,APOPACCSWAPAANLA,#0FHMOV31H,AACC3530H31H05H03H4.布尔运算指令(1)CLR(清除):可将CY或可位寻址的位清0。

CLR C ;CY←0 CLR bit ;bit←0SETB(置位):可将CY或可位寻址的位置1。

SETBC ;CY←1 SETBbit ;bit←1CPL(取反):可将CY标志或可位寻址的位取反。

CPL C ;CY←/(CY) CPLbit ;bit←/(bit)

4.布尔运算指令(2)ANL(与) ANL C,bit ;CY←(CY)∧(bit) ANL C,/bit ;CY←(CY)∧/(bit)ORL(或) ORL C,bit ;CY←(CY)∨(bit) ORL C,/bit ;CY←(CY)∨/(bit)MOV(位传送指令) MOV C,bit ;CY←(bit) MOV bit,C ;bit←(CY)

5.程序分支指令(1)JC(有进位跳转)JC rel;若CY=1则PC←(PC)+2+rel;否则PC←(PC)+2JNC(无进位跳转)JNCrel;若CY=0则PC←(PC)+2+rel;否则PC←(PC)+2JB(为1跳转) JB bit,rel ;若bit=1则PC←(PC)+3+rel;否则PC←(PC)+3JNB(为0跳转)

JNBbit,rel;若bit=0则PC←(PC)+3+rel;否则PC←(PC)+3JBC(为1跳转并清除) JBCbit,rel;若bit=1则PC←(PC)+3+rel且bit←0;否则PC←(PC)+35.程序分支指令(2)JZ(A为0跳转) JZ rel ;若(A)=0则PC←(PC)+2+rel

;若(A)≠0则PC←(PC)+2JNZ(A为非0跳转)

JNZ rel ;若(A)≠0则PC←(PC)+2+rel

;若(A)=0则PC←(PC)+2CJNE(比较不相等跳转)CJNE A,direct,rel ;若(A)≠(direct)则跳转CJNE A,#data,rel ;若(A)≠data则跳转CJNE Rn,#data,rel ;若(Rn)≠data则跳转CJNE @Ri,#data,rel;若((Ri))≠data则跳转5.程序分支指令(3)DJNZ(减1不为0跳转) DJNZRn,rel ;Rn←(Rn)-1

;若(Rn)≠0则PC←(PC)+2+rel

;若(Rn)=0则PC←(PC)+2 DJNZ direct,rel ;direct←(direct)-1

;若(direct)≠0则PC←(PC)+3+rel

;若(direct)=0则PC←(PC)+35.程序分支指令(4)LJMP(长跳转指令) LJMP addr16 ;PC←addr16AJMP(短跳转指令) AJMP addr11 ;PC←(PC)+2,PC10~0←addr11SJMP(相对跳转指令) SJMP rel ;PC←(PC)+2,PC←(PC)+relJMP(散转指令) JMP @A+DPTR ;PC←(A)+(DPTR)5.程序分支指令(5)LCALL(长调用指令) LCALL addr16;PC←(PC)+3

;SP←(SP)+1,(SP)←PC7~0

;SP←(SP)+1,(SP)←PC15~8

;PC←addr16ACALL(短调用指令) ACALL addr11;PC←(PC)+2

;SP←(SP)+1,(SP)←PC7~0

;SP←(SP)+1,(SP)←PC15~8

;PC10~0←addr115.程序分支指令(6)RET(子程序返回): RET ;PC15~8←((SP)),SP←(SP)–1

;PC7~0←((SP)),SP←(SP)–1RETI(中断返回):

RETI ;PC15~8←((SP)),SP←(SP)–1

;PC7~0←((SP)),SP←(SP)–1

;清除相应中断优先级状态位 NOP(空操作):NOP ;PC←(PC)+1作业一:P77习题2:2、3、5、62.4中断系统2.4.1中断概念

中断服务程序1非预料事件1CPU执行流程主程序中断嵌套低级中断服务程序主程序高级中断服务程序低级请求高级请求2.4.1中断的概念中断、中断系统中断源中断响应、中断服务、中断返回、断点、中断向量中断允许、中断屏蔽中断优先级中断嵌套单级中断系统、多级中断系统2.4.2C8051F的中断系统中断源(22个)中断允许寄存器中断优先级寄存器高优先级EX0ET0低优先级

高低IE0IE1TF0INT0INT1TF1TIRITF2EXF2EX1ET1ESET2EAPX0PT0PX1PT1PSPX2IE寄存器IP寄存器EIE1寄存器EIE2寄存器EIP1EIP2EXVLD0000同级查询顺序1.中断源(1)共22个,P41表2-5,分外部中断、串口(UART0、UART1、SPI、SMBus等)、定时/计数器、电压比较器、A/D转换中断等。

(1)外部中断源

与MCS-51兼容的外部中断0、1(/INT0、/INT1)。边沿触发(上升沿或下降沿)的外部中断6、7。(2)定时/计数器中断

由内部定时器溢出产生,故它们属于内部中断C8051F020有5个16位定时/计数器,其中3个(T0~T2)与MCS-51兼容。PCA(可编程计数器阵列)中断1.中断源(2)(3)串行口中断

由内部串行口产生,故也是一种内部中断。C8051F020中有2个UART串行口(UART0、UART1)。

发送和接收共用一个中断源,通过判断TI和RI标志,区分是发送中断还是接收中断。SPI、SMBus中断源(4)其它中断源C8051F020还有电压比较器、A/D转换、晶振准备好等中断源。2.中断控制(1)中断使能控制

采用两级中断使能控制C8051F对所有的中断源的开放和屏蔽(总控制位EA)每个中断源都有单独的二级中断允许控制位受中断允许寄存器IE、EIE1、EIE2控制。(2)中断优先级别的设定每个中断源都可以设置为高优先级和低优先级,由中断优先级寄存器IP、EIP1、EIP2统一管理。2.中断控制高优先级EX0ET0低优先级

高低IE0IE1TF0INT0INT1TF1TIRITF2EXF2EX1ET1ESET2EAPX0PT0PX1PT1PSPX2IE寄存器IP寄存器EIE1寄存器EIE2寄存器EIP1EIP2EXVLD中断允许寄存器IEEA:总控位;IEGF0:通用标志位;其它为分允许位1:允许;0:禁止操作方法字节操作,如:MOVIE,#82H位操作,如:SETBEASETBET0R/WR/W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论