久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 【1602液晶顯示問題】 [打印本頁]

作者: 2910221704    時間: 2017-5-29 11:15
標題: 【1602液晶顯示問題】
我想通過鍵盤來切換lcd的顯示界面(共四個界面),我覺得思路沒問題,可是就是實現不了,下面是代碼
void main()
{
    LcdInit();
    while(1)
    {
        //key_return=Keyscan();
        Operation(Keyscan());
        Show(interface);


    }
}
void T0Init()
{
}
/*void T0() interrupt 1
{

}*/
void Operation(uchar key)//界面切換
{
    switch(interface)
    {
        case 1:if(key==10)
                    interface=2;
                    //運行界面,啟動定時器,同時切換界面
                if(key==12)
                    interface=3;//設置界面
                if(key==16)
                    interface=1;
                break;
        case 2:if(key==13)
                {
                    interface=4;//查詢界面
                }
                else if(key==11)
                {
                    //TR0=0;
                    interface=1;
                }
                else if(key==12)
                {
                    //TR0=0;
                    interface=3;
                }
                break;
          case 3:if(key==10)
                {
                    //TR0=1;
                    interface=2;
                }
                else if(key==11)
                {
                    //TR0=0;
                    interface=1;
                }
                break;
           case 4:if(key==11)
                {
                    interface=2;
                }
    }
}
void Show(uchar n)
{
    switch(n)
    {
        case 1:Interface_start();
               break;
        case 2:Interface_run();
               break;
        case 3:Interface_set();
               break;
        case 4:Interface_find();
               break;
    }
}
void refresh_date(uchar address,uchar date)
{
    Write_cmd(0x80+address);
    Write_data(date);
}
void Interface_start()//打開電源顯示界面
{
    //Write_cmd(0x01);
    Write_cmd(0x80);
    for(num=0;num<16;num++)
    {
        Write_data(table[num]);
        delay(20);
    }
    Write_cmd(0x80+0x40);//第二行顯示
    for(num=0;num<16;num++)
    {
        Write_data(table1[num]);
        delay(20);
    }
    Write_cmd(0x80+0x50);
    Write_cmd(0x0c);//開顯示,不顯示光標,不閃爍   
}
void Interface_run()//運行界面
{
    LcdInit();
    for(num=0;num<16;num++)
    {
        Write_data(table3[num]);
        delay(20);
    }
    Write_cmd(0x80+0x40);//第二行顯示
    for(num=0;num<16;num++)
    {
        Write_data(table2[num]);
        delay(20);
    }

}
void Interface_set()//設置界面
{
     Write_cmd(0x80+5);
     Write_cmd(0x0f);
}
void Interface_find()//查詢界面
{   
    refresh_date(0x40+5,table2[5]);
    refresh_date(0x40+6,table2[6]);
    refresh_date(0x40+7,table2[7]);
    refresh_date(0x40+8,table2[8]);
    refresh_date(0x40+9,table2[9]);
    refresh_date(0x40+10,table2[10]);
    refresh_date(0x40+11,table2[11]);
}

void LcdInit()
{
    wela=0;//lcd和數碼管共用P0
    dula=0;//防止數碼管干擾
    lcd_en=0;
    Write_cmd(0x38);//設置16*2顯示,5*7點陣,8位數據口
    Write_cmd(0x0f);//開顯示,顯示光標,光標閃爍
    Write_cmd(0x06);
    Write_cmd(0x01);//清除數據,防止出現錯誤
    Write_cmd(0x80);

}
void Write_cmd(uchar cmd)
{
    rs=0;//數據/命令選擇段(h/l)
    P0=cmd;
    delay(5);
    lcd_en=1;//使能信號,高脈沖
    delay(5);
    lcd_en=0;  
}
void Write_data(uchar data_)
{
    rs=1;
    P0=data_;
    delay(5);
    lcd_en=1;
    delay(5);
    lcd_en=0;
}



作者: ahshmj    時間: 2017-5-29 16:00
其實這是最基本的。檢測取得按鍵值后,根據其值將程序跳轉到指定的顯示內容即可。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 午夜黄色影院 | 五月天久久 | 九九精品网 | 国产三级免费观看 | 午夜a级片 | 成人毛片100免费观看 | 国产精品区二区三区日本 | 99午夜 | 蜜臀av性久久久久av蜜臀妖精 | 国产精品久久久久久久久久久久久 | 久久成人一区 | 男男av| 波多野结衣乳巨码无在线观看 | 久久最新| 天海翼一区二区 | 九九精品国产 | 久久精品欧美一区 | 日本精品国产 | 成人免费看片在线观看 | 亚洲精品综合 | 中文字幕在线观看一区二区三区 | 亚洲欧美日韩国产 | 91啪国产| 亚洲第一伊人 | 日韩中文字幕精品 | 国产精品国产精品国产专区不片 | 日本中文字幕在线观看 | 亚洲精品免费在线 | 亚洲天堂免费视频 | 欧美成人激情视频 | 亚洲精品视频免费观看 | 国产黄色av | 日韩美女视频 | 午夜免费视频 | 中文字幕免费在线看线人动作大片 | 黑丝一区| 日韩成人免费视频 | 青青草免费在线观看 | 精品久久久久久久久久久久久久久久 | 国产一区一区 | www.久久久久久 |