pic单片机总复习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

总复习1.2微型计算机系统的组成计算机的硬件通常包括运算器、存储器、控制器、输入设备及输出设备等五个部分一般的单片机的结构可以用图1.2所示的方块图描述,用三大总线(DB、AB、CB)实现模块之间的信息传递。单片机内部结构单片机的类别(续2)•按指令和它们的执行过程,把单片机也分为两种架构:复杂指令集架构(CISC)和精简指令集架构(RISC)。–复杂指令集架构的特色是复杂任务的指令多样性和指令的变长度;在CISC中,每一条指令都是一个复杂的作业。–精简指令集架构的特色是指令少而简单,指令的长度都一样,以便实现流水线指令操作。RISC架构带来的是少数简单指令的集合,通过流水线交迭在一起,同时实现多种操作。PIC单片机架构哈佛结构•从同一存储器空间取指令和取操作数据.–限制了数据流量程序和数据存储器冯-纽曼结构8-位程序存储器数据存储器8-位12/14/16-位哈佛结构从两个独立的存储空间分别取指令和存取操作数.数据流量增加针对程序区和数据区可以设计不同的数据线宽度FlushFetch4FetchSUB_1•大部分单片机,其取指和执行过程是顺序进行的.•指令流水线的引入允许取指和执行可以同步进行.•使得指令可以在一个指令周期内执行.•程序分支例外(如GOTO,CALL或直接修改PC),这需两个指令周期.Tcy0Tcy1Tcy2Tcy3Tcy4PIC单片机架构指令流水线Execute1Fetch31.MOVLW55hFetch1Execute3Fetch2Execute2Fetch42.MOVWFPORTB3.CALLSUB_14.BSFPORTA,BIT3PIC单片机架构寄存器文档概念GeneralPurposeRegisters(RAM)OtherSFRsPORTAFSRSTATUSPCLTMR0INDFWRegisterALU数据存储器直接数据地址7操作码714-位字长的指令范例:RAM被看作是一组通用的寄存器.周边模块(I/O)也作为寄存器.所有的指令操作都可针对所有的寄存器.长字指令使得在指令中直接寻址寄存器.PIC16F877单片机架构程序存储器•最大8K字(13位)程序存储空间•程序空间按页面划分,每页2K字(11位);最多四页。•页面选择PCLATH4:3•复位向量地址0000h•中断向量地址0004hPage00000h0004h07FFhInterruptResetPage10800h0FFFhPage21000h17FFhPage31800h1FFFhPCLATH4:3=00PCLATH4:3=01PCLATH4:3=10PCLATH4:3=11数据存储器•四个存储体每个128字节•特殊功能寄存器•存储体选择通过Status中的RP0,1和IRP•512单元•368有效GPRGPRsSFRsBank0000h01Fh020h07FhGPRsSFRsBank1080h09Fh0A0h0FFh0F0hGPRsSFRsBank2100h11Fh120h17Fh170hGPRsSFRsBank3180h19Fh1A0h1FFh1F0hRP1:0RP1:0RP1:0RP1:0=00=01=10=11数据存储器:直接寻址•低7位的数据地址直接在指令中描述•高2位在STATUS寄存器中(又称寄存器组号BANK)指向目标寄存器的9位有效地址IRPRP1RP0OPCODETOPDZDCCSTATUS寄存器14位长指令fffffffRP1RP0fffffff7位来自指令2位来自STATUS寄存器IRPfffffffff间接寻址•用FSR寄存器作为8位地址指针•另外1位在STATUS中描述IRPRP1RP0TOPDZDCCfffffffSTATUS寄存器r8位FSR寄存器有效的9位地址8位来自FSR1位来自STATUS寄存器程序存储器:PC绝对寻址OPCODEkkkk14-位call和goto指令kkkkkkkkkkkkkkkkxxxkkxxxPCLATH寄存器有效的13-位程序存储器地址11-位来自指令2-位来自PCLATHkkkk通过CALL和GOTO修改PC(程序指针)PCH5PCL813-位程序指针PCLATH5内部数据总线8558movlwHIGH(Delay)movwfPCLATHmovlwLOW(Delay)movwfPCL*对于读PC值时:仅从PCL读低8位值,PCH不会被载入到PCLATH程序存储器:PC相对寻址数据传送类指令共有4条指令,主要功能是将数据从源地址(或立即数)传送至目标地址中。4.2.1数据传送类指令助记符操作说明影响的状态位MOVFf,df传送至dZMOVWFfW传送至f-MOVLWKK传送至w-SWAPFf,df半字节交换至d-算术运算类指令是PIC单片机指令系统中,承担运算功能的重要部分,共有6条指令。主要有加减指令、增量和减量指令4.2.2算术运算类指令助记符操作说明影响的状态位ADDWFf,dW加f至dC、DC、ZSUBWFf,df减W至dC、DC、ZADDLWKK加W至wC、DC、ZSUBLWKK减W至wC、DC、ZINCFf,df加1至dZDECFf,dF减1至dZ逻辑运算类指令是一组比较复杂的指令,形式较多,可以对位和字节进行逻辑操作。主要有与、或、异或、清零、置位、取反和左右移位等14条指令4.2.3逻辑运算类指令助记符操作说明影响的状态位CLRFff清零ZCLRW-W清零ZCLRWDT-WDT清零TO、PDBCFf,bf的b位清零-BSFf,bf的b位置1-RLFf,df带C左循环CRRFf,df带C右循环CANDWFf,dW与f至dZIORWFf,dW或f至dZXORWFf,dW异或f至dZANDLWKK与W至WZIORLWKK或W至WZXORLWKK异或W至WZCOMFf,dF取反至dZ控制转移类指令,是在指令系统中形式灵活、功能较强的一组指令,共11条。它们是构成程序循环和跳转的关键要素,一般可以分为有条件跳转和无条件跳转两大类。4.2.4控制转移类指令助记符操作说明CALLK调用k处子程序-GOTOK跳转至K处-INCFSZf,df加1至d,为0间跳-DECFSZf,df减1至d,为0间跳-BTFSCf,bf的b位,为0间跳-BTFSSf,bf的b位,为1间跳-RETFIE-中断返回-RETLWK子程序返回(K传递给w)-RETURN-子程序返回-NOP-空操作-SLEEP-进入休眠状态TO、PDADDWFf,dAddWandfANDWFf,dANDWandfCLRFfClearfCLRW-ClearWCOMFf,dComplementfDECFf,dDecrementfDECFSZf,dDecrementf,skipifzeroINCFf,dIncrementfINCFSZf,dIncrementf,skipifzeroIORWFf,dInclusiveORWandfMOVFf,dMovefMOVWFfMoveWtofNOP-NoOperationRRFf,dRotaterightfthroughcarryRLFf,dRotateleftfthroughcarrySUBWFf,dSubtractWfromfSWAPFf,dSwapnibblesoffXORWFf,dExclusiveORWandfBCFf,bBitclearfBSFf,bBitsetfBTFSCf,bBittestf,skipifclearBTFSSf,bBittestf,skipifsetSLEEP-GointostandbymodeCLRWDT-ClearwatchdogtimerRETLWkReturn,placeliteralinWRETFIE-ReturnfrominterruptRETURN-ReturnfromsubroutineCALLkCallsubroutineGOTOkGotoaddress(kis9-bit)MOVLWkMoveliteraltoWIORLWkInclusiveORliteralwithWADDLWkAddliteralwithWSUBLWkSubtractWfromliteralANDLWkANDliteralwithWXORLWkExclusiveORliteralwithWByte-OrientedOperationsBit-OrientedOperationsLiteralandControlOperationsf=FileRegister,k=literalvalue(8-bit),b=bitaddress0to7,d=destination(Worfileregister)PICmicro指令集汇总第6章汇编语言程序设计•子程序的设计•分支程序的设计•循环程序的设计•数据查表子程序•常用数学运算类子程序•EEPROM数据存储器•键盘显示接口设计基本端口内部结构基本端口内部结构存在”读—修改—写”指令问题。比如BCF/BSF指令,是从端口读入整个数据,然后对位修改,再写出。读入的数据可能不是原先输出值,可以用影子寄存器方式解决。中断逻辑EEIFEEIEADIFADIERCIFRCIETXIFTXIET0IFT0IEINTFINTERBIFRBIEPEIE....BCLIFBCLIEGIEInterrupttoCPUWake-up(ifinSLEEP)9.4中断相关的寄存器中断控制寄存器INTCON选项寄存器OPTION_REG第一外设中断屏蔽寄存器PIE1第一外设中断标志寄存器PIR1第二外设中断屏蔽寄存器PIE2第二外设中断标志寄存器PIR21.中断控制寄存器INTCON主要用于中断控制方式的设置。bit7bit6bit5bit4bit3bit2bit1bit0GIEPEIET0IEINTERBIET0IFINTFRBIF2.选项寄存器OPTION_REGbit7bit6bit5bit4bit3bit2bit1bit0RBPUINTEDGT0CST0SEPASPS2PS1PS0Bit6/INTEDG:外部中断INT触发信号边沿选择位。0:选择RB0/INT下降沿触发有效;1:选择RB0/INT上升沿触发有效。3.第一外围设备中断屏蔽寄存器PIE1bit7bit6bit5bit4bit3bit2bit1bit0PSPIEADIERCIETXIESSPIECCP1IETMR2IETMR1IE4.第一外围设备中断标志寄存器PIR1bit7bit6bit5bit4bit3bit2bit1bit0PSPIFADIFRCIFTXIFSSPIFCCP1IETMR2IFTMR1IF5.第二外围设备中断屏蔽寄存器PIE26.第二外围设备中断标志寄存器PIR2bit7bit6bit5bit4bit3bit2bit1bit0---EEIEBCLIE--CCP2IEbit7bit6bit5bit4bit3bit2bit1bit0---EEIFBCLIF--CCP2IF中断的现场保护ORG0004HMOVWFW_TEMP;保存WSWAPFSTATUS,WCLRFSTATUS;设置体0作为当前体MOVWFSTATUS_TEMP;保存STATUSMOVFPCLATH,W;保存PCLATHMOVWFPCLATH_TEMP……;各中断处理……;(中断服务子程序处理部分)MOVFPCLATH_TEMP,W;经过W转移MOVWFPCLATH;恢复PCLATH内容SWAPESTATUS_TEMP,WMOVWFSTATUS;恢复STATUS寄存器SWAPFW_TEMP,F;恢复WSWAPFW_TEMP,WRETFIE中断的现场恢复PIC16F877单片机配置3个定时器/计数器模块:定时器/计数器模块位宽分频器普通功能特别功能备注TMR08预分频器定时/计数通用目的TMR116预分频器定时/计数捕捉或输出比较低频时基振荡器TMR28预/后分频器定时脉宽调制CCP:输入捕捉、输出比较和PWM脉冲宽度调制功

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功