【单片机】51单片机串口的收发实验,串口程序

这篇具有很好参考价值的文章主要介绍了【单片机】51单片机串口的收发实验,串口程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【单片机】51单片机串口的收发实验,串口程序,单片机,单片机,51单片机,串口
这段代码是使用C语言编写的用于8051单片机的串口通信程序。它实现了以下功能:

引入必要的头文件,包括reg52.h、intrins.h、string.h、stdio.h和stdlib.h。

定义了常量FSOC和BAUD,分别表示系统时钟频率和波特率。

定义了一个发送数据的函数send,该函数将数据发送到串口,等待数据发送完成后清除发送中断标志。

定义了一个打印字符串的函数Print_Str,该函数将一个以空字符结尾的字符串发送到串口。

定义了串口初始化函数SerInit,该函数配置串口通信的相关寄存器,包括设置波特率、串口模式、定时器模式等。

定义了一个延时函数delay_ms,用于产生指定毫秒数的延时。

定义了全局变量Txd_data,用于保存接收到的数据。

定义了串口中断服务函数Uart_isr,当接收到数据时会触发串口中断,该函数将接收到的数据发送回去。

在main函数中,首先调用SerInit进行串口初始化,然后开启总中断,延时一段时间,接着使用Print_Str函数发送一些字符串。

在main函数的主循环中,程序会一直循环执行。

总体来说,这段代码配置了8051单片机的串口通信功能,使其能够接收和发送数据。通过串口,你可以与外部设备进行数据交换和通信。文章来源地址https://www.toymoban.com/news/detail-629212.html

#include "reg52.h"
#include <intrins.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

#define FSOC	11059200L
#define BAUD	9600

void send(unsigned char dat) {
	SBUF = dat;
	while (!TI);
	TI = 0;
}

void Print_Str(unsigned char *s) {
	while (*s != '\0') {
		send(*s++);
	}
}


void SerInit(void) {
	SCON = 0x50;
	TMOD = 0x20;
	TCON = 0x40;
	TH1 = -(FSOC / BAUD / 12 / 16);
	TL1 = -(FSOC / BAUD / 12 / 16);
	PCON = 0x80;
	RI = 0;
	TI = 0;
	ES = 1;
}


void delay_ms(unsigned int t) {
	unsigned char ttt;
	while (t--) {
		for (ttt = 0; ttt < 125; ttt++);
	}
}

unsigned char Txd_data;
void Uart_isr() interrupt 4 {
	if (RI) {
		Txd_data = SBUF;
		RI = 0;
		send(Txd_data);
	}
}


void main(void) {
	SerInit();
	EA = 1;
	delay_ms(200);
	Print_Str("zheng dian bao shi ");
	Print_Str("\r\n");

	while (1) {
	}
}

到了这里,关于【单片机】51单片机串口的收发实验,串口程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机点灯实验(含程序+仿真+硬件实验)

    一、实验原理 LED发光二极管核心为PN结,单向导电,有阴极和阳极,两极均可以控制,需要亮起来,电流不能过大和过小,过大,烧坏二极管,过小,电光效应弱,发光不明显,引入“限流电路”。为减少I/O引脚的消耗,一般控制一极,有阳极控制法和阴极控制法。阳极控制

    2024年02月04日
    浏览(53)
  • [物联网工程]基于Protues仿真平台的C51/2单片机蓝牙串口通信控制继电器实验

    目录 实验目的 实验内容 仿真部分 实战部分 环境搭建 软件下载 仿真实验过程 模拟电路仿真 打开Proteus并创建新项目 绘制仿真电路图 程序实现 程序编写 程序导入 运行仿真 真实设备实战 硬件连接 程序实现 程序编写 程序导入 运行验证 总结拓展 掌握AT89C51蓝牙通信的工作原

    2024年03月20日
    浏览(59)
  • 132、仿真-基于51单片机主从串口通信家用防盗报警器设计(程序+Proteus仿真+流程图等)

    毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、设计功能 二、Proteus仿真图​编辑 三、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号

    2024年02月16日
    浏览(42)
  • 51单片机串口使用

    今天将为大家讲解51单片机的串口原理及代码编写。 51单片机串口是一种通信接口,它可以将51单片机与外部设备连接起来,实现数据的双向传输。51单片机串口的原理是,51单片机的串口接口由两个管脚组成,一个是RXD,另一个是TXD,RXD用于接收数据,TXD用于发送数据。当5

    2024年02月05日
    浏览(49)
  • 51单片机串口

    1.1串口接线方式 RXD:数据输入引脚,数据接受;STC89系列对应P3.0口,上官一号有单独引出 TXD:数据发送引脚,数据发送;STC89系列对应P3.1口,上官一号有单独引出 接线方式 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FMY5yTZI-1690308835514)(C:Use

    2024年02月15日
    浏览(40)
  • 51单片机串口通信

    串口通信(serial communication)是指外设和计算机间通过数据信号线、地线等按位进行传输数据的一种通信方式,属于串行通信方式。 接口标准:常用RS-232和RS-485 RS-232C有一种9针的非标准连接器口,简称DB9。串口通信使用的大多都是DB9接口。在串口通信中,通常我们只使用2、

    2024年02月05日
    浏览(48)
  • 51单片机-串口通信

    目录 1.什么是通信 1.1.通信的概念 1.2.传送方式 1.3.同步方式 1.4.传送方向 1.5.校验方式 2.单片机串口介绍 2.1.硬件电路 2.2.电平标准 2.3.常见接口 2.4.内部结构 2.5.相关寄存器 2.6.工作模式(模式1) 2.7.如何配置串口中断 3.实际应用 3.1.单片机向电脑发送数据 3.2.电脑向单片机发送

    2024年02月01日
    浏览(50)
  • 【51单片机系列】proteus仿真单片机的串口通信

    本文参考:https://zhuanlan.zhihu.com/p/425809292。 在proteus之外使用串口软件和单片机通信。通过在proteus设计一个单片机接收PC发送的数据,并将接收的数据发送出去,利用软件【Configure Virtual Serial Port Driver】创建一对虚拟串口,利用软件【串口助手】向单片机发送数据。 proteus仿真

    2024年01月17日
    浏览(52)
  • 51单片机(串口通信、蓝牙)

    串行接口简称串口,也称 串行通信接口 或串行通讯接口(通常指COM接口),是采用串行通信方 式的扩展接口。串行接口(Serial Interface)是指 数据一位一位地顺序传送。 其特点是通信线路简 单,只要一对传输线就可以实现 双向通信( 可以直接利用电话线作为传输线),从

    2024年02月15日
    浏览(45)
  • 51单片机学习--串口通信

    首先需要配置寄存器: 下面这里SCON配0x40和0x50都可以,因为暂时还不需要接受信息,所以REN置1置0都可 在main中调用SendByte函数,每按下一次复位键,接收缓冲区就会收到一个11 这就是单向发送的一个简单实例,接下来实现每隔一秒发送一个递增的数据,只需要添加一个全局变

    2024年02月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包