1PIC微控制器实验室大学生创新实验室第二章单片机系统结构微型计算机系统组成哈佛结构流水线指令结构程序存储器结构概述数据存储器结构概述PIC微控制器实验室大学生创新实验室2微型计算机的硬件组成输出设备运算器控制器数据输入数据输出输入设备存储器CPU主机PIC微控制器实验室大学生创新实验室3五大组成部分:•运算器•控制器•存储器•输入设备•输出设备PIC微控制器实验室大学生创新实验室4CPU的结构及工作原理数据缓冲器ATEMF指令译码器控制信号发生器地址缓冲器内部数据总线IR外来控制信号时钟地址总线A15~A0内部地址总线多路开关+/-1电路PCSPALU调整电路控制信号通用寄存器组数据总线D7~D0PIC微控制器实验室大学生创新实验室5微型计算机系统,把要运行的程序和数据存放在内存储器(内存或主存)中,根据PC(指定主存中的单元地址)值从主存中取出一条指令,pc+1pc,指令经DB送往IR,指令译码:操作码:指令的功能操作数:操作对象控制信号根据译码器的输出和时钟配合下,控制各部件动作。PIC微控制器实验室大学生创新实验室6以汇编语言中一条MOV指令为例aDB2bDB?MOVAL,aMOVb,AL2ab2a2b2AL122abPIC微控制器实验室大学生创新实验室7存储器的读/写地址译码器ARDR0000H0001H0002HFFFEHFFFFHABDBPIC微控制器实验室大学生创新实验室8读写过程读(R)地址ABAR译码选择存储单元DRDB写(W)1.地址ABAR译码选择存储单元2.DBDR存储单元数据数据PIC微控制器实验室大学生创新实验室9单片机系统结构PIC微控制器实验室大学生创新实验室10PIC®单片机架构•内部为哈佛结构•寄存器文档•大多数单指令周期•指令流水线操作•长字型指令•指令数很少•指令实现的功能基本不重复PIC单片机之所以有很高的性能是因为其具备如下特性:PIC微控制器实验室大学生创新实验室11PIC单片机架构哈佛结构•从同一存储器空间取指令和取操作数据.–限制了数据流量程序和数据存储器普林斯顿结构8-位程序存储器数据存储器8-位12/14/16-位哈佛结构从两个独立的存储空间分别取指令和存取操作数.数据流量增加针对程序区和数据区可以设计不同的数据线宽度PIC微控制器实验室大学生创新实验室12PIC®MCU振荡器PICMCU4MHz(250ns)1MHz(1us)foscTcy•指令执行速度是输入时钟的1/4•输入晶振频率叫做fosc•一个指令周期占用1TcyPIC微控制器实验室大学生创新实验室13FlushFetch4FetchSUB_1•大部分单片机,其取指和执行过程是顺序进行的.•指令流水线的引入允许取指和执行可以同步进行.•使得指令可以在一个指令周期内执行.•程序分支例外(如GOTO,CALL或直接修改PC),这需两个指令周期.Tcy0Tcy1Tcy2Tcy3Tcy4PIC单片机架构指令流水线Execute1Fetch31.MOVLW55hFetch1Execute3Fetch2Execute2Fetch42.MOVWFPORTB3.CALLSUB_14.BSFPORTA,BIT3PIC微控制器实验室大学生创新实验室14PICmicro®架构指令实例PICMCU指令编码为操作码和参数编码用一个字完成OPCODEk操作码kkkkkkk操作数PIC微控制器实验室大学生创新实验室15精简指令RISC•PIC16F877指令集只有35条指令学习、程序设计便利•全部采用单字节指令(除4条条件跳转指令外)均为单周期指令•“单字节”:专指指令字节PIC微控制器实验室大学生创新实验室16寻址方式•寻址方式简单四种寻址方式:立即数寻址、寄存器间接寻址直接寻址、位寻址•寻址空间独立程序、数据和堆栈地址空间各自互相独立PIC微控制器实验室大学生创新实验室17•代码压缩率高指令的单字节化•低功耗CMOS结构监视定时器•驱动能力强20~25mA的负载•两种串行总线标准I2C和SPI(InterIntegratedCircuit)内部集成电路(SerialPeripheralInterface)串行扩展接口Philips和Motorola公司外围扩展PIC微控制器实验室大学生创新实验室18•软硬件支持MPLAB-IDE集成开发环境MPLAB-ICD在线调试器•程序存储器版本一次编程(OTP)小批量非定型电可擦/写存储器(EEPROM)反复擦写闪存(Flash)掩膜ROM型芯片大批量定型PIC微控制器实验室大学生创新实验室19PIC16F877单片机结构•两大模块内部核心模块、外围功能模块•内部核心模块程序存储器Flash数据存储器RAM程序计数器PC地址复用器数据复用器ALUW工作寄存器PIC微控制器实验室大学生创新实验室20STATUSC、DC、Z标志位RP0、RP1数据存储器体选FSR与INDF完成间接寻址复用器信号选择开关IRPRP1RP0TOPDZDCC状态寄存器(STATUS)PIC微控制器实验室大学生创新实验室21上电复位上电延时:72ms起振延时:1024个时钟周期看门狗定时器:监视程序运行状态欠压复位:当电源电压低于4V,单片机保持在复位状态在线调试:对芯片程序直接调试低压编程:允许工作电压VDD作为编程电压PIC微控制器实验室大学生创新实验室22Flash程序存储器程序计数器RAM数据存储器8级堆栈(13位)指令寄存器138149注意:核心模块各总线的根数RAM地址程序总线数据总线PIC16F877功能框图PIC微控制器实验室大学生创新实验室23PIC16F877的引脚PIC微控制器实验室大学生创新实验室24存储器概述PIC微控制器实验室大学生创新实验室25PIC单片机架构存储器•两种类型–程序–数据(RAM和EEPROM)PIC微控制器实验室大学生创新实验室26MicrochipPIC®MCU金字塔PIC16C5XPIC12C5XXPIC16PIC12FPIC18dsPIC14bits16bits24bits12bits8bitMCU16bitMCU程序存储器宽度数据存储器宽度PIC微控制器实验室大学生创新实验室27PIC单片机架构存储器表FLASH程序存储器RAM数据存储器大小(words)GPR大小(bytes)1K256PIC12F675PIC16F8778K512PICmicroMCU其中words指的是指令字,即程序存储器宽度PIC微控制器实验室大学生创新实验室28•存储器的组织形式–Pages-页(程序存储器)–Banks–组或体(数据存储器)PIC微控制器实验室大学生创新实验室29PIC单片机架构数据存储器组织•两类:普通RAM和EEPROM•总地址空间512个单元•形式上分:通用寄存器和特殊功能寄存器(8位)•地址空间分成4个体:0、1、2、3体每个体128*8位宽的存储单元•SFR映射到最顶端32个位置•通过RP0,1和IRP选择组GPRsSFRsBank0000h01Fh020h07FhGPRsSFRsBank1080h09Fh0A0h0FFh0F0hGPRsSFRsBank2100h11Fh120h17Fh170hGPRsSFRsBank3180h19Fh1A0h1FFh1F0hRP1:0RP1:0RP1:0RP1:0=00=01=10=11PIC微控制器实验室大学生创新实验室30PIC单片机架构寄存器文档概念GeneralPurposeRegisters(RAM)OtherSFRsPORTAFSRSTATUSPCLTMR0INDFWRegisterALU数据存储器直接数据地址7操作码714-位字长的指令范例:RAM被看作是一组通用的寄存器.周边模块(I/O)也作为寄存器.所有的指令操作都可针对所有的寄存器.长字指令使得在指令中直接寻址寄存器.PIC微控制器实验室大学生创新实验室31FileAddress(hex)Bank0Unimplementeddatamemorylocation;readas'0'.寄存器图PIC12F675PIC单片机架构数据存储器PCLATHPCLATHINTCONINTCONFSRFSRGPIOTRISIOPCLPCLSTATUSSTATUSIndirectaddr.(1)Indirectaddr.(1)TMR0OPTION_REG0203000104050A0BPIE10CPIR10DPCON0ETMR1LTMR1H0FOSCCAL10T1CONWPU15IOC16CMCONVRCONEEDATA191AEEADR1BEECON11CEECON2(1)1DADRESHADRESL1EANSEL1FADCON08283808184858A8B8C8D8E8F909596999A9B9C9D9E9FFileAddress(hex)Bank1GeneralPurposeRegisters(64Bytes)accesses20h-5FhA0DF205FSpecialFunctionRegisters(SFR).GeneralPurposeRegisters(GPR),userRAM.NotaPhysicalRegister.1PIC微控制器实验室大学生创新实验室32PIC单片机架构程序存储器组织复位矢量入口地址页面3页面2页面1中断服务程序入口地址片内程序存储器0000H0001H0002H0003H0004H07FFH1FFFHPIC微控制器实验室大学生创新实验室33•PIC16F877内部配置8K*14的Flash程序存储器•地址空间分成4页:0、1、2、3页,每页2K*14位宽的存储单元•程序计数器PC高位寄存器PCLATH决定程序存储器跨页选择。PIC微控制器实验室大学生创新实验室34分页的程序存储器(14位内核)OPCODEkkkkkkkkkkkCALLorGOTOinstruction3bitsforinstruction11bitsfordestination•在14-位内核的器件中:–11位访问211或2048(2k)空间–访问更多的空间,需要更多的位PIC微控制器实验室大学生创新实验室35PIC单片机架构PC相对寻址(14-bitcore)PCH5PCL813-BitProgramCounterPCLATH5InternalDataBus8558高字节写入PCLATH.然后低字节写入PCL,将装入13-bit值到PC.movlwHIGHDelaymovwfPCLATHmovlwLOWDelaymovwfPCLNote:PCHcannotbereadPIC微控制器实验室大学生创新实验室36分组的数据存储器(14位内核)DataModifyingInstruction7位指令编码7位目标地址•在14-位内核的器件中:–7位访问27或128空间–访问更多的空间,需要更多的位OPCODEfffffffPIC微控制器实验室大学生创新实验室37PIC单片机架构数据存储器:直接寻址•低7位的数据地址直接在指令中描述•高2位在STATUS寄存器中(又称寄存器组号BANK)指向目标寄存器的9位有效地址IRPRP1RP0OPCODETOPDZDCCSTATUS寄存器14位长指令fffffffRP1RP0fffffff7位来自指令2位来自STATUS寄存器PIC微控制器实验室大学生创新实验室3800000000XXXXXXXXPIC单片机架构PC相对寻址实现查找表范例movlwHIGHDecodemovwfPCLATHmovfDisplayValue,WcallDecodemovwfPORTBgotoContinueDecodeaddwfPCL,FretlwB’00111111’;decode0retlwB’00000110’;decode1retlwB’01011011’;decode2retlwB’01001111’;decode3retlwB’01100110’;decode4