文件:sld.C
环境:编译为ICC AVR6.25A,仿真为AVR Studio4.14
硬件:ATMEGA16芯片逗州
日期:2008年12月10日
功能:驱动孙友开发板上的LED。流水灯
备注:
/******************************************/
#include <D:\开发板\OK100E\程序\avr程序\OK100E.H>
/*******************************************
函数名称: One_led
功能: 点亮或者熄灭指定的LED
参数: number--指定的LED
light--为TRUE的时候为点亮LED,为FALSE的时候为熄灭LED
返回值 : 无
/********************************************/
void One_led(uchar number,uchar light)
{
uchar i
if(light==TRUE) //点亮 *** 作
{
PORTB&=~BIT(number) //输出数据
PORTC|=BIT(LEDLK) //更新数据
Delayms(5) //调整时序
PORTC&=~BIT(LEDLK) //锁存数据
}
else
{
PORTB|=BIT(number) //输出数据
PORTC|=BIT(LEDLK) //更新数据
Delayms(5) //调整时序
PORTC&=~BIT(LEDLK) //锁存数据
}
}
/*******************************************
函数名称: All_led
功能: 点亮或者熄灭全部LED
参数: light--为TRUE的时候为点亮全部LED,为FALSE的时候为熄灭全部LED
返回值 : 无
/********************************************/
void All_led(uchar light)
{
if(light)
{
PORTB&=~ALLLED//ALLLED=0xFF,使全部LED都亮
PORTC|=BIT(LEDLK) //输出数据
Delayms(5) //调整时序
PORTC&=~BIT(LEDLK) //锁存数据
}
else
{
PORTB|=ALLLED //ALLLED=0xFF,使则指槐全部LED都灭
PORTC|=BIT(LEDLK) //输出数据
Delayms(5) //调整时序
PORTC&=~BIT(LEDLK) //锁存数据
}
}
/*******************************************
函数名称: main
功能: 流水灯
参数: MS--点亮相邻LED的时间间隔,单位是毫秒
返回值 : 无
/********************************************/
void main()
{
Board_init()
PORTC|=BIT(BEEP)
while(1)
{
uchar i
for(i=0i<8i++) //循环8次,8个LED依次点亮
{
All_led(FALSE)//全部熄灭
One_led(i,TRUE)//点亮指定的LED
Delayms(200) //延时指定的时间
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)