- 56
- 0
- 约5.07千字
- 约 4页
- 2023-03-16 发布于天津
- 举报
T2_BTL28800:;用T2作波特率发生器的初始化设置
MOV98H,;98H=SCON仿真P89C664时不识别SCON
;MOVSCON,;串行口工作为方式1,位9(停止位)必须为1接收才有效,发送位9预设为1(方式1时自动设置)
;TI=1为不用定时器1作波特率用定时器2(位TI位未理解清楚)LI=1
MOVPCON,;波特率不加倍
;MOVPCON,;波特率加倍
MOVT2MOD,;定时不输出
MOVT2CON,;T2用做发送接收时钟,置RCLK接收时钟与TCLK发送时钟,TR2=1启动T2,定时且自动重装
MOVRCAP2H,#0FFH;12M8052
MOVRCAP2L,#LOW(0FFFFH-13);12M
;MOVRCAP2L,#LOW(0FFFFH-(13*2));24M
;CLRTR2;仿真P89C664时不识别TR2
CLRT2CON.2;TR2;仿真P89C664时不识别TR2
MOVTH2,#0FFH;12M8052
MOVTL2,#LOW(0FFFFH-13);12M
;MOVTL2,#LOW(0FFFFH-(13*2));24M
;SETBTR2;仿真P89C664时不识别TR2
SETBT2CON.2;TR2仿真P89C664时不识别TR2
RET;T2计算公式:;12M/(32*(65536-(RCAP2H,RCAP2L)))=288008051式;(13)78;;T1_BTL4800:;用T1作波特率发生器的初始化设置;MOVSCON,;串行口工作为方式1,位9(停止位)必须为1接收才有效,发送位9预设为1(方式1时自动设置);(位TI位未理解清楚);MOVPCON,;波特率不加倍;MOVTMOD,;T1工作于方式2为8位重装;MOVTH1,#0F9H;MOVTL1,#0F9H;RET;SCON串行通信控制寄存器
;D7D6D5D4D3D2D1D0
;SM0SM1SM2RENTB8RB8TIRI
;(1)SM0、SM1:串行口工作方式控制位。
;SM0,SM1工作方式
;00方式0—波特率由振荡器频率所定:振荡器频率/12
;01方式1—波特率由定时器T1或T2的溢出率和SMOD所定:2SMODX(T1溢出率)/32
;方式1为波特率可变的10位异步通讯接口方式。发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。其中的起始位
;和停止位在发送时自动插入的。
;输出:当CPU执行一条指令将数据写入发送缓冲SBUF且TI=0时,就启动发送。串行数据从TXD引脚输出,发送完一帧数据后,就由
;硬件置位TI。
;输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一
;帧数据。只有当8位数据接收完,并检测到高电平停止位后,只有满足①(RI)=0:②(SM2)=0或接收到的第9位数据为1时,停止位才
;进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。
所以在方式1接收时,应先用软件清零RI和
;SM2标志
;10方式2—波特率由振荡器频率和SMOD所定:2SMODX振荡器频率/64
;11方式3—波特率由定时器T1或T2的溢出率和SMOD所定:2SMODX(T1溢出率)/32
;(2)SM2:多机通信控制位。br多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于
;方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则
;会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。
;工作于方式0时,SM2必须为0。方式1时:只有当接收到第9位数据(RB8)为1(停止位)时,置位RI
;(3)REN:允许接收位。brREN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。
;REN:接收允许控制位。由软件置位(REN=1)才允许接收,又由软件清O(REN=0)来禁止接收。
;(4)TB8:发送接收数据位8。br在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,
;TB8:可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。
;并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
;(5)RB8:接收数据位8。
;在方式2和方式3中,RB8存放接收到的第
原创力文档

文档评论(0)