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

📄 main.c

📁 周立功GUI在avr单片机上的移植 开发环境为IAR
💻 C
字号:
#define MAIN_C
#include "all.h"

__flash uint8 HZ1[]=
{
/*--  文字:  欢  --*/
/*--  宋体18;  此字体下对应的点阵为:宽x高=24x24   1--*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x06,0x00,0x00,0x46,0x00,0x3F,
0xC4,0x00,0x00,0xC4,0x04,0x00,0x8F,0xFE,0x20,0x88,0x08,0x11,0x89,0x90,0x09,0x11,
0x80,0x05,0x21,0x80,0x02,0x21,0x80,0x03,0x03,0x80,0x05,0x82,0x80,0x05,0x82,0x40,
0x08,0xC2,0x40,0x08,0xC4,0x60,0x10,0x4C,0x20,0x20,0x08,0x30,0x40,0x10,0x18,0x00,
0x60,0x0E,0x00,0x80,0x00,0x00,0x00,0x00
};
MENUICO  mainmenu[2];

uint8 __flash  menupic1[] = 
{
/*--  图像:Face01.ico  --*/
/*--  宽度x高度=32x32  --*/
0x00,0x0F,0xF0,0x00,0x00,0x70,0x0E,0x00,0x01,0x80,0x01,0x80,0x03,0x00,0x00,0xC0,
0x04,0x00,0x00,0x20,0x08,0x00,0x00,0x10,0x10,0x00,0x00,0x08,0x30,0x00,0x00,0x0C,
0x20,0x18,0x18,0x04,0x40,0x3C,0x3C,0x02,0x40,0x3C,0x3C,0x02,0x40,0x3C,0x3C,0x02,
0x80,0x3C,0x3C,0x01,0x80,0x3C,0x3C,0x01,0x80,0x18,0x18,0x01,0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,
0x40,0x00,0x00,0x02,0x40,0x00,0x00,0x02,0x40,0x00,0x00,0x02,0x20,0x1F,0xF8,0x04,
0x30,0x00,0x00,0x0C,0x10,0x00,0x00,0x08,0x08,0x00,0x00,0x10,0x04,0x00,0x00,0x20,
0x03,0x00,0x00,0xC0,0x01,0x80,0x01,0x80,0x00,0x70,0x0E,0x00,0x00,0x0F,0xF0,0x00
};

uint8 __flash  menuchar1[]=
{
/*--  图像:F1.bmp  --*/
/*--  宽度x高度=44x13  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x40,0x00,0x00,0x00,0x08,0x08,0x48,
0x00,0x00,0x0F,0xC8,0x12,0x70,0x10,0x00,0x01,0x3F,0x3F,0x44,0x30,0x00,0x01,0x09,
0x00,0x44,0x10,0x00,0x01,0x09,0x1E,0x3C,0x10,0x00,0x01,0x09,0x12,0x40,0x10,0x00,
0x01,0x11,0x1E,0x48,0x10,0x00,0x01,0x91,0x12,0x70,0x10,0x00,0x0E,0x21,0x1E,0x44,
0x10,0x00,0x00,0x4A,0x12,0x44,0x38,0x00,0x00,0x84,0x16,0x3C,0x00,0x00
};



uint8 __flash  menupic2[] = 
{
/*--  图像:Face02.ico  --*/
/*--  宽度x高度=32x32  --*/
0x00,0x0F,0xF0,0x00,0x00,0x70,0x0E,0x00,0x01,0x80,0x01,0x80,0x03,0x00,0x00,0xC0,
0x04,0x00,0x00,0x20,0x08,0x00,0x00,0x10,0x10,0x00,0x00,0x08,0x30,0x00,0x00,0x0C,
0x20,0x18,0x18,0x04,0x40,0x3C,0x3C,0x02,0x40,0x3C,0x3C,0x02,0x40,0x3C,0x3C,0x02,
0x80,0x3C,0x3C,0x01,0x80,0x3C,0x3C,0x01,0x80,0x18,0x18,0x01,0x80,0x00,0x00,0x01,
0x80,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x80,0x80,0x00,0x81,0x80,0x80,0x00,0x81,
0x40,0x80,0x00,0x82,0x40,0x40,0x01,0x02,0x40,0x60,0x03,0x02,0x20,0x30,0x06,0x04,
0x30,0x18,0x0C,0x0C,0x10,0x07,0xF0,0x08,0x08,0x00,0x00,0x10,0x04,0x00,0x00,0x20,
0x03,0x00,0x00,0xC0,0x01,0x80,0x01,0x80,0x00,0x70,0x0E,0x00,0x00,0x0F,0xF0,0x00
};

uint8 __flash  menuchar2[]=
{
/*--  图像:F2.bmp  --*/
/*--  宽度x高度=44x13  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x40,0x00,0x00,0x00,0x08,0x08,0x48,
0x00,0x00,0x0F,0xC8,0x12,0x70,0x38,0x00,0x01,0x3F,0x3F,0x44,0x44,0x00,0x01,0x09,
0x00,0x44,0x44,0x00,0x01,0x09,0x1E,0x3C,0x04,0x00,0x01,0x09,0x12,0x40,0x08,0x00,
0x01,0x11,0x1E,0x48,0x10,0x00,0x01,0x91,0x12,0x70,0x20,0x00,0x0E,0x21,0x1E,0x44,
0x40,0x00,0x00,0x4A,0x12,0x44,0x7C,0x00,0x00,0x84,0x16,0x3C,0x00,0x00
};

uint8 __flash *__flash  pic_all[][2] = 
{   /* 图形数据,标识数据 */
    {menupic1, menuchar1},
    {menupic2, menuchar2},
};

#define  ICO1_X         300 
#define  ICO1_Y         220
uint8 Select;

void  DemoMessage(void)
{
    WINDOWS  message;
    
    message.x = 5;       // 设置窗口位置和大小
    message.y = 14;
    message.with = 120;
    message.hight = 48;
    message.title = (uint8 *) "Message for Demo"; // 窗口标题
    message.state = (uint8 *) 0;
    GUI_WindowsDraw(&message);       // 显示对话框窗口
    GUI_PutString(8, 35, "Hello,");  // 显示对话框的消息"Hello,ZLG/GUI"
    GUI_PutString(8, 45, "QW!");
    if(Select==0)
    {
        GUI_Button_OK1(72,29);     // 选中"OK"按钮
        GUI_Button_Cancle(72,45);  // 取消"CANSEL"按钮的选中状态
    }
    else
    {
        GUI_Button_OK(72,29);
        GUI_Button_Cancle1(72,45);
    }
}

void  DrawSelectMenuIco(uint8 select)
{
    static  uint8  s_select_old = 255;
    /* 清除旧的选择 */
    if(s_select_old<2)
    {   
        mainmenu[s_select_old].state = 0;
        GUI_MenuIcoDraw(&mainmenu[s_select_old]);
    }
    
    /* 设置新的选择 */
    mainmenu[select].state = 1;				
    GUI_MenuIcoDraw(&mainmenu[select]);
    s_select_old = select;
}
void main(void)
{
    WINDOWS mw;
    mw.x = 0;
    mw.y = 0;
    mw.with = 240;
    mw.hight = 64;
    mw.title = (uint8 *)"qianwei test";
    mw.state = "ok";
    
    GUI_Initialize();//初始化LCM
    GUI_SetColor(1,0);//设置前景色和背景色
    GUI_ClearSCR();
    
    GUI_PutString(150,10,"WELCOME");
    GUI_Point(1,1,1);
    GUI_Point(200,2,1);
    delay_ms(500);
    GUI_ClearSCR();
    GUI_PutString(150,10,"ok");
    GUI_Point(1,50,1);
    GUI_Point(200,40,1);
    
    GUI_PutHZ(136,30,HZ1,24,24);
    GUI_PutChar24_32(12,10,'1');
    GUI_PutChar24_32(36,10,'2');
    
    //GUI_Ellipse(100,10,20,10,1);
    GUI_Line(5,5,10,20,1);
    GUI_LineWith(5,20,10,40,3,1);
    delay_ms(500);
    GUI_WindowsDraw(&mw);
    
    for(uint8 i=0; i<2; i++)
    {   /* 初始化为末选中状态 */
        mainmenu[i].state = 0;	
        
        /* 连接相应的图标数据 */
        mainmenu[i].icodat = pic_all[i][0];
        mainmenu[i].title = pic_all[i][1];
        
        /* 连接菜单功能函数 */
        mainmenu[i].Function = ( void(*) (void) ) DemoMessage;
    }
    while(1)
    {
        if(Select==0)
        {
            Select=1;
        }
        else
            Select=0;
        DrawSelectMenuIco(Select);
        delay_ms(2000);
    };
}

⌨️ 快捷键说明

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