<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

      單片機與RS232串口通信C51程序

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2012-3-8

      /*************************************************************************/
      #i nclude "iom16v.h"   //請將# 替換成英文格式的#
      #i nclude<macros.h>
      #define baud 9600     //波特率
      #define fosc 8000000  //晶振8MHZ 
      /************************* 初始化函數**********************/
      void USART_Init(void)
      {

        /*設置波特率*/
        //UBRR=51;
        //UBRRH=(unsigned char)(baud>>8);
       // UBRRL=(unsigned char)(baud);
        UBRRL=(fosc/16/baud-1)%256;
        UBRRH=(fosc/16/baud-1)/256;
        /*接收器發送器使能*/
        UCSRB=(1<<RXEN)|(1<<TXEN);
        /*設置數據幀格式*/
        UCsrc="/blog/(1<";<URSEL)|(1<<USBS)|(3<<UCSZ0);  //8個數據位,2個停止位
      }
      /********************數據發送函數(5~8位)*********************/

      void USART_Transmit(unsigned char data)
      {
        /*等待發送緩沖器為空*/
        while(!(UCSRA&(1<<UDRE)))   //UDRE為時緩沖器為空
        ;
        /*將數據放入緩沖器,發送數據*/
        UDR=data;
      }
      /********************數據接受函數(5~8位)*********************/
      unsigned char USART_Receive(void)
      {
        /*等待接受數據*/
        while(!(UCSRA&(1<<RXC)))  //接受緩沖器中有未讀出的數據時RXC置位,否則清零
               ;
        /*從緩沖器中獲取并返回數據*/
        return UDR;
      }
      /********************字符串發送函數(不含回車換行)***********************/
      void USART_Transmit_string(unsigned char *s)
      {
      while (*s)
         {
         USART_Transmit(*s);
         s++;
         }
      }
      void main()
      {
      unsigned char i;
      unsigned char *p1,*p2;
      unsigned char a[]={" The  key  is:"};
      unsigned char b[]={" Please press any key "};
      p1=a;
      p2=b;
      USART_Init();
      //USART_Transmit_string(p2);
      //USART_Transmit(0x0d);   //回車換行
      //USART_Transmit(0x0a);
      while(1)
        {
        i=USART_Receive();
        if(i!=0)
        {
        //USART_Transmit_string(p1);
        USART_Transmit(i);
        //USART_Transmit(0x0d);   //回車換行
        //USART_Transmit(0x0a);
        }

        }

       

         /*************************************************************************/
      #i nclude "iom16v.h"
      #i nclude<macros.h>
      #define baud 9600     //波特率
      #define fosc 8000000  //晶振8MHZ 
      /************************* 初始化函數**********************/
      void USART_Init(void)
      {

        /*設置波特率*/
        //UBRR=51;
        //UBRRH=(unsigned char)(baud>>8);
       // UBRRL=(unsigned char)(baud);
        UBRRL=(fosc/16/baud-1)%256;
        UBRRH=(fosc/16/baud-1)/256;
        /*接收器和發送器使能*/
        UCSRB=(1<<RXEN)|(1<<TXEN);
        /*設置數據幀格式*/
        UCsrc="/blog/(1<";<URSEL)|(1<<USBS)|(3<<UCSZ0);  //8個數據位,2個停止位
      }
      /********************數據發送函數(5~8位)*********************/

      void USART_Transmit(unsigned char data)
      {
        /*等待發送緩沖器為空*/
        while(!(UCSRA&(1<<UDRE)))   //UDRE為時緩沖器為空
        ;
        /*將數據放入緩沖器,發送數據*/
        UDR=data;
      }
      /********************數據接受函數(5~8位)*********************/
      unsigned char USART_Receive(void)
      {
        /*等待接受數據*/
        while(!(UCSRA&(1<<RXC)))  //接受緩沖器中有未讀出的數據時RXC置位,否則清零
               ;
        /*從緩沖器中獲取并返回數據*/
        return UDR;
      }
      /********************字符串發送函數(不含回車換行)***********************/
      void USART_Transmit_string(unsigned char *s)
      {
      while (*s)
         {
         USART_Transmit(*s);
         s++;
         }
      }
      void main()
      {
      unsigned char i;
      unsigned char *p1,*p2;
      unsigned char a[]={" The  key  is:"};
      unsigned char b[]={" Please press any key "};
      p1=a;
      p2=b;
      USART_Init();
      //USART_Transmit_string(p2);
      //USART_Transmit(0x0d);   //回車換行
      //USART_Transmit(0x0a);
      while(1)
        {
        i=USART_Receive();
        if(i!=0)
        {
        //USART_Transmit_string(p1);
        USART_Transmit(i);
        //USART_Transmit(0x0d);   //回車換行
        //USART_Transmit(0x0a);
        }

        }

      Tags:單片機,串口通信,rs232,c程序  
      責任編輯:admin
    4. 上一篇文章:
    5. 下一篇文章:
    6. 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 色综合色天天久久婷婷基地| 国产成人亚洲综合一区| 国产精品亚洲综合| 久久亚洲欧洲国产综合| 久久久久综合国产| 麻豆久久婷婷综合五月国产| 亚洲成综合人影院在院播放| 伊人久久青草青青综合| 色噜噜狠狠狠狠色综合久| 久久综合伊人77777麻豆| 99久久综合国产精品免费| 伊人一伊人色综合网| 色综合天天娱乐综合网| 国产成人综合一区精品| 久久综合久久自在自线精品自 | 久久91精品综合国产首页| 久久亚洲伊人中字综合精品| 亚洲精品第一国产综合精品99| 色噜噜狠狠色综合日日| 一本一道久久a久久精品综合| 人人妻人人狠人人爽天天综合网| 综合国产精品第一页| 一本综合久久国产二区| 一本色道久久综合网| 天堂无码久久综合东京热| 开心婷婷五月激情综合社区| 91精品一区二区综合在线| 亚洲欧美综合精品成人导航| 亚洲综合激情视频| 狠狠色成人综合首页| 精品无码综合一区二区三区| 综合久久久久久久综合网| 国产香蕉尹人综合在线观看| 国产尹人香蕉综合在线电影| 一本色道久久88综合日韩精品| 婷婷久久久五月综合色| 色爱区综合激情五月综合激情| 亚洲Av综合色区无码专区桃色| 国产香蕉尹人综合在线| 久久久久久久综合综合狠狠| 亚洲精品国产综合久久一线|