Написать программу для отображения на экране ЖКИ тестовой строки «LCDTest», страница 3

  FIO2DIR = 0x00FF; // Aeou 0-7 ii?oa 2 ia auaia aey oi?aaeaiey naaoiaeiaaie

  FIO2MASK = 0;     // Ana ?ac?yau ii?oa 2 ?aaioa?o a auno?ii ?a?eia

  FIO2PIN = 0x00;   // Auee??eou naaoiaeiau

  InitVIC();   

  InitTimer0();

  InitWH1602D();

  LCD_Test();

  //String2LCD((char *)LCD_Info, 8);

  while(1)

  {                                 

  }

  return 0;

}

б) одной строкой:

String2LCD((char *)LCD_Info, 8);

Задание 2.

Модифицировать программу таким образом, чтобы вместо текста на ЖКИ модуле отображались текущий день, месяц и год.

а) по символьно:

void LCD_Test()

{

            WriteToIR(0x01);

            Delay(2000);

            WriteToDR('1');

            WriteToDR('2');

            WriteToDR('.');

            WriteToDR('1 ');

            WriteToDR('2');

            WriteToDR('.');

            WriteToDR('1');

            WriteToDR('1');

}

б) однойстрокой:

const char LCD_Info [] = "13.12.11";

Задание 3.

Модифицировать программу таким образом, чтобы на ЖКИ модуле отображалось непрерывно увеличивающееся число от 0 до 9.

void LCD_Test()

{

            WriteToIR(0x01);

            Delay(2000);

            WriteToDR('chislo');

}

while(1)

  {

    if(event)

    {

      event=0;

      if(chislo <=9)

      {

        LCD_Test();

        chislo ++;

      }

      else

        chislo =0;

    }

  }

Задание 4.

Написать программу секундомера.

void LCD_Test()

{

            WriteToIR(0x01);       

Delay(2000);

            WriteToDR(0x30 + min1);     

WriteToDR(0x30 + min2);

      WriteToDR(0x3A);

      WriteToDR(0x30 + sek1);

      WriteToDR(0x30 + sek2);

}

event=0;

  min1=min2=sek1=sek2=0;

  work=0;

  while(1) // Loop forever

  {                                 

    if(!(FIO0PIN&0x0020))

      work=1;

    if(!(FIO0PIN&0x0080))

    {

      min1=min2=sek1=sek2=0;

      LCD_Test();

    }

    while(work==1)

      if(event==1)

      {

       LCD_Test();

       event=0;

       sek2++;

       if(sek2>9)

       {

         sek2=0;

         sek1++;

       }

       if(sek1>5)

       {

         sek1=0;

         min2++;

       } 

       if(min2>9)

       {

         min2=0;

         min1++;

       }

       if(min1>5)

         min1=0;

       if(!(FIO0PIN&0x0040))

         work=0;

       if(!(FIO0PIN&0x0080))

       {

        min1=min2=sek1=sek2=0;

        LCD_Test();

       }

     }

  }