<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)的I/O寄存器和端口操作

          AVR單片機(jī)的I/O寄存器和端口操作

          作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
          1.在頭文件“sfr_defs.h”中定義的宏“_BV(bit)”也常用來(lái)實(shí)現(xiàn)位操作。
          其中,宏“_BV(bit)”的定義為:
          #define _BV(bit) (1<<(bit))
          例子:
          DDRD = _BV(PD0) | _BV(PD1)
          //在相應(yīng)器件的ioxxxxxxx.h中PD0定義為0,PD1定義為1
          所以,DDRD = _BV(PD0) | _BV(PD1) 等價(jià)于DDRD=0x03.
          2.ATmega128每個(gè)I/O端口都有3個(gè)寄存器來(lái)控制,分別是:
          方向寄存器DDRx、數(shù)據(jù)寄存器PORTx和輸入引腳寄存器PINx。
          其中,方向寄存器DDRx和數(shù)據(jù)寄存器PORTx是可讀可寫(xiě)寄存器,而PINx為只讀寄存器。
          例子:
          在進(jìn)行寫(xiě)操作的時(shí)候,方向寄存器DDRB用于指定PB口是作為輸入口還是輸出口用;
          在進(jìn)行讀操作的時(shí)候,從方向寄存器DDRB讀出來(lái)的是端口的方向設(shè)定值。
          DDRA = 0xFF;//初始化端口A為輸出模式。

          #define LED0 0
          #define LED1 1
          DDRC = 0xFF;
          PORTC = 0xFF;
          ...
          PORTC &= ~ _BV (LED0);// 輸出低電平
          PORTC | = _BV (LED1);//輸出高電平
          ...
          PORTC &= ~ _BV (LED1);// 輸出低電平
          PORTC | = _BV (LED0);//輸出高電平

          本文引用地址:http://www.ex-cimer.com/article/201611/317293.htm

          SPDR :SPI數(shù)據(jù)寄存器

          SPSR:SPI狀態(tài)寄存器

          SPCR :SPI控制寄存器



          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();