您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
      4新聞資訊
      您的位置: 首頁 ->  新聞資訊 -> 單片機(jī)

      ?AVR USART接收中斷程序

      文章出處:單片機(jī) 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時(shí)間:
      2020
      11-10

      使用AVR的USART進(jìn)行自發(fā)自收(將發(fā)送引腳RXD短接到接收引腳TXD),發(fā)出數(shù)據(jù):0,1,2。。。數(shù)據(jù),能接收到自己發(fā)出的數(shù)據(jù):0,1,2。。。使用LED作出簡單指示。 
      USART自發(fā)自收,使用PB口的LED指示接收到的數(shù)據(jù),觀察是否與發(fā)送的數(shù)據(jù)一致。

      #include

      #define DISP_PORT PORTB

      #define DISP_DDR  DDRB


      /*

      程序功能:初始化UART為:8位,9.6K,接收中斷

      注意事項(xiàng):基于7.3728M晶振  

      程序名稱:UART初始化程序

      */

      void uart0_init (void)

      {

          UCSRB = 0x00;   //disable while setting baud rate

          UCSRA = 0x00;   //U2X = 0,不加倍數(shù)率

          UCSRC = 0x86;   //固定的

          /*  設(shè)置幀格式 : 8 個(gè)數(shù)據(jù)位 , 2 個(gè)停止位 */

          //UCSRC = (1<

          UBRRL = 47;     //set baud rate lo,波特率為9.6K   

          //UBRRL=(fosc/16/(baud+1))%256; fosc是晶振,baud為波特率

          UBRRH = 0x00;   //set baud rate hi

          UCSRB = 0x98;   //接收中斷允許,接收緩沖自動(dòng)清空,接收允許  

      }

      /*程序名稱:UART接收中斷服務(wù)程序*/

      #pragma interrupt_handler uart0_rx_isr:12

      void uart0_rx_isr(void)

      {

        DISP_PORT = UDR;//顯示接收到的數(shù)據(jù)

                        //如:接收到"1",顯示0X31

      //delay50ms(1);

      }


      void mcu_init(void)

      {

          CLI(); 

          uart0_init();

          MCUCR = 0x00;

          GICR  = 0x00;

          TIMSK = 0x00;   //timer interrupt sources

          SEI();          //re-enable interrupts

      }

      void main()

      {

          uint8 counter=0;


          mcu_init();


          DISP_DDR=0xFF;


          while(1)

          {

              UDR=counter++;          //發(fā)送數(shù)據(jù),數(shù)據(jù)為變量counter

              while(!(UCSRA&0x40));   //等待發(fā)送結(jié)束

               //Bit 6 – TXC: USART  發(fā)送結(jié)束

      //發(fā)送移位緩沖器中的數(shù)據(jù)被送出,且當(dāng)發(fā)送緩沖器 (UDR) 為空時(shí)

      //TXC 置位。執(zhí)行發(fā)送結(jié)束中斷時(shí) TXC 標(biāo)志自動(dòng)清零,

      //也可以通過寫 1 進(jìn)行清除操作。

              UCSRA|=0x40;            //清除發(fā)送結(jié)束標(biāo)志位 

              delay50ms(4);

          }

      }



      上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

      CopyRight 2020-2025 www.topsschool.com All rights reserved   滬ICP備2021005866號

      亚洲精品无码va人在线观看,少妇 逼小 水多,国产区免费av,国产精品无码观看

          婷婷网色偷偷亚洲的天堂| 久久久久对白国产| 国产妇女野外性一级毛片视频| 无码不卡的中文字幕视频| 色综合天天综合网在线观看| 日韩人妻无码免费视频一区二区| 99久久国产综合精品swag| 日本欧美视频在线观看| 国产亚洲欧美日韩高清| 亚洲欧美日韩专区| 午夜理论无码在线观看| 国产在线高清在线精品| 欧美国产日本高清不卡| 国产欧美丝袜久久| 在线观看激情v片无码| 你懂的亚洲欧美成人在线| 人妻少妇无码精品视频区| 天堂av无码av在线a√| 亚洲美女激情在线播放| 亚洲成E人在线免费观看| 精品国产污污污免费网站入口| 亚洲欧美一级夜夜爽视频| 亚洲一区少妇无码| 久久99国产精品无码午夜| 97精品人妻一区二区三区香蕉| 91精品国产福利在线观看麻豆| 人妻无码中文字幕毛片| 99热在线日韩精品免费| 无码精品视频在线网站|