• 專注電子技術學習與研究
    當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

    AVR輕松學ICCAVR PORTUES仿真

    作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月01日   【字體:

    Atmega16

    IO相關寄存器
    學習每種單片機要從控制各IO口的高低電平開始,avr系列與IO有關的寄存器每組有三類,PORTn  ,DDRn  , PINn,及SFIOR內PUD位,PORTn與DDRn是控制端口的狀態,對應關系如圖。
     

    PINn為讀端口當前高低電平狀態。
    現在以keil中51系列為例,定義端口然后對等關系定義AVR端口在ICCARV中。
    51 :    Sbit   led=P1^2;       led=0;   led=1;
    AVR:     #define   ledh PORTA|=(1<<PA0)     led=1;
    #define   ledl PORTA&=~(1<<PA0)     led=0;
    PINn  return PINn;    if(PINn==XX)
    中斷向量及中斷程序寫法
     
    ICCAVR中斷函數書寫格式;
    #pragma   interrupt_handler timer0_ovf:10   //定時器溢出
    Void   timer0_ovf(void)          中斷源中斷向量
    {}
    外部中斷
    外部中斷有三個,分別為INT0,INT1,INT2;對應端口為PD2,PD3,PB2;首先設置端口狀態INT0為例,PORTD|=(1<<PD2);
    DDRD&=~(1<<DDD2);
             中斷產生條件設置
    外部中斷0、1MCUCR Bit0:3 ISC00  ISC01 ISC10 ISC11
     

    外部中斷
    2   MCUCSR   Bit :6  ISC2
     



       INT0于INT1  引腳中斷產生條件是一樣的如上表
    INT2 ISC20時低電平觸發,寫1時高點批評觸發
    中斷控制寄存器: GICR  Bit 5:7 INT2,INT0,INT1
     

    需要哪個中斷時將其寫1  
    GICR|=(1<<INTn);
    中斷標志位寄存器:GIFR Bit5:7 INTF2/INTF0/INTF1
     

    全局中斷打開,中斷控制位打開,引腳上發生合適的電平變化,對應的中斷標志位就會置位,對其寫1實現清零。
    下邊寫個INT0的程序發生中斷時將PORTA取反
     

     
    本章到這里,不定期更新,后邊有、定時器,UART,AD,SPI,EEPROM、IIC總線。更有Atmega128等著你,不要走開,哈哈哈 
     


    精彩的生活怎么能沒有你的存在   MCU
    關閉窗口

    相關文章

    亚洲一区二区制服在线|在绩专区欧美自拍日韩|青春娱乐网97超碰人人射|在线观看国产网址你懂的