波特率设置方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

T2_BTL28800: ;用T2作波特率发生器的初始化设置

MOV 98H,#01100011B ;98H=SCON 仿真P89C664时不识别SCON

; MOV SCON,#01100011B ;串行口工作为方式1,位9(停止位)必须为1接收才有效,发送位9预设为1(方式1时自动设置)

;TI=1为不用定时器1作波特率用定时器2(位TI位未理解清楚)LI=1

MOV PCON,#00000000B ;波特率不加倍

;MOV PCON,#10000000B ;波特率加倍

MOV T2MOD,#00000000B ;定时不输出

MOV T2CON,#00110100B ;T2用做发送接收时钟,置RCLK接收时钟与TCLK发送时钟,TR2=1启动T2,定时且自动重装

MOV RCAP2H,#0FFH ;12M 8052

MOV RCAP2L,#LOW(0FFFFH-13) ;12M

;MOV RCAP2L,#LOW(0FFFFH-(13*2)) ;24M

; CLR TR2 ;仿真P89C664时不识别TR2

CLR T2CON.2 ;TR2 ;仿真P89C664时不识别TR2

MOV TH2,#0FFH ;12M 8052

MOV TL2,#LOW(0FFFFH-13) ;12M

;MOV TL2,#LOW(0FFFFH-(13*2)) ;24M

; SETB TR2 ;仿真P89C664时不识别TR2

SETB T2CON.2 ;TR2 ;仿真P89C664时不识别TR2

RET

;T2计算公式:;12M/(32*(65536-(RCAP2H,RCAP2L)))=28800 8051式

; ( 13 ) 78

;===================================

;T1_BTL4800: ;用T1作波特率发生器的初始化设置

; MOV SCON,#01101000B ;串行口工作为方式1,位9(停止位)必须为1接收才有效,发送位9预设为1(方式1时自动设置)

;(位TI位未理解清楚)

; MOV PCON,#00000000B ;波特率不加倍

; MOV TMOD,#00100000B ;T1工作于方式2为8位重装

; MOV TH1,#0F9H

; MOV TL1,#0F9H

; RET

;SCON 串行通信控制寄存器

; D7 D6 D5 D4 D3 D2 D1 D0

;SM0 SM1 SM2 REN TB8 RB8 TI RI

;(1)SM0、SM1:串行口工作方式控制位。

;SM0,SM1 工作方式

;00 方式0-波特率由振荡器频率所定:振荡器频率/12

;01 方式1-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(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所定:2SMOD ×振荡器频率/64

;11 方式3-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(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:允许接收位。< br> REN用于控制数据接收的允许和禁止,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存放接收到的第9位数据,用以识别接收到的数据特征。

;(6)TI:发送中断标志位。

;TI:发送中断标志。发送数据前必须软件清0,发送过程中TI一直为0,当发送完一帧数据后,由硬件自动置1。如果要再发送,

;必须用软件再清0。在编写串行通信程序的时候,可以使用软件查询TI的方法获得数据是否已发送完毕

;可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发

;送结束,TI可由软件清“0”。亦可申请中断

;(7)RI:接收中断标志位。

;RI:接收中断标志位。接收数据前必须软件清0,接收过程中RI一直为0,当接收完一帧数据后,由硬件自动置1。如果要再接收,

;必须用软件再清0。在编写串行通信程序的时候,可以使用软件查询RI的方法获得数据是否已接收完毕。

;可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。亦可申请中断

;在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位

;默认为SMOD=0。

;定时器T1工作于方式2:溢出所需周期数=256-X 波特率=4800时(SMOD=1 TH1初值=F3H TL1初值=F3H)晶振12HMZ

;T2CON 定时器控制寄存器

;B7 B6 B5 B4 B3 B2 B1 B0

;TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2

;TF2:T2溢出中断标志。TF2必须由用户程序清“0”。当T2作为串口波特率发生器时,TF2不会被置“1”。

;EXF2:定时器T2外部中断标志。EXEN2为1时,当T2EX(P1.1)发生负跳变时置1中断标志DXF2,EXF2必须由用户程序清“0”。

;TCLK:串行接口的发送时钟选择标志。TCLK=1时选用T2(TCLK=0时选用T1)为接收波特率发生器。

;RCLK:串行接口的接收时钟选择标志。RCLK=1时选用T2(TCLK=0时选用T1)为发送波特率发生器。

;EXEN2:T2的外部中断充许标志。

;C/T2:外部计数器/定时器选择位。C/T2=1时,T2为外部事件计数器,计数脉冲来自T2(P1.0);C/T2=0时,T2为定时器,振荡脉

;冲的十二分频信号作为计数信号。

;TR2:T2计数/定时控制位。TR2为1时充许计数,为0时禁止计数。

;CP/RL2:捕捉和常数自动再装入方式选择位。为1时工作于捕捉方式,为0时T2工作于常数自动再装入方式。当TCLK或RCLK为1时,

;CP/RL2被忽略,T2总是工作于常数自动再装入方式。

相关文档
最新文档