下面咱们写流水灯的程序。LED程序的书写是咱们学习单片机很根底的,但我是我觉的仍是很重要的。能写好LED程序对咱们了解AVR IO口的操作很有优点呀。
先这儿简略的介绍下我的硬件,8个LED接到PA口上,公共端接地。
程序:
#include <avr/io.h>
#include
int main(void)
{
unsigned char i = 0;
DDRA = 0xff;
while(1)
{
}
}
这儿咱们首要讲讲while(1)句子部分。
榜首句:PORTA = 0x01<
第二句:if(++i>=8)i=0;
这儿一个要要点留意的当地便是++i,而不是i++。这两个的差异便是是先加再履行,仍是履行了再加。这是有不同的,咱们能够试着改一下,体会下这两个的不相同。
第三句便是延时了没有什么好说的。
现在咱们再从头的回忆下这个while(1)句子的一个履行进程。首要0x01左移0位,将0x01赋给PA口,点亮榜首个LED。再对i进行自加0+1=1,1〈 8则不对其进行清0操作,最终是延时一会。
第2次履行PORTA=0x01<
如此循环下去,当循环8次后i被清0,再从榜首个LED亮起。