/*-----------------------------------------------
名称:IO口高低电平控制
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:程序使用PB口作为输出演示
可以根据需要调整延时或者自行更改延时程序
------------------------------------------------*/
#include <iom16v.h>
#include <macros.h>
/*------------------------------------------------
延时函数
------------------------------------------------*/
void Delay()
{
unsigned char a, b;
for (a = 1; a; a++)
for (b = 1; b; b++)
;
}
/*------------------------------------------------
点亮LED
------------------------------------------------*/
void LED_On(int i)
{
PORTB = ~BIT(i); /* low output to turn LED on */
Delay();
}
/*------------------------------------------------
主函数
------------------------------------------------*/
void main()
{
int i;
DDRB = 0xFF; /* output */
PORTB = 0x55; /* all off */
//PORTB = 0xaa;
while (1)
{
/* forward march */
for (i = 0; i < 8; i++)
LED_On(i);
/* backward march */
for (i = 8; i > 0; i--)
LED_On(i);
/* skip */
for (i = 0; i < 8; i += 2)
LED_On(i);
for (i = 7; i > 0; i -= 2)
LED_On(i);
}
}