51单片机基础之串口通信
原理:
这里需要解释一下,串口通信是需要占用定时器1的,所以使用了串口通信就不能使用定时器1,除非是代码优化。
这个需要配置几个寄存器,都比较简单,TMOD寄存器设置定时器计数器的工作方式,SCON则是设置串口通信的工作方式,PCON则是波特率加倍操作,都是比较简单的。
计时器初始值的设置有专门的工具
链接:https://pan.baidu.com/s/1BSi8YCaRWtBGLaV2gslpSw
提取码:1234
使用方法:
设置定时器工作方式,单片机晶振,所需波特率,是否开启倍频,最好让误差为零。
代码:
#include <reg51.h>typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;void uart_init(u8 baud)
{TMOD|=0X20; //设置计数器工作方式2SCON=0X50; //设置为工作方式1PCON=0X80; //波特率加倍TH1=baud; //计数器初始值设置TL1=baud;ES=1; //打开接收中断EA=1; //打开总中断TR1=1; //打开计数器
}void main()
{ uart_init(0XFA);//波特率为9600while(1){ }
}void uart() interrupt 4 //串口通信中断函数
{u8 rec_data;RI = 0; //清除接收中断标志位rec_data=SBUF; //存储接收到的数据SBUF=rec_data; //将接收到的数据放入到发送寄存器while(!TI); //等待发送数据完成TI=0; //清除发送完成标志位
}
运行结果:
发给单片机什么,单片机就回复你什么。
51单片机基础之串口通信相关推荐
- 基于51单片机的双机串口通信排队叫号系统(LCD显示)设计
基于51单片机的双机串口通信排队叫号系统(LCD显示)设计 1 开发环境 视频讲解 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7.2 设计要求及 ...
- 51单片机入门——UART串口通信
文章目录 前言 1.什么是串行通信 2. USB转串口通信 3. IO 口模拟 UART 串口通信 4 UART串口通信的基本应用 4.1 通信的三种类型 4.2 UART模块 4.3 UART 串口 ...
- 【51单片机STC89C52】串口通信(蓝牙)
目录 一.串口 1.串口基本认知 2.串口通信 3.串口编程寄存器 串行口相关寄存器 串行口控制寄存器SCON和PCON STC-ISP工具波特率计算器 串口初始化编程实现 二.发送一个字符'a'给P ...
- 51单片机c语言串口通信,51单片机串口通信系列例程
2.将接收的数据发送出去 #include "reg51.h" #define uchar unsigned char #define uint unsigned int //延 ...
- 单片机 多机通讯c语言,单片机多机串口通信.doc
单片机多机串口通信 摘要 本文详细介绍了基于RS-485总线的单片机与多台单片机间的串行通信原理.实现方法和相应的通信硬件.软件设计.该设计是由单片机与单片机组成的主从控制系统,其中单片 关键词: 单 ...
- 单片机与PC机一样都是计算机,51单片机与PC机通信资料
<51单片机与PC机通信资料>由会员分享,可在线阅读,更多相关<51单片机与PC机通信资料(14页珍藏版)>请在人人文库网上搜索. 1.专业综合实习报告专 业: 电子信息工程 ...
- 单片机红外通信c语言,基于C语言的计算机与多单片机红外无线串口通信的实现.doc...
基于C语言的计算机与多单片机红外无线串口通信的实现 基于C语言的计算机与多单片机红外无线 串口通信的实现 黄文亮 信息学院 电子信息工程专业 指导教师 刘传菊 摘要:计算机与一台或多台单片机的通信系统 ...
- 51单片机 ENC28J60 TCP/IP通信
51单片机 ENC28J60 TCP/IP通信 单片机:STC90C516RD+ ENC28J60模块:mini(3.3V供电) 设备:PC.开发板.两个网线.路由器 首先先介绍一下本文的移植针对于单 ...
- Matlab 与stm32单片机之间的串口通信
Matlab 与stm32单片机之间的串口通信 在我们用stm32做信号处理时,我时常需要用到Matlab对我们采集的数据进行分析,拟合.按照传统的方法,我们一般都会先将数据通过串口助手打印出来,再导 ...
最新文章
- Linux的追逐,Windows的穷途恼指日可待
- 一份来自28岁.NET老程序员的自白
- cuba 平台_CUBA 7的新功能
- 深圳敏捷云计算机科技,敏捷云 | 关于我们 | 敏捷云
- 5G基站功耗,到底有多大?
- 【Python】如何获取Numpy三维数组中目标值的位置
- 百度网盘空间调整:这类用户2TB变100GB!
- python权限管理系统_Django 自定义权限管理系统详解(通过中间件认证)
- Mysql 8.0 遇到用遇到的几个问题及解决办法
- 真北方向、坐标北向以及磁北向
- qqxml图片代码_分享三款高级qqxml消息卡片代码
- 如何用photoshop给图片添加水印?
- 平安智慧企业大规模离职_中国平安人事再变动,28年老将任汇川离职,影响几何...
- 抖音云控系统领先品牌
- Unix Domain Sockets
- 宝石塔防:如果还有人过不去1337,俺来发个详细点儿的攻略吧
- 2018高二计算机会考,2018高二会考时间及考试科目
- 雅虎财经股票数据API获取
- 蓝桥牌型种数 C语言解法
- javax.swing的基本组成