| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STC89C52单片机串口通信以及代码演示 -> 正文阅读 |
|
[嵌入式]STC89C52单片机串口通信以及代码演示 |
目录串口介绍串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信。 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。 51单片机内部自带UART(Universal Asynchronous Receiver Transmitter,通用异步收发器),可实现单片机的串口通信。 硬件电路简单双向串口通信有两根通信线(发送端TXD和接收端RXD) TXD与RXD要交叉连接 当只需单向的数据传输时,可以直接一根通信线 当电平标准不一致时,需要加电平转换芯片 下图是以前的投影仪的插口线脚分布图,可以看的也用了TXD来发送数据,RXD来接受数据 电平标准电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种: TTL电平:+5V表示1,0V表示0 RS232电平:-3~-15V表示1,+3~+15V表示0 RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号) 注意这里单片机用的是TTL电平,而计算机用的是RS232电平,所以在单片机与电脑进行串口通信的时候要加电平转换芯片 常见通讯接口比较全双工:通信双方可以在同一时刻互相传输数据 半双工:通信双方可以互相传输数据,但必须分时复用一根数据线 单工:通信只能有一方发送到另一方,不能反向传输 异步:通信双方各自约定通信速率 同步:通信双方靠一根时钟线来约定通信速率 总线:连接各个设备的数据传输线路(类似于一条马路,把路边各住户连接起来,使住户可以相互交流) 51单片机的UART串口参数及时序图波特率:串口通信的速率(发送和接收各数据位的间隔时间) 检验位:用于数据验证(九位数据模式时的最后一位,RB8/TB8) 停止位:用于数据帧间隔 串口通信流程图看串口模式图我们软件在进行编程的时候要注意: SUBF(数据缓存器),TI(数据发送标志位),RI(数据接受标志位)的配置要求 以及T1溢出率的配置(TH1,TL1初值),SMOD置0时为正常波特率,置1时波特率加倍 串口相关寄存器这里还是为了尽可能的全面,所以在手册截的图。 ?补充说明一下,波特率的计算方法:在图上的寄存器SCON的配置中也可以看出来。1,是看SMOD的配置为1那么波特率加倍。2,其次是定时器1的溢出率,计算方法是周期的倒数。 下面举波特率为4800的计算方法(也是我们下面的代码里面的定时器1配置的) 设T=13us,定时器1的溢出率=1/T=0.0769230769230769,为使定时器误差小,这里的SMOD的配置为1,所以最后,波特率=(1/T)x(1/16)x1000000=4,807.692307692308 约等于4800 中断模式以及寄存器的配置串口中断位要打开,而定时器1的中断就不用开了(溢出后不用进行中断执行其他操作,计时器只是提供稳定的波特率) 这里有个小错误:上面的为定时器0,下面的是定时器1 数据显示模式HEX模式/十六进制模式/二进制模式:以原始数据的形式显示 文本模式/字符模式:以原始数据编码后的形式显示(即ASCLL代码编译以后) ?代码示例(串口与电脑互发数据)主函数:
SUBF输入函数:
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:42:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |