乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      51單片機(jī)串口通訊軟件

       昵稱6749712 2011-04-10
      通信協(xié)議: 第1字節(jié),MSB為1,為第1字節(jié)標(biāo)志,第2字節(jié),MSB為0,為非第一字節(jié)標(biāo)志,其余類推……,最后一個(gè)字節(jié)為前幾個(gè)字節(jié)后7位的異或校驗(yàn)和。
        測試方法:可以將串口調(diào)試助手的發(fā)送框?qū)懮?95 10 20 25,并選上16進(jìn)制發(fā)送,接收框選上16進(jìn)制顯示,如果每發(fā)送一次就接收到95 10 20 25,說明測試成功。

      //這是一個(gè)單片機(jī)C51串口接收(中斷)和發(fā)送例程,可以用來測試51單片機(jī)的中斷接收
      //和查詢發(fā)送,另外我覺得發(fā)送沒有必要用中斷,因?yàn)?span id="hfbpbeg" class=t_tag oncg=tagshow(event) href="tag.php?name=%e7%a8%8b%e5%ba%8f">程序的開銷是一樣的

      #include
      #include
      #define INBUF_LEN 4 //數(shù)據(jù)長度
      unsigned char inbuf1[INBUF_LEN];
      unsigned char checksum,count3;
      bit read_flag= 0 ;
      void init_serialcomm( void )
      {
      SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
      TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
      PCON |= 0x80 ; //SMOD=1;
      TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHz
      IE |= 0x90 ; //Enable Serial Interrupt
      TR1 = 1 ; // timer 1 run
      // TI=1;
      }
      //向串口發(fā)送一個(gè)字符
      void send_char_com( unsigned char ch)
      {
      SBUF=ch;
      while (TI== 0 );
      TI= 0 ;
      }
      //向串口發(fā)送一個(gè)字符串,strlen為該字符串長度
      void send_string_com( unsigned char *str, unsigned int strlen)
      {
      unsigned int k= 0 ;
      do
      {
      send_char_com(*(str + k));
      k++;
      } while (k < strlen);
      }

      //串口接收中斷函數(shù)
      void serial () interrupt 4 using 3
      {
      if (RI)
      {
      unsigned char ch;
      RI = 0 ;
      ch=SBUF;
      if (ch> 127 )
      {
      count3= 0 ;
      inbuf1[count3]=ch;
      checksum= ch- 128 ;
      }
      else
      {
      count3++;
      inbuf1[count3]=ch;
      checksum ^= ch;
      if ( (count3==(INBUF_LEN- 1 )) && (!checksum) )
      {
      read_flag= 1 ; //如果串口接收的數(shù)據(jù)達(dá)到INBUF_LEN個(gè),且校驗(yàn)沒錯(cuò),
      //就置位取數(shù)標(biāo)志
      }
      }
      }
      }

      main()
      {
      init_serialcomm(); //初始化串口
      while ( 1 )
      {
      if (read_flag) //如果取數(shù)標(biāo)志已置位,就將讀到的數(shù)從串口發(fā)出
      {
      read_flag= 0 ; //取數(shù)標(biāo)志清0
      send_string_com(inbuf1,INBUF_LEN);
      }
      }
      }

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請遵守用戶 評(píng)論公約

        類似文章 更多