| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 单片机学习一:51单片机串口接发数据 -> 正文阅读 |
|
[嵌入式]单片机学习一:51单片机串口接发数据 |
接下来我以一段代码来详细分解串口的配置:?
这个可以简单得看作是一部分初始化串口的代码, 实际上是对各个参数进行配置选择,来设定串口如何使用, 代码上看这些寄存器的一些特定位如果是不同的状态(0或者1),那么该串口就有不同的功能,那么寄存器就会呈现不同的值,通过对几个关键的寄存器赋各种值,那么就可实现配置串口。 ?1;确定T1的工作方式(编程TMOD寄存器);代码:
这里的0x20可以看成是一串二进制代码0010 0000,它的具体配置内容如下: ?1、工作方式寄存器TMOD ? ? ? ? 工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下: GATE是门控位, GATE=0时,用于控制定时器的启动是否受外部中断源信号的影响。只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚INT0/1也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了INT0/1引脚为高电平这一条件。 ? ? ?C/T :定时/计数模式选择位。C/T =0为定时模式;C/T =1为计数模式。 ? ? M1M0:工作方式设置位。定时/计数器有四种工作方式。 ?就这里来说: tmod寄存器的的第7位gate设置为0,代表只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作; ?tmod寄存器的的第6位C/T 设置为0,代表选择为定时模式; ?tmod寄存器的的第5、4位设置为10,代表选择为方式2;即8位自动重装载寄存器。 低四位用于T0,高四位用于T1,这里就是用高4位来设置了t1计时器,t0计时器没有使用,这里全部赋0; 于是把tmod寄存器赋值为0010 0000 ?2、计算t1的初值这里可以用小工具计算出来,然后直接把值赋给它,也可以直接把计算公式代码写出来计算一次值 ?这里的代码是:
?t1初值就是用来定义波特率的 初值的计算可以看下面的资料: ? 3、设置pcon的值??tmod寄存器的的第7位smod设置为1,所以这个值为0x80 4、启动t1(计数器1)tr1=1 ?5、设置scon这里的内容就比较多了,见下 ? ?0x50=0101?0000 即: sm0=0 sm1=1 sm2=0 ren=1 tb8=0 tb8=0 ti=0 ri=0 ?6、打开串口中断和总中断?es=1 ea=1 ? 补充: SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H。 SBUF,全称:serial data buffer,中文名为串行数据缓冲器。这个重叠的地址靠读/写指令区分:串行发送数据时,CPU向SBUF写入数据,此时99H表示串行口的发送缓冲寄存器;串行接收数据时,CPU从SBUF读出数据,此时99H表示串行口的接收缓冲寄存器。 这个讲得比较好: STC89C52_51单片机_串口配置_UART串口通信_hello_StarLee的博客-CSDN博客_stc89c51串口通信 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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 11:53:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |