历史上的今天
返回首页

历史上的今天

今天是:2025年03月18日(星期二)

正在发生

2019年03月18日 | 51单片机串口配置

2019-03-18 来源:eefocus

1.配置串口工作模式为模式1。即设置SCON寄存器(SM0,SM1,REN位),SCON |= 0X50;(SM0 = 0,SM1 = 1,REN =1).


SM0 = 0,SM1 = 0  方式0:同步移位串行方式:波特率= SYSclk / 12.


SM0 = 0,SM1 = 1  方式1:8位UART,波特率可变: 波特率 =  (2^SMOD / 32) * (定时器1的溢出率)


SM0 = 1,SM1 = 0  方式2:9位UART: 波特率 =  (2^SMOD / 64) * (SYSclk系统工作时钟频率)


SM0 = 1,SM1 = 1 方式3: 8位UART,波特率可变: 波特率 =  (2^SMOD / 32) * (定时器1的溢出率)


注意:


当单片机工作在12T模式时,定时器1的溢出率 = SYSclk / 12  / (256 - TH1);


当单片机工作在1T模式时,定时器1的溢出率 = SYSclk / 6  / (256 - TH1);


SMOD默认为0。具体作用参考数据手册。




2.配置定时器1为模式2,即自动重装载模式。TMOD &= 0X0F; TMOD |= 0X20.




3.根据波特率计算TH1,TL1的初值,如果有需要可使用PCON进行波特率加倍(PCON最高位为波特率加倍位)。


计算公式:TH1 = TL1 = 256 - 晶振值 / 12 / 2 / 16 / 波特率;


如果波特率加倍则:PCON |= 0X80; 计算公式:TH1 = TL1 = 256 - 晶振值 / 12  / 16 / 波特率;




4.打开定时器控制寄存器TR1,启动定时器。




5.如果需要开串口中断,则 ES =1;




while(1)


{


while(!RI);// 等待接收完一字节数据


RI = 0; // 需软件清零


SBUF = SBUF +1;// 把接收的数据+1再发送出去


while(!TI);// 等待发送完一字节数据


TI = 0; // 需软件清零


}




注意:如果定时器1作为串口波特率发生器后不可再用作普通定时器。


一般我们可以准备好要发送的数据,TI = 1,会立即进入串口发送中断,可在串口发送中断中发送要发的数据。RI一旦为1表示接受中断发生,进中断取数据。

推荐阅读

史海拾趣

Crocus公司的发展小趣事

展望未来,Crocus将继续致力于TMR传感器技术的研发与创新。公司计划进一步拓展产品线,提升产品性能,满足更多领域的需求。同时,Crocus还将加强与产业链上下游企业的合作,共同推动整个电子行业的发展。

这五个故事展示了Crocus公司在电子行业中的发展历程和取得的成就。从创立初期的艰难探索到技术突破、产品升级、与Allegro的合并、市场拓展以及未来的持续创新,Crocus始终保持着积极进取的精神和不断创新的态度,为电子行业的发展做出了重要贡献。

CIPS公司的发展小趣事

为了满足市场不断变化的需求,CIPS公司不断推出创新产品和服务。例如,推出了CIPS汇路指南、CIPS数据洞察等产品服务,这些服务不仅解决了跨境支付过程中的信息不对称问题,还提高了支付效率,降低了退汇率。此外,CIPS还推出了港元业务等多元化服务,进一步丰富了其服务内容与形式。

德崧电子(D-SWITCH)公司的发展小趣事

技术创新是德崧电子持续发展的核心动力。公司不断加大研发投入,引进先进的生产设备和技术人才,致力于开发具有竞争力的新产品。通过不断的技术创新,德崧电子在电子开关行业中取得了多项重要成果。例如,公司成功研发出了具有自动感应功能的智能开关,实现了对灯光、温度等环境因素的自动调节。这一技术的推出不仅提高了产品的智能化水平,也为公司赢得了更多的市场份额。

博通集成(BEKEN)公司的发展小趣事

为了加快市场拓展和技术创新步伐,博通集成积极寻求与产业链上下游企业的战略合作。公司与多家知名企业建立了紧密的合作关系,共同推动无线通讯技术的发展和应用。通过战略合作,博通集成不仅获得了更多的市场资源和技术支持,还实现了与合作伙伴的共赢发展。

申风(everanalog)公司的发展小趣事

作为一家有社会责任感的企业,申风(everanalog)公司始终关注社会发展和环境保护问题。公司积极参与公益事业和环保活动,致力于为社会做出积极贡献。同时,公司也注重可持续发展战略的制定和实施,在生产经营过程中注重节能减排和资源循环利用等方面的工作。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事框架仅为示例,并未包含具体的细节和数据。如需了解更多关于申风(everanalog)公司的具体信息和发展历程,请查阅相关新闻报道或官方资料。

Hi-Optel Technologly Co Ltd公司的发展小趣事

在申风(everanalog)公司的发展过程中,技术突破和产品创新一直是其核心竞争力。公司不断投入研发资源,致力于开发出具有自主知识产权的集成电路产品。其中,多通道整合型电源管理芯片的成功研发,不仅填补了国内市场的空白,也赢得了客户的广泛认可。这些技术突破和产品创新为公司的快速发展奠定了坚实的基础。

问答坊 | AI 解惑

Android编译环境(2) - 手工编译C模块 ZT

上一篇中(即《Android编译环境(1) - 编译Native C的helloworld模块》),我们试用了通过标准的Android.mk文件来编译C模块,下面我们来试试如何直接运用gcc命令行来编译,从而了解Android编译环境的细节。 Android编译环境提供了”showcommands” ...…

查看全部问答>

诚问 WinCE嵌入式环境下能运行神经网络吗?

本人在利用wince开发汽车故障诊断系统 采用扬创S3c2440开发板 打算采用BP神经网络的作为诊断的算法 想知道有人做过类似的不? 系统资源能否支持呢? ps:s3c2440主频500M 32m内存 小弟再次谢过…

查看全部问答>

请教高手这段代码的意思?

这段代码是我老师给我的,是用keil uvision2软件纺写的 是bulkloop框架里的 void DA5384(unsigned char indata) {         unsigned char i; unsigned int mydata; unsigned int dataT; //SCLK =PA0, DIN=PA1 CS =PA5 ...…

查看全部问答>

串口通信问题求助

我在做串口通信 为什么在串口调试助手上找不到串口啊 有哪位高手知道指点一下好吗 先谢了 …

查看全部问答>

GAP的形成与内存控制问题(单片机)附map文件

#include bit b1,b2; bdata char bx,by; xdata char zz; pdata char buf[100]; void main (void) { {            b1=0;        b2=1;        bx=12;    ...…

查看全部问答>

寻支持二次开发的PDA

现需一款PDA,基本要求如下:支持二次开发+GPRS(最好支持EDGE)+摄像头+闪光灯.有意者请与许先生联系:13956057557.…

查看全部问答>

请问一道题目

试写出大尾数和小尾数机器中下图的数据结构,下图中a,b个占4bit长度 0   0 1 2 3 4 5 6 7   +-+-+-+-+-+-+-+-+   |       |       |   | a   &n ...…

查看全部问答>

有没有哪位高手在8962上用软件模拟过SPI的?

8962只有一个SPI接口可以用,有没有哪位高手在8962上用软件模拟过SPI的?求分享~~…

查看全部问答>

一个低通滤波例子哪位大虾能给解释一下吗?打问号的地方不懂!

本节通过一个例子来说明C程序从浮点变换至定点的方法。这是一个对语音信号(0.3kHz~3.4kHz)进行低通滤波的C语言程序,低通滤波的截止频率为800Hz,滤波器采用19点的有限冲击响应FIR滤波。语音信号的采样频率为8kHz,每个语音样值按16位整型数存放在i ...…

查看全部问答>