8051点击型号即可查看芯片规格书
MCS-51点击型号即可查看芯片规格书
256点击型号即可查看芯片规格书
1024点击型号即可查看芯片规格书
512点击型号即可查看芯片规格书
一般说明
,具有重新设计的处理器核心,无需浪费时钟和内存周期。因此,在相同的晶体速度下,它执行每8051条指令的速度都比原来的8051快。通常,W77L516A的指令执行时间是传统8051的1.5到3倍,这取决于指令的类型。一般来说,在相同的晶体速度下,整体性能比原来的要好2.5倍。在时钟速度较低的情况下,同样的吞吐量可以提高功耗。因此,W77L516A是一种完全静态的CMOS设计;它也可以在较低的晶体时钟上工作。W77L516A包含系统内可编程(ISP)64 kb AP闪存EPROM;用于加载程序的4kb LD闪存EPROM;工作电压从2.7V到5.5V;片上1 kb MOVX SRAM;两种节能模式。
2。特征
•8位CMOS微控制器
•4个时钟/机器周期的高速架构,运行频率高达25兆赫
•销与标准80C52兼容
•与MCS-51兼容的指令集
•四个8位I/O端口;端口0具有由软件启用的内部上拉电阻
•一个额外的4位I/O端口和等待状态控制信号(可在44针PLCC/QFP包上获得)
•三个16位计时器
•12个具有两个优先级的中断源
•片内振荡器和时钟电路
•两个增强型全双工串行端口
•64kb系统可编程闪存EPROM(apflash)
•加载程序(ldflash)用4KB辅助闪存EPROM
•256字节的临时内存
•用于MOVX指令的1 kb片上SRAM
•可编程看门狗定时器
•软件重置
•双16位数据指针
•外部RAM/外设的软件可编程访问周期
•包装:
-无铅(RoHS)DIP 40:W77L516A25DL
-无铅(RoHS)PLCC 44:W77L516A25PL
−无铅(RoHS)QFP 44:W77L516A25FL
三。销配置
5。功能描述
W77L516A与8052针兼容,与指令集兼容。它包括标准8052的资源,例如四个8位I/O端口、三个16位定时器/计数器、全双工串行端口和中断源。
W77L516A具有更快的运行速度和更好的性能,8位CPU采用重新设计的核心处理器,无需浪费时钟和内存周期。它不仅通过在高频下运行,而且通过将机器周期从12个时钟的标准8052周期缩短到大多数指令的4个时钟周期来提高性能。这将使性能平均提高1.5到3倍。W77L516A还提供双数据指针(DPTRS),以加速块数据内存传输。它还可以在两个机器周期和九个机器周期之间调整MOVX指令(访问片外数据存储器)的持续时间。这种灵活性使W77L516A能够高效地与快速和慢速的RAM以及外围设备一起工作。此外,W77L516A包含片上1KB MOVX SRAM,地址在0000H和03FFH之间。它只能通过MOVX指令访问;该片上SRAM在软件控制下是可选的。
W77L516A是一种8052兼容设备,它为用户提供了原8052设备的功能,但具有改进的速度和功耗特性。它与8051系列具有相同的指令集,增加一个:DEC DPTR(操作代码A5H,DPTR减少1)。虽然最初的8051系列设计为每台机器循环运行12个时钟周期,但W77L516A的运行速度大大降低,每台机器循环仅运行4个时钟周期。这自然会加速指令的执行。因此,与原来的8052相比,W77L516A可以以更高的速度运行,即使使用相同的晶体。由于W77L516A是一种完全静态的CMOS设计,它也可以在较低的晶体时钟下运行,在指令执行方面提供相同的吞吐量,同时降低功耗。
W77L516A中的每机器周期4个时钟功能负责将执行速度提高三倍。W77L516A具有8052的所有标准功能,并具有一些额外的外设和功能。
输入输出端口
W77L516A有四个8位端口和一个额外的4位端口。当外部程序运行或MOVC或MOVX指令访问外部存储器/设备时,端口0可用作地址/数据总线。在这些情况下,它有强大的拉起和下拉,不需要任何外部拉起。否则,它可以作为一个具有开路漏极电路的通用I/O端口。当端口0用作地址/数据总线时,端口2主要用作地址总线的上8位。当它作为地址总线时,它还具有强大的上拉和下拉功能。端口1和3作为具有备用功能的I/O端口。端口4仅在44针PLCC/QFP封装类型上可用。它是一个通用的用途
I/O端口作为端口1和端口3。P4.0有一个备用功能cp rl/2,它是等待状态控制信号。当启用等待状态控制信号时,仅输入P4.0。
串行输入输出
W77L516A有两个增强型串行端口,其功能与原8052系列的串行端口相似。但是,W77L516A上的串行端口也可以在不同的模式下工作,以获得时间相似性。注意,串行端口0可以使用定时器1或2作为波特率生成器,但串行端口1只能使用定时器1作为波特率生成器。串行端口具有自动地址识别和帧错误检测的增强功能。
计时器
W77L516A有三个16位计时器,其功能与8052系列的计时器相似。当用作计时器时,可以将其设置为每计数运行4个时钟或12个时钟,从而为用户提供在模拟原始8052的计时模式下运行的选项。W77L516A有一个附加功能,即看门狗定时器。此计时器用作系统监视器或非常长的时间段计时器。
中断
W77L516A的中断结构与标准8052略有不同。由于存在额外的特性和外设,中断源和向量的数量增加了。W77L516A提供12个具有两个优先级的中断资源,包括6个外部中断源、计时器中断、串行I/O中断。
数据指针
原来的8052只有一个16位数据指针(dpl,dph)。在W77L516A中,还有一个额外的16位数据指针(DPL1、DPH1)。这个新的数据指针使用两个在原来的8052中未使用的SFR位置。此外,还有一个附加的指令DEC DPTR(操作代码A5H),它有助于提高用户的编程灵活性。
电源管理
与标准80C52一样,W77L516A也具有空闲和断电操作模式。W77L516A提供了一种新的经济模式,允许用户将内部时钟速率除以4、64或1024。在空闲模式下,CPU核心的时钟停止,而定时器、串行端口和中断时钟继续工作。在断电模式下,所有时钟停止,芯片操作完全停止。这是最低功耗状态。
片上数据SRAM
W77L516A具有1K字节的数据空间SRAM,可以读/写,并且内存映射。该片上MOVX SRAM由MOVX指令实现。它不用于可执行程序内存。256字节的草稿板RAM和1K字节的MOVX SRAM之间没有冲突或重叠,因为它们使用不同的寻址模式和单独的指令。片上MOVX SRAM通过设置PMR寄存器中的DME0位来启用。复位后,DME0位被清除,这样片上MOVX SRAM被禁用,所有数据存储器空间0000h−ffffh访问外部存储器。
6。内存组织
W77L516A将存储器分为两个独立的部分,即程序存储器和数据存储器。程序存储器用于存储指令操作码,而数据存储器用于存储数据或存储映射设备。
程序存储器
标准8052上的程序内存只能寻址到64千字节长。所有指令都是从这个内存区域中获取执行的。MOVC指令也可以访问这个内存区域。在系统编程(ISP)中有一个辅助的4KB闪存EPROM组(ldflash)驻留用户加载程序。apflash允许根据ldflash中的用户加载程序进行串行或并行下载。
数据存储器
W77L516A可以访问多达64kbytes的外部数据内存。MOVX指令可以访问这个内存区域。与8051系列不同,W77L516A包含数据存储器的片上1K字节MOVX SRAM,只能由MOVX指令访问。SRAM的这1K字节在地址0000H和03FFH之间。在软件控制下,可选择访问片上MOVX SRAM。当软件启用时,任何使用此区域的MOVX指令都将转到片上RAM。大于03ffh的MOVX地址通过端口0和2自动转到外部内存。禁用时,1KB内存区域对系统内存映射是透明的。任何指向0000H和FFFFH之间的空间的MOVX都将转到端口0和2上的扩展总线。这是默认条件。此外,W77L516A具有标准的256字节片上草稿板RAM。这可以通过直接寻址或间接寻址来访问。还有一些特殊的功能寄存器(SFR),只能通过直接寻址访问。因为草稿行RAM只有256个字节,所以只能在数据内容很小时使用。如果存在较大的数据内容,可以使用两个选项。一个是片上MOVX SRAM,另一个是外部数据存储器。片上MOVX SRAM只能由MOVX指令访问,与外部数据存储器相同。然而,片上RAM具有最快的访问时间。
特殊功能寄存器
W77L516A使用特殊功能寄存器(SFR)来控制和监视外围设备及其模式。
SFR位于寄存器位置80 ffh中,仅通过直接寻址访问。有些SFR是位可寻址的。如果一个人希望在不更改其他位的情况下修改特定位,那么这非常有用。位可寻址的SFR是地址以0或8结尾的SFR。W77L516A包含标准8052中的所有SFR。但是,增加了一些额外的SFR。在某些情况下,原始8052中未使用的位被赋予了新的功能。SFR列表如下。该表每行压缩八个位置。空位置表示这些地址没有寄存器。当一个位或寄存器没有实现时,它将读得很高。
指令定时
W77L516A的指令定时是一个重要方面,特别是对于那些希望使用软件指令来产生定时延迟的用户。此外,它还为用户提供了一个洞察W77L516A和标准8032之间时间差异的视角。在W77L516A中,每个机器周期长四个时钟周期。每个时钟周期都被指定为一个状态。因此,每个机器循环由四种状态组成,依次为C1、C2、C3和C4。由于每个指令执行的时间都缩短了,两个时钟边缘都用于内部计时。因此,时钟的工作周期应尽可能接近50%,以避免时间冲突,这一点很重要。如前所述,W77L516A对每个机器周期执行一次操作代码提取。因此,在大多数指令中,执行指令所需的机器周期数等于指令中的字节数。在256个可用的操作码中,128个是单周期指令。因此,W77L516A中超过一半的操作码仅在四个时钟周期内执行。两个周期指令中的大多数都是具有两个字节指令代码的指令。然而,有些指令只有一个字节指令,但它们是两个循环指令。最重要的一条指令是movx指令。在标准8032中,MOVX指令总是两个机器周期长。但是,在W77L516A中,用户有一个延长此持续时间的功能
从2个机器周期到9个机器周期的说明。RD和WR频闪线也按比例延长。这使得用户在不使用外部电路和最低的软件开销的情况下,能够灵活地访问快速和缓慢的外围设备。其余指令为三、四或五个机器循环指令。请注意,在W77L516A中,根据机器循环次数,有五种不同的类型,而在标准8032中只有三种。然而,在W77L516A中,与标准8032的12个时钟周期相比,每个机器周期仅由4个时钟周期组成。因此,即使类别数量有所增加,每个指令的时钟周期至少比标准8032快1.5到3倍
MOVX指令
W77L516A与标准8032一样,使用MOVX指令访问外部数据存储器。该数据存储器包括片外存储器和存储器映射的外围设备。虽然movx指令的结果与标准8032中的结果相同,但是为了给用户更大的灵活性,对选通信号的操作和定时进行了修改。
movx指令有两种类型,movx@ri和movx@dptr。在movx@ri中,外部数据的地址来自两个源。地址的低8位存储在所选工作寄存器组的RI寄存器中。地址的上8位来自端口2 SFR。在movx@dptr类型中,完整的16位地址由数据指针提供。
由于W77L516A有两个数据指针,即dptr和dptr1,因此用户必须通过设置或清除dps位在这两个指针之间进行选择。数据指针选择位(DPS)是DPS SFR的LSB,它存在于位置86H。此SFR中没有任何其他位具有任何效果,并且它们设置为0。当dps为0时,则选择dptr;当设置为1时,则选择dptr1。用户可以通过切换DPS位在DPTR和DPTR1之间切换。最快的方法是使用inc指令。在执行块移动操作时,拥有两个数据指针的优势最为明显。随附的代码显示了如何使用两个单独的数据指针来加快执行同一任务的代码的执行时间。
指令中,W77L516A提供了另一个硬件信号等待,以实现更长的外部数据访问时间。此等待状态控制信号是P4.0的备用功能,因此只能调用44针PLCC/QFP包类型。等待状态控制信号可以通过设置ws(wscon.7)位来启用。启用时,拉伸值的设置决定
MOVX指令周期的最小长度,在MOVX指令期间,设备将在读/写选通信号上升沿之前对每个C3状态的等待引脚进行采样。一旦识别出该信号,将在下一个循环中再插入一个机器循环(等待状态循环)。插入的等待状态周期是不受限制的,因此MOVX指令周期将在等待状态控制信号被停用的情况下结束。使用等待状态控制信号允许动态访问选定外部外围设备的定时。WS位由定时访问保护过程访问。
设置ws位和拉伸值=0以启用等待信号。
电源管理
W77L516A具有几个功能,帮助用户控制设备的功耗。省电功能基本上有掉电模式、经济模式和空闲运行模式。
空闲模式
用户可以将1写入位pcon.0,将设备置于空闲模式。设置空闲位的指令是设备进入空闲模式前将执行的最后一条指令。在空闲模式下,CPU的时钟被暂停,而不是中断、定时器、看门狗定时器和串行端口块。这将强制CPU状态冻结;程序计数器、堆栈指针、程序状态字、累加器和其他寄存器保存它们的内容。ALE和PSEN销在空闲状态下保持高位。端口端号保存了空闲激活时的逻辑状态。空闲模式可以通过两种方式终止。由于中断控制器仍处于活动状态,激活任何已启用的中断都可以唤醒处理器。这将自动清除空闲位,终止空闲模式,并执行中断服务程序(ISR)。ISR之后,程序的执行将从使设备进入空闲模式的指令继续进行。
也可以通过激活重置退出空闲模式。通过在外部RST引脚上施加高电平、通电重置条件或看门狗定时器重置,可以将设备重置。外部复位销必须保持在高位至少两个机器周期,即8个时钟周期,才能被识别为有效复位。在重置条件下,程序计数器重置为0000H,所有SFR设置为重置条件。因为时钟已经在运行,所以没有延迟,执行立即开始。在空闲模式下,看门狗定时器继续运行,如果启用,超时将导致看门狗定时器中断,从而唤醒设备。软件必须重置看门狗定时器,以便抢占在512个时钟周期后发生的重置。当W77L516A通过重置从空闲模式退出时,不会执行将设备置于空闲模式的指令。所以不存在意外写入的危险。
经济模式
微控制器的功耗与工作频率有关。W77L516A提供了一种经济模式,可以在没有外部组件的情况下动态降低内部时钟速率。默认情况下,一个机器周期需要4个时钟。在经济模式下,软件可以选择每个机器周期4、64或1024个时钟。它使CPU以可接受的速度运行,但消除了功耗。在空闲模式下,核心逻辑的时钟停止,但所有时钟外围设备(如看门狗定时器)仍以时钟/4的速率运行。在经济模式下,所有时钟外设的运行速度与核心逻辑相同。因此,经济模式比空闲模式提供更低的功耗。
指令速率的选择将在一个指令周期延迟后生效。切换到除以64或1024模式必须首先从除以4模式转到。这意味着软件不能在时钟/64和时钟/1024模式之间直接切换。CPU必须先返回clock/4模式,然后转到clock/64或clock/1024模式。
在经济模式下,由于波特率变化,串行端口无法正确接收/传输数据。在某些系统中,外部中断可能需要最快的过程,从而限制操作速度的降低。为了解决这些难题,W77L516A提供了一个切换功能,允许CPU在串行操作或外部中断触发时立即返回时钟/4模式。通过设置SWB位(PMR.5),可启用切换功能。一个串行端口接收/传输或合格的外部中断,在没有阻塞条件的情况下被启用和确认,将导致CPU返回除以4的模式。对于串行端口接收,如果启用串行端口接收,则由与起始位相关的下降沿生成切换。当串行端口传输时,将一个字节数据写入串行端口缓冲区的指令将导致一个切换,以确保正确的传输。回切功能不受串行端口中断标志的影响。在产生切换后,软件可以手动将CPU返回到经济模式。请注意,当启用切换时,串行端口发送/接收期间将忽略对时钟控制位CD0和CD1的修改。看门狗定时器复位、上电/故障复位或外部复位将强制CPU返回除以4模式。
断电模式
通过将1写入位PCON,该设备可以进入掉电模式。执行此操作的指令将是设备进入关机模式之前要执行的最后一条指令。在断电模式下,所有时钟停止,设备停止。所有活动都完全停止,功耗降低到可能的最低值。在这个州,麦芽酒和PSEN销被拉低。端口引脚输出各自的SFR所保持的值。
W77L516A将通过重置或通过启用为电平检测的外部中断引脚退出断电模式。外部复位可用于退出断电状态。RST引脚上的高电平终止掉电模式,并重新启动时钟。程序执行将从0000h重新开始。在关机模式下,时钟停止,因此看门狗定时器不能提供重置以退出关机模式。
W77L516A可通过强制激活外部中断引脚从断电模式唤醒,前提是相应的中断已启用,同时设置了全局启用(EA)位并且外部输入已设置为水平检测模式。如果满足这些条件,则外部引脚上的低电平重新启动振荡器。然后设备为相应的外部中断执行中断服务程序。中断服务程序完成后,程序执行返回到将设备置于关机模式后的指令,然后继续执行。
外部重置
该装置在每个机器循环的C4状态下连续采样第一个管脚。因此,必须将RST销保持至少2个机器循环,以确保检测到有效的RST高。然后,复位电路同步应用内部复位信号。因此,复位是一种同步操作,需要运行时钟来进行外部复位。
一旦设备处于复位状态,只要RST为1,它将保持不变。即使在RST被停用后,设备仍将继续处于复位状态长达两个机器周期,然后从0000H开始执行程序。没有与外部复位条件相关的标志。但是,由于其他两个重置源具有标志,如果清除了这两个标志,则外部重置可被视为默认重置。
软件必须在读取后清除por标志,否则将无法正确确定未来的重置源。如果电源故障,即低于VRST,设备将再次进入复位状态。当电源恢复到正常工作水平时,设备将再次执行开机复位延迟并设置POR标志。
看门狗定时器复位
看门狗定时器是一个自由运行的定时器,具有可编程的超时间隔。用户可以随时清除看门狗定时器,使其重新开始计数。当达到超时间隔时,将设置中断标志。如果看门狗重置被启用,并且看门狗定时器没有被清除,那么从正在设置的标志中有512个时钟,看门狗定时器将生成重置。这将使设备进入重置状态。复位条件由硬件维持两个机器周期。一旦重置被移除,设备将从0000H开始执行。
复位状态
设备上的大多数SFR和寄存器将在重置状态下进入相同的状态。程序计数器被强制设置为0000h,并且只要应用了重置条件,计数器就保持在那里。但是,复位状态不影响片上RAM。在复位过程中,RAM中的数据将被保存。但是,堆栈指针重置为07h,因此堆栈内容将丢失。如果VDD低于约2V,RAM内容将丢失,因为这是RAM正常运行所需的最低电压水平。因此,第一次通电复位后,RAM内容将不确定。在电源故障情况下,如果电源低于2V,RAM内容将丢失。
重置后,大多数SFR被清除。中断和计时器被禁用。如果重置源是一个por,则看门狗定时器将被禁用。端口SFR写入了FFH,使端口插针处于高状态。端口0浮动,因为它没有片上拉断和正在进行的指令。如果外部中断为int0到int5,则在每个机器周期的c3处对其进行采样,然后设置或重置其相应的中断标志iex。计时器0和1溢出标志设置在发生溢出的机器周期的c3处。这些标志值仅在下一个机器循环中被轮询。如果一个请求处于活动状态并且满足所有三个条件,则执行硬件生成的lcall。此lcall本身需要完成四个机器周期。因此,在设置中断标志和执行中断服务程序之间至少有五个机器周期。
如果不满足这三个条件中的任何一个,则应预期更长的响应时间。如果服务的优先级高于或等于,那么中断延迟时间显然取决于当前正在执行的服务例程的性质。如果轮询周期不是正在执行的指令的最后一个机器周期,则会引入额外的延迟。如果W77L516A正在对IE、IP、EIE或EIP执行写操作,然后执行MUL或DIV指令,则会出现最大响应时间(如果没有其他中断在服务中)。从激活中断源开始,最长的反应时间是12个机器周期。这包括1个机器周期来检测中断,2个机器周期来完成IE、IP、EIE或EIP访问,5个机器周期来完成MUL或DIV指令,4个机器周期来完成硬件LCall到中断向量位置。
因此,在单个中断系统中,中断响应时间总是超过5个机器周期,而不超过12个机器周期。12个机器周期的最大延迟为48个时钟周期。注意,在标准8051中,最大延迟是8个机器周期,相当于96个机器周期。就时钟周期而言,这将减少50%。
可编程定时器/计数器
W77L516A有三个16位可编程定时器/计数器和一个可编程看门狗定时器。看门狗定时器在操作上与其他两个定时器截然不同。
计时器/计数器0和1
W77L516A有两个16位定时器/计数器。每个定时器/计数器都有两个8位寄存器,构成16位计数寄存器。对于定时器/计数器0,它们是th0、高位8位寄存器和tl0、低位8位寄存器。同样,定时器/计数器1有两个8位寄存器,th1和tl1。这两个可以配置为作为计时器、计数机器周期或作为计数器计数外部输入。
当配置为“计时器”时,计时器计数时钟周期。定时器时钟可编程为系统时钟的1/12或系统时钟的1/4。在“计数器”模式下,寄存器在外部输入引脚的下降沿递增,在定时器0的情况下为t0,在定时器1的情况下为t1。在C4的每个机器循环中,对T0和T1输入进行采样。如果采样值在一个机器循环中是高的,在下一个机器循环中是低的,则识别出管脚上的有效高-低转换,计数寄存器递增。由于需要两个机器周期来识别管脚上的负过渡,因此进行计数的最大速率是主时钟频率的1/24。在“计时器”或“计数器”模式下,计数寄存器将在c3更新。因此,在“定时器”模式下,引脚t0和T1上的可识别负转换可导致计数寄存器值仅在检测到负边的机器循环中更新。
“定时器”或“计数器”功能由TMOD特殊功能寄存器中的“C/T”位选择。每个定时器/计数器都有一个选择位,TMOD的第2位选择定时器/计数器0的功能,TMOD的第6位选择定时器/计数器1的功能。此外,每个定时器/计数器可设置为在四种可能模式中的任何一种模式下工作。模式选择由TMOD SFR中的m0和m1位完成。
时基选择
W77L516A为用户提供两种定时器操作模式。定时器可以编程为像标准8051系列那样工作,以时钟速度的1/12计数。这将确保W77L516A和标准8051上的正时环路可以匹配。这是W77L516A计时器的默认操作模式。用户还可以选择在turbo模式下计数,计时器将以1/4时钟速度递增。这将立即将计数速度提高三倍。该选择由CKCON SFR中的T0M和T1M位完成。复位将这些位设置为0,然后定时器在标准8051模式下工作。如果定时器要在涡轮模式下工作,用户应将这些位设置为1。
模式0
在模式0中,定时器/计数器作为8位计数器,5位,除以32个预刻度。在这种模式下,我们有一个13位定时器/计数器。13位计数器由THX的8位和TLX的5个低位组成。TLX的高3位被忽略。
时钟的负边缘增加了TLX寄存器中的计数。当TLX中的第五位从1移动到0时,THX寄存器中的计数就会增加。当thx中的计数从ffh移动到00h时,则会设置tcon sfr中的溢出标志tfx。只有当TRX设置为gate=0或intx=1。当C/T设置为0时,它将计算时钟周期,
如果c/t设置为1,则计时器0的t0(p3.4)上的转换计数为1到0,计时器1的t1(p3.5)上的转换计数为1到0。当13位计数达到1ffh时,下一个计数将使其滚动到0000h。设置相关计时器的计时器溢出标志tfx,如果启用,将发生中断。注意,当用作计时器时,时基可以是时钟周期/12或时钟周期/4,由CKCON SFR的位txm选择。
模式1
模式1与模式0相似,只是计数寄存器形成一个16位计数器,而不是一个13位计数器。这意味着使用了THX和TLX的所有位。当计时器从ffffh计数移动到0000h时,发生翻滚。相关计时器的计时器溢出标志tfx已设置,如果启用,将发生中断。定时器模式下的时基选择与模式0中的时基选择相似。门函数的操作与模式0中的操作类似。
模式2
在模式2中,计时器/计数器处于自动重新加载模式。在这种模式下,TLX充当一个8位计数寄存器,而THX则保存重载值。当tlx寄存器从ffh溢出到00h时,将设置tcon中的tfx位,并用thx的内容重新加载tlx,计数过程从这里继续。重新加载操作使THX寄存器的内容保持不变。计数是由TRX位和正确设置门和intx管脚启用。与其他两种模式一样,0和1模式2允许对时钟周期(时钟/12或时钟/4)或针tn上的脉冲进行计数。
模式3
模式3对两个计时器/计数器有不同的操作方法。对于计时器/计数器1,模式3仅冻结计数器。但是,定时器/计数器0将TL0和TH0配置为两个单独的8位计数寄存器。此模式的逻辑如图所示。TL0使用计时器/计数器0
控制位c/t、gate、tr0、int0和tf0。TL0可用于计数时钟周期(时钟/12或时钟/4)或由C/T(tmod.2)确定的针t0上的1到0转换。TH0被强制作为时钟周期计数器(clock/12或clock/4),并从计时器/计数器1接管TR1和TF1的使用。模式3用于需要额外8位定时器的情况。在模式3中使用定时器0时,定时器1仍可以在模式0、1和2中使用,但其灵活性有所限制。虽然它的基本功能得到了维护,但它不再控制其溢出标志tf1和启用位tr1。定时器1仍可用作定时器/计数器,并保留使用gate和int1 pin。在这种情况下,可以通过将其从模式3切换到自己的模式3来打开和关闭。它还可用作串行端口的波特率发生器。
计时器/计数器2
定时器/计数器2是一个16位上/下计数器,由t2mod寄存器配置,由t2con寄存器控制。定时器/计数器2具有捕获/重新加载功能。与计时器0和计时器1计数器一样,在选择和控制时钟以及定义操作模式方面存在相当大的灵活性。定时器/计数器2的时钟源可为外部t2引脚(c/t2=1)或晶体振荡器选择,后者除以12或4(c/t2=0)。然后,当tr2为1时启用时钟,当tr2为0时禁用时钟。
捕获模式
捕获模式通过将t2con寄存器中的cp rl/2位设置为1启用。在捕获模式下,定时器/计数器2用作16位递增计数器。当计数器从ffffh滚动到0000h时,将设置一个s2位,这将生成一个中断请求。如果设置了exen2位,那么t2ex引脚的负转换将导致tl2和th2寄存器中的值被rcap2l和rcap2h寄存器捕获。此操作还将设置t2con中的exf2位,这也将生成中断。设置t2cr位(t2mod.3),W77L516A允许硬件在捕获tl2和th2的值后自动重置定时器2。
自动重新加载模式,计数
通过清除t2con寄存器中的cp rl/2位和清除t2mod寄存器中的dcen位,可以启用作为递增计数器的自动重新加载模式。在此模式下,定时器/计数器2是一个16位递增计数器。当计数器从ffffh滚动过来时,会生成一个重新加载,使rcap2l和rcap2h寄存器的内容重新加载到tl2和th2寄存器中。reload操作还设置了s2位。如果设置了exen2位,则t2ex引脚的负转换也将导致重新加载。此操作还设置t2con中的exf2位。
自动重新加载模式,向上/向下计数
如果清除t2con中的cp rl/2位并设置t2mod中的dcen位,计时器/计数器2将处于自动重新加载模式,作为上/下计数器。在此模式下,定时器/计数器2是一个上/下计数器,其方向由t2ex销控制。这个别针上的1使计数器计数。计数时溢出将导致计数器重新加载捕获寄存器的内容。计时器/计数器的内容等于捕获寄存器的情况下的下一次向下计数将在计时器/计数器2中加载一个ffff。在这两种情况下,重新加载都将设置该位。重新加载也会切换exf2位。然而,在这种模式下,exf2位不能产生中断。
波特率发生器模式
波特率发生器模式通过设置t2con寄存器中的rclk或tclk位来启用。在波特率生成器模式下,定时器/计数器2是一个16位计数器,当计数从ffffh滚动过来时自动重新加载。但是,滚动不会设置TF2位。如果设置了exen2位,则t2ex管脚的负转换将在t2con寄存器中设置exf2位并引起中断请求。
可编程时钟输出
定时器2配备了新的下班打卡功能,在P1.0上输出50%的工作循环时钟。它可以作为可编程时钟生成器调用。要将定时器2配置为时钟输出模式,软件必须通过设置位t2oe=1、c/t2=0和cp/rl=0来启动它。设置位TR2将启动计时器。此模式类似于波特率生成器模式,它不会在定时器2溢出时生成中断。因此可以同时使用定时器2作为波特率发生器和时钟发生器。时钟输出频率由以下公式确定:
时钟输出频率=振荡器频率/[4 x(65536-RCAP2H,RCAP2L)]
看门狗定时器
看门狗定时器是一个自由运行的定时器,可由用户编程,作为系统监视器、时基发生器或事件计时器。它基本上是一组划分系统时钟的分频器。分频器输出是可选的,并确定超时间隔。当超时发生时,会设置一个标志,如果启用,它会导致中断,如果启用,也会导致系统重置。如果设置了单个中断启用和全局启用,则会发生中断。中断和复位功能彼此独立,可以单独使用,也可以根据用户软件一起使用。
应首先使用RWT重新启动看门狗定时器。这样可以确保计时器从已知状态开始。RWT位用于重新启动看门狗定时器。该位是自动清除的,即在将1写入该位后,软件将自动清除该位。看门狗定时器现在将计数时钟周期。超时间隔由两位WD1和WD0(CKCON.7和CKCON.6)选择。当所选超时发生时,将设置看门狗中断标志WDIF(WDCON.3)。超时发生后,看门狗定时器等待额外的512个时钟周期。如果启用了看门狗重置EWT(WDCON.1),那么在超时后512个时钟,如果没有RWT,将发生由于看门狗定时器而导致的系统重置。这将持续两个机器周期,并且将设置看门狗定时器重置标志wtrf(wdcon.2)。这向软件指示看门狗是重置的原因。
当用作简单计时器时,重置和中断功能被禁用。每当计时器完成选定的时间间隔时,计时器将设置WDIF标志。WDIF标志被轮询以检测超时,RWT允许软件重新启动计时器。看门狗定时器也可用作非常长的定时器。在这种情况下,中断功能被启用。每次超时发生时,如果设置了全局中断启用EA,则会发生中断。
看门狗定时器的主要用途是作为系统监视器。这在实时控制应用中很重要。在某些电源故障或电磁干扰的情况下,处理器可能开始执行错误的代码。如果不选中,整个系统可能崩溃。在软件开发期间使用看门狗定时器中断将允许用户选择理想的看门狗重置位置。代码首先在没有看门狗中断或重置的情况下写入。然后,看门狗中断被启用,以识别发生中断的代码位置。用户现在可以插入指令来重置看门狗定时器,这将允许代码在没有任何看门狗定时器的情况下运行。
中断。现在,看门狗定时器复位被启用,看门狗中断可能被禁用。如果现在执行任何错误代码,则重置看门狗定时器指令将不会在所需的瞬间执行,并且会发生看门狗重置
看门狗超时选择将根据时钟速度产生不同的超时值。启用后,重置将在超时发生后512个时钟发生。
串行口
W77L516A中的串行端口是全双工端口。W77L516A为用户提供了额外的功能,如帧错误检测和自动地址识别。串行端口能够同步和异步通信。在同步模式下,W77L516A生成时钟并以半双工模式运行。在异步模式下,可以进行全双工操作。这意味着它可以同时发送和接收数据。发送寄存器和接收缓冲区都被编为SBUF特殊功能寄存器。然而,对sbuf的任何写入将被发送到发送寄存器,而从sbuf的读取将被接收缓冲寄存器。串行端口可以在以下四种不同的模式下工作。
模式0
此模式提供与外部设备的同步通信。在此模式下,串行数据在RxD线路上传输和接收。TXD用于传输移位时钟。TxD时钟由W77L516A提供,无论设备是发送还是接收。因此,该模式是串行通信的半双工模式。在这种模式下,每帧传输或接收8位。首先发送/接收LSB。波特率固定在振荡器频率的1/12或1/4。波特率由sm2位(scon.5)决定。当该位设置为0时,串行端口以时钟的1/12运行。当设置为1时,串行端口以时钟的1/4运行。模式0中可编程波特率的附加功能是标准8051和W77L516A之间的唯一区别。
功能框图如下所示。数据进入和离开RxD线路上的串行端口。TXD线用于输出移位时钟。移位时钟用于将数据移入和移出W77L516A和线路另一端的设备。任何导致对sbuf写入的指令都将启动传输。移位时钟将被激活,数据将在RxD引脚上移出,直到所有8位被传输。如果sm2=1,则rxd上的数据将在txd上的移位时钟下降沿之前出现1个时钟周期。然后,txd上的时钟在两个时钟周期内保持较低,然后再次变高。如果sm2=0,rxd上的数据将在txd上的移位时钟下降沿之前出现3个时钟周期。然后,txd上的时钟在6个时钟周期内保持较低,然后再次变高。这样可以确保在接收端,RxD线路上的数据可以在TXD上的移位时钟的上升沿上时钟,也可以在TXD时钟较低时锁定