找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1968|回复: 0
打印 上一主题 下一主题
收起左侧

串口收发单片机源码 将接收到发送回电脑上面

[复制链接]
跳转到指定楼层
楼主
ID:101060 发表于 2017-11-25 22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于串口收发的单片机源代码!

单片机程序:
  1. /*******************************************************************************
  2. * 实验名                           : 串口实验
  3. * 使用的IO             : P2
  4. * 实验效果       : 将接收到发送回电脑上面。
  5. *        注意                                         :
  6. *******************************************************************************/

  7. #include<reg51.h>

  8. int js[8] ;
  9. int m,q,z;

  10. //--声明全局函数--//
  11. void UsartConfiguration();
  12. void fasong (int i);
  13. void ys(q);
  14. void Usart();
  15. void sd (int i,int j);
  16. /*******************************************************************************
  17. * 函 数 名         : main
  18. * 函数功能                   : 主函数
  19. * 输    入         : 无
  20. * 输    出         : 无
  21. *******************************************************************************/

  22. void main()
  23. {
  24.         UsartConfiguration();
  25.         Usart();
  26.         sd (m,z);               
  27.                 }
  28.                

  29. /*******************************************************************************
  30. * 函 数 名         :UsartConfiguration()
  31. * 函数功能                   :设置串口
  32. * 输    入         : 无
  33. * 输    出         : 无
  34. *******************************************************************************/

  35. void UsartConfiguration()
  36. {
  37.         SCON=0X50;                          //设置为工作方式1
  38.         TMOD=0X20;                          //设置计数器工作方式2
  39.         PCON=0X80;                          //波特率加倍
  40.          TH1=0XF3;                    //计数器初始值设置,注意波特率是4800的
  41.          TL1=0XF3;
  42.           ES=1;                                                //打开接收中断
  43.           EA=1;                                                //打开总中断
  44.          TR1=1;                                          //打开计数器
  45. }

  46. void fasong (int i)        //发送方法数据
  47. {
  48.         SBUF=i;                  //将接收到的数据放入到发送寄存器
  49.         while(!TI);                           //等待发送数据完成
  50.         TI=0;                                       //清除发送完成标志位
  51. }

  52. void sd (int i,int j)
  53. {
  54. if(i--)
  55.         {
  56.                 for(q=0;q<i;q++)
  57.                 {
  58.                         P0=0XFF;
  59.                         ys(1000);
  60.                         P0=0X00;
  61.                         ys(1000);
  62.                         if(RI==1&&j==1)
  63.                         {
  64.                                 i=0;
  65.                                 P0=0XFF;
  66.         break;                               
  67.                         }
  68.                 }
  69.                 fasong (1);       
  70.                 }

  71.         }
  72. /*******************************************************************************
  73. * 函 数 名         :Delay(unsigned int i)
  74. * 函数功能                   : 延时函数
  75. * 输    入         : 无
  76. * 输    出         : 无
  77. *******************************************************************************/
  78. void ys(q)
  79. {
  80.         int m,n;
  81.         for(m=0;m<200;m++)
  82.         {
  83.                 for(n=0;n<200;n++)
  84.                 {
  85.                 }
  86.         }
  87.        
  88. }







  89. void Usart()
  90. {
  91.          unsigned char receiveData;
  92.    int i,j;
  93.          
  94.        
  95.        
  96.         receiveData=SBUF;     //出去接收到的数据
  97.         i=0;
  98.         {
  99.         if (RI==1)
  100.              {               
  101.               js[i]=receiveData;
  102.               i++;               
  103.               RI = 0;               //清除接收中断标志位
  104.              }
  105.              if (receiveData==0XFF )
  106.                 {
  107.                              js[0]=0XFF;                                               
  108.                  fasong (js[0]);                         
  109.                  }
  110.         else if(receiveData == 0XFE)
  111.            {  
  112.                   js[1]=0XFE;
  113.             fasong (js[1]);
  114.                          
  115.            }
  116.                 else if(receiveData == 0x14)
  117.            {  
  118.                   js[2]=0x14;
  119.                          m=js[2];
  120.             fasong (js[2]);
  121.                          
  122.            }
  123. ……………………

  124. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
串口收发程序.rar (33.55 KB, 下载次数: 16)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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