AVR?????????--MEGA??????
AVR?????????????????????51α????????AVR???????????????????????DDRn??????????????????????????治??α???????
DDRn PORTn PINn ?????n??????ABCDE
DDRn?????????????????????0?????1???????????????????????????????????1??????0?????
PORTn?????????????????DDRn?1??????????PORTn=x???????????????????????
PINn?????????????????????DDRn???????????????x=PINn?????n?????????
????????????????????PORTxn ?"1“?????????轫?????????????????????????????????????
??????????????????????????????ο????????
???????????
DDxn PORTxn PUD (in SFIOR) I/O ???????????
0 0 X ???? No ????? (Hi-Z)
0 1 0 ???? Yes??????·??????????????
0 1 1 ???? No?????(Hi-Z)
1 0 X ??? No??????? ( ?????)
1 1 X ??? No??????? ( ?????)
?????????δ?????????????Щ????????????????????????δ???????????????????????????????????衣??????????λ????????轫?????á??????λ?????????????????????????????????????衣?????????δ????????VCC ??GND ????????????????????????????????????????????
?????????????????
void port_init(void)
{
PORTA = 0x03;
DDRA = 0x03;
PORTB = 0x00;
DDRB = 0x01;
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;// ???鸳????
}
PORTA = 0x03;DDRA = 0x03;???????PA???PA1??PA0???????????PA7—PA2?????????????????0x03?????????00000011????????????Pn7--Pn0???IO???
??????????????????????IO????????
CODE:
//ICC-AVR application builder : 2006-11-21 9:20:57
// Target : M32
// Crystal: 7.3728Mhz
#include
#include
void _delay(unsigned char n) //???????????
{
unsigned char i,j;
for(;n!=0;n--) //n*10ms
{
for(j=100;j!=0;j--) //100us*100=10ms
{
for(i=147;i!=0;i--) //delay 100us
;
}
}
}
int main(void)
{
unsigned char i,j,k; //
PORTA=0xFF; //PA??????????????????
DDRA=0xFF; //PA??????????
while(1)
{
i=1;
for (j=0;j<8;j++) //???8?Σ???PA0~~PA7????????
{
PORTA=~i; //???????,??????Ч,????????
for (k=0;k<10;k++) _delay(100); //??? 100*10=1???????е??? i=i<<1; //?????λ,I?????????????б??????仯
// 0b00000001 PA0
// 0b00000010 PA1
// 0b00000100 PA2
// 0b00001000 PA3
// 0b00010000 PA4
// 0b00100000 PA5
// 0b01000000 PA6
// 0b10000000 PA7
}
}
}[Copy to clipboard]
????IO????????
void main(void)
{
PORTA=0xff;
DDRA=0xff; //??? ?? ??IO????????????Ч??1??????0?????
PORTA=0xf0; //??
?????????????????????????????λ?????λ??????
PORTA&=~0x70; //???? 0x70? 01110000 ??????*??λ??????????λ????
PORTA|=0x77; //??? 0x77? 01110111 ??????*210??λ??????????λ????
PORTA^=0x70; //??? 0x70? 01110000????*??λ???????????1????????0??
(P & 0x80)==0x80; //??λ?? ?ж?p?????λ??????,???????
}
????1<
ADIF???????????????????????????4?? ??????е???壬????о??????????????????
(1<
ADCSR=(1<
ADCSR|=(1<
ADCSR&=~(1<
while(ADCSR&(1<
while(1)
{
while(ADCSR&(1<
{
????......
}
}
?????????????????????????????????????????????????????????Щ????д??????????????????????У??????????????????????Ч?????????????????????????????????
???????????

????admin ?????????2018-05-19