STC15 串口(工作方式1)使用小结

这里暂且不说其他工作方式,以后有时间补上。仅总结下STC15串口工作方式1的一些注意点。

串口1

setp1 波特率发生器:

  T2定时器(默认)、T1定时器: 设置位:S1ST2(AUXR.0),1--T2,0--T1,此位复位值为1。

    12T模式(默认):通过T2x12(AUXR.2),T1x12(AUXR.6)位确定,0--12T模式,1--1T模式;这两位复位值位0。

            (这里可能有点模糊, 解释一下:所谓1T模式就是T1X12位置1,相当于T1速度提高12倍,原来计数加1需要12T,现在只需要1T)

    16位自动重装(默认):即T1定时器工作方式0,STC15这里是自动重装的。T2的不用设置TCON,固定为16位自动重装。

      8位自动重装(可选):如果用8位重装,只能通过S1ST2位选择T1定时器。然后把T1定时器设置为工作方式2。为了与传统8051程序兼容

setp2 设置波特率:

  这一步用T2定时器来说明,T1定时器的设置方法与其完全相同。

  情况1:16位重装模式下

    波特率 = T2溢出率 / 4

      其中,T2溢出率 = 1 / 溢出周期 = 1 / ( 时钟周期 * 计数次数 ) = Fosc / 计数次数 ;

    则

      计数次数 = Fosc / 波特率 / 4

      [T2H,T2L] = ( 65536 - 计数次数 ) = 65536 - Fosc / 波特率 / 4

    (Fosc是晶振频率,如果T2定时器工作在12T模式下Fosc需除以12)

  注意:STC15的16位重装计数波特率和SMOD无关,与传统51不同 ,如果用T1的8位重装计数的话与传统51计算方法是一样的。

  情况2 :8位自动重装计数

    与传统的相同: 波特率 = ( 2^smod / 32 ) * Fosc / ( 256 - TH1 )

setp3 设置串口模式启动串口

  串口模式工作方式1 设置SCON为0x40

  开启定时器2:T2R(AUXR.4)置1

  关闭定时器2中断允许:ET2(IE2.2)置0

  定时器1的不多讲了

示例:串口1,晶振为FOSC,波特率为BAUD,定时器用定时器1

AUXR |= 0x40;
AUXR &= ~0x01;
TMOD &= ~0xF0;

SCON = 0x40;
TL1 = (65536 - (FOSC/4/BAUD));
TH1 = (65536 - (FOSC/4/BAUD))>>8;
TR1 = 1;
ET1 = 0;
ES = 1;
REN=1;

时间: 2024-10-05 01:12:58

STC15 串口(工作方式1)使用小结的相关文章

串口通讯方式1编程

在上位机上用串口调试助手发送一个字符X,单片机收到字符后返回给上位机"I get X",串口波特率设为9600bps. #include<reg52.h> #define uchar unsigned char unsigned char flag,a,i; uchar code table[]="I get"; void init() { TMOD=0x20;  //设定T1定时器的工作模式2 TH1=0xfd; //T1定时器装初值 TL1=0xfd

LVS三种工作方式八种算法

一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式.集群计算机通常用来改进单个计算机的计算速度和/或可靠性.一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多. 集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务 LVS在企业架构中的位置: 以上的

西门子plc串口通讯方式

西门子plc串口通讯的三种方式 时间:2015-10-25 14:31:55编辑:电工栏目:西门子plc 导读:西门子plc串口通讯的三种方式,分为RS485 串口通信.PPI 通信.MPI 通信,自由口模式下西门子PLC与计算机的串口通信,S7-200系列PLC的通信口分3种工作方式. 西门子plc串口通讯的三种方式 1.RS485 串口通信第三方设备大部分支持,西门子S7 PLC 可以通过选择自由口通信模式控制串口通信.最简单的情况只用发送指令(XMT)向打印机或者变频器等第三方设备发送信息

Rsync的工作方式及Sersync

Rsync的工作方式 单个主机本地之间的数据传输(此时类似于cp命令的功能). 借助rcp,ssh等同到来传输数据(此时类似于scp命令的功能). 以守护进程(socket)的方式传输数据(这个是rsync自身的重要的功能). cp -a /etc/hosts /tmp/ rsync -avz /etc/hosts /tmp/ rsync --delete /null/ tmp/ 推送scp /etc/hosts ***@********:/tmp/ 推送rsync -avz -e 'ssh '

从一个简单例子来理解js引用类型指针的工作方式

? 1 2 3 4 5 6 7 <script> var a = {n:1};  var b = a;   a.x = a = {n:2};  console.log(a.x);// --> undefined  console.log(b.x);// --> [object Object]  </script> 上面的例子看似简单,但结果并不好了解,很容易把人们给想绕了--"a.x不是指向对象a了么?为啥log(a.x)是undefined?".&

Buffer的工作方式

1.Buffer的工作方式 前面<java NIO的工作方式>介绍了Selector检测到通信信道I/O有数据传输时,通过select()方法取得SocketChannel,将数据读取或写入Buffer缓冲区,下面讨论Buffer如何接受和写出数据.通过查看JDK源码可知道,Buffer的构造函数 Buffer(int mark, int pos, int lim, int cap) { // package-private if (cap < 0) throw new IllegalA

MVC4 WebAPI(二)——Web API工作方式

在上篇文章中和大家一起学习了建立基本的WebAPI应用,立刻就有人想到了一些问题:1.客户端和WebService之间文件传输2.客户端或者服务端的安全控制要解决这些问题,要了解一下WebAPI的基本工作方式. (一)WebAPI中工作的Class 在MVC中大家都知道,获取Request和Response使用HttpRequest和HttpResponse两个类,在WebAPI中使用两外两个类:HttpRequestMessage 和HttpResponseMessage,分别用于封装Requ

Java NIO的工作方式

1.BIO带来的挑战 BIO即阻塞IO,不管是磁盘IO,还是网络IO,数据在写入OutputStream或者从InputStream读取时都有可能发生阻塞,一旦有阻塞,当前线程将会被挂起,即线程进入非可执行状态,在这个状态下,CPU不会给线程分配时间片,线程将会失去CPU的使用权,即线程暂停运行,这在当前的大规模访问量和有性能要求的情况下是不能被接受的.虽然当前的网络I/O有一些解决办法,如一个客户端一个处理线程,出现阻塞时只是一个线程阻塞而不会影响其他线程工作,还有为了减少系统线程的开销  ,

单片机定时/计数工作方式

单片机中的定时/计数器都能有多种用途,要通过定时/计数器的方式控制字来设置,需要的用途. 在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON.,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已).     TMOD被分成两部份,每部份4位.分别用于控制T1和T0.TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(TF1.0在这).TR0