我们从2011年坚守至今,只想做纯粹的技术论坛,请不要发布和技术无关的话题。  本站有两万多份高大上的PCB和原理图下载,每日更新中,欢迎常回来看看

 找回密码
 立即注册
搜索
查看: 1824|回复: 10

[技术文章] 一个简易的51单片机串口接收和发送程序

[复制链接]

34

主题

16

回帖

103

积分

二级逆天

积分
103

社区居民终身成就奖

QQ
发表于 2020-1-11 22:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
/*********************
程序功能:接收上位机发过来的一个字符串,然后把该字符串发送给上位机,
  字符串必须以!结尾
**********************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED = P2^7;
uchar flag = 0;
uchar index = 0;
uchar data c[100];
void Delay_ms(uint n)
{
uchar i;
while(n--)
     for(i = 0;i < 120;i++);
}
void Send_string(uchar *c)
{
while(*c != '!')
{
  SBUF=*c;
  c++;
  while(TI==0);
  TI=0;
}
}
void main()
{
SCON=0x50;    //串口模式1,允许接收
TMOD=0x20;    //T1工作模式2
TH1=0xF3;    //波特率4800
TL1=0xF3;
PCON=0x80;    //波特率倍增
EA = 1;//开总中断
ES = 1;//开串口中断
TR1=1;//开定时器1中断
while(1)
{
  if((SBUF == '!')&&(flag == 1))
  {
    Send_string(c);
   LED = ~LED;
   index = 0;
   flag = 0;
  }
  /*
  需要理解虽然 读取SBUF和写入SBUF所用的SBUF是不同的,这里可以理解为有两个SBUF,
  一个SBUF_read和一个SBUF_write,当往SBUF中写数据时SBUF_read不变。
*/
}
}
//串口接收中断函数
void Serial_INT() interrupt 4
{
if(RI==0) return;
ES=0;    //关闭串口中断
RI=0;    //清接收中断标志
c[index++]=SBUF;
    if(SBUF == '!')
   flag = 1;
ES=1;
}
  • 打卡等级:常住青年
  • 打卡总天数:17
  • 打卡月天数:0
  • 打卡总奖励:61
  • 最近打卡:2025-01-13 19:11:02

0

主题

8150

回帖

7628

积分

二级逆天

积分
7628

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2020-1-11 22:48 | 显示全部楼层
回复

使用道具 举报

1

主题

5344

回帖

1288

积分

二级逆天

积分
1288

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2020-1-12 07:59 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家II
  • 打卡总天数:323
  • 打卡月天数:0
  • 打卡总奖励:1066
  • 最近打卡:2026-02-24 15:59:24

0

主题

1931

回帖

624

积分

二级逆天

积分
624

终身成就奖

QQ
发表于 2020-1-12 18:08 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:常住青年
  • 打卡总天数:17
  • 打卡月天数:0
  • 打卡总奖励:61
  • 最近打卡:2025-01-13 19:11:02

0

主题

8150

回帖

7628

积分

二级逆天

积分
7628

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2020-1-12 18:40 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家II
  • 打卡总天数:339
  • 打卡月天数:10
  • 打卡总奖励:984
  • 最近打卡:2026-11-13 09:49:43

1

主题

1887

回帖

2761

积分

二级逆天

积分
2761

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

发表于 2020-1-13 09:07 | 显示全部楼层
回复

使用道具 举报

1

主题

3851

回帖

8743

积分

二级逆天

积分
8743

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2020-2-11 08:49 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:初入少年
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:4
  • 最近打卡:2024-11-13 11:41:18

3

主题

21

回帖

20

积分

一级逆天

积分
20

终身成就奖

发表于 2020-3-19 21:03 | 显示全部楼层
回复

使用道具 举报

47

主题

718

回帖

1055

积分

二级逆天

积分
1055

终身成就奖

发表于 2020-3-20 08:59 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:初入少年
  • 打卡总天数:14
  • 打卡月天数:0
  • 打卡总奖励:38
  • 最近打卡:2026-06-02 19:55:44

26

主题

4227

回帖

1万

积分

三级逆天

积分
10155

终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

QQ
发表于 2020-11-14 08:25 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请举报投诉

本站所有资料仅限参考学习交流,PCB原理图源码等所有资料不保证准确没问题,请不要用作生产。否则后果自负。

闽公网安备35062302000276号 | 闽ICP备2024076463号-1 | 论坛技术支持QQ群171867948 | 论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表