⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainmymedia.c.bak

📁 一款可以用于毕业设计
💻 BAK
字号:
#include"REG51F.h"
#include"intrins.h"
#include"USEH1.h"
#include"MainMyMedia.h"
#include"lcd.h"
#include"Music.h"
#include"24c02.h"
#include"PictureCode.h"
#include"CartoonCode.h"
#include"MusicCode.h"

//位变量声明===========================================
bit gf_50Ms = 0;
bit gf_kLok = 0;
bit gf_have = 0;
bit gf_clrScreen = 0; //清屏标志

//全局变量声明=========================================
uchar g_tim2Ms = 0; 	//time0计数器
//按键变量
uchar g_kCou = 0;
uchar g_kStart = 0;
uchar g_kLast = 0;
uchar g_kVal = 0;

uchar g_cnLin=0, g_cnColumn=0, g_cnNum1=0;
uchar g_bootDly = 0; //文字显完时延时
uchar g_cnDly = 0;
uchar g_jdColumn = 16;
uchar g_jdBootDy = 0;
uchar g_bootCartoonDly = 0;
uchar g_cantStup = 0; //动画播放的帧指示

uchar g_showLCD = 0;		//LCD显示界面控制
uchar g_menu1=25, g_menu2=24, g_menu3=24; //光标指示
/*e2romData[0]:头码0x55,e2romData[1]:g_menu1,e2romData[2]:g_menu2
e2romData[3]:g_menu3,e2romData[4]:g_showLCD,e2romData[5]:累加和校验
*/
uchar e2romData[6]; //E2ROM缓存
uchar chkSun;

//函数声明=============================================
void InitMCU(void);
void WR_E2rom(void); //写E2ROM函数

//主程序===============================================
void main(void)
{
   InitMCU();
   ReadDate(0, e2romData, 6); //E2ROM处理
   chkSun = e2romData[0]+e2romData[1]+e2romData[2]+e2romData[3]+e2romData[4];
   if((e2romData[0]==0x55)&&(e2romData[4]!=0)&&(e2romData[5]==chkSun))
   {
      g_menu1   = e2romData[1];
      g_menu2   = e2romData[2];
      g_menu3   = e2romData[3];
      g_showLCD = e2romData[4];
      g_cnNum1 = 18;
      g_bootDly = 0;
   }
   InitLCD();
   for(;;)
   {
      if(gf_50Ms)
      {
         gf_50Ms = 0;
         if(g_cnNum1<=17) //上电显示
         {
            if(g_cnDly==0)
            {
               ShowChina(g_cnLin,g_cnColumn,g_cnNum1);
               if(++g_cnNum1>=18)
                  g_cnDly = 0;
               else
                  g_cnDly = 4;
               g_cnColumn += 16;
               if(g_cnColumn>=112)
               {
                  g_cnColumn = 0;
                  g_cnLin += 2;
               }
            }
            else
               --g_cnDly;
         }
         else if(g_bootDly!=0)
            --g_bootDly;
         else  //进入正常工作
         {
            if(gf_have) //按键处理
            {
               gf_have = 0;
               if(g_showLCD==0)
               {
                  if((g_kVal==KUP)&&(g_menu1!=25)) //向上选择
                  {
                     if(g_menu3==25) //铃声→动画
                     {
                        g_menu2 = 25;
                        g_menu1 = g_menu3 = 24;
                     }
                     else if(g_menu2==25) //动画→图片
                     {
                        g_menu1 = 25;
                        g_menu2 = g_menu3 = 24;
                        g_jdBootDy = 30;
                     }
                     else { }
                  }
                  else if((g_kVal==KDOW)&&(g_menu3!=25)) //向下选择
                  {
                     if(g_menu1==25) //图片→动画
                     {
                        g_menu2 = 25;
                        g_menu1 = g_menu3 = 24;
                        g_jdBootDy = 30;
                     }
                     else if(g_menu2==25) //动画→铃声
                     {
                        g_menu3 = 25;
                        g_menu1 = g_menu2 = 24;
                     }
                     else { }
                  }
                  else if(g_kVal==KENT)
                  {
                     gf_clrScreen = 1;
                     if(g_menu1==25) 	  //选择了图片确认
                        g_showLCD = 1;
                     else if(g_menu2==25) //选择了动画确认
                           g_showLCD = 2;
                     else		 //选择了铃声确认
                        g_showLCD = 3;
                     
                     
                     WR_E2rom();
                  }
                  else { }
               }
               else
               {
                  if(g_kVal==KESC)  //按ESC返回菜单选择
                  {
                     gf_clrScreen = 1;
                     g_showLCD = 0;
                     g_cantStup = 0;
                     g_jdColumn = 16;
                     g_jdBootDy = 30;
                     
                     WR_E2rom();
                  }
               }
            }
            if(gf_clrScreen)
            {
               gf_clrScreen = 0;
               ClearScreen(1);
               ClearScreen(2);
            }
//选菜单============================
            if(g_showLCD==0)
            {
               ShowChina(0,16,18); //图片
               ShowChina(0,32,19);
               ShowChina(2,16,20); //动画
               ShowChina(2,32,21);
               ShowChina(4,16,22); //铃声
               ShowChina(4,32,23);
               ShowChina(0,0,g_menu1); //光标
               ShowChina(2,0,g_menu2);
               ShowChina(4,0,g_menu3);
            }
//显示图片---------------------------
            else if(g_showLCD==1)
            {
               ShowPicture(1, 13, 48, 101, PictureCode);
            }
//放动画----------------------------
            else if(g_showLCD==2)
            {
               if(g_jdColumn<=96)
               {
                  if(g_cnDly==0)
                  {
                     ShowChina(2,0,26); //[ ]
                     ShowChina(2,112,27);
                     ShowChina(4,32,29); //请稍候…
                     ShowChina(4,48,30);
                     ShowChina(4,64,31);
                     ShowChina(4,80,32);
                     if(g_jdBootDy == 0)
                     {
                        ShowChina(2,g_jdColumn,28); //■
                        g_jdColumn += 16;
                        if(g_jdColumn>=112)
                           {
                              g_cnDly = 0;
                              g_bootCartoonDly = 20;
                           }
                        else
                        g_cnDly = 15;
                     }
                     else
                        --g_jdBootDy;
                  }
                  else
                     --g_cnDly;
               }
               else if(g_bootCartoonDly!=0)
               {
                  if(--g_bootCartoonDly==0)
                     gf_clrScreen = 1;
               }
               else //进入动画播放
               {
                  if(g_cnDly==0)
                  {
                     switch(++g_cantStup)
                     {
                        case 1:
                           {
                              ShowPicture(1, 22, 48, 84, CartoonP1);
                              g_cnDly = 8;
                           }
                           break;
                        case 2:
                           {
                              ShowPicture(1, 22, 48, 84, CartoonP2);
                              g_cnDly = 12;
                           }
                           break;
                        default:
                           {
                              ShowPicture(1, 22, 48, 84, CartoonP3);
                              g_cantStup = 0;
                              g_cnDly = 40;
                           }
                     }
                  }
                  else
                     --g_cnDly;
               } //end else 进入动画播放
            } //end else 放动画
//放铃声----------------------------
            else
            {
               ShowChina(2,16,33); //∮
               ShowChina(2,32,34); //两
               ShowChina(2,48,35); //只
               ShowChina(2,64,36); //蝴
               ShowChina(2,80,37); //蝶
               if(g_cnDly==0)
               {
                  InitialSound();
                  Play(music1,0,3,360);
                  if(gf_have&&(g_kVal==KESC))
                  {
                     gf_have = 0;
                     gf_clrScreen = 1;
                     g_showLCD = 0;
                     //g_cantStup = 0;
                     //g_jdColumn = 16;
                     //g_jdBootDy = 30;
                     BeepIO = 0;
                     WR_E2rom();
                  }
                  else
                     g_cnDly = 40;
               }
               else
                  --g_cnDly;
            }
         } //end else进入正常工作
      }
   }
}
//定时器2中断,10ms中断一次=========================
void time2_interrupt(void)interrupt 5
{
   TF2 = 0;
   if(++g_tim2Ms>=5)
   {
      g_tim2Ms = 0;
      gf_50Ms = 01;
   }
//按键读取---------------
   P0 |= 0xf0;
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   g_kStart = P0 | 0x0f;
   if(g_cnNum1<=17) { }
   else if(g_kStart!=g_kLast)
   {
      g_kLast = g_kStart;
      g_kCou = 0;
   }
   else
   {
      if(++g_kCou>=3)
      {
         g_kCou = 0;
         if(g_kStart==0xff)
         {
            gf_kLok = 0;
         }
         else if(gf_kLok) { }
         else
         {
            gf_kLok = 1;
            gf_have = 1;
            g_kVal = g_kStart;
         }
      }
   }
}
//子函数===============================================
//MCU初始化----------------------
void InitMCU(void)
{
   P0 = 0xff;
   P1 = 0xff;
   P2 = 0xff;
   P3 = 0x7f;
//定时器2初始化
   T2MOD = 0xfd;
   CP_RL2 = 0;
   TL2 = 0xf0;
   TH2 = 0xd8;
   RCAP2L = 0xf0;
   RCAP2H = 0xd8;
   C_T2 = 0;
   TR2 = 1;
   ET2 = 1;
   EA = 1;
   gf_clrScreen = 1;
   g_bootDly = 40;
}
//写E2ROM函数--------------------
void WR_E2rom(void)
{
      e2romData[0] = 0x55;
      e2romData[1] = g_menu1;
      e2romData[2] = g_menu2;
      e2romData[3] = g_menu3;
      e2romData[4] = g_showLCD;
      e2romData[5] = e2romData[0]+e2romData[1]+e2romData[2]+e2romData[3]+e2romData[4];
      WriteDate(0, e2romData, 6);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -