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

📄 main.c

📁 液晶菜单滚动显示图片程序。基于SmartARM2200
💻 C
📖 第 1 页 / 共 2 页
字号:
   diswordyel(0);
   diswordgre(0);
   diswordblu(0);
   diswordpur(0);
}  
                                        // 黄色
void  Dispyelall(void)         
{  
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line1);
   Dispcolorrank(col1,line1,col5,line4,WHITE);                        
   Dispcolorrank(col1,line4,col5,line5,YELLOW);
   Dispcolorrank(col1,line5,col5,line8,WHITE);  
   diswordmune();
   diswordred(0);
   diswordorg(0);    
   diswordyel(1);      
   diswordgre(0);
   diswordblu(0);
   diswordpur(0);
}  

void  Dispgreall(void)         // 绿色
{
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,0);
   Dispcolorrank(col1,line1,col5,line5,WHITE);                           
   Dispcolorrank(col1,line5,col5,line6,GREEN);     
   Dispcolorrank(col1,line6,col5,line8,WHITE); 
   diswordmune();
   diswordred(0);
   diswordorg(0);
   diswordyel(0);    
   diswordgre(1);     
   diswordblu(0);
   diswordpur(0);
}  

void  Dispbluall(void)         // 兰色
{  
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line1);
   Dispcolorrank(col1,line1,col5,line6,WHITE);                    
   Dispcolorrank(col1,line6,col5,line7,BLUE);  
   Dispcolorrank(col1,line7,col5,line8,WHITE); 
   diswordmune();
   diswordred(0);
   diswordorg(0);
   diswordyel(0);
   diswordgre(0);       
   diswordblu(1);    
   diswordpur(0);
}  

void  Disppurall(void)         // 紫色
{  
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line1);
   Dispcolorrank(col1,line1,col5,line7,WHITE);                       
   Dispcolorrank(col1,line7,col5,line8,pur); 
   diswordmune();
   diswordred(0);
   diswordorg(0);
   diswordyel(0);
   diswordgre(0);
   diswordblu(0);       
   diswordpur(1);
}  

/****************************************************************************
* 名   称:Disp'color'
* 功   能:以非全屏重写方式滚动色条,每次只重写新的色条,擦去上一色条
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  Dispred(void)
{
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line7);                         
   Dispcolorrank(col1,line7,col5,line8,WHITE);  // 重写“紫色”条
   TftSetWrite(col1,line2);                           
   Dispcolorrank(col1,line2,col5,line3,RED);     // 填充红色            
   diswordred(1); 
   diswordpur(0);
    }

void  Disporg(void)     
{
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line2);
   Dispcolorrank(col1,line2,col5,line3,WHITE);      // 重写“红色”条
   Dispcolorrank(col1,line3,col5,line4,org);   // 填充橙色
  diswordred(0);
   diswordorg(1); 
}  
                                        
void  Dispyel(void)         
{  
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line3);
   Dispcolorrank(col1,line3,col5,line4,WHITE);   // 重写“橙色”条
   Dispcolorrank(col1,line4,col5,line5,YELLOW);   // 填充黄色                
   diswordorg(0);
   diswordyel(1);  
}  

void  Dispgre(void)        
{  
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line4);
   Dispcolorrank(col1,line4,col5,line5,WHITE);  // 重写“黄色”条
   Dispcolorrank(col1,line5,col5,line6,GREEN); // 填充绿色   
   diswordgre(1);
   diswordyel(0);
}  

void  Dispblu(void)        
{ 
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line5);
   Dispcolorrank(col1,line5,col5,line6,WHITE);  // 重写“绿色”条
   Dispcolorrank(col1,line6,col5,line7,BLUE); // 填充蓝色
   diswordgre(0);
   diswordblu(1);
}  

void  Disppur(void)        
{ 
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line6);
   Dispcolorrank(col1,line6,col5,line7,WHITE); // 重写“蓝色”条
   Dispcolorrank(col1,line7,col5,line8,pur);  // 填充紫色
   diswordpur(1); 
   diswordblu(0);
}  
/****************************************************************************
* 名   称:Dispic
* 功   能:显示一幅图片
* 入口参数:* const_pic,指向图片文件名
* 出口参数:无
****************************************************************************/

void dispic(const unsigned short * const_pic)
{  uint32  x, y;
   uint32  no;
   uint16  dat; 
   TftSetWindow(0,0, 239, 319); 
   TftSetWrite(0,0);   
   no = 0;
   for(y=0; y<320; y++)
   {  for(x=0; x<240; x++)
      {  
         dat = const_pic[no];
         TftSendDat(dat);
         no++; 
      }
   }
}  
/****************************************************************************
* 名   称:Dispplayfill
* 功   能:全屏显示选中的色条对应的图片
* 入口参数:select
* 出口参数:无
****************************************************************************/
void displayfill(uint8 no)
{ 
 if (no==1)         
   dispic(pic3);
 else if(no==2)     
    dispic(pic1);
 else if(no==3)    
    dispic(pic4);
 else if(no==4)     
    dispic(pic2);
 else if(no==5)     
    dispic(pic5);
 else              
    dispic(pic6);
}  



/****************************************************************************
* 名   称:Dispplaymune
* 功   能:显示色条滚动
* 入口参数:select,传递选中的颜色,state,传递是否需要全屏重写
* 出口参数:无
****************************************************************************/
//显示菜单
void displaymenu(uint8 no,uint8 stat)
{ 
  DelayNS(10);
  if(stat==0)
  {  if(no==1)				
        Dispred(); 
     else if(no==2)
       Disporg();
     else if(no==3)
       Dispyel();
     else if(no==4)
       Dispgre();
     else if(no==5)
       Dispblu();
     else
       Disppur();
  }
  else
  {   if(no==1)				
        Dispredall(); 
      else if(no==2)
       Disporgall();
      else if(no==3)
       Dispyelall();
     else if(no==4)
       Dispgreall();
     else if(no==5)
       Dispbluall();
     else
       Disppurall();
  }
}		
/****************************************************************************
* 名    称:main()
* 功    能:对ZLG7290进行操作
* 说    明:在STARTUP.S文件中使能IRQ中断(清零CPSR中的I位);
*           在CONFIG.H文件中包含I2CINT.H、ZLG7290.H。
****************************************************************************/
int  main(void)
{  
   uint8  key_buf[8];	
   uint8  key=0,select=1,fillsr=0;
   PINSEL0 = 0x00000000;
   PINSEL1 = 0x00000000;
   GUI_Initialize();    
   Dispredall(); 
   I2C_Init(30000);                         // I2C 配置初始化
 
    while(1)
    {  
       DelayNS(7);   
       IRcvStr(ZLG7290, 0x01, key_buf, 2);  
       if(select==6)
          select=0;
          if(fillsr==2)
            fillsr=0;
       if(0 == key_buf[1])       // 是否有效的按键动作
       {  
         key = key_buf[0];       // 取得键值
         if(key!=0)
         {
           if(key==1)
           {
             if(fillsr==0)
             {
             select++; 
             displaymenu(select,0);
             }
             else
             {
             displaymenu(select,1);
             fillsr++;
             }
             DelayNS(38);   
           }
           else if(key==2)
           {
           fillsr++;
            if(fillsr==2)
             displaymenu(select,1);
            else
            displayfill(select);
            DelayNS(20);         
           }
         }
       }
    }
    return(0);					
}

⌨️ 快捷键说明

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