单片机编程程序设计与应用

1、编写一个霹雳灯子函数。所谓霹雳灯:先D1和D8同时亮;延时1s后,D1和D8继续亮,同时D2和D7点亮;以此类推,D3和D6点亮,延时1s后D4和D5点亮。如此周而复始。要求:1s是准确的一秒,必须使用计时器T1,方式1来来实现。按下某个按键K3,蜂鸣器响一声,霹雳灯灯开始启动,再次按下该按键,蜂鸣器响一声,霹雳灯停止。


#include <reg51.h>
    void
    delay(unsigned char n);
int main(void)
{
    unsigned char led[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; //0-9μ?×?Dí??
    unsigned char i;
    P2 = 0x00;
    while (1)
    {
        for (i = 0; i < 10; i++)
        {
            P0 = led[i];
            delay(250);
            if (P0 == led[9])
            {
                P0 = led[0];
                i++;
            }
        }
    }
}
void delay(unsigned char n)
{
    unsigned char i, j;
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
            ;
}