STC51单片机一般带有1个串口,有的带有2个串口,串口一般用于下载程序和串口通信。串口通信特别适合控制设备,所以工控机的电脑上一般都带有串口。
51单片机的串口引脚为P3.0引脚与P3.1引脚,分别是RXD和TXD引脚。串口通信可以用于单片机和其它芯片通信或者单片机之间通信或者单片机与电脑通信。串口通信一般都是交叉连接。标准的串口有9个引脚,我们一般情况下,只用RXD TXD GND,剩下的引脚都是通信控制引脚,在以前用于控制电话机,现在已经基本上不用了。所以我们的51单片机上只保留了RXD和TXD。
串口通信的协议非常简单。如果单片机上的串口不够用,还可以用任意两个引脚模拟串口通信。
一般情况,我们用带有起始位的8位串口协议。波特率常用9600,此外还有1200 2400 4800 115200等。
打开串口的程序如下:
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
SCON=0X50;
TR1=1;
程序涉及到5个寄存器的配置。
TMOD是定时器控制寄存器
TH1和TL1是定时器1的初值寄存器
SCON是串行口控制寄存器
TR1是TCON寄存器中的bit4,因为该寄存器可以位操作
串口发送数据的程序如下所示:
SBUF=55; // 发送数据55
while(!TI);
TI=0;
程序涉及到2个寄存器
SBUF是串口数据寄存器
TI是SCON寄存器中的bit1,位操作
串口接收数据的程序如下所示:
if(RI)
{
recebuf=SBUF;
RI=0;
}
程序涉及到2个寄存器
SBUF是串口数据寄存器
RI是SCON寄存器中的bit0,位操作
SBUF既是发送数据寄存器,又是接收数据寄存器。
可以把上面的功能模块封装成函数,在使用的时候,直接调用。
关键字:51单片机 串行口通信
引用地址:
51单片机教程第6讲_串行口通信
推荐阅读最新更新时间:2024-03-16 15:24
基于51单片机+DHT11温湿度模块+ESP8266模块+上传oneNET APP显示+LCD1602显示
基本介绍 最近做了一个基于51单片机(STC89C52)+DHT11温湿度模块+ESP8266模块+上传oneNET APP显示+LCD1602显示。51单片机采集DHT11模块的温度和湿度,通过ESP8266模块上传温湿度到oneNET平台,然后通过APP查看温湿度模块,同时LCD1602也同样显示温度和湿度。还可以设定按键控制但单片机外设,比如APP按键按下让单片机点亮一个灯等等。。。。。 器件 51单片机 ESP8266 我用的是 01s DHT11温湿度 usb-ttl模块 实现思路 get方式 是获取平台上面的数据,正常我们单单做温湿度显示 不需要用到,如果需要用到按键等则需要。 实现步骤 1
[单片机]
MCS-51单片机中断处理过程
中断响应: 1.响应条件 CPU响应中断的条件有: ①有中断源发出中断请求; ②中断总允许位EA=1,即CPU开中断; ③申请中断的中断源的中断允许位为1; 满足以上条件,CPU响应中断;如果中断受阻,CPU不会响应中断。 2.响应过程 单片机一旦响应中断,首先置位响应的优先级触发器,然后执行一个硬件子程序调用,把断点地址压入堆栈保护,然后将对应的中断入口地址装入程序计数器PC,使程序转向该中断入口地址,以执行中断服务程序。 中断处理:CPU响应中断结束后即转至中断服务程序的入口。从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或称中断服务。中断处理包括两部分内容:一是保护现场,
[单片机]
使用51单片机编写计时器(分钟,秒钟分离版)
针对网络上大部分例程序只有倒计时秒 , 无法一眼看出还剩多少时间,因此做考试计时器不具备实用性。 因此,编写一个 分钟,秒钟分离的版本,方便考生的时间控制。 /*================================================================== 编写时间: 2022.04.21 设计目标: 四位共阴极数码管, 前两位为分钟后两位为秒钟。 设定时间为90分钟,开机后开始倒计时。 硬件电路设计: 数码管使用4个NPN三极管驱动,基极通过1K电阻连接STC89C51的 P1.0-P1.4 口。发射极共地,集电极接数码管阴极。 数码管数据位分别通过电阻限流后同S
[单片机]
51单片机入门教程(3)——数码管显示
一、LED数码管简介 LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成的器件。常见的LED数码管为“8”字型的,共计8段。每一段对应一个发光二极管。 数码管有共阳极和共阴极两种 共阴极: 数码管的发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时,发光二极管点亮。 共阳极: 数码管的发光二极管的阳极连在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。 二、数码管静态显示 数码管静态显示就是无论多少位LED数码管,同时处于显示状态。 为了使数码管显示不同的符号或数字,只需要把某些段发光二极管点亮就可以了。 假设在共阴极的
[单片机]
嵌入式学习笔记9——51单片机之中断外部中断
1. 中断的原理: CPU暂时中断当前的工作(这叫中断响应),转去处理事件B(这叫中断服务)。 2. 89C51的中断系统有5个中断源(按优先级高低排序为:外部中断0、计时器中断0、外部中断1、计时器中断1、串口中断),2个优先级,可实现二级中断嵌套(中断处理过程又有优先级更高的中断发生)。高级单片机中可能有更多的中断源和更多的优先级等。 3. 89C51单片机的中断优先级有三个原则: (1)CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。 (2)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。 (3)正在进行的低优先级中断服务,能被高优先级中断请求所中断。(为实现后两个原则,系
[单片机]
一个51单片机实现数字时钟(1602显示)
用单片机实现数字时钟,关于时间显示,是用的1602液晶,C51单片机,然后再加一个定时器,每到一秒就动态的更新一下液晶的时间显示,在更新的时候也要计算相应的分针和时针的变化,还要注意边界问题.为了能够达到一个最好的效果,我还加了一个键盘扫描,用到了3个键,分别为功能键,增1,减1来实现用户自定义时间. 在实现过程中,用到了单片机的中断系统的相关知识,还有定时器,液晶显示,键盘的动态扫描,都是以前的知识,没什么难度. 程序如下,可以正常运行. C代码 #i nclude reg52.h #define uint unsigned int #define uchar unsigned char sb
[单片机]
通信(通信方式\电平转换\波特率\串行口结构)
以下内容选自郭天祥的书籍: 串行通信方式: 串行通信的必要过程:发送时,要把并行数据变成串行数据发送到线路上去,接受时,要把串行信号再变成并行数据,这样才能被计算机及其他设备处理。 串行通信又有两种方式:异步串行通信和同步串行通信。 异步串行通信方式: 同步串行通信: TTL和RST232电平的转换: 波特率与定时器初值的关系: 也就必定很高。 串行口结构描述: 方式1的编程和实现:
[单片机]
基于Proteus的51单片机实时时钟的仿真设计
单片机技术应用于各行各业,是一种实用的智能型控制技术,单片机技术的发展极大地推动了电子、通信、计算机、机电一体化等行业的快速发展,成为当前教学和科研的热门技术。本文详细介绍一种新型的单片机仿真软件Proteus,利用它可以实现单片机教学中很多面向端口、外围设备扩展控制型实验的仿真,提高教学效果,进一步缩短教学与工程实际的距离。 1Proteus简介 ProteusISIS是英国Lacenterelec-tronics公司开发的电路分析与实物仿真软件,应用范围十分广泛,涉及PCB制版、Spice电路仿真、单片机仿真以及对ARM7/LPC2000的仿真。Proteus主要由ARESISIS两大模块构成,ARES主要用于
[单片机]