分享

基于82C52功能仿真验证的研究 (2)

 共同成长888 2013-06-08
基于82C52功能仿真验证的研究 (2)
  
  5 82C52功能描述
  (1)复位
  上电后,复位输人为高,82C52在两个Ix时钟周期内进行初始化并进入空闲模式直到程序写人。
  复位输人为高电平时,复位内部波特率发生电路的时钟计数器和位计数器。BRSR不受影响(第7位除外);清零USR(TC和TBRE除外);清零MCR;全部的离散信号、内存单元和各种逻辑寄存器位都被清零和关闭。接着清除复位状态(RST=0),82C52仍然保持空闲模式直到程序写人。
  仿真时,首先验证Reset的正确性:
  Hardware Reset:上电后,82C52的Reset输人端必须保证至少两个时钟周期的高电平来初始化82C52使它进人空闲模式。复位引起的操作有:
  ①复位内部波特率发生器的时钟计数和位计数,将Band Rate Select Register(BRSR)的第七位复位为0。@USR中除了TC和TBRE两位被置位其余位被清零,MCR被清零,其它相关的存储器、寄存器等也都被清零或设为无效,但要注意复位不影响UCR。复位后空闲模式会一直保持直到对82C52编程改变它的这种模式。此种复位不影响BRSR、UCR。
  Software Reset:首先读出USR、RBR中的数据来清除残余的数据和状态,以免造成并发或重复控制,然后通过设置UCR、BRSR、MCR三个寄存器的值,使82C52恢复到空闲状态。
  (2)编程
  编程前需要设置的寄存器有BRSR、MCR和UCR来初始化82C52,但要注意MCR要最后设置。
  UCR:设置帧格式,DO位设置停止位的位数,当DO=0时,停止位是1位,当DO=1时,如果数据是8位的,停止位是1.5位,数据位是5位,停止位是1位,数据位是6、7位,停止位是2位。D3、D2、D1位设置奇偶校验位。D5、D4为设置数据位数,00=5bits,01=6bits,10:7bits,11=8bits。最高两位为保留位设置为0。
  BRSR:设置波特率,D1、Do两位控制第一次分频,00=/1,01=/3,10=/4,11=/5,D6到D2位控制第二次分频有18种,所以一共有72种分频方法,经两次分频后的频率为82C52最后用的频率的16倍。
  MCR:可以选择82C52的工作模式、中断控制、接收发送申请等命令。DO为请求发送控制位,低有效。Dl为终端准备好控制位低有效。D2为允许中断控制位,l为允许中断。D5为允许接收控制位,1为允许接收,software Reset时此位设无效(0)。D6为允许终端中断控制位,1允许中断。D7必须设置为0保证82C52被正常设置。D3、D2为模式选择控制位,00=Normal,01=Transmit Break,10=Echo mode。
  到这里,82C52编程前的设置工作就完成了,并且这些设置都是通过汇编指令完成的。与接收和发送有关的寄存器有RBR和TBR,它们从DO 位到D7位依次为bitO到bit7,数据位数少于8时,RBR中有效数据外的其它高位被置成0,TBR中则被忽略。
  SDI的数据串行进入接收寄存器然后并行进入接收缓冲寄存器,然后DR输出端和USR中的标志位DR都被置位。TRB的状态由TBRE输出端和USR中的flag TBRE标志,TRB和TC都是空时由USR中的TC flag标志。
  USR:UART状态寄存器,这个寄存器中的数据可以通过CPU读取来清空并保持直到状态再次发生改变。
  MSR:终端状态寄存器。
  编程结束,82C52将准备执行通信功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多