IC单片机原理及应用.ppt
PICPIC单片机原理及应用单片机原理及应用1主讲:许辉主讲:许辉邮箱:邮箱:PICPIC单片机原理及应用单片机原理及应用实验实验2内容安排:内容安排:全校任选课(全校任选课(全校任选课(全校任选课()uPICPIC单片机原理片机原理介绍介绍 (10学时学时)u工具工具软件及实验软件及实验 (4学时学时)u系统基本功能设计系统基本功能设计 (12学时学时)u综合设计实验综合设计实验 (4学时学时)西安电子科技大学国家电工电子教学基地西安电子科技大学国家电工电子教学基地西电西电MICROCHIP公司联合实验室(公司联合实验室(E楼楼II-406)PICPIC单片机原理及应用单片机原理及应用第第1章章 概述概述31.1 PICPIC单片机简介单片机简介1 1、PICPIC单片机是由片机是由Microchip Technology Inc.Microchip Technology Inc.(美国微(美国微芯科技公司)芯科技公司)推出的系列推出的系列产品。品。美国微芯科技公司成立美国微芯科技公司成立于于19891989年,是全球领先的单片机和模拟半导体供应商。年,是全球领先的单片机和模拟半导体供应商。2 2、PICPIC单片机(片机(Peripheral Interface ControllerPeripheral Interface Controller)是一种用来)是一种用来开开发控制外控制外围设备的可的可编程集成程集成电路(路(ICIC)。)。一种具有一种具有分散作用(多任分散作用(多任务)功能的)功能的CPU。内部采用了内部采用了RISCRISC结构构的嵌入式微控制器,其高速度、低的嵌入式微控制器,其高速度、低电压、低功耗、大、低功耗、大电流流LCDLCD驱动能力和低价位能力和低价位OTPOTP技技术等都体等都体现出出单片机片机产业的新的新趋势。41.2 PIC1.2 PIC单片机片机产品系列品系列pPICmicroPICmicro 单片机单片机MicrochipMicrochip的的8 8位和位和1616位位PICPIC单片机系列具有高性能、低成本和封单片机系列具有高性能、低成本和封装体积小等特点,是业界性价比最佳的产品。据业界权威研究机装体积小等特点,是业界性价比最佳的产品。据业界权威研究机构构DataquestDataquest资料,全球资料,全球8 8位单片机(位单片机(MCUMCU)付运量排名第一)付运量排名第一 。pdsPICdsPIC 数字信号控制器数字信号控制器dsPICdsPIC 数字信号控制器(数字信号控制器(DSCDSC)系列具备一个完全实现的数字信)系列具备一个完全实现的数字信号处理器(号处理器(DSPDSP)引擎。该系列)引擎。该系列dsPIC30FdsPIC30F和和dsPIC33F 16dsPIC33F 16位闪存位闪存DSCDSC具有业界最高的性能,适用于电机控制、功率转换、传感器具有业界最高的性能,适用于电机控制、功率转换、传感器和通用应用等和通用应用等。51.2 PIC1.2 PIC单片机片机产品系列品系列61.3 1.3 主要主要应用用领域域77办公设备工业控制通信系统电子玩具金融电子仪器仪表汽车工业家用电器舰船设备航空航天1.41.4常见单片机比较常见单片机比较5151:通用性:通用性,用的最多用的最多,主要是内核是公布的主要是内核是公布的,很多情况下很多情况下,各个厂家做了各个厂家做了自己特有的外自己特有的外设扩展展,比如比如aduc 51aduc 51的的ad,da,ad,da,高高频发射模射模块,cpress,cpress的的usbusb功功能等等能等等,PICPIC:工:工业稳定性,适用于用量大定性,适用于用量大,档次低档次低,价格敏感的价格敏感的产品品.在在办公自公自动化化设备,消消费电子子产品品,电讯通信通信,智能智能仪器器仪表表,汽汽车电子子,金融金融电子子,工工业控制不同控制不同领域都有广泛的域都有广泛的应用;用;AVRAVR:通用性,使用也很广泛,具有高速:通用性,使用也很广泛,具有高速处理能力理能力,在一个在一个时钟周期内周期内可可执行复行复杂的指令;的指令;MSP430MSP430:低功耗:低功耗应用,用,经常被常被电池、池、仪表表应用用设计师所所选用用81.5 1.5 PICPIC单片机特点单片机特点91 1、哈佛结构、哈佛结构1.5 1.5 PICPIC单片机特点单片机特点2 2、RISCRISC技术技术/指令集(汇编指令)指令集(汇编指令)RISC RISC技术(技术(Reduded Instruction Set Computer-Reduded Instruction Set Computer-精简精简指令集计算机):改善结构,更加合理的提高运算速度。指令集计算机):改善结构,更加合理的提高运算速度。除判断转移指令,其他指令都是单周期指令。寻址方式除判断转移指令,其他指令都是单周期指令。寻址方式简单,指令代码压缩率高简单,指令代码压缩率高101K字节的存字节的存储器空间储器空间PIC系系列单片机能列单片机能够存放够存放1024条指令条指令MCS-51 系列单片系列单片机大约只能机大约只能存放存放600条条指令指令1.6 1.6 PICPIC单片机特点单片机特点3 3、内嵌、内嵌DSP DSP 引擎:引擎:dsPICdsPIC 数字信号控制器(数字信号控制器(DSCDSC)系列内嵌)系列内嵌DSPDSP引擎,具备实现数字信引擎,具备实现数字信号处理器的基本功能,如号处理器的基本功能,如FFTFFT、FIRFIR滤波等。滤波等。4 4、CMOSCMOS工艺特性工艺特性功耗低功耗低电压范围宽电压范围宽工作温度范围宽:工作温度范围宽:-40-40 +125+125摄氏度摄氏度5 5、驱动能力强驱动能力强每个输出引脚可以驱动多达每个输出引脚可以驱动多达20-25mA20-25mA的负载的负载一般端口总驱动能力约一般端口总驱动能力约60-70mA60-70mA111.5 1.5 PICPIC单片机特点单片机特点6 6、接口丰富,能接口丰富,能实现各种功能各种功能I/OI/O口具有口具有20mA20mA的的驱动能力能力8 8路、路、1010位的位的ADAD转换 I2CI2C,SPISPI,USARTUSART,USBUSB,CANCAN接口接口 WDT(WDT(看看门狗狗)CCPCCP(脉(脉宽/捕捉捕捉/比比较)内置内置EEPROM EEPROM 3 3路定路定时器器多种中断源多种中断源 支持休眠的低功耗模式支持休眠的低功耗模式 流式的并行接口流式的并行接口 内置内置LCDLCD控制器控制器 芯片加密芯片加密 12131.61.6 PICPIC单片机命名规则单片机命名规则1 1、8 8位位PICPIC单片机编号包括下列单片机编号包括下列5 5个部分:个部分:2 2、器件类型和代号关系、器件类型和代号关系 代号类型CCMOSLC低功耗CMOSCRCMOS ROMLCR低功耗CMOS ROMLV低电压FFLASH程序存储器FRFLEX ROMPICXXXXXXX -XX X /XX XXX 器件类型 振荡频率 温度 封装 存储器编程方式141.61.6 PICPIC单片机命名规则单片机命名规则3 3、振荡方式、振荡方式/频率和代号关系:频率和代号关系:4 4、温度与代号关系:、温度与代号关系:代号代号振荡方式振荡方式/频率频率LPLP低频低功耗晶体振荡低频低功耗晶体振荡RCRC低成本阻容振荡低成本阻容振荡XTXT标准晶体标准晶体/陶瓷振荡陶瓷振荡HSHS高速晶体高速晶体/陶瓷振荡陶瓷振荡02022MHZ2MHZ08084MHZ4MHZ202020MHZ20MHZ252525MHZ25MHZ333333MHZ33MHZ代号代号温度温度空白空白0 0 7070I I-40-40+85+85E E-40-40 +125+1251.61.6 PICPIC单片机命名规则单片机命名规则5 5、程序存储器编程方式、程序存储器编程方式EPROM:EPROM:可反复擦写,紫外线照射可反复擦写,紫外线照射2020分钟以上除去片上信息分钟以上除去片上信息E E2 2PROMPROM或或FLASHFLASH:可在线进行程序的反复擦写:可在线进行程序的反复擦写OTPOTP:一次编程方式:一个产品周期后降低成本用,专用设备完成:一次编程方式:一个产品周期后降低成本用,专用设备完成 烧写,适合小批量非定型产品烧写,适合小批量非定型产品QTPQTP:快速批量编程:快速批量编程SQTP SQTP:连续批量编程:连续批量编程ICSPICSP:电路内连续编程:电路内连续编程掩模掩模ROMROM:一个产品周期后降低成本用,适合大批量定型产品,必:一个产品周期后降低成本用,适合大批量定型产品,必 须请制造商借助专用设备完成须请制造商借助专用设备完成15161.61.6 PICPIC单片机命名规则单片机命名规则dsPIC30FdsPIC30F产品器件编号规则产品器件编号规则1.7 1.7 单片机开发流程单片机开发流程17PICPIC单片机原理及应用单片机原理及应用第第2章章 结构结构182.1 2.1 内部结构内部结构19CPU CPU 内核是器件运行内核是器件运行所必需的基本部分。所必需的基本部分。1.1.CPU CPU 2.2.数据存储器数据存储器3.3.程序存储器程序存储器4.4.DSP DSP 引擎引擎5.5.中断中断系统集成可以系统集成可以降低系统成降低系统成本提高系统可靠性提高本提高系统可靠性提高设计灵活性。设计灵活性。1.1.振荡器振荡器2.2.复位复位3.3.看门狗定时器和低功耗看门狗定时器和低功耗模式模式4.4.闪存和闪存和EEPROM EEPROM 编程编程5.5.器件配置器件配置6.6.低电压检测低电压检测外设功能是允许器件与外界交换信息。外设功能是允许器件与外界交换信息。1.I/O 1.I/O 端口端口2.2.定时器定时器 3.3.输入捕捉模块输入捕捉模块4.4.输出比较模块输出比较模块5.5.正交编码器接口(正交编码器接口(QEIQEI)6.10 6.10 位位AD AD 转换器转换器7.12 7.12 位位AD AD 转换器转换器8.UART 8.UART 模块模块 9.SPITM 9.SPITM 模块模块10.I2CTM 10.I2CTM 模块模块11.CAN 11.CAN 模块模块12.12.数据转换器接口(数据转换器接口(DCI DCI)模块)模块2020212.2 CPU 2.2 CPU 内核内核uCPU CPU 内核采用内核采用16 16 位(数据)改良的哈佛架构,并带有增强型指令位(数据)改良的哈佛架构,并带有增强型指令集包含对集包含对DSP DSP 的有力支持。的有力支持。uCPU CPU 拥有拥有24 24 位指令字,指令字带有长度可变的操作码字段。位指令字,指令字带有长度可变的操作码字段。u程序计数器(程序计数器(PCPC)为)为24 24 位宽,可以寻址高达位宽,可以寻址高达4M 24 4M 24 位的用户位的用户程序存储器空间。程序存储器空间。u单周期指令预取机制用来帮助维持吞吐量并提供可预测的执行。单周期指令预取机制用来帮助维持吞吐量并提供可预测的执行。u除了改变程序流的指令、双字移动(除了改变程序流的指令、双字移动(MOV.DMOV.D)指令和表指令以外,)指令和表指令以外,所有指令都在单个周期内执行。使用所有指令都在单个周期内执行。使用DO DO 和和REPEAT REPEAT 指令支持无开指令支持无开销的程序循环结构,这两个指令在任何时候都可被中断。销的程序循环结构,这两个指令在任何时候都可被中断。22232.2.1 2.2.1 算术逻辑单元(算术逻辑单元(ALUALU)dsPIC30F ALU dsPIC30F ALU 为为16 16 位宽,能进行加、减、单位移位和逻辑运算。除位宽,能进行加、减、单位移位和逻辑运算。除非特别指明,算术运算一般是以非特别指明,算术运算一般是以2 2 进制补码形式进行的。进制补码形式进行的。根据所使用的指令模式,根据所使用的指令模式,ALU ALU 可以执行可以执行8 8 位或位或16 16 位操作。根据指令位操作。根据指令的寻址模式,的寻址模式,ALU ALU 操作的数据可以来自操作的数据可以来自W W 寄存器阵列或数据存储器,寄存器阵列或数据存储器,输出数据可以被写入输出数据可以被写入W W 寄存器阵列或数据存储单元。寄存器阵列或数据存储单元。根据不同的操作,根据不同的操作,ALU ALU 可能会影响可能会影响SR SR 寄存器中的进位标志位(寄存器中的进位标志位(C C)、)、全零标志位(全零标志位(Z Z)、负标志位()、负标志位(N N)、溢出标志位()、溢出标志位(OVOV)和辅助进位标)和辅助进位标志位(志位(DCDC)的值。)的值。在减法操作中,在减法操作中,C C 和和DC DC 位分别作为借位和辅助借位位。位分别作为借位和辅助借位位。242.2.2 DSP 2.2.2 DSP 引擎引擎DSP DSP 引擎由引擎由一个高速一个高速17 17 位位x 17 x 17 位乘法器、一个桶形移位寄存器和一个位乘法器、一个桶形移位寄存器和一个40 40 位加法器位加法器/减法器减法器(两个目标累加器、舍入逻辑和饱和逻辑)组成。(两个目标累加器、舍入逻辑和饱和逻辑)组成。dsPIC30F dsPIC30F 器件采用单周期指令流,可以执行器件采用单周期指令流,可以执行DSP DSP 指令或指令或MCU MCU 指令。许多指令。许多硬件资源可以被硬件资源可以被DSP DSP 和和MCU MCU 指令共用。指令共用。DSP DSP 引擎的功能如下:引擎的功能如下:1.1.小数或整数小数或整数DSP DSP 乘法(乘法(IFIF)。)。2.2.有符号或无符号有符号或无符号DSP DSP 乘法(乘法(USUS)。)。3.3.常规或收敛舍入(常规或收敛舍入(RND RND)。)。4.ACCA 4.ACCA 自动饱和使能自动饱和使能/禁止(禁止(SATA SATA)。)。5.ACCB 5.ACCB 自动饱和使能自动饱和使能/禁止(禁止(SATB SATB)。)。6.6.对于写数据存储器,自动饱和使能对于写数据存储器,自动饱和使能/禁止(禁止(SATDW SATDW)。)。7.7.累加器饱和模式选择(累加器饱和模式选择(ACCSAT ACCSAT)。)。25262.2.3 2.2.3 除法除法支持支持16/16 16/16 位有符号小数除法运算,以及位有符号小数除法运算,以及32/16 32/16 位、位、16/16 16/16 位有符号位有符号和无符号整数除法运算,和无符号整数除法运算,除法形式均为单指令迭代除法。支持以下指令和数据长度:除法形式均为单指令迭代除法。支持以下指令和数据长度:1.DIVF1.DIVF16/16 16/16 有符号小数除法有符号小数除法2.DIV.sd2.DIV.sd32/16 32/16 有符号除法有符号除法3.DIV.ud3.DIV.ud32/16 32/16 无符号除法无符号除法4.DIV.s4.DIV.s16/16 16/16 有符号除法有符号除法5.DIV.u5.DIV.u16/16 16/16 无符号除法无符号除法除法指令必须在一个除法指令必须在一个REPEAT REPEAT 循环内执行。循环内执行。27 2.2.4 2.2.4 编程模型程模型由由1616个个16 16 位工作寄存器(位工作寄存器(W0W0至至W15 W15)、)、2 2个个4040位累加器(位累加器(ACCAACCA和和ACCBACCB)、状)、状态寄存器(态寄存器(SRSR)、数据表页寄存器()、数据表页寄存器(TBLPAG TBLPAG)、程序空间可视性页寄存器)、程序空间可视性页寄存器(PSVPAG PSVPAG)、)、DO DO 和和REPEAT REPEAT 寄存器寄存器DOSTART DOSTART、DOENDDOEND、DCOUNT DCOUNT 和和RCOUNTRCOUNT)以)以及程序计数器(及程序计数器(PCPC)组成。)组成。工作寄存器工作寄存器可作为数据、地址或偏移量寄存器。可作为数据、地址或偏移量寄存器。所有寄存器都是存储器映射的。所有寄存器都是存储器映射的。W0W0用作进行文件寄存器寻址的用作进行文件寄存器寻址的W W寄存器。寄存器。影子寄存器影子寄存器影子寄存器用作临时保持寄存器,事件发生时可在影子寄存器和主寄存器之间传影子寄存器用作临时保持寄存器,事件发生时可在影子寄存器和主寄存器之间传递内容。递内容。所有影子寄存器均不能直接访问。所有影子寄存器均不能直接访问。28 状态寄存器状态寄存器内核有一个内核有一个16 16 位状态寄存器(位状态寄存器(SRSR),其最低有效字节称为),其最低有效字节称为SR SR 低字节(低字节(SR SR Low ByteLow Byte,SRLSRL),其最高有效字节称为),其最高有效字节称为SR SR 高字节(高字节(SR High ByteSR High Byte,SRHSRH)。)。SRLSRL包含所有的包含所有的DSP ALU DSP ALU 运算状态标志位(包括运算状态标志位(包括Z Z 位),以及位),以及CPUCPU中断优先级中断优先级状态位状态位IPL IPL 和和REPEATREPEAT有效状态位有效状态位RARA。在异常处理期间,在异常处理期间,SRL SRL 与与PC PC 的的MSB MSB 连接起来形成一个完整的字值,然后将该连接起来形成一个完整的字值,然后将该字值压入堆栈。字值压入堆栈。SR SR 寄存器的高字节包含寄存器的高字节包含DSP DSP 加法器加法器/减法器状态位、减法器状态位、DO DO 循环有效位(循环有效位(DADA)和半进位()和半进位(DCDC)状态位。)状态位。程序计数器程序计数器程序计数器为程序计数器为23 23 位宽,位宽,bit 0 bit 0 始终清零;始终清零;因此,因此,PCPC能够寻址最多能够寻址最多4M 4M 指令字。指令字。29PUSH.S PUSH.S 和和POP.SPOP.S用于执行函数调用或中断服务程序用于执行函数调用或中断服务程序,W0W0、W1W1、W2W2、W3 W3 和和SR SR(仅限(仅限DCDC、N N、OVOV、Z Z 和和C C 位)是与之对应的影子寄存器,可进位)是与之对应的影子寄存器,可进行内容传递。行内容传递。DODO指令指令循环开始时,循环开始时,DOSTART DOSTART、DOEND DOEND 和和DCOUNTDCOUNT寄存器的内容压入影子寄寄存器的内容压入影子寄存器,在循环结束时其内容从各自的影子寄存器中弹出。存器,在循环结束时其内容从各自的影子寄存器中弹出。对工作寄存器进行字节操作时,只影响目标寄存器的低字节对工作寄存器进行字节操作时,只影响目标寄存器的低字节(Least Significant ByteLeast Significant Byte,LSB LSB)。)。3031322.2.5 2.2.5 软件堆栈指针软件堆栈指针/帧指针帧指针软件堆栈指针总是指向软件堆栈第一个可用的空字,并从低地址到高地址软件堆栈指针总是指向软件堆栈第一个可用的空字,并从低地址到高地址填充软件堆栈。堆栈出栈(读)时,堆栈指针先减;堆栈进栈(写)时,填充软件堆栈。堆栈出栈(读)时,堆栈指针先减;堆栈进栈(写)时,堆栈指针后加。堆栈指针后加。W15W15是专用的软件堆栈指针(是专用的软件堆栈指针(Stack PointerStack Pointer,SPSP),异常处理、子程序调),异常处理、子程序调用与返回时会自动修改用与返回时会自动修改W15 W15。W15 W15 也可被任何指令所引用,引用方式与引也可被任何指令所引用,引用方式与引用所有其他用所有其他W W 寄存器相同。寄存器相同。W14 W14 软件堆栈帧指针,因为通过使用软件堆栈帧指针,因为通过使用LNKLNK(link link,连接)和,连接)和ULNKunlink ULNKunlink,不连接)指令可以把它用作堆栈帧指针。当不用作帧指针时,不连接)指令可以把它用作堆栈帧指针。当不用作帧指针时,W14 W14 可被可被指令当作普通的工作寄存器使用。指令当作普通的工作寄存器使用。33342.2.5 CPU 2.2.5 CPU 寄存器描述寄存器描述pSRSR:CPU CPU 状态寄存器状态寄存器16 16 位状态寄存器(位状态寄存器(SRSR),它的低字节称为低状态寄存器),它的低字节称为低状态寄存器SRLSRL,的高字节称为,的高字节称为SRHSRH。SRL SRL 包含了所有的包含了所有的MCU ALU MCU ALU 操作状态标志,加上操作状态标志,加上CPU CPU 中断优先级状态位中断优先级状态位IPL IPL 和和REPEATREPEAT循环有效状态位循环有效状态位RARA(SRSR)。)。SRH SRH 包含包含DSP DSP 加法器加法器/减法器状态位、减法器状态位、DO DO 循环有效位循环有效位DA DA(SRSR)和辅助进)和辅助进位标志位位标志位DCDC(SRSR)。)。pCORCON CORCON:内核控制寄存器:内核控制寄存器CORCON CORCON 寄存器包含控制寄存器包含控制DSP DSP 乘法器和乘法器和DO DO 循环硬件操作的位。还包含循环硬件操作的位。还包含IPL3IPL3状状态位,它与态位,它与IPL IPL(SRSR)相连形成)相连形成CPU CPU 中断优先级。中断优先级。35pTBLPAG TBLPAG:表页寄存器:表页寄存器TBLPAG TBLPAG 寄存器用于在读表和写表操作过程中保存程序存储器地址的寄存器用于在读表和写表操作过程中保存程序存储器地址的高高8 8 位。表指令用于传输程序存储空间和数据存储空间之间的数据。位。表指令用于传输程序存储空间和数据存储空间之间的数据。pPSVPAG PSVPAG:程序空间可视性页寄存器:程序空间可视性页寄存器程序空间可视性允许用户将程序存储空间的程序空间可视性允许用户将程序存储空间的32 KB 32 KB 区域映射到数据地区域映射到数据地址空间的高址空间的高32 KB32 KB。此特性允许通过在数据存储器上操作的此特性允许通过在数据存储器上操作的dsPIC30F dsPIC30F 指令对常数数据进指令对常数数据进行透明访问。行透明访问。PSVPAG PSVPAG 寄存器选择映射到数据地址空间的程序存储空间的寄存器选择映射到数据地址空间的程序存储空间的32 KB 32 KB 区区域。域。pMODCON MODCON:模控制寄存器:模控制寄存器MODCON MODCON 寄存器用于使能并配置模寻址(循环缓冲)。寄存器用于使能并配置模寻址(循环缓冲)。36pXMODSRTXMODSRT,XMODENDXMODEND:X X 模起始和结束地址寄存器模起始和结束地址寄存器XMODSRT XMODSRT 和和XMODEND XMODEND 寄存器保持寄存器保持X X 数据存储地址空间中执行模(循环)数据存储地址空间中执行模(循环)缓冲的起始和结束地址。缓冲的起始和结束地址。pYMODSRTYMODSRT,YMODENDYMODEND:Y Y 模起始和结束地址寄存器模起始和结束地址寄存器YMODSRT YMODSRT 和和YMODEND YMODEND 寄存器保持寄存器保持Y Y 数据存储地址空间中执行模(循环)数据存储地址空间中执行模(循环)缓冲的起始和结束地址。缓冲的起始和结束地址。pXBREVXBREV:X X 模位反转寄存器模位反转寄存器XBREV XBREV 寄存器用于设置位反转寻址的缓冲区大小。寄存器用于设置位反转寻址的缓冲区大小。pDISICNT DISICNT:禁止中断计数寄存器:禁止中断计数寄存器DISI DISI 指令使用指令使用DISICNT DISICNT 寄存器将优先级为寄存器将优先级为1-61-6的中断在指定的几个周的中断在指定的几个周期内禁止。期内禁止。372.3.1 2.3.1 数据地址空间数据地址空间数据宽度为数据宽度为16 16 位。所有内部寄存器和数据空间存储器都是以位。所有内部寄存器和数据空间存储器都是以16 16 位宽位宽度组织的。度组织的。数据存储器数据存储器具有两个数据空间具有两个数据空间X X 和和Y Y 数据空间。数据空间可以看作是数据空间。数据空间可以看作是独立的或者看作是统一的线性地址范围。独立的或者看作是统一的线性地址范围。Y Y 空间是空间是X X 空间的子集,空间的子集,Y Y 空间完全包含在空间完全包含在X X 空间中。空间中。X X和和Y Y 空间要有连续的地址。空间要有连续的地址。使用两个地址发生单元(使用两个地址发生单元(AGUAGU)和独立的数据路径访问这两个数据空)和独立的数据路径访问这两个数据空间。间。2.3 2.3 数据存储器数据存储器380 x00000 x0000到到0 x07FF 0 x07FF 之间的地址之间的地址空间保留用于器件的特殊功能空间保留用于器件的特殊功能寄存器寄存器SFRSFR,包含,包含CPU CPU 和器件和器件上的外设的控制和状态位。上的外设的控制和状态位。RAM RAM 从地址从地址0 x08000 x0800开始,分成开始,分成两个区块,分别为两个区块,分别为X X 和和Y Y 数据数据空间。对于数据写操作,总是空间。对于数据写操作,总是将将X X 和和Y Y 数据空间作为一个线数据空间作为一个线性数据空间访问。对于数据读性数据空间访问。对于数据读操作,可以分别单独访问操作,可以分别单独访问X X 和和Y Y 存储器空间或将它们作为一存储器空间或将它们作为一个线性空间访问。个线性空间访问。0 x0000 0 x0000 到到0 x1FFF0 x1FFF之间之间8 KB 8 KB 的的地址空间称为地址空间称为Near Near 数据存储数据存储器。可通过所有文件寄存器指器。可通过所有文件寄存器指令中的令中的13 13 位绝对地址字段直位绝对地址字段直接对接对Near Near 数据存储器寻址。数据存储器寻址。39MCU MCU 指令访问指令访问:MCU MCU 指令将指令将X X 和和Y Y 存储器作为一个组合的数据空间访问存储器作为一个组合的数据空间访问.MCU.MCU 指令可以使用任何指令可以使用任何W W 寄存器作为地址指针进行读写操作。寄存器作为地址指针进行读写操作。DSP DSP 指令访问指令访问:在数据读过程中,在数据读过程中,DSP DSP 指令可以同时预取两个数据操作数,指令可以同时预取两个数据操作数,它将数据存储器分割为两个空间。它将数据存储器分割为两个空间。DSP DSP 类指令将类指令将Y Y 地址空间与整个数据空地址空间与整个数据空间隔开。间隔开。W10 W10 和和W11 W11 作为使用作为使用DSP DSP 类指令从类指令从Y Y 数据空间读取数据的地址指针。数据空间读取数据的地址指针。W8 W8 和和W9 W9 作为使用作为使用DSP DSP 类指令对类指令对X X 数据空间读取数据的地址指针。数据空间读取数据的地址指针。2.3.1 2.3.1 数据存储器访问方式数据存储器访问方式40dsPIC30F dsPIC30F 包含一个包含一个X AGU X AGU 和一个和一个Y AGU Y AGU 以产生数据存储器地址。以产生数据存储器地址。X X 和和Y AGU Y AGU 都可以产生任何都可以产生任何64 KB 64 KB 范围内的有效地址范围内的有效地址EAEA。对物理存储器范围以。对物理存储器范围以外的外的EA EA 进行数据写操无效。进行数据写操无效。X X 地址发生器单元地址发生器单元X AGU X AGU 可以被所有指令使用并支持所有寻址模式。可以被所有指令使用并支持所有寻址模式。X RAGU X RAGU 和和X WAGU X WAGU 都支持模寻址。只有都支持模寻址。只有X WAGU X WAGU 支持位反转寻址。支持位反转寻址。Y Y 地址发生器单元地址发生器单元Y Y 数据存储空间有一个数据存储空间有一个AGUAGU,支持从,支持从Y Y 数据存储空间进行数据读操作。从不使数据存储空间进行数据读操作。从不使用用Y Y 存储器总线进行数据写操作。存储器总线进行数据写操作。Y AGU Y AGU 和和Y Y 存储器总线的功能是支持存储器总线的功能是支持DSP DSP 类指令同时进行数据读操作。类指令同时进行数据读操作。对于使用对于使用Y AGU Y AGU 的的DSP DSP 类指令,类指令,Y AGU Y AGU 支持模寻址和后修改寻址模式支持模寻址和后修改寻址模式2.3.2 2.3.2 数据空间地址发生器单元数据空间地址发生器单元(AGUAGU)412.3.32.3.3地址发生器单元和地址发生器单元和DSP DSP 类指令类指令DSP DSP 类指令将类指令将Y AGU Y AGU 和和Y Y 存储器数据路径与存储器数据路径与X RAGU X RAGU 一起使用,从而一起使用,从而提供两条可同时对数据进行读操作的路径。提供两条可同时对数据进行读操作的路径。DSP DSP 类指令指定两个类指令指定两个W W 寄存器指针(寄存器指针(W8 W8 和和W9W9),总是通过),总是通过X RAGU X RAGU 进进行操作并寻址行操作并寻址X X 数据空间(不寻址数据空间(不寻址Y Y 数据空间)数据空间)另外指定两个另外指定两个W W 寄存器指针(寄存器指针(W10 W10 和和W11 W11),总是通过),总是通过Y AGU Y AGU 进行操进行操作并寻址作并寻址Y Y 数据空间(不寻址数据空间(不寻址X X 数据空间)。数据空间)。42 2.4 2.4 程序存储器程序存储器p程序地址空间程序地址空间程序地址空间为程序地址空间为4M4M*24*24 指令字。指令字。访问程序空间有三种可用的方法:访问程序空间有三种可用的方法:1.1.通过通过23 23 位位PCPC。2.2.通过读表(通过读表(TBLRDTBLRD)和写表)和写表 (TBLWTTBLWT)指令。)指令。3.3.通过把程序存储器的通过把程序存储器的32 KB 32 KB 段映射到数据存储器地址空间。段映射到数据存储器地址空间。程序存储器映射空间被划分为程序存储器映射空间被划分为 用户程序空间和用户配置空间用户程序空间和用户配置空间43PC PC 以以2 2 为增量,且为增量,且LSb LSb 置为置为“0 0”以使之与数据空间寻址相兼容。以使之与数据空间寻址相兼容。用用PC PC 在在4M 4M 程序存储器空间中对连续指令字寻址。每个指令字程序存储器空间中对连续指令字寻址。每个指令字为为24 24 位宽。位宽。程序存储器地址的程序存储器地址的LSbLSb(PC PC)保留为字节选择位,用于从使用程)保留为字节选择位,用于从使用程序空间可视性或表指令的数据空间访问程序存储器。序空间可视性或表指令的数据空间访问程序存储器。对于通过对于通过PC PC 取指的情况,不需要该字节选择位。取指的情况,不需要该字节选择位。PC PC 总是置为总是置为“0 0”。2.4.1 2.4.1 程序计数器程序计数器PCPC44表指令用于将字节或字大小的数据在程序空间和数据空间之间传送。表指令用于将字节或字大小的数据在程序空间和数据空间之间传送。读读表指令用于把数据从表指令用于把数据从程序存储器空间读入数据存储器空间程序存储器空间读入数据存储器空间。写写表指表指令可以把数据从令可以把数据从数据存储器空间写入程序存储器空间数据存储器空间写入程序存储器空间。对于表指令,程序存储器可以视作并排放置的两个对于表指令,程序存储器可以视作并排放置的两个16 16 位字宽的地址位字宽的地址空间,每个地址空间都有相同的地址范围,空间,每个地址空间都有相同的地址范围,TBLRDL TBLRDL 和和TBLWTL TBLWTL 访问程访问程序存储器的序存储器的LSLS数据字,而数据字,而TBLRDH TBLRDH 和和TBLWTHTBLWTH访问高位字。由于程序存访问高位字。由于程序存储器只有储器只有24 24 位宽,所以后一个字空间的高字不存在(虽然它是可寻位宽,所以后一个字空间的高字不存在(虽然它是可寻址的)。因此称之为址的)。因此称之为“虚拟虚拟”字节。字节。2.4.2 2.4.2 表指令方式读写表指令方式读写45可选择将可选择将数据存储器地址空间的高数据存储器地址空间的高32 KB 32 KB 空间映射到任何空间映射到任何16K 16K 字程序字程序空间页空间页,这种操作模式被称为程序空间可视性(,这种操作模式被称为程序空间可视性(PSVPSV),它提供对存),它提供对存储在储在X X 数据空间的常数数据的透明访问,而无需使用特殊指令(即,数据空间的常数数据的透明访问,而无需使用特殊指令(即,TBLRD TBLRD 和和TBLWTTBLWT指令)。指令)。PSV PSV 的配置的配置通过将通过将PSV PSV 位(位(CORCON CORCON)置)置1 1 使能程序空间可视性。当使能程序空间可视性。当PSVPSV使能使能时,在数据存储器映射空间上半部分的每个数据空间地址将直接映射时,在数据存储器映射空间上半部分的每个数据空间地址将直接映射到一个程序地址。到一个程序地址。PSV PSV 视窗允许访问该视窗允许访问该24 24 位程序字的低位程序字的低16 16 位。程序存储器数据的高位。程序存储器数据的高8 8 位应该编程,以强制对其的访问为非法指令或位应该编程,以强制对其的访问为非法指令或NOPNOP。2.4.3 2.4.3 来自数据空间的程序空间可视性来自数据空间的程序空间可视性46PSV PSV 地址的地址的15 15 个个LSb LSb 由包含有效由包含有效地址的地址的W W 寄存器提供。寄存器提供。W W 寄存器的寄存器的MSb MSb 不用于形成该地不用于形成该地址,而是用于指定是从程序空间址,而是用于指定是从程序空间执行执行PSV PSV 访问还是从数据存储器访问还是从数据存储器空间执行正常的访问。空间执行正常的访问。W W 寄存器有效地址大于或等于寄存器有效地址大于或等于0 x80000 x8000,使能,使能PSV PSV 时,数据访问时,数据访问会从程序存储器空间进行。会从程序存储器空间进行。当当W W 寄存器的有效地址小于寄存器的有效地址小于0 x8000 0 x8000 时,所有访问将从数据存时,所有访问将从数据存储器空间进行。储器空间进行。PSVPAG PSVPAG 位与位与W W 寄存器中保存有效寄存器中保存有效地址的地址的15 15 个个LSb LSb 相连形成一个相连形成一个23 23 位的程序存储器地址。位的程序存储器地址。PSV PSV 只能用来访问程序存储器空只能用来访问程序存储器空间中的值。间中的值。PICPIC单片机原理及应用单片机原理及应用第第3章章 系统集成系统集成47复位模复位模块结合了所有复位源并控制器件的主复位信号合了所有复位源并控制器件的主复位信号SYSRST。以下。以下列出了器件的复位源:列出了器件的复位源:.POR:上:上电复位复位。在。在检测到到VDD 电压上升上升时会会产生内部上生内部上电复位复位脉冲。复位脉冲会脉冲。复位脉冲会产生生10 s短短时间的延的延时,以确保内部器件偏置,以确保内部器件偏置电路路稳定。定。.EXTR:引脚复位(:引脚复位(MCLR)。只要。只要MCLR 引脚拉引脚拉为低低电平,平,输入脉入脉冲比冲比规定的最小定的最小宽度更度更长,当,当CLR 引脚被引脚被释放后,在下一个指令放后,在下一个指令时钟周期将周期将产生生SYSRST 信号并开始复位向量取指。信号并开