#include <reg51.h>         //实验现象:单片接收电脑发送的字符串,并发回给PC端的代码.//函数声明
void uart_init(void);
void uart_seng_byte(unsigned char c);
void delay(void);
void uart_seng_string(unsigned char *str);
//主函数
void main(void)
{uart_init();                //第一步:初始化串口到正确状态uart_seng_string("\r\n");//第二步:通过串口发送字符串;字符串用双引号“”;换行字符:\r\ndelay();                     //让A发送的不要太快while(1);
}//预设一个串口条件:8位数据位、1停止位、0效验位、波特率2400
//初始化主要用于设置相关寄存器到我们所需要的模式以及参数
//初始化串口函数
void uart_init(void)
{SCON=0x50;      //串口工作在模式1,开启允许接收PCON=0x00;      //波特率不加倍TMOD=0x20;   //设置T1在模式2:M1=1,M0=0;8位自动重装模式TH1=TL1=243; //8位自动重装的意思:TH1用完后下一个周期,TL1自动重装到TH1里面去TR1=1;          //开启计数器ES=1;          //开启串口中断EA=1;          //开启总中断
}//通过串口发送1个字节出去
void uart_seng_byte(unsigned char c)
//SBUF=c表示将变量c的值赋给SBUF,unsigned char c为8位无符号字符,是一个字节的大小,表示变量c的值是1个字节大小的。
//在内存中间开辟一个1字节的空间,标记为c,把字符A存进去
{SBUF=c;      //第一步:发送一个字节出去:写入即可自动发出   //参数c容量为1个字节大小的值赋给SBUF用来规定缓存区的容量,防止缓存区溢出while(!TI);  //第二步:确认串口8位数据发送结束,TI硬件自动置位TI=0;          //第三步:软件复位TI
}
void uart_seng_string(unsigned char *str)
{while (*str !='\0')// '\0' 为字符串结束符{uart_seng_byte(*str);   //发送一个字符串str++;                  //让指针指向下一个字符串}
}
//延时函数
void delay(void)
{unsigned char a,b;for(a=0;a<100;a++)for(b=0;b<100;b++);
}void uart_sir(void) interrupt 4
{unsigned char tmp;if(RI)        //进入中断后标志位RI就置位=1{tmp=SBUF;     //读取SBUF,其实就是电脑发送,单片机串口读取(接收)的1字节RI=0;        //软件复位RI//但是单片机无法显示给人看,所以我们要加下面这行代码进行测试uart_seng_byte(tmp);//测试代码:把单片机接收到的消息回发给PC端}
} 

上述代码的对比代码文章:51单片机串口通信发送以及接收代码详解2

51单片机串口通信发送以及接收代码详解1相关推荐

  1. 51单片机串口通信发送以及接收代码详解2

    #include <reg51.h> //实验现象:在电脑端没按下发送的时候,单片一直给电脑发送aaa字符串: //实验现象:在电脑端按下发送的时候,结束字符串aaa的发送代码,执行单片接 ...

  2. 51单片机串口通信--发送字符、接收字符、发送字符串、接收字符串

    相关寄存器 SCON:串口控制寄存器(可位寻址) 串行控制寄存器SCON用于选择串行通信的工作方式和某些控制功能.其格式如下: SM0.SM1: SM2:允许方式2或方式3多机通信控制位: REN:允 ...

  3. 51单片机串口通信(字符串接收和发送)

    转自:http://www.cnblogs.com/weifeng727/category/845655.html #include<reg52.h>//----------------- ...

  4. 51单片机之蜂鸣器模拟钢琴(代码详解)——起风了

    目录 前言 正文 乐理 程序 补充 前言 最近心血来潮,想要用蜂鸣器播放音乐(全损音质),于是最初的想法诞生了,但是我总不能每次想听歌都敲一遍蜂鸣器的代码吧,有没有什么办法只需要敲一遍的代码便可以实现 ...

  5. 51单片机串口通信模板_深入理解51单片机串口通信及通信实例

    串口通信的原理 串口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一 ...

  6. 51单片机串口通信原理、相关寄存器配置与简单串口收发程序代码

    目录 1. 串口通信原理 2. 51单片机串口通信 2.1 串口简要模式图 2.2 相关寄存器 (1)PCON.SCON.SBUF (2)IE.IPH.IP (3)配置T1定时器 2.3 波特率和系统 ...

  7. 51单片机~串口通信(讲解+代码)

    51单片机~串口通信 (一)计算机串行通信原理: 综上:所以在设置的时候,经常将SCON设置为0X50==0101 0000 ,使用方式1. (二)工作: 中断控制 led灯,每发送一条指令灯亮或灭( ...

  8. 51单片机串口通信模板_51单片机串口通信

    51 单片机串口通信 51 单片机串口通信(转载) 2009-03-03 18:22 一.串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计 算机端,而且也能实现计算机对单 ...

  9. 51单片机串口通信【收集学习向】

    本篇整理了学习51串口通信过程中看到的一些比较好的文章,有很多的超链接.并根据自己遇到的情况分析了串口传输乱码的一些原因. 目录 1.原理知识 2.测试程序和虚拟仿真 3.电路设计与公母口连线 电路设 ...

最新文章

  1. Scrapy_splash组件的使用
  2. Javascript JQuery获取当前元素的兄弟元素/上一个/下一个元素(转)
  3. sql中的where 1=1有什么用?
  4. android通过用户名密码访问服务器获取信息_MySQL ------ 管理用户对数据库的访问控制(GRANT 与 REVOKE)(二十九)...
  5. spring集成struts2
  6. 一个简单JavaAgent的实现
  7. 新的恶意软件将后门植入微软 SQL Server 中
  8. jQuery 图片轮播插件–GalleryView
  9. 概率论数理统计笔记01(对应教材——《概率论与数理统计》(同济大学出版社出版))
  10. 山东大学软件学院概率论与数理统计(考试)——期末考试回忆版
  11. 计算机二级报考哪个科目比较好?
  12. 何时是使用代码报表的最佳方法,何时采用frx格式
  13. 基于Mybatis的语音播报随机点到系统
  14. (干货,建议收藏)备战2021年软考中级网络工程师-02操作系统
  15. outlook邮箱邮件大小限制_outlook邮箱附件大小限制怎么办_outlook超出邮箱附件大小限制如何处理-win7之家...
  16. 【AUTOSAR-CP-CAN-2】AUTOSAR COM
  17. 全国计算机竞赛保送清华,保送清华北大,带你看看信息学奥林匹克竞赛的魅力...
  18. web 报表轻松实现数据异常预警功能
  19. 基于vue的后台管理 内容篇 之 代理列表(某一导航项) 前篇
  20. RedisDesktopManager 应用程序无法正常启动

热门文章

  1. python 实现模式鼠标和键盘输入的同时,禁止外部鼠标和键盘命令输入
  2. 在Java程序中创建和转换PDF文件
  3. twitter中国官网
  4. android把图片保存到手机相册,并更新相册目录
  5. Keras安装与测试
  6. c# 读取硬件信息并进行加密绑定
  7. 如何使用Kubernetes管理中国高速公路上的10万边缘节点?
  8. 大数据 端到端_端到端数据分析性能
  9. 二叉树遍历(Binary Tree Traversal)
  10. 自动化测试平台(四):前端环境搭建