<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. 電子開發(fā)網

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

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

      作者:佚名    文章來源:本站原創(chuàng)    點擊數:    更新時間: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;
        /*接收器發(fā)送器使能*/
        UCSRB=(1<<RXEN)|(1<<TXEN);
        /*設置數據幀格式*/
        UCsrc="/blog/(1<";<URSEL)|(1<<USBS)|(3<<UCSZ0);  //8個數據位,2個停止位
      }
      /********************數據發(fā)送函數(5~8位)*********************/

      void USART_Transmit(unsigned char data)
      {
        /*等待發(fā)送緩沖器為空*/
        while(!(UCSRA&(1<<UDRE)))   //UDRE為時緩沖器為空
        ;
        /*將數據放入緩沖器,發(fā)送數據*/
        UDR=data;
      }
      /********************數據接受函數(5~8位)*********************/
      unsigned char USART_Receive(void)
      {
        /*等待接受數據*/
        while(!(UCSRA&(1<<RXC)))  //接受緩沖器中有未讀出的數據時RXC置位,否則清零
               ;
        /*從緩沖器中獲取并返回數據*/
        return UDR;
      }
      /********************字符串發(fā)送函數(不含回車換行)***********************/
      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;
        /*接收器和發(fā)送器使能*/
        UCSRB=(1<<RXEN)|(1<<TXEN);
        /*設置數據幀格式*/
        UCsrc="/blog/(1<";<URSEL)|(1<<USBS)|(3<<UCSZ0);  //8個數據位,2個停止位
      }
      /********************數據發(fā)送函數(5~8位)*********************/

      void USART_Transmit(unsigned char data)
      {
        /*等待發(fā)送緩沖器為空*/
        while(!(UCSRA&(1<<UDRE)))   //UDRE為時緩沖器為空
        ;
        /*將數據放入緩沖器,發(fā)送數據*/
        UDR=data;
      }
      /********************數據接受函數(5~8位)*********************/
      unsigned char USART_Receive(void)
      {
        /*等待接受數據*/
        while(!(UCSRA&(1<<RXC)))  //接受緩沖器中有未讀出的數據時RXC置位,否則清零
               ;
        /*從緩沖器中獲取并返回數據*/
        return UDR;
      }
      /********************字符串發(fā)送函數(不含回車換行)***********************/
      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 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 国产成人综合久久精品下载| 亚洲av综合av一区二区三区| 99久久国产综合精品麻豆| 老色鬼久久综合第一| 99久久亚洲综合精品成人网| 日韩亚洲国产综合久久久| 色噜噜狠狠色综合网| 国产精品天干天干在线综合| 亚洲国产日韩综合久久精品| 九九久久99综合一区二区| 色综合久久天天综合观看| 婷婷五月综合色视频| 99久久综合狠狠综合久久止 | 一本一道久久综合久久| 狠狠色丁香婷婷综合| 色噜噜狠狠狠狠色综合久不| 国产成人综合网在线观看| 九九久久99综合一区二区| 狠狠色丁香久久婷婷综合五月 | 97se亚洲国产综合自在线| 六月丁香激情综合成人| 午夜激情影院综合| 卡通动漫第一页综合专区| 狠狠做深爱婷婷久久综合一区| 亚洲AV综合色区无码二区爱AV| 久久综合琪琪狠狠天天| 国产精品无码久久综合| 久久久综合中文字幕久久| 狠色狠色狠狠色综合久久| 久久综合色天天久久综合图片| 狠狠色丁香久久婷婷综合五月| 国产亚洲欧洲Aⅴ综合一区| 国产综合内射日韩久| 99久久综合精品免费| 婷婷国产天堂久久综合五月| 一本色综合网久久| 丁香婷婷色五月激情综合深爱| 久久综合精品国产二区无码| 亚洲色欲啪啪久久WWW综合网| 一本色道久久88亚洲综合 | 国产精品天干天干综合网|