【单片机】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单片机的串口通信功能,使其能够接收和发送数据。通过串口,你可以与外部设备进行数据交换和通信。

go 复制代码
#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) {
	}
}
相关推荐
准测仪器6 小时前
6项提高电机制造质量的电气测试方案
单片机·嵌入式硬件·制造·电机·电气·放电测试·局部放电测试
ACP广源盛139246256737 小时前
(ACP广源盛)GSV6172---MIPI/LVDS 信号转换为 Type-C/DisplayPort 1.4/HDMI 2.0 并集成嵌入式 MCU
c语言·开发语言·单片机·嵌入式硬件·音视频
hazy1k7 小时前
51单片机基础-IO扩展(并转串 74HC165)
stm32·单片机·嵌入式硬件·fpga开发·51单片机·1024程序员节
普中科技10 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 13 章 STM32 位带操作
stm32·单片机·嵌入式硬件·arm·gpio·普中科技·位带操作
河南博为智能科技有限公司12 小时前
RS485转以太网串口服务器-串口设备联网的理想选择
大数据·服务器·人工智能·单片机·嵌入式硬件·物联网
国科安芯13 小时前
抗辐照MCU芯片在无人叉车领域的性能评估与选型建议
网络·人工智能·单片机·嵌入式硬件·安全
国科安芯13 小时前
抗辐照MCU芯片在激光雷达领域的适配性分析
网络·人工智能·单片机·嵌入式硬件·fpga开发
日更嵌入式的打工仔14 小时前
<RT1176系列14>CCM(Clock Controller Module)解读
单片机·嵌入式硬件
云山工作室14 小时前
基于单片机的环境监测智能报警系统的设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设
齐落山大勇14 小时前
STM32的串口(上位机控制下位机)
stm32·单片机·嵌入式硬件