历史上的今天
返回首页

历史上的今天

今天是:2025年07月30日(星期三)

正在发生

2021年07月30日 | 学习笔记 从零开始学单片机(9) 串口通信

2021-07-30 来源:eefocus

串口通信是单片机一个重要的部分,单片机和PC,单片机和单片机之间的通信大都用串口。单片机的串口是全双工异步串口通信方式。通过TXD(P3.1)发送,RXD(P3.0)引脚接收输入。串口传送数据是一帧一帧发送的,它有四种工作方式,同时也可以做并行I/O的扩展。

图上是串口的结构图。


SBUF是数据缓冲寄存器,发送和接收用的是一个地址,但是不用担心冲突,读只能从接收缓冲区,写只能在发送缓冲区里。


寄存器SCON(SM0 SM1 SM2 REN TB8 RB8 TI RI)


SM0和SM1: 工作方式选择(0-3),方式1和方式3使用T1产生波特率,方式0和方式2是固定速率。


SM2 :在方式2和方式3的多级通信控制位


REN:允许串行接收控制位,0禁止接收


TB8:对于方式2和方式3,是发送的第9位


RB8:对于方式2和方式3,是接收的第9位;对于方式1,是接收到的停止位


TI:发送中断标志,发送完一帧后置位,必须由软件清零


RI:发送中断标志,接收完一帧后置位,必须由软件清零


寄存器PCON(最高位SMOD)


SMOD=1时,波特率加倍


程序:PC与单片机通信,PC发送字符,单片机接收后返回给PC


PC端程序,VB编写,使用MSCOMM控件


Private Sub Command1_Click()

    MSComm1.Output = Text1.Text '发送数据

End Sub


Private Sub Form_Load()

MSComm1.CommPort = 4 '设置串口的端口号

MSComm1.Settings = "9600,n,8,1" '设置串口的波特率等参数

MSComm1.RThreshold = 1 '设置最小接收的字节数


MSComm1.PortOpen = True '打开串口


End Sub


Private Sub MSComm1_OnComm()

    Select Case MSComm1.CommEvent

       Case comEvReceive

       Text2.Text = Text2.Text & MSComm1.Input '接收数据

    End Select

End Sub


单片机程序:


#include



void UartInit();

void UartSendChar(unsigned char ch);


void main(void)

{

  UartInit();


 while(1);

}



void UartInit()

{

  SCON  = 0x50;       // SCON: 模式1

    TMOD = 0x20;       // TMOD: 定时器1 模式2

    PCON = 0x00;       // SMOD=0;

    TH1   = 0xFD;       // Baud:9600 波特率=2SMOD×fosc/(32×12×(256-TH1))

  TL1   = 0xFD;

    IE   = 0x90;      

    TR1   = 1;         

 EA = 1;

}



void UartSendChar(unsigned char ch)

{

    SBUF = ch;

    while(TI==0);

    TI=0;

}



void UartRec() interrupt 4

{

 unsigned char ch;

  ch = SBUF;

  if(RI)

  {

    RI = 0;

    UartSendChar(ch);

  }

}


推荐阅读

史海拾趣

福斯特半导体(Foster)公司的发展小趣事

对于能判断障碍物的机器人电路,网友可能还有以下几个问题及其相应回答:

问题一:机器人通常使用哪些传感器来判断障碍物?

回答
机器人通常使用多种传感器来判断障碍物,主要包括但不限于以下几种:

  1. 超声波传感器:这是最常见的一种传感器,通过发射超声波并接收其反射回来的信号,根据信号的时间差和波速计算障碍物的距离。超声波传感器在检测大范围、非接触式的障碍物时非常有效。

  2. 红外传感器:红外传感器通过发射红外光并接收其反射光来判断障碍物的存在和距离。红外传感器在近距离和快速检测中表现优异,且成本相对较低。

  3. 激光传感器:激光传感器利用激光束进行测距,具有高精度、长距离测量的特点。但相比超声波和红外传感器,激光传感器的成本更高,适用于对精度要求极高的应用场景。

  4. 视觉传感器:一些高级的机器人还配备了视觉传感器,如摄像头,通过图像处理技术来识别并判断障碍物。这种方法可以实现更复杂的场景理解和避障策略。

问题二:如何设计能判断障碍物的机器人电路?

回答
设计能判断障碍物的机器人电路需要考虑以下几个关键步骤:

  1. 选择合适的传感器:根据机器人的应用场景、成本预算和精度要求选择合适的传感器。

  2. 设计信号处理电路:将传感器采集到的原始信号(如电压、电流等)进行放大、滤波等处理,以便于后续的数字处理或微控制器读取。

  3. 微控制器编程:根据传感器的输出信号编写微控制器的程序,实现障碍物的判断、避障策略的制定和执行。

  4. 执行机构控制:通过微控制器控制机器人的执行机构(如电机、舵机等),实现机器人的移动和避障动作。

  5. 整体调试与优化:对整个电路进行调试和优化,确保机器人能够准确、稳定地判断障碍物并执行避障动作。

问题三:如何提高机器人判断障碍物的准确性和稳定性?

回答
提高机器人判断障碍物的准确性和稳定性可以从以下几个方面入手:

  1. 选用高质量的传感器:高质量的传感器具有更高的精度和稳定性,能够减少误判和漏判的情况。

  2. 优化信号处理电路:通过合理的电路设计和元器件选择,减少信号噪声和干扰,提高信号的信噪比和可靠性。

  3. 算法优化:对微控制器的算法进行优化,采用更先进的算法或策略来提高障碍物的判断精度和避障效果。

  4. 多传感器融合:利用多种传感器进行融合处理,可以弥补单一传感器的不足,提高整个系统的鲁棒性和可靠性。

  5. 实验验证与迭代优化:通过大量的实验验证和迭代优化,不断调整和优化机器人的参数和算法,以提高其判断障碍物的准确性和稳定性。

DAYLIGHT公司的发展小趣事

在公司的初创阶段,DAYLIGHT就意识到技术研发对于企业发展的重要性。因此,公司投入大量资金用于研发新的电子产品和技术。经过几年的努力,DAYLIGHT成功研发出一项具有革命性的电子芯片技术,这一技术大大提高了电子产品的性能和可靠性,使得DAYLIGHT的产品在市场上获得了极高的声誉。

Cristek Interconnects Inc公司的发展小趣事

随着环保意识的日益增强,Cristek Interconnects Inc公司积极响应国家号召,将环保理念融入到企业的生产经营中。公司采用环保材料和生产工艺,减少了对环境的污染。同时,公司还加大了对环保技术的研发力度,推出了一系列环保型电子产品连接器,为行业的可持续发展做出了贡献。

这五个故事只是Cristek Interconnects Inc公司在电子行业发展中的一部分缩影,它们展现了公司在技术创新、质量管理、市场拓展、供应链优化和环保理念践行等方面的努力和成就。这些故事共同构成了Cristek Interconnects Inc公司发展的精彩篇章,也为公司的未来发展奠定了坚实的基础。

CANOPUS公司的发展小趣事

面对激烈的市场竞争,CANOPUS始终保持着创新的精神。公司不断推出新产品、新技术,以满足不同消费者的需求。同时,CANOPUS也注重品牌形象的塑造和提升,通过赞助音乐活动、举办音乐会等方式,提升品牌知名度和影响力。

这些故事只是CANOPUS公司在电子行业中发展的冰山一角。实际上,公司的发展过程充满了挑战和机遇,每一个阶段都离不开创始人的智慧和团队的努力。未来,随着科技的进步和市场的变化,CANOPUS将继续保持创新精神,为音乐爱好者带来更多优质的产品和服务。

方舟(ARKLED)公司的发展小趣事

方舟公司自成立以来,始终致力于LED光电技术的研发与创新。公司拥有一支由行业专家和技术骨干组成的研发团队,不断推出具有自主知识产权的新产品。其中,方舟公司独创的某款LED显示屏,以其高清晰度、低功耗和长寿命等特性,在市场上获得了广泛认可。这款产品不仅提升了方舟公司的品牌影响力,还为公司带来了丰厚的经济回报。

Arctic Silicon Devices公司的发展小趣事

在电子行业的发展过程中,创新合作是推动产业进步的重要动力。Arctic Silicon Devices积极与高校、科研机构等合作,共同开展技术研发和人才培养。通过共享资源、互通有无,公司不仅获得了更多的创新灵感和技术支持,还推动了整个电子行业的技术进步和产业升级。

问答坊 | AI 解惑

一些关于ARM学习的书籍

最近收集了一些关于ARM学习的书籍,现在就把它们都贴出来,或许对大家学习有所帮助。…

查看全部问答>

做射频工程师已十年后的感想(转)

十年了,依然两手空空。回首一望,心里无比苍凉。 由于学历比较低吧,知名的企业进不了。也就一些小公司看在我经验丰富的份上要了我,工资老涨不上去;而且那些公司确确实实是要会干活的人。因此,差不多每进一家厂,都会有一些很难的项目等着我。 ...…

查看全部问答>

定点dsp与浮点dsp的比较

数字信号处理器是一种特别适合于进行数字信号处理的微处理器,主要用于实时快速地实现各种数字信号处理算法    定点运算DSP数字信号处理器在应用中已取得了极大的成功,而且仍然是DSP应用的主体。然而,随着对DSP处理速度与精度、存储 ...…

查看全部问答>

S3C6410_DPF官方文档

我收集的一个S3C6410有关的pdf文档,E文的,1190页的,请大家查看,呵呵 还有一个S3C6410的移植过程,感觉很不错,拿来一起分享…

查看全部问答>

光耦合继电器

http://www.ecb.omron.com.cn/product/pdf/G3VM-81G1.pdf   帮忙看下这个手册,我想问的是,输出端悬空,能实现开关信号输出吗?…

查看全部问答>

电源开关 方法

各位好 我想通过MCU控制实现“5V电源的通断”。 我第一印象是通过 “继电器”  来实现。 请教各位还有什么好的方法实现吗? 多谢参与!…

查看全部问答>

关于三级管的问题(非该论坛的问题)

关于三级管的问题 有两个三极管(3DG6型号或3DG8型号放大倍数>=50;3A*31型号或3AX81型号放大倍数>=30。)可用现在市场上的哪种型号的三极管代替呀?望各位告知一下。…

查看全部问答>

求助!是经常被问到的关于显示JPG图片的。

是WINCE5的SDK,用IImagingFactory    IImage接口, 报错是 dcdvDlg.obj : error LNK2001: unresolved external symbol _CLSID_ImagingFactory dcdvDlg.obj : error LNK2001: unresolved external symbol _IID_IImagingFactory 我已 ...…

查看全部问答>

有几个域名想转让,有兴趣的请进

以下三个域名想转让,有需要有可以加QQ联系:289461117 187356070 jizhehui.cn so-suo.cn 晋江鞋城.com …

查看全部问答>