吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2815|回复: 14
收起左侧

[其他原创] 51 单片机 串口通讯方式1

[复制链接]
caoxiaolin 发表于 2020-11-19 11:18
[C] 纯文本查看 复制代码
/*
	2020年11月19日10:37:04
	
	功能:
		串口方式1 波特率 9600 @11.0592
		采用中断方式
		
		接收一个字符或者发送一个字符
		
		可以在此基础上 传输字符串
		
		接收字符 或者 发送 字符两不误
*/
#include <reg52.h>

void init();

char rec_buff = '\0'; //接收缓存
char sen_buff = '\0'; //发送缓存

void main()
{
	
	init();
	
	sen_buff = 'k'; //上电 发送一个 k
	SBUF = sen_buff;
	//sen_buff = '\0'; //发送内容 清空 写在中断里面了 也可以不再中断清空 操作完后再清空
	
	
	while(1)
	{
		sen_buff = rec_buff; //不断检测 当接收中断之后 rec_buff 将不再是'\0' 进入下面的控制中
		
		if(sen_buff)
		{
			switch(sen_buff)
			{
				case '1':
					P1 = 0xFE;
					break;
				case '2':
					P1 = 0xFC;
					break;
				case '3':
					P1 = 0xF8;
					break;
			}
			
			SBUF = '@'; //接收到之后返回一个[url=home.php?mod=space&uid=402414]@[/url] 可自行修改
			//sen_buff = '\0';
			rec_buff = '\0'; //防止不断发送 , 发送之后清空接收到的内容 如果想保留可以 在整个变量
		}
		
		/*
		if(sen_buff != '\0')
		{
			
			SBUF = sen_buff;
			sen_buff = '\0';
			rec_buff = '\0';
		}
		*/
		
	}
}
void init()
{
	//设置 定时器 TMOD
	TMOD = 0x20;
	TH1 = 0xFD;
	TL1  = 0xFD;
	
	//设置SCON
	SM0 = 0;
	SM1 = 1;
	SM2 = 1; //串口方式1 当确实收到 停止位 REN才置1
	
	//设置中断 IE
	EA = 1;
	ES = 1;
	
	//开启定时器 允许接收数据 TMOD SCON
	TR1 = 1;
	REN = 1;
}

void ser() interrupt 4 //串行口中断
{
	// 判断是 接收还是发送引起的中断
	if(RI == 1)
	{
		RI = 0;
		rec_buff = SBUF; //将接收到的数据保存在 rec_buff中
	}
	if(TI == 1)
	{
		TI = 0;
		sen_buff = '\0'; //将发送的数据清空
	}
	
}





发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wangpaishi 发表于 2021-3-17 08:10
四年前,自己用51单片机+纸币验证器+继电器+改造饭卡出纳机+红外计数传感模块,开发了一个饭卡自助充值机,对于奇偶校验,由于默认不支持,自己自行多发数据实现了校验,觉得自己棒棒哒
sundeheng 发表于 2020-11-19 12:18
暮光绮子 发表于 2020-11-19 12:24
qq734928657 发表于 2020-11-19 12:39
学习了    谢谢            
isver2 发表于 2020-11-19 12:56
好久没看过了
zxco9999 发表于 2020-11-19 12:58
51入门  
chendaxia666 发表于 2020-11-19 13:29
很久没玩过单板了
YouthGT 发表于 2020-11-19 14:56
最近学习了
masker_k 发表于 2020-11-19 15:06
突然发现那些用单片机做流水灯的日子,已经离我过去很久了
ZZGS-KIWI 发表于 2020-11-19 15:09
学习了,多谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表