1 /*-------------------------------------------
 2 简单的串口通信
 3 -------------------------------------------*/
 4 #include<reg51.h>
 5
 6 #define uint unsigned int
 7 #define uchar unsigned char
 8
 9
10 uchar flag,a,i;                    //标志接收串口中断标志,接收SBUF内容
11 uchar code table[]="I get ";
12 /*--------------------------------------------
13 延时函数
14 ---------------------------------------------*/
15 void delay_ms(uint z)
16 {
17     uint y;
18     while(z--)
19         for(y=110;y>0;y--);
20 }
21 /*--------------------------------------------
22 USAR初始函数
23 ---------------------------------------------*/
24 void USRT_init()
25 {
26     TMOD=0x20;            //设置T1定时器工作方式2
27     TH1=0xfd;            //T1定时器装初值
28     TL1=0xfd;
29     TR1=1;                //启动T1定时器
30     REN=1;                //允许串口中断接收
31     SM0=0;                //设定串口工作方式
32     SM1=1;
33     EA=1;                //开总中断
34     ES=1;                //开串口中断
35 }
36 /*--------------------------------------------
37 串口中断程序
38 ---------------------------------------------*/
39 void ser()interrupt 4
40 {
41     RI=0;
42     a=SBUF;
43     flag=1;
44 }
45 /*--------------------------------------------
46 主函数
47 ---------------------------------------------*/
48 void main()
49 {
50     USRT_init();
51     while(1)
52     {
53         if(flag==1)                //检测到串口中断。表示有数据传过来了
54         {
55             ES=0;                //关闭串口中断,接下来要发送数据,如果不关闭每次发送之后串口中断都会执行又进入if(flag==1)那里,然后死循环
56             for(i=0;i<6;i++)    //将table[]中的前6个发送出去
57             {
58                 SBUF=table[i];
59                 while(!TI);        //每次等待发送完毕,再执行下一条
60                 TI=0;            //手动清0
61             }
62             SBUF=a;                //将收到的数据发送出去
63             while(!TI);
64             TI=0;
65             ES=1;
66             flag=0;
67         }
68     }
69 }

转载于:https://www.cnblogs.com/zjutlitao/p/3788696.html

[51单片机] 串口通讯 简单通信相关推荐

  1. 51单片机串口通讯 +Proteus仿真实验

    51单片机串口通讯 +Proteus仿真实验 ✨注意不要使用Proteus 8 Professional 8.13版本串口通信会出错.

  2. 51单片机串口多机通信的原理与编程实现

    51单片机串口多机通信 需要用的的寄存器 (了解的可直接跳到下一节) TMOD 定时器/计数器模式控制寄存器 TCON 定时器控制寄存器 SCON 串口控制寄存器 PCON 电源控制位寄存器 IE 中 ...

  3. 51单片机串口通讯c语言程序,如何使用51单片机实现串口通信

    描述 STC51单片机一般带有1个串口,有的带有2个串口,串口一般用于下载程序和串口通信.串口通信特别适合控制设备,所以工控机的电脑上一般都带有串口. 51单片机的串口引脚为P3.0引脚与P3.1引脚 ...

  4. 51单片机串口通讯介绍和实现

    串口通讯 前言 计算机是一种现代化的信息处理工具,它对信息进行处理并提供结果,其结果(输出)取决于所接收的信息(输入)及相应的处理算法. 随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功 ...

  5. 51单片机串口通讯接收一串字符串

    在51单片机中,我们使用上下位机时,我们通常会发送一串字符串,将它作为信号发给单片机处理. 因为串口通信时,发送信息是以一个个字符的形式发送过来的,所以接收的就是一个个字符,通常我们是一个字符数组保存 ...

  6. 51单片机串口通讯详解

    串口,作为单片机程序开发中最常用.最方便,也是应用最广泛的程序调试方法:无论是作为调试工具,打印出调试信息,还是对功能模块进行通信,串口是每个单片机开发人员最常用的单片机外设. 由于大部分51单片机不 ...

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

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

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

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

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

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

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

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

最新文章

  1. SVN安装部署方案(一)
  2. js如何获取文本节点的值?
  3. LauncherApplication
  4. 工程建筑行业SAP整体解决方案
  5. 玩转C语言之自定义数据类型-typedef
  6. Resharper 的快捷键
  7. 0048-三角形的判断
  8. 数据库-优化-通过慢查日志查询有问题的sql
  9. hdu 3037 Lucas定理
  10. 天天动听 半透明Menu效果
  11. elasticsearch最大节点数_Elasticsearch究竟要设置多少分片数?
  12. 博为峰Java技术文章 ——JavaSE Swing 如何使用进度条组件JProgressBarⅡ
  13. Xcode无法识别真机
  14. javascript 文件转base64
  15. java jdk下载_jdk1.7下载|Java Development Kit (JDK) 下载「64位」-太平洋下载中心
  16. 钢绞线的弹性模量的计算方法_钢绞线弹性模量的理论计算及其影响因素分析
  17. ug许可证服务器注册表删除,ug许可证卸载工具
  18. sox处理mp3_ffmpeg sox 音频转换 MP3 转 wav
  19. Drupal 7 自定义页面如何向自定义的主题传参
  20. 当供应链金融遇到区块链会擦出怎样的火花?

热门文章

  1. clamp.js 的使用---超出省略 (翻译)
  2. MySQL 浅谈NOT NULL和DEFAULT的关系
  3. php mac安装grpc扩展,Mac使用pecl安装grpc报错:Warning:mkdir():File exists in System.php
  4. less加管道tail_Linux-10 (CentOS)cat/more/less/ / 及echo/head /tail/的用法区别
  5. 尼尔机械纪元 机器人博士_还记得章鱼博士吊打蜘蛛侠的炫酷机械臂吗?现实版已经研发出来了...
  6. python语言中有三种表示字符串的方式_python经典实例
  7. 解决ubuntu不能远程连接
  8. raid卡 4k 设置 linux,硬盘“大户”看过来,手把手教你组建 RAID 磁盘阵列
  9. Java使用Redis(jedis)
  10. redis新数据类型-HyperLogLog