AVR单片机入门--MEGA端口操作

时间:2013-01-05来源:网络

int main(void)

{

unsigned char i,j,k; //

PORTA=0xFF; //PA口设为输出高电平,灯灭

DDRA=0xFF; //PA口设置为输出

while(1)

{

i=1;

for (j=0;j8;j++) //循环8次,即PA0~~PA7轮流闪亮

{

PORTA=~i; //反相输出,低电平有效,对应的灯亮

for (k=0;k10;k++) _delay(100); //延时 100*10=1秒,可自行调节 i=i1; //左移一位,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

{

程序......

}

}

实践出真知:只看这样的说明是很枯燥的,从实践中去学习会是更好的途径,把这些代码都写到单片机里,一步一步调试运行,看看各个端口以及寄存器的效果,也锻练程序调试能力,和乐而不为呢?

1 2

关键词: AVR单片机 MEGA 端口操作

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版