蓝桥杯单片机之模块代码《串口通信电脑发送和接受数据》

过往历程

历程1:秒表

历程2:按键显示时钟

历程3:列矩阵按键显示时钟

历程4:行矩阵按键显示时钟

历程5:新DS1302

历程6:小数点精确后两位ds18b20

历程7:35定时器测量频率

历程8:AT24C02

历程9:AT24C02秒表

历程10:AD

历程11:超声波

历程12:多样点灯方式

历程13:AT24C02页写入

历程14:DA

历程15:串口发数据

历程16:逐个点亮LED

历程17:花样霓虹灯

历程18:PWM控制灯亮度

历程19:PWM呼吸灯

历程20:串口通信发送接收数据



前期准备

1:本文使用的头文件是由stc生成
在这里插入图片描述
点击保存文件之后,保存至自己文件目录下方即可
在这里插入图片描述
2:本文使用的都是官方提供的底层驱动代码
在这里插入图片描述
3:本文使用的都是STC中的串口配置
在这里插入图片描述

串口通信知识点

通讯的方式分类:并行通信 串行通信

并行通信:
  数据的各位同时在多根数据线上发送或接收。

串行通信:
  数据的各位在同一根数据线上逐位发送和接收7

并行通信的特点:
  控制简单,传输速度快;由于传输线较多,适用于短距离通信。

串行通信的特点:
  控制复杂,传输速度慢;只需要一根数据线,适用于远距离通信。


根据串行通信中对数据流的分界、定时以及同步方案方法不同,可分为和同步和异步。


同步方式:
  发送端和接收端必须使用同一时钟,是一种连续传送数据的通信方式,一次通讯传送多个字符数据(一帧数据)

异步方式:
  发送和接收端使用的是各自的时钟,是一种不连续传送数据的通信方式,一次通信只能传输一个字符数据(字符帧)。字符帧之间的间隙可以是任意的


根据串行数据的传输方向,我们可以将通信分为单工,半双工,双工。


单工:
  信道是单向的,数据只能单方面传输,发送端只能发送数据,不能接收;接收端只能接收数据,不能发送;

半双工:
  数据可以进行双向传输,但不能在两个方向上同时进行。

全双工:
  数据可以同时进行双向传输。

SCON

SM0、SM1 工作方式:

SM2:多机通信控制位。方式2、方式3的时候才使用。

  工作于方式2和方式3时,当SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都将数据送入SBUF,并发出中断申请。

REN=1允许接收;REN=0禁止接收。

TB8:接收数据的第8位

RB8:接收数据的第8位

TI:串口发送完成中断标志位。由硬件自动置1,需要软件清“0”。

RI:串口接收完成中断标志位。由硬件自动置1,需要软件清“0”。

总代码

#include<reg52.h>
sfr AUXR=0X8E;

void fmq()
{
	P2=((P2&0x1f)|0xa0);
	P0=0x00;
	P2&=0x1f;
	
	P2=((P2&0x1f)|0x80);
	P0=0xff;
	P2&=0x1f;	
}

void din()
{
	TMOD = 0x20;
	TH1 = 0xfd;
	TL1 = 0xfd;
	TR1 = 1;
	
	SCON = 0x50;
	AUXR = 0x00;
	
	ES = 1;
	EA = 1;
	
}

void shou() interrupt 4
{
	if(RI==1)
	{

	}
}

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

void zifu(unsigned char *str)
{
	while(*str != '\0')
	{
		fa(*str++);
	}
}
void main()
{
	fmq();
	din();
	zifu("Welcome to XMF system!\r\n");
	while(1)
	{
	}
	
}

省赛代码传送门

第三届蓝桥杯单片机省赛
第四届蓝桥杯单片机省赛
第五届蓝桥杯单片机省赛
第六届蓝桥杯单片机省赛
第七届蓝桥杯单片机省赛
第八届蓝桥杯单片机省赛
第九届蓝桥杯单片机省赛
第十届蓝桥杯单片机省赛
第十一届蓝桥杯单片机省赛

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值