<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端口(DDxn,PORTxn)配置及其說明

          AVR端口(DDxn,PORTxn)配置及其說明

          作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
          AVR端口(DDxn,PORTxn)配置及其說明

          引腳序號(hào) 引腳名稱 引腳功能

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

          8 位雙向I/O 口, 具有可編程的內(nèi)部上拉電阻。

          其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特

          性,可以輸出和吸收大電流。作為輸入使用時(shí),
          PB5
          1 若內(nèi)部上拉電阻使能,端口被外部電路拉

          低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)

          時(shí)鐘還未起振,端口A 處于高阻狀態(tài)。

          MOSI SPI 總線的主機(jī)輸出/ 從機(jī)輸入信號(hào)

          PB6 8 位雙向 I/O 口
          2
          MISO SPI 總線的主機(jī)輸入/ 從機(jī)輸出信號(hào)

          PB7 8 位雙向 I/O 口
          3
          SCK SPI 總線的串行時(shí)鐘

          復(fù)位輸入引腳。持續(xù)時(shí)間超過最小門限時(shí)間的低電
          4 RESET
          平將引起系統(tǒng)復(fù)位。

          5 VCC 數(shù)字電路的電源

          6 GND 地

          7 XTAL2 反向振蕩放大器的輸出端

          8 XTAL1 反向振蕩放大器與片內(nèi)時(shí)鐘操作電路的輸入端

          PD0 8 位雙向 I/O 口
          9
          RXD USART 輸入引腳

          PD1 8 位雙向 I/O 口
          10
          TXD USART 輸出引腳

          PD2 8 位雙向 I/O 口
          11
          INT0 外部中斷 0 的輸入

          PD3 8 位雙向 I/O 口
          12
          INT1 外部中斷 1 的輸入

          PD4 8 位雙向 I/O 口
          13
          OC1B T/C1 輸出比較B 匹配輸出

          PD5 8 位雙向 I/O 口
          14
          OC1A T/C1 輸出比較A 匹配輸出

          PD6 8 位雙向 I/O 口
          15
          ICP1 T/C1 輸入捕捉引腳

          PD7 8 位雙向 I/O 口
          16
          OC2 T/C2 輸出比較匹配輸出

          17 VCC 數(shù)字電路的電源

          18 GND 地

          PC0 8 位雙向 I/O 口
          19
          SCL 兩線串行總線時(shí)鐘線

          PC1 8 位雙向 I/O 口
          20
          SDA 兩線串行總線數(shù)據(jù)輸入/ 輸出線

          PC2 8 位雙向 I/O 口
          21
          TCK JTAG 測(cè)試時(shí)鐘

          PC3 8 位雙向 I/O 口
          22
          TMS JTAG 測(cè)試模式選擇

          PC4 8 位雙向 I/O 口
          23
          TDO JTAG 測(cè)試數(shù)據(jù)輸出

          PC5 8 位雙向 I/O 口
          24
          TDI JTAG 測(cè)試數(shù)據(jù)輸入

          PC6 8 位雙向 I/O 口
          25
          TOSC1 定時(shí)振蕩器引腳 1

          PC7 8 位雙向 I/O 口
          26
          TOSC2 定時(shí)振蕩器引腳 2

          端口A 與A/D轉(zhuǎn)換器的電源。。不使用ADC 時(shí),該

          27 AVCC 引腳應(yīng)直接與VCC 連接。使用 ADC 時(shí)應(yīng)通過一個(gè)低

          通濾波器與 VCC 連接。

          28 AGND A/D 的模擬地

          29 AREF A/D 的模擬基準(zhǔn)輸入引腳

          PA7 8 位雙向 I/O 口
          30
          ADC7 ADC 輸入通道 7

          PA6 8 位雙向 I/O 口
          31
          ADC6 ADC 輸入通道 6

          PA5 8 位雙向 I/O 口
          32
          ADC5 ADC 輸入通道 5

          PA4 8 位雙向 I/O 口
          33
          ADC4 ADC 輸入通道 4

          PA3 8 位雙向 I/O 口
          34
          ADC3 ADC 輸入通道 3

          PA2 8 位雙向 I/O 口
          35
          ADC2 ADC 輸入通道 2

          36 PA1 8 位雙向 I/O 口

          ADC1 ADC 輸入通道 1

          PA0 8 位雙向 I/O 口
          37
          ADC0 ADC 輸入通道 0

          38 VCC 數(shù)字電路的電源

          39 GND 地

          PB0 8 位雙向 I/O 口

          40 T0 T/C0 外部計(jì)數(shù)器輸入

          XCK USART 外部時(shí)鐘輸入/ 輸出

          PB1 8 位雙向 I/O 口
          41
          T1 T/C1 外部計(jì)數(shù)器輸入

          PB2 8 位雙向 I/O 口

          42 AIN0 模擬比較正輸入

          INT2 外部中斷 2 輸入

          43 PB3 8 位雙向 I/O 口


          AIN1 模擬比較負(fù)輸入

          OC0 T/C0 輸出比較匹配輸出

          44 SS SPI 從機(jī)選擇引腳

          Atmega16單片機(jī)有32個(gè)通用I/O口,有PA ~PD四組,每組都是8位。其主要的寄存器有DDRXn(X=A,B,C,D;n=0,2,…,7,下同),PORTXn和PINXn。

          DDRX是方向寄存器,可讀可寫。在寫操作時(shí)用于制定PX口是作為輸入口還是輸出口;在讀操作時(shí),從DDRX寄存器讀出來的是端口的方向設(shè)定值。DDRX寄存器的初始值為0x00。

          PORTX是數(shù)據(jù)寄存器,可讀寫。在寫操作時(shí),從PORTX寫入的數(shù)據(jù)存入內(nèi)部鎖存器,以確定端口的工作狀態(tài)或者將寫入的數(shù)據(jù)送到外部數(shù)據(jù)總線。PORTX寄存器的初始值為0x00。

          PINX用來訪問端口X的邏輯值,且只允許讀操作。從PINX讀入的數(shù)據(jù)只是X口引腳的邏輯 狀態(tài)。其初始值為高阻態(tài)。

          /************************************引腳配置**************************************************/
          /*
          引腳配置為輸入時(shí),若 PORTxn 為 "1“ ,上拉電阻將使能。如果需要關(guān)閉這個(gè)上拉電阻, 可以將 PORTxn 清零,或者將這個(gè)引腳配置為輸出。復(fù)位時(shí)各引腳為高阻態(tài),即使此

          時(shí)并沒有時(shí)鐘在運(yùn)行。
          當(dāng)引腳配置為輸出時(shí),若 PORTxn 為 "1“ ,引腳輸出高電平("1“) ,否則輸出低電平(“0“)。
          在 ( 高阻態(tài) ) 三態(tài) ({DDxn, PORTxn} = 0b00) 輸出高電平 ({DDxn, PORTxn} = 0b11) 兩種狀態(tài)之間進(jìn)行切換時(shí),上拉電阻使能 ({DDxn, PORTxn} = 0b01) 或輸出低電平

          ({DDxn, PORTxn} = 0b10) 這兩種模式必然會(huì)有一個(gè)發(fā)生。通常,上拉電阻使能是完全可以接受的,因?yàn)楦咦璀h(huán)境不在意是強(qiáng)高電平輸出還是上拉輸出。如果使用情況不是這樣

          子,可以通過置位 SFIOR 寄存器的 PUD 來禁止所有端口的上拉電阻.
          在上拉輸入和輸出低電平之間切換也有同樣的問題。用戶必須選擇高阻態(tài) ({DDxn, PORTxn} = 0b00) 或輸出高電平 ({DDxn, PORTxn}=0b10) 作為中間步驟
          */
          void IO_change(void)
          {
          //高阻態(tài)
          DDxn=0;
          PORTxn=0;
          //禁止所有端口的上拉電阻
          SFIOR|=1<//輸出高電平
          DDxn=0xff;
          PORTxn=0xff;
          //使能所有端口的上拉電阻
          SFIOR&=~(1<}

          void IO_change_A(void)
          {//高阻態(tài)
          DDxn=0;
          PORTxn=0;
          //上拉電阻使能 ({DDxn, PORTxn} = 0b01) 或輸出低電平 ({DDxn, PORTxn} = 0b10)
          DDxn=0;
          PORTxn=0xff;
          /*
          DDxn=0xff;
          PORTxn=0;
          */
          //輸出高電平
          DDxn=0xff;
          PORTxn=0xff;

          }
          void IO_changge_B()
          {//上拉輸入
          DDxn=0;
          PORTxn=0xff;
          //高阻態(tài) ({DDxn, PORTxn} = 0b00) 或輸出高電平 ({DDxn, PORTxn}=0b11)
          DDxn=0;
          PORTxn=0;
          /*
          DDxn=0xff;
          PORTxn=0xff;
          */
          //輸出低電平
          DDxn=0xff;
          PORTxn=0;

          }
          /******************************************讀取引腳的數(shù)據(jù)***************************************/
          void read_PINX(void)
          {
          /*

          PUD 上拉電
          DDxn PORTxn (in SFIOR) I/O 阻 說明

          0 0 X Input No 高阻態(tài) (Hi-Z)

          0 1 0 Input Yes 被外部電路拉低時(shí)將輸出電流

          0 1 1 Input No 高阻態(tài) (Hi-Z)

          1 0 X Output No 輸出低電平 ( 吸收電流 )

          1 1 X Output No 輸出高電平 ( 輸出電流 )
          不論如何配置 DDxn ,都可以通過讀取PINxn 寄存器來獲得引腳電平.PINxn 寄存器的各個(gè)位與其前面的鎖存器組成了一個(gè)同步器,這樣就可以避免在內(nèi)部時(shí)鐘狀態(tài)發(fā)生改變的短時(shí)

          間范圍內(nèi)由于引腳電平變化而造成的信號(hào)不穩(wěn)定.引入了延遲是必然的。
          */
          unsigned char i;
          /* 定義上拉電阻和設(shè)置高電平輸出 */
          /* 為端口引腳定義方向 */
          PORTB = (1<DDRB = (1</* 為了同步插入 nop指令 */
          _NOP();
          /* 讀取端口引腳 */
          i = PINB;
          }
          /**************************未連接引腳的處理****************************************/
          /*
          如果有引腳未被使用,建議給這些引腳賦予一個(gè)確定電平。雖然如上文所述,在深層休眠模式下大多數(shù)數(shù)字輸入被禁用,但還是需要避免因引腳沒有確定的電平而造成懸空引腳在

          其它數(shù)字輸入使能模式 ( 復(fù)位、工作模式、空閑模式 ) 消耗電流。最簡(jiǎn)單的保證未用引腳具有確定電平的方法是使能內(nèi)部上拉電阻。但要注意的是復(fù)位時(shí)上拉電阻將被禁用。如

          果復(fù)位時(shí)的功耗也有嚴(yán)格要求則建議使用外部上拉或下拉電阻。不推薦直接將未用引腳與 VCC 或 GND 連接,因?yàn)檫@樣可能會(huì)在引腳偶然作為輸出時(shí)出現(xiàn)沖擊電流。

          */



          關(guān)鍵詞: AVR端口DDxnPORTx

          評(píng)論


          技術(shù)專區(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); })();