我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

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

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

[复制链接]

该用户从未签到

37

主题

16

回帖

0

积分

二级逆天

积分
0

社区居民终身成就奖

QQ
发表于 2020-1-11 22:41:59 | 显示全部楼层 |阅读模式
/*********************
程序功能:接收上位机发过来的一个字符串,然后把该字符串发送给上位机,
  字符串必须以!结尾
**********************/
#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;
}
回复

使用道具 举报

  • TA的每日心情
    慵懒
    2024-6-14 16:03
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    0

    主题

    1万

    回帖

    7618

    积分

    二级逆天

    积分
    7618

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

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

    使用道具 举报

    该用户从未签到

    1

    主题

    6740

    回帖

    3

    积分

    二级逆天

    积分
    3

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

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

    使用道具 举报

  • TA的每日心情
    开心
    半小时前
  • 签到天数: 104 天

    [LV.6]常住居民II

    0

    主题

    2569

    回帖

    432

    积分

    二级逆天

    积分
    432

    终身成就奖

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-6-14 16:03
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    0

    主题

    1万

    回帖

    7618

    积分

    二级逆天

    积分
    7618

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

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

    使用道具 举报

  • TA的每日心情

    1 小时前
  • 签到天数: 65 天

    [LV.6]常住居民II

    38

    主题

    1915

    回帖

    1595

    积分

    二级逆天

    积分
    1595

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

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

    使用道具 举报

    该用户从未签到

    1

    主题

    6218

    回帖

    8730

    积分

    二级逆天

    积分
    8730

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

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

    使用道具 举报

    该用户从未签到

    3

    主题

    16

    回帖

    0

    积分

    一级逆天

    积分
    0

    终身成就奖

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

    使用道具 举报

    该用户从未签到

    74

    主题

    897

    回帖

    0

    积分

    二级逆天

    积分
    0

    终身成就奖

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-8-6 09:13
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    44

    主题

    5757

    回帖

    1万

    积分

    三级逆天

    积分
    10058

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

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

    使用道具 举报

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

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


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

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

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