串行通信:
俩个概念:
1、串行异步通信:
双方按照各自约定好的时钟周期作为各自的时钟周期;原理上来说,双方各用各的时钟周期且约定相等,但是在实际的使用中由于各种因素的影响,会产生时钟偏差。这种方式为串行异步通信。
2、串行同步通信:
只有一方提供时钟周期信号,另一方只做接收,这样的化就只有一个时钟周期为基准。这样就会大大提高通信可靠性,这种方式为串行同步通信。
RS232接口标准:
用于短距离或带调制解调器的串行通信接口协议
1、RXD:接收数据
2、TXD:发送数据
3、GND:接地
采用负逻辑电平:
-15V~3V:逻辑1
+15V~+3V:逻辑0
串行口的使用:
串行口的结构:
1、发送 :数据总线将数据传输到发送寄存器SBUF中,通过发送控制器将数据逐位发送给TXD引脚,当一个字节发送完成后,触发TI中断。
2、接收 :RXD引脚实时监测电平变化,并输入到移位寄存器,当移位寄存器满足8位接收后,触发RI中断。
串行口相关寄存器:
PS:详见51单片机之特殊功能寄存器SFR篇
串行口的工作方式:
方式0:同步移位寄存器方式
通常用于外接移位寄存器用作扩展I/O口 ,波特率固定为一个机器周期,串行数据通过RXD输入输出,同步时钟通过TXD输出
发送:
接收:
利用方式0扩展并行I/O口:
1、当外接串入并出的移位寄存器时,就可以扩展并行输出口
2、当外接并入串出的移位寄存器时,就可以扩展并行输入口
方式1:8位异步通信方式
传输一帧信息为10位:1位起始位(0),8位数据位,一位停止位(1)
发送:
接收:
此种方式下波特率是可变的,有关波特率的计算:
例:
上一篇:51单片机并行I/O口工作原理
下一篇:51单片机之特殊功能寄存器SFR
推荐阅读




推荐帖子
- 晶体振荡器的原理与操作:第3部分——晶体振荡器–技术规范解读(1)
- 本帖最后由dontium于2015-1-2311:34编辑在本系列文章的上一部分里,我们具体探讨了晶体振荡器的工作情况。现在我们将讨论内容延伸到与晶体振荡器有关的各种参数及其对最终系统设计的影响。 晶体牵引范围:串联共振频率和抗共振频率由非常小的值分开,通常是Fs的3000ppm。频率分离可通过方程式1得到(参考上一部分的方程式9)。这个频率分离也被称为晶体的牵引范围。在上面的方程式中,C1/C0作为识别可牵引晶体的指示项。当为VCXO(电压控制晶体振荡器)应用选择合适的晶体时
-
sharley
模拟与混合信号
- eZ430-RF2500无线通信模块试用申请
- eZ430-RF2500无线通信模块试用申请eZ430-RF2500无线通信模块试用申请
-
xinzhi1986
微控制器 MCU
- Static Text 控件 背景透明后 文字重影 不能刷新文字的问题?(vs2005下的wince prj)
- 我现在用vs2005做一个wince5.0UIprj,遇到了跟您差不多的问题:我的mainDlg界面上有一个bmp的位图背景,mainDlg上还有8个button和8个对应的StaticText,当我在OnCtlColor()消息函数中添加 if(nCtlColor==CTLCOLOR_STATIC) { pDC->SetBkMode(TRANSPARENT); return(HBRUSH)GetStockObject(NULL_BRUSH); } 可以
-
yunalps
WindowsCE
- 简单明了的C2000开发工具指南
- 简单明了的C2000开发工具指南
-
dontium
微控制器 MCU
- 跪求大神解析
- 小弟看资料写的USART1的程序,想与上位机通信,但是无法接受数据……求大神教育 /*Includes------------------------------------------------------------------*/ #include"stm32f10x.h" #include"platform_config.h" GPIO_InitTypeDefGPIO_InitStructure; USART_InitType
-
stm32菜鸟
stm32/stm8
- 直流电机的单片机控制
- 要求是能通过按键控制电机的正反转,能够检测电机速度,在数码管上显示,控制速度。我刚学单片机不久,是自学的,所以水平很菜,只能单独做证反转,或者检测速度,至于控制速度,还有速度的显示做不了,哪位高手能够指点,或者有一些资料参考一下,谢谢了!直流电机的单片机控制
-
suzhu
单片机