找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2431|回復(fù): 0
收起左側(cè)

串口收發(fā)單片機(jī)源碼 將接收到發(fā)送回電腦上面

[復(fù)制鏈接]
ID:101060 發(fā)表于 2017-11-25 22:03 | 顯示全部樓層 |閱讀模式
基于串口收發(fā)的單片機(jī)源代碼!

單片機(jī)程序:
  1. /*******************************************************************************
  2. * 實(shí)驗(yàn)名                           : 串口實(shí)驗(yàn)
  3. * 使用的IO             : P2
  4. * 實(shí)驗(yàn)效果       : 將接收到發(fā)送回電腦上面。
  5. *        注意                                         :
  6. *******************************************************************************/

  7. #include<reg51.h>

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

  10. //--聲明全局函數(shù)--//
  11. void UsartConfiguration();
  12. void fasong (int i);
  13. void ys(q);
  14. void Usart();
  15. void sd (int i,int j);
  16. /*******************************************************************************
  17. * 函 數(shù) 名         : main
  18. * 函數(shù)功能                   : 主函數(shù)
  19. * 輸    入         : 無(wú)
  20. * 輸    出         : 無(wú)
  21. *******************************************************************************/

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

  29. /*******************************************************************************
  30. * 函 數(shù) 名         :UsartConfiguration()
  31. * 函數(shù)功能                   :設(shè)置串口
  32. * 輸    入         : 無(wú)
  33. * 輸    出         : 無(wú)
  34. *******************************************************************************/

  35. void UsartConfiguration()
  36. {
  37.         SCON=0X50;                          //設(shè)置為工作方式1
  38.         TMOD=0X20;                          //設(shè)置計(jì)數(shù)器工作方式2
  39.         PCON=0X80;                          //波特率加倍
  40.          TH1=0XF3;                    //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
  41.          TL1=0XF3;
  42.           ES=1;                                                //打開(kāi)接收中斷
  43.           EA=1;                                                //打開(kāi)總中斷
  44.          TR1=1;                                          //打開(kāi)計(jì)數(shù)器
  45. }

  46. void fasong (int i)        //發(fā)送方法數(shù)據(jù)
  47. {
  48.         SBUF=i;                  //將接收到的數(shù)據(jù)放入到發(fā)送寄存器
  49.         while(!TI);                           //等待發(fā)送數(shù)據(jù)完成
  50.         TI=0;                                       //清除發(fā)送完成標(biāo)志位
  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. * 函 數(shù) 名         :Delay(unsigned int i)
  74. * 函數(shù)功能                   : 延時(shí)函數(shù)
  75. * 輸    入         : 無(wú)
  76. * 輸    出         : 無(wú)
  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;     //出去接收到的數(shù)據(jù)
  97.         i=0;
  98.         {
  99.         if (RI==1)
  100.              {               
  101.               js[i]=receiveData;
  102.               i++;               
  103.               RI = 0;               //清除接收中斷標(biāo)志位
  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. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
串口收發(fā)程序.rar (33.55 KB, 下載次數(shù): 16)


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表