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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ATmega128在開發(fā)應(yīng)用中應(yīng)注意的問題

          ATmega128在開發(fā)應(yīng)用中應(yīng)注意的問題

          作者: 時(shí)間:2009-10-22 來源:網(wǎng)絡(luò) 收藏

            此外,自帶輸入上拉電阻功能,通過設(shè)置即可以實(shí)現(xiàn)其功能。例如將PA口設(shè)為輸入口并且加上拉電阻,可以如下設(shè)置:

            DDRA=0x00;  //將PA口設(shè)置為輸入端口

            PORA=0xff;  //將PA輸入口加上拉電阻

            (2)位操作的使用方法

            采用ICCAVR對(duì)的位操作的使用方法比較麻煩,不像51系列那樣可以直接對(duì)某一個(gè)引腳進(jìn)行置0或置1,而是要通過如下的方法進(jìn)行位操作:

            如要對(duì)PA端口的第1位置1,則用C語言必須按PORTA|=(1

            這樣就可以單獨(dú)對(duì)某一位操作而不影響其他位。位操作對(duì)其他寄存器也同樣適合,例如若要對(duì)某個(gè)口的幾位設(shè)為輸入,某幾位設(shè)為輸出,就可以通過上面的置1、置0方法來實(shí)現(xiàn)。

            (3)中 斷

            中斷資源豐富,一共有35個(gè)中斷源,在ICCAVR的iom128v.h頭文件中給出了這些中斷源對(duì)應(yīng)的中斷向量表。當(dāng)用到相應(yīng)的中斷時(shí),首先應(yīng)設(shè)置好對(duì)應(yīng)的中斷向量。用ICCAVR設(shè)置ATmega128中斷的方法與Keil51設(shè)置中斷的方法截然不同,例如若需要將ATmega128的串口0設(shè)置為中斷接收,就必須在程序中做如下設(shè)置:

            #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC

            否則程序不能中斷接收,延長過程。

            ATmega128作為一種功能強(qiáng)大的芯片,相信會(huì)在不同的領(lǐng)域發(fā)揮不同的作用,為此需要人們不斷地提高對(duì)ATmega128的認(rèn)識(shí)。而且ATmega128與AVR等其他單片機(jī)如ATmega8、ATmega103、AT90S8535系列有相同的方法,掌握了ATmega128就可以在其他AVR類型的單片機(jī)時(shí)自如。

          參考文獻(xiàn)

          1 USA:Atmel Corporation.ATmega128(L)Datasheet,2001

          2 丁化成.AVR單片機(jī)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2002


          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

          技術(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); })();