C51单片机串口初始化为何是这样:SCON=0X52;TMOD=0X20;TH1=0XF3;TR1=1;
SCON-串行口控制寄存器:可位寻址,单片机复位时,各位都被清0
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
SM0 |
SM1 |
SM2 |
REN |
TB8 |
RB8 |
TI |
RI |
SM0、SM1:串行通信方式选择位。
SM0 |
SM1 |
工作方式 |
功能说明 |
波特率 |
0 |
0 |
方式0 |
同步移位寄存器方式 |
osc f /12 |
0 |
1 |
方式1 |
8位异步通信方式 |
可变,由定时器控制 |
1 |
0 |
方式2 |
9位异步通信方式 |
osc f /32 或osc f /64 |
1 |
1 |
方式3 |
9位异步通信方式 |
可变,由定时器控制 |
SM2:多机通信控制位。
在方式0时,SM2必须为0。
在方式1时,若SM2=0,RB8是接受到的停止位;若SM2=1,则只有收到有效的停止位才会激活中断RI,若没有接受到有效停止位,则RI清0。
在方式2或3时,如果SM2 = 1,则只有当接收到的第9位数据(RB8)为“1”时,才使RI置“1”,产生中断请求,并将接收到的前8位数据送入SBUF。当接收到的第9位数据(RB8)为“0”时,不提出中断,接收到的前8位数据无效。若SM2 = 0,接收到RB8后必然置位RI,产生中断,此时不论地址帧还是数据帧都能接收。
REN:接收控制位。由软件置1或清0,“0”即禁止接收。“1”允许接收。
TB8:发送数据的第9 位。方式2和方式3,TB8是要发送的第9位数据,其值由软件置“1”或清“0”。在双机串行通信时,一般作为奇偶校验位使用;在多机串行通信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧,TB8=0为数据帧。
RB8:接收数据的第9位。方式2和方式3,RB8存放接收到的第9位数据。在方式1,如SM2 = 0,RB8是接收到的停止位。在方式0,不使用RB8。
TI:发送中断标志位。发送数据前由软件清0,发送结束由硬件置1。方式0,发送完8位数据时TI由硬件置“1”,其他方式中,发送停止位时置TI 为“1”。其状态可供软件查询,也可请求中断
RI:接收中断标志位。接收前由软件清0,接收完时由硬件置“1”。方式0时,接收完第8位数据RI由硬件置“1”。在其他工作方式中,串行接收到停止位的中间时,该位置“1”。 其状态可供软件查询,也可请求中断
TMOD-定时器控制寄存器:不按位寻址,高四位控制T1,低四位控制T0。地址89H
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
GATE |
C/T |
M1 |
M0 |
GATE |
C/T |
M1 |
M0 |
GATE :定时操作开关控制位,当GATE=1时,INT0或INT1引脚为高电平,同时TCON中的TR0或TR1控制位为1时,计时/计数器0或1才开始工作。若GATE=0,则只要将TR0或TR1控制位设为1,计时/计数器0或1就开始工作。
C/T :定时器或计数器功能的选择位。C/T=1为计数器,通过外部引脚T0(P3.4)或T1(P3.5)输入计数脉冲。C/T=0时为定时器,由内部系统时钟提供计时工作脉冲。
M1 :模式选择位高位
M0 :模式选择位低位
M1 |
M0 |
工作模式 |
0 |
0 |
13位计数/计时器 |
0 |
1 |
16位计数/计时器 |
1 |
0 |
8位自动加载计数/计时器 |
1 |
1 |
定时器1停止工作,定时器0分为两个独立的8位定时器TH0及TL0 |
SCON=0X52 :选择8位异步通信方式,波特率可变,由定时器控制;允许接受;发送中断标志、接收中断标志分别为1、0
TMOD=0X20:使用定时器1,8位自动加载计时器
TH1=0XF3:设置8位自动加载计时器定时时间,设定波特率为9600
TR1=1:启用定时器1
C51单片机串口初始化为何是这样:SCON=0X52;TMOD=0X20;TH1=0XF3;TR1=1;相关推荐
- c51单片机串口通信电脑向单片机发送数据
main.c #include <REGX52.H> #include "UART.H"void Delay(int t) { while(--t); }void ma ...
- 单片机 串口通信实验
思考题: 设计两个单片机通过串口方式1进行全双工数据通信,要求将波特率设置为2400,晶振频率为11.0592MHz,请分别编写发送程序和接收程序,接收端需使用液晶屏幕显示接收内容,发送端可循环发送一 ...
- C51单片机实现双机通讯
C51单片机实现双机通讯(代码为原创,供参考) 一.实验任务: 编程控制单片机实现与其他单片机之间的双机通信. 要求实现以下功能: 1.甲机所连矩阵键盘(0~F)按下的键值,可以通过串行口发送到乙机, ...
- C51单片机基础之串口编程实战
目录 一.串口编程寄存器分析 1.PCON : 电源控制寄存器 2.SCON:串行控制寄存器 二.自己实现串口初始化编程 三.发送一串字符串给到PC端编程 四.PC发送指令控制LED编程 五.串口中断 ...
- STC89C516/C52单片机串口波特率9600初始化代码
串口初始化代码 bit busy;//全局变量void UartInit(void) //串口初始化,9600bps@11.0592MHz {SCON = 0x50; //8-bit variable ...
- C51单片机连接wifi模块,发送AT指令
一.AT指令 AT 指令集是从终端设备( Terminal Equipment , TE) 或 数据终端设备 ( Data Terminal Equipment , DTE) 向终端适配器 (Term ...
- c51单片机原理复习资料2020
今年考了单片机原理,整理了大几千字的复习文档,留着也没用,就在下面分享出,仅供参考. 以下文档复制自word文档,无图片,下载参见: 坚果云 github 这里还有一个c51的中文介绍文档,觉得也挺不 ...
- 【C51开发应用】基于C51单片机开发的循迹灭火机器人
基于C51单片机开发的循迹灭火机器人 一.作品摘要 二.系统设计步骤 三.方案设计 3.1 小车主体设计 3.1.1 购买玩具小车进行改装 3.1.2 自己设计小车主体结构 3.2 电 ...
- 51单片机-串口通信
目录 1.什么是通信 1.1.通信的概念 1.2.传送方式 1.3.同步方式 1.4.传送方向 1.5.校验方式 2.单片机串口介绍 2.1.硬件电路 2.2.电平标准 2.3.常见接口 2.4.内部 ...
- 普中单片机---串口通信(1)--通过按键控制发送
普中单片机-串口通信(1)–通过按键控制发送 软件代码 #include <reg52.h>#define jingzhen 12000000UL /*使用12.0M晶体*/ #defin ...
最新文章
- 求一个容器的最值的索引_殊途同归——从一道经典的多元最值问题说开
- 图解Google Android内核编译教程
- oracle+restore+pfile,RAC(11gR2) OCR BACKUP RESTORE
- @EnableDiscoveryClient
- lotus php,LotusPhp笔记之:Cookie组件的使用详解
- BeetleX服务网关流量控制
- 7-1 公路村村通 (30 分)
- 解决:VMware DHCP Service 服务无法启动
- ECshop 快捷登录插件 支持QQ 支付宝 微博
- 黑马程序员---java基础------------------多线程
- Lua 学习笔记(四)语句与控制结构
- USB2.0学习笔记连载(一):CY7C68013特性简介
- nsq php,NSQ 最佳实践
- jsf el 表达式_JSF表达式语言– JSF EL
- 程序员面试金典——17.6最小调整有序
- Python Django之路由系统
- 51单片机蜂鸣器演奏《小苹果》C语言程序,C利用51单片机蜂鸣器演奏音乐
- ObjectARX动态添加AutoCAD传统下拉菜单入门篇(一)
- 韩立刚计算机网络——第三章:数据链路层
- 计算机中存储、网络传输计量单位
热门文章
- [Slackware13.0学习笔记]上网问题
- python毕业设计作品基于django框架外卖点餐系统毕设成品(7)中期检查报告
- 学李炎恢老师的PHP第一季 笔记 多用户留言系统-TestGuest0.2
- 金士顿16g u盘量产
- 计算机磁盘管理只有C盘怎么办,新电脑只有C盘怎么办?手把手教你给硬盘分区!...
- 第【一】部分Netzob项目工具的安装配置
- Windows Server 2003 (NT 5.2.3790.0) 操作系统源代码编译构建指南版本 10b,上次更新 2021/10/21
- 联想笔记本重装系统声卡驱动未安装报错代码28,声音图标显示红叉没有声音
- 华为c8812刷机包 android4.4,三款华为c8812 4.1.1版本的rom刷机包
- c语言中为什么无法打开原文件格式,为什么vs2012无法打开源文件graphics.h和bio