專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

AVR輕松學(xué)ICCAVR PORTUES仿真

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月01日   【字體:

Atmega16

IO相關(guān)寄存器
學(xué)習(xí)每種單片機(jī)要從控制各IO口的高低電平開始,avr系列與IO有關(guān)的寄存器每組有三類,PORTn  ,DDRn  , PINn,及SFIOR內(nèi)PUD位,PORTn與DDRn是控制端口的狀態(tài),對(duì)應(yīng)關(guān)系如圖。
 

PINn為讀端口當(dāng)前高低電平狀態(tài)。
現(xiàn)在以keil中51系列為例,定義端口然后對(duì)等關(guān)系定義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)
中斷向量及中斷程序?qū)懛?/span>
 
ICCAVR中斷函數(shù)書寫格式;
#pragma   interrupt_handler timer0_ovf:10   //定時(shí)器溢出
Void   timer0_ovf(void)          中斷源中斷向量
{}
外部中斷
外部中斷有三個(gè),分別為INT0,INT1,INT2;對(duì)應(yīng)端口為PD2,PD3,PB2;首先設(shè)置端口狀態(tài)INT0為例,PORTD|=(1<<PD2);
DDRD&=~(1<<DDD2);
         中斷產(chǎn)生條件設(shè)置
外部中斷01MCUCR Bit0:3 ISC00  ISC01 ISC10 ISC11
 

外部中斷
2   MCUCSR   Bit :6  ISC2
 



   INT0于INT1  引腳中斷產(chǎn)生條件是一樣的如上表
INT2 ISC20時(shí)低電平觸發(fā),寫1時(shí)高點(diǎn)批評(píng)觸發(fā)
中斷控制寄存器: GICR  Bit 5:7 INT2,INT0,INT1
 

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

全局中斷打開,中斷控制位打開,引腳上發(fā)生合適的電平變化,對(duì)應(yīng)的中斷標(biāo)志位就會(huì)置位,對(duì)其寫1實(shí)現(xiàn)清零。
下邊寫個(gè)INT0的程序發(fā)生中斷時(shí)將PORTA取反
 

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


精彩的生活怎么能沒有你的存在   MCU
關(guān)閉窗口

相關(guān)文章