技术资料当前位置:杭州龙威科技有限公司 >> 技术资料 >> 浏览文章

IC解密基础知识:电源控制寄存器PCON

  IC解密基础知识:电源控制寄存器PCON

  串行中断的应用特点:
  8031单片机的串行I/O端口是一个中断源,有两个中断标志RI和TI,RI用于接收,TI用于发送。
  串行端口无论在何种工作方式下,发送/接收前都必须对TI/RI清零。当一帧数据发送/接收完后,TI/RI自动置1,如要再发送/接收,必须先用软件将其清除。
  在串行中断被打开的条件下,对方式0和方式1来说,一帧数据发送/接收完后,除置位TI/RI外,还会引起串行中断请求,并执行串行中侧目务程序。但对方式2和方式3的接收机而言,还要视SM2和RB8的状态,才可确定RI是否被置位以及串行中断的开放:
  SM2 RB8 接收机中断标志与中断状态
  0 1 激活RI,引起中断
  1 0 不激活RI,不引起中断
  1 1 激活RI,引起中断
  单片机正是利用方式2,3的这一特点,实现多机间的通信。串行端口的常用应用方法见相关章节。
  波特率的确定:
  对方式0来说,波特率已固定成fosc/12,随着外部晶振的频率不同,波特率亦不相同。常用的fosc有12MHz和6MHz,所以波特率相应为1000×103和500×103位/s。在此方式下,数据将自动地按固定的波特率发送/接收,完全不用设置。
  对方式2而言,波特率的计算式为2SMOD·fosc/64。当SMOD=0时,波特率为fm/64;当SMOD=1时,波特率为fosc/32。在此方式下,程控设置SMOD位的状态后,波特率就确定了,不需要再作其它设置。
  对方式1和方式3来说,波特率的计算式为2SMOD/32×T1溢出率,根据SMOD状态位的不同,波特率有Tl/32溢出率和T1/16溢出率两种。由于T1溢出率的设置是方便的,因而波特率的选择将十分灵活。
  前已叙及,定时器Tl有4种工作方式,为了得到其溢出率,而又不必进入中断服务程序,往往使T1设置在工作方式2的运行状态,也就是8位自动加入时间常数的方式。由于在这种方式下,T1的溢出率(次/秒)计算式可表达成:
  下面一段主程序和中断服务程序,是利用串行方式l从数据00H开始连续不断增大地串行发送一片数据的程序例。设单片机晶振的频率为6MHZ,波特率为1200位/秒。
  ORG 2000H ;1200位/秒的定时器初值
  MOV TL1,#0F3H
  MOV TH1,#0F3H ;使SMOD=0
  MOV PCON,#00H ;T1方式2
  MOV TMOD,#20H
  SETB EA
  CLR ET1 ;关闭T1中断
  SETB ES ;开串行中断
  SETB TR1 ;开T1定时
  MOV SCON,#40H ;串行方式1
  CLR A
  MOV SBUF,A ;串行发送
  JNB T1,$ ;等待发送完
  CLR T1, ;清标志
  SJMP $
  ORG 0023H ;串行中断入口地址
  MOV SBUF,A ;连续发送
  JNB T1,$
  INC A
  CLR T1
  RET1 ;中断返回