IC单片机原理及应用_第1页
IC单片机原理及应用_第2页
IC单片机原理及应用_第3页
IC单片机原理及应用_第4页
IC单片机原理及应用_第5页
已阅读5页,还剩54页未读, 继续免费阅读

下载本文档

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

文档简介

PIC单片机原理及应用,1,主讲:许辉邮箱:xuh,PIC单片机原理及应用实验,2,内容安排:全校任选课()PIC单片机原理介绍(10学时)工具软件及实验(4学时)系统基本功能设计(12学时)综合设计实验(4学时),西安电子科技大学国家电工电子教学基地西电MICROCHIP公司联合实验室(E楼II-406),PIC单片机原理及应用,第1章概述,3,1.1PIC单片机简介,1、PIC单片机是由MicrochipTechnologyInc.(美国微芯科技公司)推出的系列产品。美国微芯科技公司成立于1989年,是全球领先的单片机和模拟半导体供应商。2、PIC单片机(PeripheralInterfaceController)是一种用来开发控制外围设备的可编程集成电路(IC)。一种具有分散作用(多任务)功能的CPU。内部采用了RISC结构的嵌入式微控制器,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。,4,1.2PIC单片机产品系列,PICmicro单片机Microchip的8位和16位PIC单片机系列具有高性能、低成本和封装体积小等特点,是业界性价比最佳的产品。据业界权威研究机构Dataquest资料,全球8位单片机(MCU)付运量排名第一。dsPIC数字信号控制器dsPIC数字信号控制器(DSC)系列具备一个完全实现的数字信号处理器(DSP)引擎。该系列dsPIC30F和dsPIC33F16位闪存DSC具有业界最高的性能,适用于电机控制、功率转换、传感器和通用应用等。,5,1.2PIC单片机产品系列,6,1.3主要应用领域,7,7,办公设备,工业控制,通信系统,电子玩具,金融电子,仪器仪表,汽车工业,家用电器,舰船设备,航空航天,1.4常见单片机比较,51:通用性,用的最多,主要是内核是公布的,很多情况下,各个厂家做了自己特有的外设扩展,比如aduc51的ad,da,高频发射模块,cpress的usb功能等等,PIC:工业稳定性,适用于用量大,档次低,价格敏感的产品.在办公自动化设备,消费电子产品,电讯通信,智能仪器仪表,汽车电子,金融电子,工业控制不同领域都有广泛的应用;AVR:通用性,使用也很广泛,具有高速处理能力,在一个时钟周期内可执行复杂的指令;MSP430:低功耗应用,经常被电池、仪表应用设计师所选用,8,1.5PIC单片机特点,9,1、哈佛结构,1.5PIC单片机特点,2、RISC技术/指令集(汇编指令)RISC技术(RedudedInstructionSetComputer-精简指令集计算机):改善结构,更加合理的提高运算速度。除判断转移指令,其他指令都是单周期指令。寻址方式简单,指令代码压缩率高,10,1K字节的存储器空间PIC系列单片机能够存放1024条指令MCS-51系列单片机大约只能存放600条指令,1.6PIC单片机特点,3、内嵌DSP引擎:dsPIC数字信号控制器(DSC)系列内嵌DSP引擎,具备实现数字信号处理器的基本功能,如FFT、FIR滤波等。4、CMOS工艺特性功耗低电压范围宽工作温度范围宽:-40+125摄氏度5、驱动能力强每个输出引脚可以驱动多达20-25mA的负载一般端口总驱动能力约60-70mA,11,1.5PIC单片机特点,6、接口丰富,能实现各种功能I/O口具有20mA的驱动能力8路、10位的AD转换I2C,SPI,USART,USB,CAN接口WDT(看门狗)CCP(脉宽/捕捉/比较)内置EEPROM3路定时器多种中断源支持休眠的低功耗模式流式的并行接口内置LCD控制器芯片加密,12,13,1.6PIC单片机命名规则,1、8位PIC单片机编号包括下列5个部分:2、器件类型和代号关系,PICXXXXXXX-XXX/XXXXX器件类型振荡频率温度封装存储器编程方式,14,1.6PIC单片机命名规则,3、振荡方式/频率和代号关系:4、温度与代号关系:,1.6PIC单片机命名规则,5、程序存储器编程方式EPROM:可反复擦写,紫外线照射20分钟以上除去片上信息E2PROM或FLASH:可在线进行程序的反复擦写OTP:一次编程方式:一个产品周期后降低成本用,专用设备完成烧写,适合小批量非定型产品QTP:快速批量编程SQTP:连续批量编程ICSP:电路内连续编程掩模ROM:一个产品周期后降低成本用,适合大批量定型产品,必须请制造商借助专用设备完成,15,16,1.6PIC单片机命名规则,dsPIC30F产品器件编号规则,1.7单片机开发流程,17,PIC单片机原理及应用,第2章结构,18,2.1内部结构,19,CPU内核是器件运行所必需的基本部分。CPU数据存储器程序存储器DSP引擎中断,系统集成可以降低系统成本提高系统可靠性提高设计灵活性。振荡器复位看门狗定时器和低功耗模式闪存和EEPROM编程器件配置低电压检测,外设功能是允许器件与外界交换信息。1.I/O端口2.定时器3.输入捕捉模块4.输出比较模块5.正交编码器接口(QEI)6.10位AD转换器7.12位AD转换器8.UART模块9.SPITM模块10.I2CTM模块11.CAN模块12.数据转换器接口(DCI)模块,20,20,21,2.2CPU内核,CPU内核采用16位(数据)改良的哈佛架构,并带有增强型指令集包含对DSP的有力支持。CPU拥有24位指令字,指令字带有长度可变的操作码字段。程序计数器(PC)为24位宽,可以寻址高达4M24位的用户程序存储器空间。单周期指令预取机制用来帮助维持吞吐量并提供可预测的执行。除了改变程序流的指令、双字移动(MOV.D)指令和表指令以外,所有指令都在单个周期内执行。使用DO和REPEAT指令支持无开销的程序循环结构,这两个指令在任何时候都可被中断。,22,23,2.2.1算术逻辑单元(ALU),dsPIC30FALU为16位宽,能进行加、减、单位移位和逻辑运算。除非特别指明,算术运算一般是以2进制补码形式进行的。根据所使用的指令模式,ALU可以执行8位或16位操作。根据指令的寻址模式,ALU操作的数据可以来自W寄存器阵列或数据存储器,输出数据可以被写入W寄存器阵列或数据存储单元。根据不同的操作,ALU可能会影响SR寄存器中的进位标志位(C)、全零标志位(Z)、负标志位(N)、溢出标志位(OV)和辅助进位标志位(DC)的值。在减法操作中,C和DC位分别作为借位和辅助借位位。,24,2.2.2DSP引擎,DSP引擎由一个高速17位x17位乘法器、一个桶形移位寄存器和一个40位加法器/减法器(两个目标累加器、舍入逻辑和饱和逻辑)组成。dsPIC30F器件采用单周期指令流,可以执行DSP指令或MCU指令。许多硬件资源可以被DSP和MCU指令共用。DSP引擎的功能如下:1.小数或整数DSP乘法(IF)。2.有符号或无符号DSP乘法(US)。3.常规或收敛舍入(RND)。4.ACCA自动饱和使能/禁止(SATA)。5.ACCB自动饱和使能/禁止(SATB)。6.对于写数据存储器,自动饱和使能/禁止(SATDW)。7.累加器饱和模式选择(ACCSAT)。,25,26,2.2.3除法,支持16/16位有符号小数除法运算,以及32/16位、16/16位有符号和无符号整数除法运算,除法形式均为单指令迭代除法。支持以下指令和数据长度:1.DIVF16/16有符号小数除法2.DIV.sd32/16有符号除法3.DIV.ud32/16无符号除法4.DIV.s16/16有符号除法5.DIV.u16/16无符号除法除法指令必须在一个REPEAT循环内执行。,27,2.2.4编程模型,由16个16位工作寄存器(W0至W15)、2个40位累加器(ACCA和ACCB)、状态寄存器(SR)、数据表页寄存器(TBLPAG)、程序空间可视性页寄存器(PSVPAG)、DO和REPEAT寄存器DOSTART、DOEND、DCOUNT和RCOUNT)以及程序计数器(PC)组成。工作寄存器可作为数据、地址或偏移量寄存器。所有寄存器都是存储器映射的。W0用作进行文件寄存器寻址的W寄存器。影子寄存器影子寄存器用作临时保持寄存器,事件发生时可在影子寄存器和主寄存器之间传递内容。所有影子寄存器均不能直接访问。,28,状态寄存器内核有一个16位状态寄存器(SR),其最低有效字节称为SR低字节(SRLowByte,SRL),其最高有效字节称为SR高字节(SRHighByte,SRH)。SRL包含所有的DSPALU运算状态标志位(包括Z位),以及CPU中断优先级状态位IPL和REPEAT有效状态位RA。在异常处理期间,SRL与PC的MSB连接起来形成一个完整的字值,然后将该字值压入堆栈。SR寄存器的高字节包含DSP加法器/减法器状态位、DO循环有效位(DA)和半进位(DC)状态位。程序计数器程序计数器为23位宽,bit0始终清零;因此,PC能够寻址最多4M指令字。,29,PUSH.S和POP.S用于执行函数调用或中断服务程序,W0、W1、W2、W3和SR(仅限DC、N、OV、Z和C位)是与之对应的影子寄存器,可进行内容传递。DO指令循环开始时,DOSTART、DOEND和DCOUNT寄存器的内容压入影子寄存器,在循环结束时其内容从各自的影子寄存器中弹出。对工作寄存器进行字节操作时,只影响目标寄存器的低字节(LeastSignificantByte,LSB)。,30,31,32,2.2.5软件堆栈指针/帧指针,软件堆栈指针总是指向软件堆栈第一个可用的空字,并从低地址到高地址填充软件堆栈。堆栈出栈(读)时,堆栈指针先减;堆栈进栈(写)时,堆栈指针后加。W15是专用的软件堆栈指针(StackPointer,SP),异常处理、子程序调用与返回时会自动修改W15。W15也可被任何指令所引用,引用方式与引用所有其他W寄存器相同。W14软件堆栈帧指针,因为通过使用LNK(link,连接)和ULNKunlink,不连接)指令可以把它用作堆栈帧指针。当不用作帧指针时,W14可被指令当作普通的工作寄存器使用。,33,34,2.2.5CPU寄存器描述,SR:CPU状态寄存器16位状态寄存器(SR),它的低字节称为低状态寄存器SRL,的高字节称为SRH。SRL包含了所有的MCUALU操作状态标志,加上CPU中断优先级状态位IPL和REPEAT循环有效状态位RA(SR)。SRH包含DSP加法器/减法器状态位、DO循环有效位DA(SR)和辅助进位标志位DC(SR)。CORCON:内核控制寄存器CORCON寄存器包含控制DSP乘法器和DO循环硬件操作的位。还包含IPL3状态位,它与IPL(SR)相连形成CPU中断优先级。,35,TBLPAG:表页寄存器TBLPAG寄存器用于在读表和写表操作过程中保存程序存储器地址的高8位。表指令用于传输程序存储空间和数据存储空间之间的数据。PSVPAG:程序空间可视性页寄存器程序空间可视性允许用户将程序存储空间的32KB区域映射到数据地址空间的高32KB。此特性允许通过在数据存储器上操作的dsPIC30F指令对常数数据进行透明访问。PSVPAG寄存器选择映射到数据地址空间的程序存储空间的32KB区域。MODCON:模控制寄存器MODCON寄存器用于使能并配置模寻址(循环缓冲)。,36,XMODSRT,XMODEND:X模起始和结束地址寄存器XMODSRT和XMODEND寄存器保持X数据存储地址空间中执行模(循环)缓冲的起始和结束地址。YMODSRT,YMODEND:Y模起始和结束地址寄存器YMODSRT和YMODEND寄存器保持Y数据存储地址空间中执行模(循环)缓冲的起始和结束地址。XBREV:X模位反转寄存器XBREV寄存器用于设置位反转寻址的缓冲区大小。DISICNT:禁止中断计数寄存器DISI指令使用DISICNT寄存器将优先级为1-6的中断在指定的几个周期内禁止。,37,2.3.1数据地址空间数据宽度为16位。所有内部寄存器和数据空间存储器都是以16位宽度组织的。数据存储器具有两个数据空间X和Y数据空间。数据空间可以看作是独立的或者看作是统一的线性地址范围。Y空间是X空间的子集,Y空间完全包含在X空间中。X和Y空间要有连续的地址。使用两个地址发生单元(AGU)和独立的数据路径访问这两个数据空间。,2.3数据存储器,38,0 x0000到0 x07FF之间的地址空间保留用于器件的特殊功能寄存器SFR,包含CPU和器件上的外设的控制和状态位。RAM从地址0 x0800开始,分成两个区块,分别为X和Y数据空间。对于数据写操作,总是将X和Y数据空间作为一个线性数据空间访问。对于数据读操作,可以分别单独访问X和Y存储器空间或将它们作为一个线性空间访问。0 x0000到0 x1FFF之间8KB的地址空间称为Near数据存储器。可通过所有文件寄存器指令中的13位绝对地址字段直接对Near数据存储器寻址。,39,MCU指令访问:MCU指令将X和Y存储器作为一个组合的数据空间访问.MCU指令可以使用任何W寄存器作为地址指针进行读写操作。DSP指令访问:在数据读过程中,DSP指令可以同时预取两个数据操作数,它将数据存储器分割为两个空间。DSP类指令将Y地址空间与整个数据空间隔开。W10和W11作为使用DSP类指令从Y数据空间读取数据的地址指针。W8和W9作为使用DSP类指令对X数据空间读取数据的地址指针。,2.3.1数据存储器访问方式,40,dsPIC30F包含一个XAGU和一个YAGU以产生数据存储器地址。X和YAGU都可以产生任何64KB范围内的有效地址EA。对物理存储器范围以外的EA进行数据写操无效。X地址发生器单元XAGU可以被所有指令使用并支持所有寻址模式。XRAGU和XWAGU都支持模寻址。只有XWAGU支持位反转寻址。Y地址发生器单元Y数据存储空间有一个AGU,支持从Y数据存储空间进行数据读操作。从不使用Y存储器总线进行数据写操作。YAGU和Y存储器总线的功能是支持DSP类指令同时进行数据读操作。对于使用YAGU的DSP类指令,YAGU支持模寻址和后修改寻址模式,2.3.2数据空间地址发生器单元(AGU),41,2.3.3地址发生器单元和DSP类指令,DSP类指令将YAGU和Y存储器数据路径与XRAGU一起使用,从而提供两条可同时对数据进行读操作的路径。DSP类指令指定两个W寄存器指针(W8和W9),总是通过XRAGU进行操作并寻址X数据空间(不寻址Y数据空间)另外指定两个W寄存器指针(W10和W11),总是通过YAGU进行操作并寻址Y数据空间(不寻址X数据空间)。,42,2.4程序存储器,程序地址空间程序地址空间为4M*24指令字。访问程序空间有三种可用的方法:1.通过23位PC。2.通过读表(TBLRD)和写表(TBLWT)指令。3.通过把程序存储器的32KB段映射到数据存储器地址空间。程序存储器映射空间被划分为用户程序空间和用户配置空间,43,PC以2为增量,且LSb置为“0”以使之与数据空间寻址相兼容。用PC在4M程序存储器空间中对连续指令字寻址。每个指令字为24位宽。程序存储器地址的LSb(PC)保留为字节选择位,用于从使用程序空间可视性或表指令的数据空间访问程序存储器。对于通过PC取指的情况,不需要该字节选择位。PC总是置为“0”。,2.4.1程序计数器PC,44,表指令用于将字节或字大小的数据在程序空间和数据空间之间传送。读表指令用于把数据从程序存储器空间读入数据存储器空间。写表指令可以把数据从数据存储器空间写入程序存储器空间。对于表指令,程序存储器可以视作并排放置的两个16位字宽的地址空间,每个地址空间都有相同的地址范围,TBLRDL和TBLWTL访问程序存储器的LS数据字,而TBLRDH和TBLWTH访问高位字。由于程序存储器只有24位宽,所以后一个字空间的高字不存在(虽然它是可寻址的)。因此称之为“虚拟”字节。,2.4.2表指令方式读写,45,可选择将数据存储器地址空间的高32KB空间映射到任何16K字程序空间页,这种操作模式被称为程序空间可视性(PSV),它提供对存储在X数据空间的常数数据的透明访问,而无需使用特殊指令(即,TBLRD和TBLWT指令)。PSV的配置通过将PSV位(CORCON)置1使能程序空间可视性。当PSV使能时,在数据存储器映射空间上半部分的每个数据空间地址将直接映射到一个程序地址。PSV视窗允许访问该24位程序字的低16位。程序存储器数据的高8位应该编程,以强制对其的访问为非法指令或NOP。,2.4.3来自数据空间的程序空间可视性,46,PSV地址的15个LSb由包含有效地址的W寄存器提供。W寄存器的MSb不用于形成该地址,而是用于指定是从程序空间执行PSV访问还是从数据存储器空间执行正常的访问。W寄存器有效地址大于或等于0 x8000,使能PSV时,数据访问会从程序存储器空间进行。当W寄存器的有效地址小于0 x8000时,所有访问将从数据存储器空间进行。PSVPAG位与W寄存器中保存有效地址的15个LSb相连形成一个23位的程序存储器地址。PSV只能用来访问程序存储器空间中的值。,PIC单片机原理及应用,第3章系统集成,47,复位模块结合了所有复位源并控制器件的主复位信号SYSRST。以下列出了器件的复位源:.POR:上电复位。在检测到VDD电压上升时会产生内部上电复位脉冲。复位脉冲会产生10s短时间的延时,以确保内部器件偏置电路稳定。.EXTR:引脚复位(MCLR)。只要MCLR引脚拉为低电平,输入脉冲比规定的最小宽度更长,当CLR引脚被释放后,在下一个指令时钟周期将产生SYSRST信号并开始复位向量取指。.SWR:RESET指令。只要何时执行了RESET指令,器件都会产生SYSRST信号,从而将器件置于特殊复位状态。,48,3.1复位,.WDTR:看门狗定时器复位。只要何时发生看门狗超时,器件将异步产生SYSRST信号。.BOR:欠压复位。主要用途是在发生欠压条件时产生器件复位。欠压条件通常由AC电源上的干扰信号或接入大负载时过电流造成电压下降产生的。.TRAPR:陷阱冲突复位。只要同时有多个硬陷阱中断源待处理,就会产生器件复位。.IOPR:非法操作码复位。.UWR:未初始化的W寄存器复位,49,50,bit15TRAPR:陷阱复位标志位;1=发生了陷阱冲突复位0=未发生陷阱冲突复位bit14IOPUWR:非法操作码或未初始化的W寄存器访问复位标志位;bit13BGST:带隙稳态位;1=带隙已稳定0=带隙不稳定且LVD中断应该被禁止bit12LVDEN:低压检测电源使能位;1=使能LVD,LVD电路上电0=禁止LVD,LVD电路掉电bit11-8LVDL:低压检测限制位;bit7EXTR:外部复位(MCLR)引脚位;1=发生主清零(引脚)复位0=未发生主清零(引脚)复位bit6SWR:软件RESET(指令)标志位;1=执行了RESET指令0=未执行RESET指令bit5SWDTEN:WDT位的软件使能/禁止;1=WDT启用0=WDT关闭bit4WDTO:看门狗定时器超时标志位;1=WDT发生超时0=WDT未发生超时bit3休眠:从休眠状态唤醒标志位;1=器件处于休眠模式0=器件未处于休眠模式bit2空闲:从空闲状态唤醒标志位;1=器件处于空闲模式0=器件不处于空闲模式bit1BOR:欠压复位标志位;1=发生欠压复位。注意BOR在上电复位后将置1。0=未发生欠压复位bit0POR:上电复位标志位;1=发生上电延时复位0=未发生上电延时复位,51,3.2振荡器,dsPIC30F振荡器系统包含以下模块和功能:.可选择多种外部和内部振荡器作为时钟源.片上PLL可提高内部工作频率.不同时钟源之间的时钟切换.可节省系统功耗的可编程时钟后分频器.故障保护时钟监视器(FSCM)可检测时钟故障并采取故障保护措施.时钟控制寄存器,OSCCON.用于主振荡器选择的非易失性配置位,52,振荡源.带多时钟模式的主振荡器.辅助振荡器(低功耗的32kHz晶振).FRC振荡器:快速内部RC(8MHz).LPRC振荡器:低功耗内部RC(512kHz)PLL时钟倍频器:.与XT或EC时钟模式的主振荡器配合工作.某些器件允许PLL与内部FRC振荡器配合工作.输入频率范围为4MHz-10MHz.4倍频增益模式(Fout=16MHz-40MHz).8倍频增益模式(Fout=32MHz-80MHz).16倍频增益模式(Fout=64MHz-120MHz).带有“失锁”陷阱选项的PLLVCO锁定提示.HS/2和HS/3主振荡器模式允许选择更高的晶振频率(在某些器件上提供)时钟分频选项:.器件时钟的通用后分频器(分频比为4、16和64),53,54,bit15-14TUN:TUN位字段的高2位。bit13-12COSC:当前振荡源状态位;11=主振荡器10=内部LPRC振荡器01=内部FRC振荡器00=低功耗32kHz晶振(Timer1)bit11-10TUN:TUN位字段的低2位。此四位字段由TUN指定,允许用户调整内部快速RC振荡器,它的标称频率为8MHz。TUN=0111提供最高频率TUN=0000提供厂家校准频率TUN=1000提供最低频率bit9-8NOSC:新振荡器组选择位;11=主振荡器10=内部LPRC振荡器01=内部FRC振荡器00=低功耗32kHz晶振(Timer1)bit7-6POST:振荡器后分频值选择位;11=振荡器后分频器对时钟进行64分频10=振荡器后分频器对时钟进行16分频01=振荡器后分频器对时钟进行4分频00=振荡器后分频器不改变时钟信号bit5LOCK:PLL锁定状态位;1=表示PLL处于锁定状态0=表示PLL处于失锁状态(或禁止)bit4未用:读作0;bit3CF:时钟故障状态位;1=FSCM检测到时钟故障0=FSCM未检测到时钟故障bit2未用:读作0,55,3.3低压检测(LVD),LVD模块可应用于电池供电的应用场合。当电池消耗能量时,电池电压缓慢下降。电池的

温馨提示

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

评论

0/150

提交评论