各位高手大家好啊,我是初学AVR的,新人大家多多关照哈,从1月23号开始焊接,1月25日正式学习AVR,主要是看网上的视频,看实验指导和请教高手。
到春节前刚好会弄些简单的,现在把我的代码和心得给大家看看,初学的可以看看,可能可以少走点歪路,高手也可以指点一下我,大家一起分享,有问题大家讨论一下,谢谢。
首先贴一个实验1,流水灯
//PA口输出低电平可导通发光二极管
#include <iom16v.h>
#include <macros.h>
#define uc unsigned char
#define ui unsigned int
void delay (ui ms) //延时函数
{
ui i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<1141;j++);
}
}
void main()
{
uc k;
DDRA="0XFF"; //初始化,PA口全为输出
PORTA="0XFF"; //全为输出高电平,即不导通
while(1)
{
for (k=0;k<8;k++)
{
PORTA="PORTA"&~BIT(k); //当k=0,BIT(k)=0000 0001,~BIT(k)=1111 1110,与上后,即PA0置零,0灯导通,当k由0到7时,灯0--7依次点亮,不会灭
delay(1000);
}
for (k=0;k<8;k++)
{
PORTA=PORTA|BIT(k); //当k=0,BIT(k)=0000 0001,或上后,即PA0置一,0灯灭,当k由0到7时,灯0--7依次灭
delay(1000);
}
for (k=0;k<8;k++)
{
PORTA="PORTA"&~BIT(7-k);
delay(1000);
}
for (k=0;k<8;k++)
{
PORTA=PORTA|BIT(7-k);
delay(1000);
}
}
}
文章评论(0条评论)
登录后参与讨论