C51单片机笔记(80C51的串行口)

作者&投稿:余妮 (若有异议请与网页底部的电邮联系)
~

在现代电子系统中,数据交换的主角之一便是串行通信。它凭借其简洁的硬件接口和高效的传输方式,广泛应用于微机系统及测控系统中。80C51单片机正是以其内置的全双工异步串行口(UART),为我们提供了强大的串行通信能力。


并行通信,如同高速公路上的多车道,数据的各个比特同时在多条数据线上流动,而串行通信则是像火车一样,一节节数据车厢逐个通过单条线路传递,节省了宝贵的硬件资源。在80C51中,串行口通过定时器T1的精确计时,实现了发送和接收的异步控制。


同步与异步</


同步串行通信如同交响乐团的精确同步,发送和接收端必须共享精确的时钟信号,确保数据的同步传输。反之,异步通信则允许设备使用各自独立的时钟,关键在于双方的时钟要尽量保持一致,以确保数据的准确接收。


传输模式与纠错</


80C51的串行口支持单工、半双工和全双工三种数据传输模式,确保数据流的双向或多向通信。而在数据的可靠性方面,串行口还提供了奇偶效验、数据编码和循环冗余码等错误检测手段,确保信息的准确无误。


波特率与比特率</


比特率,衡量的是每秒传输二进制代码的数量,而波特率则是指每秒信号变化的次数。在80C51的串行口,波特率控制寄存器SMOD可以实现波特率的倍增,为通信速率的调整提供了灵活性。


80C51串行口详解</


80C51的串行口核心组件包括发送缓冲寄存器SBUF、串行控制寄存器SCON,以及接收缓冲寄存器。工作方式选择由SM0和SM1位决定,可选择标准8位传输(方式0)或扩展9位传输(方式2和3)。工作方式1则支持10位数据帧,包含起始位和停止位,适用于更复杂的数据传输场景。


发送与接收过程遵循严谨的时序,从发送最低位到接收最高位,通过定时器T1精确计数,确保数据的有序流动。此外,串口控制寄存器SCON中的RI和TI标志位,分别指示接收和发送数据完成,为中断处理提供了关键信号。


波特率计算与常用设置</


通过调整定时器T1的初值,可以计算出与波特率相对应的T1溢出率。对于方式1和3,波特率计算公式为:Baud = ( /32) * (T1溢出率)。在实际应用中,选择合适的波特率是确保通信稳定性的关键步骤。




想学习 嵌入式ARM开发 请各位高手推荐个学习步骤!
问这个问题的人多半不是已经工作的工程师,而是和我一样是学生,所以这篇笔记就把看家当成我一样的菜鸟,高手勿怪。 首先声明:本人还没有找工作,事实上...两个月以前,我只是看别人做,耳濡目染~~,本科学过单片机,从来没做过。我们这的技术主干做AVR和51,我就跟他们调过C语言程序。你看出来了?我是个不折...

单片机C语言与汇编的区别
单片机c语言一般禁止递归,如果一定要,需要加修饰符ree...(笔记的怎么拼了,书上有的),中断函数禁止递归。一般都避免用递归运算,单片机毕竟不是PC,会影响速度的,要递归的话,用DSP芯片更合适,总之,要会挑合适的芯片 2:变量的大小(位数)一般和芯片累加器的位数一样,比如51常用8位的,因为它...

关于学习单片机原理的请教
2.看你那本 单片机技术,先别管 单片微型计算机原理与接口技术 这本书(最好能看下汇编,能看懂简单的就行,不要求你编写汇编程序了)。看完以上两本书后,你可以:3.以你的开发板为基础(不知道你的开发板是什么芯片的,扩展功能怎么样?),进行实际的编程,视频教程推荐郭天祥的51单片机教程,...

学习单片机,自己将买了一些元件,但不会做电路图. 请问需要学习哪些知 ...
要自己做外围电路,你要去学习电路分析、模拟电路、数字电路、高频电路和一些常用电子元件的基本知识,这样你才会分析电路,才能自己设计电路。要是你要自己做PCB,还要学会用PROTEL等类似软件。你的LHI778一般是配合BIS0001这个芯片做电路的,可以参考这个图,最左边标有DSG的就是你的LHI778了。

数码管怎么使用
接下来用51单片机设计目标:通过编写c语言程序经编译连接后下载到单片机中,使四位数码管依次显示1,2,3,4 define uchar usigned char define uint usigned int \/\/位选控制端口 sbit p20=P2^0;sbit p21=P2^1;sbit p22=P2^2;sbit p23=P2^3;\/\/数码管段选编码数组,分别为显示:1,2,3,...

怎样才能学好ARM,只有C语言和51单片机基础,学得也不是很好!
Cortex-R系列,Real time主要应用于实时控制 Cortex-M系列,Microcontroller主要是应用于工业控制。我推荐Cortex-M3核心的,意法半导体的STM32f103XX系列、Ti的LM3S系列都很好 还有LPC的NXP的都有很多,相信我吧,这个就好比当年8051的市场一般,新的格局到来了,8位的价格打造32位的性能。在吐血推荐周立功的...

74ls245输出电压降低了 51单片机经过后成了3.6伏怎么回事?
STC 的多了个定时器 看门狗 电源管理 等几个不常用的寄存器不太一样 其他的基本一致 甚至头文件都可以互换 主要是 STC的 最低电压3.8 V,AT 要4.2V STC 号称编程10W 而AT 手册上是1K 我的经验是3k多的。最大的区别是程序下载方式 STC是 3线串口,笔记可以用USB 转串口头10¥ 。而AT 的...

学习单片机需要什么基础学科? 数学 英语 汇编 C ?
学习单片机,一定要从汇编学起,你看不懂说明你没有单片机基础,有了一定的基础以后在学习可以用C语言,但是初期一定要用汇编,汇编是一门专门的单片机语言,他可以让你掌握单片机的结构,存储器的具体位置。如果你仅仅想学一个简单有用的,学C也行,不过学会单片机再学430或者ARm就麻烦了,因为你的...

单片机原理怎么能够学好
想学单片机从MCS-51开始,那是公认的,不必研究了.但单片机是一个很系统的学科,我们作为自学的,不可能象学校那样很系统的学,那样的话可能要倍上它三五年了...整个课程我都做了笔记,而且我发现做笔记有很多好处,首先你会知道自己已经学到那儿了,学得怎么样了(最起码是你懂了你才会记下来吧)!其次是课程里有很多...

关于单片机问题
想法不错,先学一个喽!建议stc89s52,首先,下载简单,而且你也学了编程,不用浪费啊。等学了一段时间,对电子有了一定的认识,AT89S52和AVR就会了解了,其实是差不多的。当然,有些地方还是有稍微的差别的。其实你的问题很简单,就做一个“USB转串口下载线”对不?只是你在找资料的时候,发现还有...

盘山县18554633094: 单片机80C51的哪个管脚接串行口 -
蓍削恬信: 单片机80C51的P3口的P3.0和P3.1分别接串行口的RXD(串行数据接收)和TXD(串行数据发送).由于物理层协议标准不同,它本身不能和电脑连接来进行通信,但可以通过转换芯片转成其他接口与电脑连接,比如RS232口(计算机的COM口). 80C51结构框图: 80C51引脚图: 引脚功能图:

盘山县18554633094: 51单片机的问题 80C51串行接口要求波特率匹配,这是什么意思啊? -
蓍削恬信: 为你正确解答: 80C51串行接口要求波特率匹配,意思就是串行通讯的双方 即单片机和(与之通讯的如个人电脑)之间的串口,传送数据的速率要保持一致,即二者的波特率要相同. 也就要想保证数据发送和接受能顺利进行,发数据的一方发送数据的速率与接受数据一方的接受数据的速率要一致.

盘山县18554633094: 80C51单片机串行方式1工作和方式0工作的串口接线方法有什么不同? -
蓍削恬信: 51单片机串行方式1工作,外接另一个设备的串口,双方交叉连线.串行方式0工作,外接移位寄存器,不交叉.

盘山县18554633094: 两个80c51单片机之间怎样进行串行通信 -
蓍削恬信: 就利用单片机的串口吗.如果两个单片机比较近,1米以内,就可以用TTL方式连接,即是两个单片机的TXD,TXD对接,GND相连,共地.如果距离再远的,就是RS232接口,实现标准 的串口通信,这很容易的,电路也简单,是最典型的串口通信电路了.程序就更好写了.

盘山县18554633094: 什么事串行异步通信,它有什么作用?80c51单片机 -
蓍削恬信: 什么事串行异步通信,它有什么作用?80c51单片机 行异步通信:串行通信的数据或字符是一帧一帧地传送,在异步通信中,一帧数据先用一个起始位“0”表示字符的开始,然后是5~8位数据,即该字符的代码,规定低位在前、高位在后,接下来是奇偶校验码,最后一个停止位“1”表示字符结束.特点:成本低,硬件方便,适合远距离通信,传输速度低.51的UART可以与电脑或其他单片机通信 绿竹别其三分景 红梅正报万家春 春回大地

盘山县18554633094: 80C51单片机串行接口有几种工作方式 -
蓍削恬信: 4种

盘山县18554633094: 80c51单片机引脚怎么读取上面接的模拟量和数字量和开关量信号然后发送到串口 -
蓍削恬信: 首先80c51单片机IO口只能读数字量信号,也就表示你所说的三种信号中只能读数字量信号和开关量信号,模拟量信号需要在外部加一个外部ADC(模数转换器)来实现.80c51是有异步串口通讯接口(Full Duplex Enhanced UART),对于模块中的寄存器进行控制就能实现串口通讯功能. 建议参考下网上的教程,很多的,不过也最好能够多看看数据手册(datasheet),因为那上面是最官方最权威的说明解释.

盘山县18554633094: 谁有80C51串行通信的C语言程序啊?? -
蓍削恬信: 串行通信其实就是按照一定的规则传输0 1数据,下面的程序就是以前做的一个无线通行的接受程序.可以看看其原理.#include <reg51.h>// defines typedef unsigned char uchar; typedef unsigned int uint;#define R_SL 35 //同步信号低电平时间设...

盘山县18554633094: 请问80C51单片机串行口的功能是什么?谢谢!!
蓍削恬信: 发送数据和接收数据,都在SFR里有自己的寄存器的

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网