欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1535|回復: 1
收起左側

LCD1602菜單顯示源碼(結合紅外模塊)

[復制鏈接]
ID:335111 發表于 2018-11-28 12:30 | 顯示全部樓層 |閱讀模式
#include "bsp.h"
#define  SIZEOFMENU  5
unsigned char CurMenuIndex =0; //指向當前菜單編號
unsigned char FirstLine[16]=" 123";
unsigned char SecondLine[16]=" 123";
unsigned char lcdflashflag =1;//菜單刷新命令
//unsigned char IRFLAG =0;   //紅外操作的健值




typedef struct keymenu
{         
        unsigned char curindex;//當前的菜單編號
        unsigned char keyDNindex;//按下向下按鍵 進入的編號
        unsigned char keyUPindex;//按下向上按鍵 進入的編號
        unsigned char keyENTERindex;//按下回車按鍵 進入的編號
        unsigned char keyCANCELindex;//按下返回按鍵 進入的編號
        void (*operation)();


} MYMENU;


MYMENU code keytab[SIZEOFMENU] =
{
                 //當前,下,上,回車,返回
                 {0,1,0,2,0,dispmenu0},
                 {1,1,0,3,1,dispmenu1},
                 {2,2,2,2,0,dispmenu2},
                 {3,3,3,3,1,dispmenu3},




};
//根據紅外按鍵進行 菜單切換
void switch_menu(void)
{
          switch(IRKEY)
        {
           case  UPFLAG :  //向上
           CurMenuIndex = keytab[CurMenuIndex].keyUPindex;
           lcdflashflag = 1;
           bsp_LcdClr();
           IRKEY = 0x99;
           break;
           case  DNFLAG :
           CurMenuIndex = keytab[CurMenuIndex].keyDNindex;
           lcdflashflag = 1;
           bsp_LcdClr();
           IRKEY = 0x99;
           break;
           case  ENTERFLAG :
           CurMenuIndex = keytab[CurMenuIndex].keyENTERindex;
           lcdflashflag = 1;
           bsp_LcdClr();
           IRKEY = 0x99;
           break;
           case  CANCELFLAG :
           CurMenuIndex = keytab[CurMenuIndex].keyCANCELindex;
           lcdflashflag = 1;
           bsp_LcdClr();
           IRKEY = 0x99;
           break;
        }
        keytab[CurMenuIndex].operation();       
}


void  dispmenu0(void) //0號界面
{
    strcpy(FirstLine , "    TIMER    ");
        strcpy(SecondLine ," TEMPERATURE ");
        // 光標閃爍函數
//        setcursorlocation(15,1); //第一行
}
void  dispmenu1(void)
{
    strcpy(FirstLine , "    TIMER    ");
        strcpy(SecondLine ," TEMPERATURE ");
        // 光標閃爍函數
        //setcursorlocation(15,2); //第二行


}
void  dispmenu2(void)
{
        strcpy(FirstLine , "  CURRENT TIME");
        strcpy(SecondLine ,"  14 : 51 : 11");
        // 光標閃爍函數
        //setcursorlocation(15,1); //第一行


}
void  dispmenu3(void)
{
           strcpy(FirstLine , " CURRENT TEMP");
        strcpy(SecondLine ,"  T = 28 C   ");
        // 光標閃爍函數
        //setcursorlocation(15,1); //第一行
}
void  fresh(void)  //刷新函數
{       
        if(lcdflashflag ==1)
        {
                 bsp_LCDDispStr(0,1, FirstLine);
                bsp_LCDDispStr(0,2, SecondLine);
                lcdflashflag =0;




                switch(        CurMenuIndex)
                {
                case 0 :
                setcursorlocation(15,1); //第一行
            
                break;
                case 1:
                setcursorlocation(15,2); //第一行
                break;  
                }
        }
       
}


回復

使用道具 舉報

ID:1 發表于 2018-11-28 16:05 | 顯示全部樓層
補全原理圖頭文件工程包詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表