请问一个面试题,点亮10个灯

请教一个面试题,点亮10个灯
用单片机管脚点亮10个LED灯,LED灯从LED1到LED10每隔5秒点亮,再把LED灯从LED10到LED1依次每隔5秒熄灭,如此循环。不限制单片机,请说思路,最好赋有程序段,不用太详细即可。
------解决方案--------------------
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
    uchar i;
    while(x--)
    {
        for(i=0;i<120;i++);
     }
}
void main()
{
    uchar i;
    P2=0x01;
    while(1)
    {
       for(i=0;i<7;i++)
       {
          P2=_crol_(P2,1); //P2 的值向左循环移动
          DelayMS(150);
        }
       for(i=0;i<7;i++)
      {
          P2=_cror_(P2,1); //P2 的值向右循环移动
          DelayMS(150);
       }
    }
}

时间上你自己调