时间: 2024-07-10 17:04:22 | 作者: 华体会app怎么样
单片机的两种存储器模块:程序存储器与数据存储器。每个存储模块都有自己的数据总线,能在同一时间戳内对模块一同进行数据存储与指令操作。
中档系列单片机有一个13位的程序计数器,能够寻址8K×14位的程序存储空间。程序存储器总线位。由于一切的指令均为单字指令,所以一个具有8K×14位程序存储器的器材能够存储8K条指令。很易于确认是不是有足够的程序存储空间来完结应用程序。
中档系列单片机把程序存储器分红4页,每页2K字(0h-7FFh,、800h-FFFh、1000h-17FFh和1800h-1FFFh)。图6-1所示为程序存储器映射和一个8级深度硬件仓库。实践上单片机或许只完结了图中所示存储器的一部分,这与器材类型有关。关于单片机所供给的存储器,请查阅单片机的数据手册。
为了能在程序存储器页之间跳转,有必要修正程序计数器(PC)的高位。这是经过在PCLATH(程序计数器高位锁存器)中写入需求的值来完结的。假如指令接连运转,无需任何用户的干涉,程序计数器即能够跨过程序页面跨页。对那些程序存储器缺乏8K字的器材,拜访超越物理地址空间的存储单元时,会回到有用的程序存储空间。也便是说,在一个有4K字存储空间的单片机中,寻址17FFh实践便是寻址7FFh。2K字或更少程序存储空间的器材不需求分页。
关于任何单片机,复位都将使程序计数器指向地址0h,咱们称这个地址为“复位向量地址”,也便是单片机产生复位时,程序履行的进口地址。
任何复位操作都会将PCLATH寄存器的内容清零。这表明,复位向量地址(0h)处的任何搬运指令都将跳转到程序存储器的第0页(PAGE0)。
当呼应中止时,PC指向地址0004h,咱们称这个地址为“中止向量地址”。当PC指向中止向量时,PCLATH寄存器的值并不会被修正。这在某种程度上预示着,在中止服务程序中,在改写PC完结程序跳转前,应按意图地址所在的实践程序页面先设定PCLATH寄存器。在中止服务程序修正PCLATH寄存器前,应将原PCLATH的内容保存起来,以便从中止服务程序回来时康复PCLATH。
某些器材在程序存储器中存储标定信息。在器材终究测验时,Microchip将标定信息写入程序存储器。应用程序运用这些值能够得到更好的运转成果。标定信息一般放在程序存储器的结尾,并以RETLW指令方式完结,该指令所带的当即数便是标定信息。
*注:关于窗口型器材,在擦除器材内容前(同时会擦除标定信息),有必要先记下一切的标定值。这样在从头烧写器材时能康复标定值。主张将标定值写在封装上。
程序计数器指定要取出履行的指令的地址,其宽度为13位,其中低8位来自PCL寄存器,该寄存器可读写的,而高5位(PC12:8)来自PCH寄存器(不行直接读写)。PCH寄存器的值只能够经过PCLATH寄存器来更新。
程序的相对跳转指令是经过向程序计数器加一个偏移量来完结的(ADDWFPCL),当运用相对跳转指令办法对表进行读操作时,要注意表地址是否超越了PCL寄存器的寻址规模(每块256个字节)。
*注:对程序计数器(PCL)的任何写操作,都会使PCLATH的低五位装载到PCH中。
仓库答应8级深度的子程序嵌套调用和中止。仓库包含了程序履行分支的回来地址。
中档系列单片机有一个8级深度、13位宽的硬件仓库。仓库既不占用程序存储空间也不占用数据存储空间,栈指针不能读写。当履行CALL指令或呼应中止产生跳转时,PC值被压入仓库(PUSH)。而履行RETURN、RETLW或RETFIE指令时,PC值从仓库弹出(POP)。履行压栈或出栈操作时,不会修正PCLATH寄存器。压栈(PUSH)8次之后,进行第9次压栈时,进栈的数据将掩盖第1次压栈存储的数据,而第10次压栈时进栈的数据将掩盖第2次压栈存储的数据,依此类推。一个仓库被掩盖的比如如图6-3所示。
*注2:没有称为PUSH或POP的指令或助记符。而完结相似作用的操作是履行CALL、RETURN、RETLW和RETFIE指令,或转到中止向量地址。
某些器材的程序存储器空间大于2K字,可是CALL和GOTO指令只要11位地址规模,这11位地址只答应在2K存储空间规模内跳转。为了使CALL和GOTO指令能够拜访整个8K的程序存储地址规模,有必要有别的两位来指定程序存储器页。将PCLATH4:3位作为页面挑选位(图6-2)。在履行CALL或GOTO指令前,用户有必要保证正确设置页面挑选位PCLATH4:3,以便指向需求的程序存储页面(图6-2)。当履行一条回来指令时,整个13位PC地址值都从仓库弹出,不需求再对PCLATH4:3位进行设置。
*注:当器材的程序存储器空间小于或等于2K字时,可疏忽用来存取有多个页面的程序存储器的页面挑选位(PCLATH4:3)。但不引荐将PCLATH4:3位作为一般读写位运用,由于这样做或许会影响与将来产品的向上兼容性。关于程序存储器空间在2K到4K字之间的器材,可疏忽页面挑选位PCLATH4,由于它是用来寻址2、3页(1000h~1FFFh)的。一般也不引荐将PCLATH4作为一般读写位运用,由于这样做或许会影响与将来产品的向上兼容性。
例6-1是调用在程序存储器第1页上子程序的比如。本例倘若PCLATH寄存器由中止服务程序保存和康复(若运用了中止)。