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

📄 main.c

📁 基于2410的LCD试验程序
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.zyinside.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name: main.c
** Last modified Date: 2006-01-13   
** Last Version: v1.0 
** Description: 控制STN液晶屏显示红、绿、蓝、白四纯色,然后显示一幅图片,接着显示随机线条和随机矩形。 
** Note: 请短接实验箱上的JP7跳线,实验箱上安装STN液晶屏LFUBK9111时,本程序才有效。
**------------------------------------------------------------------------------------------------------
** Created By: 黄绍斌
** Created date: 2006-01-13  
** Version: v1.0
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
#include  "config.h"


// 定义蜂鸣器控制口
#define     BEEP		    (1<<10)     /* GPH10口 */	
#define     BEEP_MASK	    (~BEEP)


// 定义16标准色
uint16  const  COLORS_TAB[16] = {BLACK,
							     NAVY,
							     DGREEN,
							     DCYAN,
							     MAROON,
							     PURPLE,	
							     OLIVE,	
						         LGRAY,		
							     DGRAY,		
							     BLUE,		
						         GREEN,		
							     CYAN,	   
							     RED,	
							     MAGENTA,
							     YELLOW,	
							     WHITE
                               };


/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 长软件延时。
**              延时时间与系统时钟有关。
** Input: dly	延时参数,值越大,延时越久
** Output: 无
** Created by: 黄绍斌
** Created Date: 2005-12-31 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  DelayNS(uint32  dly)
{  
	uint32  i;

   	for(; dly>0; dly--) 
       for(i=0; i<50000; i++);
}



/*********************************************************************************************************
** Function name: RunBeep
** Descriptions: 控制蜂鸣器Be一声音。  
** Input: 无
** Output: 无
** Created by: 黄绍斌
** Created Date: 2006-01-05 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  RunBeep(void)
{  
    rGPHDAT = rGPHDAT & BEEP_MASK;	    // BEEP = 0
    DelayNS(5);
    rGPHDAT = rGPHDAT | BEEP;		    // BEEP = 1 
    DelayNS(5);
}



/*********************************************************************************************************
** Function name: random
** Descriptions: 取随机数。 
** Input: seed   随机数范围(0 -- seed-1)
** Output: 返回值即是取得的随机数
** Created by: 黄绍斌
** Created Date: 2006-01-13  
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
uint16  random(uint16 seed)
{  
    uint16 temp;

    temp = rand();
    temp = temp % seed;
    return(temp);
}



#define  CENTER_X	160
#define  CENTER_Y	120

/*********************************************************************************************************
** Function name: CLineDemo
** Descriptions: 彩色线演示程序。以中心点为准,不断的画各种随机角度、随机长度、随机颜色画直线。
** Input: 无
** Output: 无
** Created by: 黄绍斌
** Created Date: 2006-01-13  
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  CLineDemo(void)
{  
    uint32  x0, y0;
    uint32  x1, y1;
    uint16  color;   
    uint32  no;
   
    for(no=0; no<300; no++)
    {  
        // 取第一个点坐标 
        x0 = random(320);
        y0 = random(240);
        color = random(15)+1;     // 不使用黑色(背景色)
      
        // 计算出中心对称点 
        x1 = 2*CENTER_X - x0;
        y1 = 2*CENTER_Y - y0;
      
        GUI_Line(x0, y0, x1, y1, COLORS_TAB[color]);
        DelayNS(1);
    }
}



/*********************************************************************************************************
** Function name: CRectangleDemo
** Descriptions: 彩色矩形演示程序。取得随机起点及长、宽,然后画填充矩形
** Input: 无
** Output: 无
** Created by: 黄绍斌
** Created Date: 2006-01-13  
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  CRectangleDemo(void)
{  
    uint32  x0, y0;
    uint32  x1, y1;
    uint16  color;
    uint32  no;

    for(no=0; no<200; no++)
    {  
        // 取第一个点坐标 
        x0 = random(320);
        y0 = random(240);        
        color = random(15)+1;       // 不使用黑色(背景色)
      
        // 取第二点坐标 
        x1 = x0 + random(150);      // 长控制在150像素以内         
        y1 = y0 + random(100);		// 宽控制在100像素以内
      
        GUI_RectangleFill(x0, y0, x1, y1, COLORS_TAB[color]);
        DelayNS(2);
    }
}


/*********************************************************************************************************
** Function name: DispRGB
** Descriptions: 显示RGB红色。第种纯色,各占60行。
** Input: 无
** Output: 无
** Created by: 黄绍斌
** Created Date: 2006-01-13  
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void  DispRGB(void)
{  
    uint32  x,y;
    uint8  *p_buffer;
	
    p_buffer = (uint8 *)FrameBuffer;
	
    // 填充白色
    for(y=0; y<60; y++)		
    {   
        for(x=0; x<320; x++)
        {  
            *p_buffer++ = 0xFF; 
        }
    }
  
    // 填充蓝色
    for(y=0; y<60; y++)
    {  
        for(x=0; x<320; x++)
        {  
            *p_buffer++ = 0x03;  
        }
    }
   
    // 填充绿色
    for(y=0; y<60; y++)
    {   
        for(x=0; x<320; x++)
        {  
            *p_buffer++ = 0x1C;
        }
    }
   
    // 填充红色
    for(y=0; y<60; y++)
    {  
        for(x=0; x<320; x++)
        {  
            *p_buffer++ = 0xE0;
        }
    }  
}



/*********************************************************************************************************
** Function name: main
** Descriptions: 控制STN液晶屏显示红、绿、蓝、白四纯色,然后显示一幅图片,接着显示随机线条和随机矩形。           
** Input: 无
** Output: 系统返回值0
** Created by: 黄绍斌
** Created Date: 2005-12-31 
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int  main(void)
{	
    // 初始化I/O 
    rGPHCON = (rGPHCON & (~(0x03<<20))) | (0x01<<20);   // rGPHCON[21:20] = 01b,设置GPH10为GPIO输出模式          
	
	srand(3721);                // 初始化随机总子		
	
	while(1)
	{	
	    RunBeep();
	        	
	    DispRGB();              // 显示四纯色
	    DelayNS(100);   
	    
	    DispDesktop();          // 显示图片
        DelayNS(100); 
        GUI_ClearSCR(); 
        
        CLineDemo();            // 显示随机线条
        GUI_ClearSCR(); 
        
        CRectangleDemo();       // 显示随机矩形
        GUI_ClearSCR();       	    
	}    
    
   	return(0);
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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