亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 51單片機(jī)學(xué)習(xí):串口接收和發(fā)送數(shù)據(jù) [打印本頁]

作者: 51黑電子迷    時(shí)間: 2017-2-9 22:18
標(biāo)題: 51單片機(jī)學(xué)習(xí):串口接收和發(fā)送數(shù)據(jù)
芯片STC89C52RC

在PC端向單片機(jī)發(fā)送任意數(shù)據(jù)后, 單片機(jī)向PC端發(fā)送4行文本,
由于在windos下,回車換行用





C代碼
  1.     #include <reg52.h>  
  2.     #include "MY51.h"  
  3.       
  4.     void    initSer();          //串口初始化  
  5.     uchar  sendFlag = 0;     //未發(fā)送數(shù)據(jù)時(shí)  
  6.     uchar  receFlag =0;     //未接受到數(shù)據(jù)時(shí)  
  7.       
  8.     code  uchar  TEXT0[] = "****************************\r\n";  //\r\n是回車換行  
  9.     code  uchar  TEXT1[] = "單片機(jī)串口通訊測(cè)試\r\n";  
  10.     code  uchar  TEXT2[] = "http://xouou.iteye.com\r\n";  
  11.     code  uchar  TEXT3[] = "****************************\r\n\r\n";//回車換行并空1行  
  12.       
  13.     void sendChar(uchar sendValue);  //發(fā)送一字節(jié)數(shù)據(jù)  
  14.     void sendAll(uchar *pValue);       //發(fā)送一組數(shù)據(jù)  
  15.       
  16.     void main(void)  
  17.     {  
  18.         initSer();  
  19.         while(1)  
  20.         {  
  21.           while(receFlag)               //單片機(jī)串口收到任意數(shù)據(jù)后,開始向PC發(fā)送數(shù)據(jù)  
  22.           {  
  23.                sendAll(TEXT0);         //發(fā)送數(shù)據(jù)  
  24.                sendAll(TEXT1);  
  25.                sendAll(TEXT2);  
  26.                sendAll(TEXT3);  
  27.                 receFlag=0;             //發(fā)完了清標(biāo)志      
  28.           }  
  29.         }  
  30.     }  
  31.       
  32.     void serInt() interrupt 4   //中斷函數(shù)  
  33.     {  
  34.         if(RI)                  //如果收到任意數(shù)據(jù)  
  35.         {  
  36.             RI = 0;  
  37.             P1=SBUF;        //數(shù)據(jù)的變化讓led燈直觀反應(yīng)出來  
  38.             receFlag=1;   //修改接受標(biāo)志,便于主函數(shù)進(jìn)入while中發(fā)數(shù)據(jù)  
  39.         }  
  40.          
  41.         if(TI)  
  42.         {  
  43.             TI = 0;                //發(fā)送完一個(gè)數(shù)據(jù)  
  44.             sendFlag = 0;        //清標(biāo)志位  
  45.         }  
  46.     }  
  47.       
  48.       
  49.     void sendChar(uchar Value)  //發(fā)送一個(gè)字節(jié)數(shù)據(jù)  
  50.     {  
  51.          SBUF = Value;      
  52.          sendFlag = 1;       //設(shè)置發(fā)送標(biāo)志位,發(fā)一字節(jié)就置位  
  53.          while(sendFlag);    //直到發(fā)完數(shù)據(jù),將sendFlag清零后,才退出sendChar函數(shù)  
  54.     }  
  55.       
  56.     void sendAll(uchar *pValue) //發(fā)送一組數(shù)據(jù)  
  57.     {  
  58.         while((*pValue) != '\0')   //如果沒有發(fā)送完畢就繼續(xù)發(fā)  
  59.         {  
  60.             sendChar(*pValue);      //發(fā)送1字節(jié)數(shù)據(jù)  
  61.             pValue++;                 //指向下1個(gè)字節(jié)  
  62.         }  
  63.     }  
  64.       
  65.     void initSer()      //初始化  
  66.     {  
  67.         //注意:剛上電時(shí),SCON是為0的  
  68.         TMOD=TMOD|0x20; //T1定時(shí)器模式,工作方式2  
  69.         TH1=0Xfd;        // 256-(11059200/(32*12*9600))  
  70.         TL1=0xfd;  
  71.         SM0=0;           //屬于SCON寄存器  
  72.         SM1=1;           //串口工作方式1,10位異步,波特率可改  
  73.         REN=yes;             //允許串口接收  
  74.         ES=open;             //開串口中斷  
  75.         EA=open;             //開總中斷  
  76.         TR1=start;       //啟動(dòng)定時(shí)器  
  77.     }  
復(fù)制代碼







作者: xiaosong12306    時(shí)間: 2017-2-10 09:20
不錯(cuò)啊,真是好東西啊




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1