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

📄 main.c

📁 液晶菜单滚动显示图片程序。基于SmartARM2200
💻 C
📖 第 1 页 / 共 2 页
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#define  ZLG7290 	0x70 
#define  org 	0xfe3e//0xfe3e 
#define  pur 	0x9131//0xf01f	
#define  wordx 	31	
#define  wordy 	31	
#define  line1 	0	
#define  line2 	50	
#define  line3 	95	
#define  line4 	140
#define  line5 	185	
#define  line6 	230		
#define  line7 	275		 
#define  line8 	320	
#define  col1  0
#define  col2  45
#define  col22  75
#define  col3  105
#define  col33  135
#define  col4   165
#define  col5	240

extern uint16 pic1[];
extern uint16 pic2[];
extern uint16 pic3[];
extern uint16 pic4[];
extern uint16 pic5[];
extern uint16 pic6[];
extern uint8  word[];

void  DelayNS(uint32  dly)
{  
    uint32  i;
    for(; dly>0; dly--) 
    {
        for(i=0; i<5000; i++);
    }
}
   

/****************************************************************************
* 名   称:I2C_Init()
* 功   能:主模式I2C初始化,包括初始化其中断为向量IRQ中断。
* 入口参数:fi2c		初始化I2C总线速率,最大值为400K
* 出口参数:无
****************************************************************************/
void  I2C_Init(uint32 fi2c)
{  
    if(fi2c>400000) fi2c = 400000;

    PINSEL0 = (PINSEL0 & (~0xF0)) | 0x50;	// 不影响其它管脚连接,设置I/O连接到I2C
    I2SCLH = (Fpclk/fi2c + 1) / 2;			// 设置I2C时钟为fi2c
    I2SCLL = (Fpclk/fi2c) / 2;
    I2CONCLR = 0x2C;
    I2CONSET = 0x40;						// 使能主I2C
   
    /* 设置I2C中断允许 */
    VICIntSelect = 0x00000000;				// 设置所有通道为IRQ中断
    VICVectCntl0 = 0x29;					// I2C通道分配到IRQ slot 0,即优先级最高
    VICVectAddr0 = (int)IRQ_I2C;			// 设置I2C中断向量地址	
    VICIntEnable = 0x0200;   				// 使能I2C中断 
}

/****************************************************************************
* 名   称: disword
* 功   能:调用字库,所有字均在文件wordname.c中
* 入口参数:带入口参数x0,y0,x1,y1表示字符起始及终止位置,color表示字符的底色(是否选中此行)
            n表示字的位置码,字符的点阵为32×32,存储在word中从no*128开始的128个字节中;
* 出口参数:无
****************************************************************************/
void disword(uint32 x1,uint32 y1,uint32 color,uint8 n)
{
   uint32  x,y,i=0,no;
   uint8 middat,dat;
   no=n*128;
   middat=word[no];
   for(y=0; y<y1; y++)
   {  for(x=0; x<x1; x++)
      {dat=middat&0x80;
         if(dat==0)
           TftSendDat(color); 
         else
           TftSendDat(BLACK); 
        middat=middat<<1;
        i++;
        if(i==8)
        { i=0;
          no++;
          middat=word[no];
        }
      }
    }
}
/****************************************************************************
* 名   称: disword(*)
* 功   能:显示字符
* 入口参数:“菜单”没有入口参数,其他字符带入口参数stat,表示字符的底色(是否选中此行)
* 出口参数:无
****************************************************************************/
void diswordmune(void)   
{                                    //“姓名”
   TftSetWindow(col22,line1+15,col22+wordx,line1+15+wordy);  
   TftSetWrite(col22,line1+15);
   disword(wordx,wordy,WHITE,0);
   TftSetWindow(col33,line1+15,col33+wordy,line1+15+wordy); 
   TftSetWrite(col33,line1+15); 
   disword(wordx,wordy,WHITE,1);
}


void diswordorg(uint8 stat)             //“吴鸿”
{ uint32 color;
  if(stat==0)
  color=WHITE;
  else
  color=org;
  TftSetWindow(col2,line3+8,col2+wordx,line3+8+wordy); 
  TftSetWrite(col2,line3+8);
  disword(wordx,wordy,color,2);
  TftSetWindow(col4,line3+8,col4+wordx,line3+8+wordy); 
  TftSetWrite(col4,line3+8);
  disword(wordx,wordy,color,3);
}

void diswordgre(uint8 stat)              //“陈晓”
{uint32 color;
  if(stat==0)
  color=WHITE;
  else
  color=GREEN;
  TftSetWindow(col2,line5+8,col2+wordx,line5+8+wordy); 
  TftSetWrite(col2,line5+8);
  disword(wordx,wordy,color,4);
  TftSetWindow(col4,line5+8,col4+wordx,line5+8+wordy); 
  TftSetWrite(col4,line5+8);
  disword(wordx,wordy,color,5);
}

void diswordred(uint8 stat)              //“田永慧”
{uint32 color;
  if(stat==0)
  color=WHITE;
  else
  color=RED;
  TftSetWindow(col2,line2+8,col2+wordx,line2+8+wordy); 
  TftSetWrite(col2,line2+8);
  disword(wordx,wordy,color,6);
  TftSetWindow(col3,line2+8,col3+wordx,line2+8+wordy); 
  TftSetWrite(col3,line2+8);
  disword(wordx,wordy,color,7);
  TftSetWindow(col4,line2+8,col4+wordx,line2+8+wordy); 
  TftSetWrite(col4,line2+8);
  disword(wordx,wordy,color,8);
}

void diswordyel(uint8 stat)              //“乐应英”
{uint32 color;
  if(stat==0)
  color=WHITE;
  else
  color=YELLOW;
  TftSetWindow(col2,line4+8,col2+wordx,line4+8+wordy); 
  TftSetWrite(col2,line4+8);
  disword(wordx,wordy,color,9);
  TftSetWindow(col3,line4+8,col3+wordx,line4+8+wordy); 
  TftSetWrite(col3,line4+8);
  disword(wordx,wordy,color,10);
  TftSetWindow(col4,line4+8,col4+wordx,line4+8+wordy); 
  TftSetWrite(col4,line4+8);
  disword(wordx,wordy,color,11);
}

void diswordblu(uint8 stat)             // “李东芬”
{uint32 color;
  if(stat==0)
  color=WHITE;
  else
  color=BLUE;
  TftSetWindow(col2,line6+8,col2+wordx,line6+8+wordy); 
  TftSetWrite(col2,line6+8);
  disword(wordx,wordy,color,12);
  TftSetWindow(col3,line6+8,col3+wordx,line6+8+wordy); 
  TftSetWrite(col3,line6+8);
  disword(wordx,wordy,color,13);
  TftSetWindow(col4,line6+8,col4+wordx,line6+8+wordy); 
  TftSetWrite(col4,line6+8);
  disword(wordx,wordy,color,14);
}

void diswordpur(uint8 stat)           //“陈瑶玲”
{uint32 color;
  if(stat==0)
  color=WHITE;
  else
  color=pur;
  TftSetWindow(col2,line7+8,col2+wordx,line7+8+wordy); 
  TftSetWrite(col2,line7+8);
  disword(wordx,wordy,color,4);
  TftSetWindow(col3,line7+8,col3+wordx,line7+8+wordy); 
  TftSetWrite(col3,line7+8);
  disword(wordx,wordy,color,15);
  TftSetWindow(col4,line7+8,col4+wordx,line7+8+wordy); 
  TftSetWrite(col4,line7+8);
  disword(wordx,wordy,color,16);
}

/****************************************************************************
* 名   称:Disp'color'rank
* 功   能:重写色条
* 入口参数:x0,y0,x1,y1指示色条起始位置,color指示该条的颜色
* 出口参数:无
****************************************************************************/
void  Dispcolorrank(uint32 x0,uint32 y0,uint32 x1,uint32 y1,uint32 color)
{
   uint32  x,y;
  for(y=y0; y<y1; y++)		
   {  for(x=x0; x<x1; x++)
      { 
      TftSendDat(color);
      }
   }     
}
/****************************************************************************
* 名   称:Disp'color'all
* 功   能:以全屏重写方式滚动色条
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  Dispredall(void)             //红色
{ 
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line1);                
   Dispcolorrank(col1,line1,col5,line2,WHITE);                          
   Dispcolorrank(col1,line2,col5,line3,RED);        
   Dispcolorrank(col1,line3,col5,line8,WHITE);   
   diswordmune(); 
   diswordred(1);    
   diswordorg(0);
   diswordyel(0);
   diswordgre(0);
   diswordblu(0);
   diswordpur(0);
   }

void  Disporgall(void)            // 橙色
{  
   TftSetWindow(0,0,239,319); 
   TftSetWrite(col1,line1);
   Dispcolorrank(col1,line1,col5,line3,WHITE);                    
   Dispcolorrank(col1,line3,col5,line4,org);      
   Dispcolorrank(col1,line4,col5,line8,WHITE); 
   diswordmune();
   diswordred(0);   
   diswordorg(1);  

⌨️ 快捷键说明

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