今日开端进入AVR单片机的学习,刚拿到学习板没多久,开端我的第一课—-流水灯。
原理图如下:
源代码:
/*
* LED.c
*
* Created: 2011-6-24 12:00:23
* Author: ZYIN
*/
#include <avr/io.h>
void delay(void) //延时函数
{
unsignedint j;
j=60000;
while(j–);
}
int main(void) //主函数
{
char temp;
DDRF=0b11111111; //PF口设置为输出
PORTF=0b00001000;//PF3位设置为1,使能74hc573锁存器
DDRA=0xff; //PA口设置为输出
while(1) //流水灯循环
{
int i;
temp=0b00000001; //初始化
for(i=0;i<8;i++)
{
PORTA=~temp; // 输出流水灯状况
delay();
delay();
delay();
temp<<=1; //状况左移
}
}
}
程序效果图:
写完这个程序才发现,AVR确实要比51的速度快啊。
void delay(void) //延时函数
{
int j;
j=60000;
while(j–);
}
这个延时函数在51需求大约1秒左右;而AVR大约在100ms多左右。