欢迎访问ic37.com |
会员登录 免费注册
发布采购

W78ERD2是一种8位微控制器

日期:2019-8-15标签: (来源:互联网)

1。一般说明W78ERD2是一种8位微控制器,其引脚和指令集与标准80C52兼容。W78ERD2包含一个64-kb的flash-eprom,其内容可以通过存储在辅助的4-kb flash-eprom中的加载程序在系统中更新。一旦内容得到确认,就可以对其进行安全保护。W78ERD2还包含256字节的片上RAM;1 KB的辅助RAM;四个8位、双向和位可寻址I/O端口;一个额外的4位端口P4;三个16位定时器/计数器;以及一个串行端口。这些外围设备都由9个具有4个优先级的中断源支持。W78ERD2有两种功率降低模式:空闲模式和断电模式,这两种模式都是软件可选的。空闲模式关闭处理器时钟,但允许外围设备继续工作,而断电模式会停止晶体振荡器,以实现最小功耗。断电模式可以在任何时间和任何状态下激活,而不会影响处理器。

功能描述W78ERD2体系结构由一个核心处理器组成,它支持111个不同的操作码,并引用64kb的程序空间和64kb的数据空间。它被各种寄存器包围;四个通用I/O端口;一个专用、可编程的4位I/O端口;256字节RAM;1 kb辅助RAM(辅助RAM);三个计时器/计数器;一个串行端口;以及一个内部74373锁存器和74244缓冲区,可切换到端口2。本节介绍RAM、计时器/计数器、时钟、电源管理、减少EMI发射和重置。

计时器/计数器W78ERD2有三个计时器/计数器,分别称为计时器0、计时器1和计时器2。每个定时器/计数器由两个8位数据寄存器组成:定时器0的TL0和TH0,定时器1的TL1和TH1,定时器2的TL2和TH2。定时器0和定时器1的操作与W78C52相似,这些定时器由TCON和TMOD寄存器控制。
W78ERD2/W78ERD2A型
定时器2由t2con寄存器控制。与定时器0和1一样,定时器2可以作为外部事件计数器或内部计时器运行,这取决于t2 c on中位c/t2的设置。定时器2有三种操作模式:捕获、自动重新加载和波特率生成器。在捕获或自动重新加载模式下,RCAP2H和RCAP2L是重新加载/捕获寄存器,时钟速度与计时器0和1相同。
五2。特点•8位CMOS微控制器•引脚与标准80C52兼容•指令集与80C52兼容•四个8位I/O端口;端口0具有软件启用的内部上拉电阻。•一个额外的4位I/O端口,具有中断和芯片选择功能•三个16位定时器•可编程时钟输出•可编程计数器阵列(PCA),具有脉宽调制、捕获、比较和看门狗功能•9个中断源,具有4个优先级•带帧的全双工串行端口-错误检测和自动地址识别•64-kb,系统可编程,flash-eprom(ap flash-epraom)•4-kb辅助flash-eprom用于加载程序(ld flash-eprom)•256字节片上RAM•1-kb辅助RAM,软件可选•软件重置•每台机器每周期12个时钟le操作(默认)。速度高达40兆赫。•编写器设置的每台机器循环操作6个时钟。速度高达20兆赫。•2个DPTR寄存器•低EMI(抑制ALE)•内置电源管理,具有空闲模式和断电模式•代码保护•软件包:-无铅(RoHS)DIP 40:W78ERD2A40DL-无铅(RoHS)PLCC 44:W78ERD2A40PL-无铅(RoHS)PQFP 44:W78ERD2A40FL

时钟W78ERD2设计用于晶体振荡器或外部时钟。W78ERD2集成了一个内置的晶体振荡器。为了使振荡器工作,必须将晶体连接在插脚XTAL1和XTAL2之间,并且可以将负载电容器从每个插脚连接到地面。此外,如果晶体频率高于24兆赫,则应在XTAL1和XTAL2之间连接一个电阻,以提供直流偏压。外部时钟连接到插脚XTAL1,而插脚XTAL2应保持断开状态。根据晶体振荡器的要求,XTAL1输入是一个CMOS类型的输入。因此,逻辑1电压应高于3.5 V。
电源管理W78ERD2提供两种模式:空闲模式和断电模式,以降低功耗。两种模式均由软件输入。设置PCON寄存器中的IDL位时,W78ERD2进入空闲模式。在空闲模式下,处理器的内部时钟停止,而外围设备和中断逻辑的内部时钟继续运行。当发生中断或复位时,W78ERD2将退出空闲模式。设置PCON寄存器中的PD位时,W78ERD2进入断电模式。在断电模式下,所有时钟都停止,包括振荡器。当硬件复位或通过外部中断INT0或INT1(如果启用)时,W78ERD2将退出掉电模式。
减少EMI发射如果晶体频率小于25 MHz,将选项寄存器中的位7设置为0以减少EMI发射。有关更多信息,请参阅选项位。
复位外部复位信号在S5P2处采样。要生效,必须在振荡器运行时保持高电平至少两个机器周期,因为W78ERD2有一个特殊的故障消除电路,忽略复位线路上的故障。在复位过程中,端口初始化为FFH,堆栈指针初始化为07H,所有其他SFR初始化为00H,除了两个例外,SBUF不改变,PCON中的位4不清除。

端口4和基址寄存器端口4、地址E8H是一个4位、多用途、可编程I/O端口。每个位可以单独配置,寄存器p4conap4conb包含选择每个管脚模式的控制位。每个销有四种工作模式。模式0:双向I/O端口,如端口1。如果启用,P4.2和P4.3将充当INT3和INT2的外部中断。模式1:在指定地址读取与RD信号同步的选通信号。这些信号可作为外部外围设备的芯片选择信号。模式2:在指定地址写入与WR信号同步的选通信号。这些信号可作为外部外围设备的芯片选择信号。模式3:读/写频闪灯信号与指定地址的rd或wr信号同步。这些信号可作为外部外围设备的芯片选择信号。在模式1–3中,芯片选择信号的地址范围取决于寄存器p4xah和p4xal的内容,后者分别包含p4.x的16位地址比较器的高阶字节和低阶字节。以下示意图说明了这一点。

例如,以下程序将P4.0设置为I/O端口地址1234H−1237H的写入选通信号,极性为正,而P4.1−P4.3用作常规I/O端口。

MOV P40AH,35;12H MOV P40AL,35;34H;P4.0的基本I/O地址1234H。MOV p4cona,35;001010B;P4.0是写选通信号;地址A0和A1被屏蔽。mov p4conb,35;00h;p4.1 p4.3是常规I/O端口mov p2econ,35;10h将p40sinv设置为1,将p4.0写入选通反转为正极。然后,任何指令movx@dptr,a(其中dptr在1234h)在插脚p4.0上生成正极性、写选通信号,而指令mov p4、x35;xx在p4.3插脚4.1上放置3位

中断本节提供有关外部中断int2和int3的更多信息,并提供中断优先级和轮询序列的概述。
外部中断2和3 W78ERD2提供两个额外的外部中断,即INT2和INT3,类似于标准80C52中的外部中断INT0和INT1。这些中断由xicon(外部中断控制)寄存器配置,该寄存器不是80c52中的标准寄存器。它的地址是0c0h。xicon是位可寻址的;例如,“setb 0c2h”设置xicon的ex2位。
8.2中断优先级每个中断在W78ERD2中有四个优先级中的一个,如下所示

可编程定时器/计数器W78ERD2有三个16位可编程定时器/计数器。时基选择W78ERD2为定时器提供两种速度。计时器的计数为时钟的1/12,与标准8051系列中的相同速度。或者,计时器可以在时钟的1/6处计数,称为涡轮模式。该速度由CKCON中的T0M、T1M和T2M位控制。默认值为零,选择时钟的1/12。如果选项位3设置为1以选择12个时钟/机器周期,则这3个位(T0M、T1M和T2M)无效。
定时器0和定时器1定时器0和1各有一个16位定时器/计数器,由两个8位寄存器组成:定时器0由th0(8 msb)和tl0(8 lsb)组成,定时器1由th1和tl1组成。这些计时器/计数器可以配置为作为计时器、机器循环计数器或基于外部输入的计数器运行。“定时器”或“计数器”功能本身由TMOD寄存器中相应的“t c/”位选择:定时器0的位2和定时器1的位6。此外,每个定时器/计数器可以在四种可能模式中的一种模式下工作,这些模式由TMOD中的位m0和m1选择。本节的其余部分解释计时器的时基,然后介绍每个模式。模式0在模式0中,计时器/计数器是一个13位计数器,其中8个MSB在THX中,5个LSB在TLX中是5个较低的位。TLX中的上三位被忽略。因为THX和TLX是分开读取的,所以定时器/计数器的作用就像一个8位计数器,带有一个5位、除以32的预刻度。计数仅在设置了trx且gate=0或intx=1时启用。计时器/计数器的计数取决于t c/。当t c/设为0时,计时器/计数器根据在ckcon中由位txm选择的时基计数时钟的负边。当t c/设置为1时,它计算t0(p3.4,计时器0)或t1(p3.5,计时器1)上的下降边缘。当13位计数器达到1ffh时,下一个计数将在计时器/计数器上滚动到0000h,并设置计时器溢出标志tfx(in tcon)。如果启用,则会发生中断。

模式1模式1与模式0相似,只是定时器/计数器是16位计数器,而不是13位计数器。使用THX和TLX中的所有位。当计时器从ffffh移动到0000h时,会发生翻滚。模式2模式2与模式0类似,只是TLX的作用类似于8位计数器,THX保持TLX的自动加载值。当tlx寄存器从ffh溢出到00h时,设置计时器溢出标志tfx位(在tcon中),用thx的内容重新加载tlx,计数过程继续。重新加载操作不会影响THX寄存器。

模式3模式3在需要额外的8位定时器时使用,它对定时器0和定时器1有不同的影响。定时器0将tl0和th0分为两个单独的8位计数寄存器。TL0使用定时器0控制位t c/、gate、tr0、int0和tf0,可以计数时钟周期(clock/12或clock/6)或pin t0的下降沿。同时,TH0从定时器1接收TR1和TF1,并可以计算时钟周期(时钟/12或时钟/6)。模式3只是冻结计时器1,它提供了一种打开和关闭计时器的方法。当定时器0处于模式3时,定时器1仍可以用于模式0、1和2,但其灵活性有限。定时器1仍可用作定时器/计数器(或串行端口的波特率发生器),并保留使用gate和int1引脚,但它不再控制溢出标志tf1和启用位tr1。

定时器/计数器2定时器2是一个16位上/下计数器,配备捕获/重新加载功能。它由t2mod寄存器配置,由t2con寄存器控制。与计时器0和1一样,计时器2可以计数时钟周期(fosc/12或fosc/6)或外部t2针(由t2 c/选择),有四种操作模式,每种模式都在下面讨论。捕获模式捕获模式通过设置t2con寄存器中的rl2 cp/位来启用。在捕获模式下,定时器2用作16位递增计数器。当计数器从ffffh滚动到0000h时,设置了一个tf2位,如果启用,则生成一个中断。如果设置了exen2位,那么t2ex引脚上的负转换将捕获rcap2l和rcap2h寄存器中tl2和th2寄存器中的值。此操作还导致设置t2con中的exf2位,这也可能生成中断。

自动重新加载模式,通过清除t2con中的rl2 cp/位和t2mod中的dcen位启用该模式计数。在此模式下,定时器2是一个16位递增计数器。当计数器从ffffh滚动到0000h时,rcap2l和rcap2h的内容自动重新加载到tl2和th2,并设置计时器溢出位d2。如果设置了exen2位,则t2ex引脚的负转换也会导致重新加载,这也会设置t2con中的exf2位。

自动重新加载模式,向上/向下计数此模式在t2con中的rl2 cp/位清除且t2mod中的dcen位设置时启用。在此模式下,定时器2是一个向上/向下计数器,其方向由t2ex引脚控制(1=向上,0=向下)。当计时器2在向上计数时溢出时,计数器由rcap2l和rcap2h重新加载。当计时器2在向下计数时,当计时器2等于rcap2l和rcap2h时,计数器用ffff重新加载。无论哪种情况,都会设置计时器溢出位d2,并切换exf2位,尽管exf2不能g在此模式下生成中断。

波特率发生器模式波特率发生器模式通过设置t2con寄存器中的rclk或tclk位来启用。在波特率生成器模式下,计时器2是一个16位的递增计数器,它在溢出时自动重新加载,但此溢出不会设置计时器溢出位。如果设置了exen2,则t2ex管脚上的负转换将在t2con中设置exf2位,如果启用,则生成中断请求。

模式0模式0是半双工、同步模式。RxD发送和接收串行数据,TXD发送移位时钟。TXD时钟由W78ERD2提供。每帧发送或接收8位,首先是LSB。波特率固定在振荡器频率的1/12。功能框图如下所示。

如前所述,数据进入和离开RxD上的串行端口。TXD线路提供移位时钟,它将数据移入和移出W78ERD2以及线路另一端的设备。任何写入sbuf的指令都会启动传输。移位时钟被激活,数据在RxD引脚上移出,直到所有8位被传输。如果sm2设置为1,则数据将在txd下降沿之前的一个时钟周期出现在rxd上,然后txd时钟在再次变高之前保持低两个时钟周期。如果sm2设置为0,则数据显示在txd下降沿之前的rxd三个时钟周期上,txd时钟随后在再次变高之前保持低6个时钟周期。这样可以确保接收设备可以在TXD上升沿或TXD时钟低时对RXD数据进行时钟。最后,一旦传输了最后一位,ti标志在c1中设置为高。当REN为1,RI为零时,串行端口接收数据。TXD时钟激活,串行端口锁定换档时钟上升沿上的数据。因此,外部设备应在TXD的下降沿上显示数据。这个过程一直持续到八位全部被接收为止。然后,在txd上的最后一个上升沿之后,ri标志在c1中设置为高,在软件清除ri之前停止接收。
模式1模式1为全双工异步模式。串行通信帧由在TXD上传输和在RXD上接收的10位组成。10位由一个起始位(0)、8个数据位(LSB优先)和一个停止位(1)组成。当W78ERD2接收到数据时,停止位进入scon中的rb8。波特率是定时器1溢出的1/16或1/32,可以设置为各种重新加载值。(1/16或1/32系数由PCON SFR中的SMOD位决定。)功能图如下所示。
斯布夫

当数据写入SBUF时,传输开始,但与定时器1的翻滚同步(按配置除以16或32),而不是写入信号。W78ERD2等待计时器1(除以16或32)的下一次滚动,然后将数据放入txd。下一个位在下一个翻转之后放置在txd上。在所有8位数据被传输后,停止位被传输。最后,在写入信号后的第十个翻转处设置ti标志。只有当REN高时才启用接收。W78ERD2以16倍于所选波特率的速率采样RxD线路,寻找下降沿。当在RxD管脚上检测到下降沿时,定时器1(除以16或32)立即复位以更好地对齐位边界,串行端口开始接收数据。计数器的16个状态有效地将时间划分为16个片,位检测是在三个最佳状态下使用第8、第9和第10个状态进行的。如果起始位无效(1),接收中止,串行端口继续寻找RxD上的下降沿。如果起始位有效,则八个数据位被移入。然后,如果(1)ri=0和(2)sm2=0或停止位=1,停止位被放入rb8,数据被放入sbuf,ri被设置。否则,接收到的帧可能丢失。在停止位的中间,W78ERD2继续寻找RxD上的下降边缘。
模式2模式2为全双工异步模式。串行通信帧由11位组成,在TXD上传输,在RXD上接收。11位由一个起始位(0)、8个数据位(LSB优先)、一个可编程第9位(TB8)和一个停止位(1)组成。第9位被读入RB8并从RB8传输。波特率为振荡器频率的1/32或1/64,1/32或1/64系数由PCON SFR中的SMOD位决定。功能图如下所示。

当数据写入SBUF时,传输开始,但与计数器的翻转(按配置除以32或64)同步,而不是写入信号同步。W78ERD2等待计数器的下一次滚动(除以32或64),然后将数据放入txd。下一个位在下一个翻转之后放置在txd上。在所有9位数据传输后,停止位被传输。最后,在写入信号后的第十一个翻转处设置ti标志。只有当REN高时才启用接收。W78ERD2以16倍于所选波特率的速率采样RxD线路,寻找下降沿。当在RxD管脚上检测到下降沿时,计数器(除以32或64)立即复位以更好地对齐位边界,并且串行端口开始接收数据。计数器的16个状态有效地将时间划分为16个片,位检测是在三个最佳状态下使用第8、第9和第10个状态进行的。如果起始位无效(1),接收中止,串行端口继续寻找RxD上的下降沿。如果起始位有效,其余的位将被移入。然后,如果(1)ri=0和(2)sm2=0或接收到的第9位=1,则将第9位放入rb8,将数据放入sbuf,并设置ri。否则,接收到的帧可能丢失。在停止位的中间,W78ERD2继续寻找RxD上的下降边缘。
模式3模式3在各方面与模式2相似,只是波特率可编程方式与模式1中可编程方式相同。功能图如下所示。

10.5帧错误检测未检测到有效停止位时发生帧错误。这可能表明串行数据通信不正确。通常,帧错误是由串行通信线路上的噪声或争用引起的。W78ERD2能够检测帧错误并设置一个可由软件检查的标志。帧错误fe位位于scon.7中。在标准8051系列中,该位通常用作SM0。然而,在W78ERD2中,它具有双重功能,称为sm0/fe。实际上有两个独立的标记,一个用于SM0,另一个用于FE。实际上作为scon.7访问的标志由smod0(pcon.6)位决定。当smod0设置为1时,则访问fe标志。当smod0设置为0时,则访问sm0标志。FE位由硬件设置为1,但必须由软件清除。一旦设置了fe,之后接收到的任何帧,即使没有任何错误,也不清除fe标志。该标志必须由软件清除。请注意,在读取或写入FE时,SMOD0必须设置为1。

多处理器通信多处理器通信在模式2和3中使用第9个数据位。在W78ERD2中,只有当接收的字节对应于给定或广播地址时,才会设置ri标志。此硬件功能消除了检查每个接收地址所需的软件开销,并大大简化了软件程序员的任务。在多处理器通信模式中,地址字节通过第9位与数据字节进行区分,第9位为地址字节设置得很高。当主处理器想要将一个数据块传输到其中一个从机时,它首先发送目标从机(或从机)的地址。当等待地址字节时,所有从处理器的sm2位都应该设置为高。这样可以确保它们只被地址字节的接收中断。自动地址识别功能确保只有已寻址的从机实际上被中断,因为地址比较是由硬件而不是软件完成的。寻址从机清除SM2位,从而清除接收数据字节的方式。当sm2=0时,从机在接收每个完整数据帧时被中断。未寻址的奴隶不会受到影响,因为他们仍在等待他们的地址。主处理器可以使用给定的地址有选择地与从机组通信。所有从机都可以使用广播地址一起寻址。每个从机的地址在SADDR和SADEN寄存器中定义。从机地址是SADDR SFR中指定的8位值。saden sfr实际上是saddr中字节值的掩码。如果saden中的位位置为0,则saddr中的相应位位置不重要。只有sadden中对应位为1的saddr中的位位置用于获取给定地址。这使得用户可以灵活地处理多个从属服务器,而不必更改SADDR中的从属服务器地址。下面的示例显示了用户如何定义给定的地址以寻址不同的从机。