|
自制的一個(gè)簡(jiǎn)單菜單系統(tǒng) 加了溫度 萬(wàn)年歷 12864的 打有注釋 適合初學(xué)者使用 串口通信
0.png (63.76 KB, 下載次數(shù): 48)
下載附件
2017-1-6 19:21 上傳
完整的12864菜單單片機(jī)源碼下載:
12864菜單.zip
(65.1 KB, 下載次數(shù): 42)
2016-12-15 13:10 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
程序的主要部分預(yù)覽:
- /*------------------------------------
- 名稱:菜單處理模塊
- 編寫:YuMin_Dong
- 時(shí)間:2013.01.24
- ------------------------------------*/
- #ifndef _PROCESS_H_
- #define _PROCESS_H_
- //按鍵
- sbit KEY_PgDn=P3^0;
- sbit KEY_PgUp=P3^1;
- sbit KEY_Enter=P3^2;
- sbit KEY_Esc=P3^3;
- bit Menu1,Menu2,Menu3,Menu4,Menu5,Menu6,Enter_Menu,Menu0;
- void MainMenu_Pro()
- {
- if(curr!=currold) //光標(biāo)位置變化,則更新顯示 按鍵按下去 字符串就變更位置了 CURR也就變了
- {
- DisplayUpdata();
- currold=curr; //把CURR的值賦給CURROLD 判斷下加一個(gè)一
- }
-
- if(!KEY_PgUp)
- {
- DelayMs(10);
- if(!KEY_PgUp)
- {
- while(!KEY_PgUp);
- {
- if(curr<sizeof(MainMenu)/sizeof(MainMenu[0])-1) //sizeof 求字節(jié)數(shù)
- //判斷數(shù)組中數(shù)值個(gè)數(shù)
- { curr++; }
- }
- }
- }
- else
- if(!KEY_PgDn)
- {
- DelayMs(10);
- if(!KEY_PgDn)
- {
- while(!KEY_PgDn);
- {
- if(curr>0)
- { curr--; }
- }
- }
- }
- else if(!KEY_Enter)
- {
- DelayMs(10);
- if(!KEY_Enter)
- {
- while(!KEY_Enter);
- switch(curr)
- {
- // case 0: Menu0=1;Enter_Menu=1;break;
- case 1: Menu1=1;Enter_Menu=1;ClrScreen();break;
- case 2: Menu2=1;Enter_Menu=1;ClrScreen();break;
- case 3: Menu3=1;Enter_Menu=1;ClrScreen();break;
- // case 4: Menu4=1;Enter_Menu=1;break;
- // case 5: Menu5=1;Enter_Menu=1;break;
- // case 6: FanHui1=1;Menu_Flag=0;guide=0;
- // Write_Cmd(0x01);break; //輪詢到有enter鍵,當(dāng)guide指向返回時(shí)候直接去掉FanHui1控制的父菜單循環(huán)
- default:return;
- }
- }
- }
-
- }
- /*************************************************************
- 按鍵返回函數(shù)
- *************************************************************/
- void ESC()
- {
- if(!KEY_Esc)
- {
- DelayMs(10);
- while(!KEY_Esc);
- Menu1=0;
- Menu2=0;
- Menu3=0;
- Enter_Menu=0;
- DisplayUpdata();
- }
- }
- /*------------------------------------
- Menu1設(shè)置時(shí)間子菜單處理
- ------------------------------------*/
- void Menu1_Pro()
- {
- datapros(Ds18b20ReadTemp());
- if(!KEY_Esc)
- {
- ESC();
- }
- }
- /*------------------------------------
- Menu2設(shè)置時(shí)間子菜單處理
- ------------------------------------*/
- void Menu2_Pro()
- {
- uchar week;
- week=(TIME[5]&0x0f);
- Ds1302ReadTime();
- LCD_PutString(0,1,"北京時(shí)間:");
- Write_Cmd(0x90+0);
- Write_Data((TIME[2]/16)+0x30);
- Write_Data((TIME[2]&0x0f)+0x30);
- LCD_PutString(1,2,"時(shí)");
- Write_Cmd(0x90+2);
- Write_Data('0'+(TIME[1]/16));
- Write_Data('0'+(TIME[1]&0x0f));
- LCD_PutString(3,2,"分");
- Write_Cmd(0x90+4);
- Write_Data('0'+(TIME[0]/16));
- Write_Data('0'+(TIME[0]&0x0f));
- LCD_PutString(5,2,"秒");
- Write_Cmd(0x88+0);
- Write_Data('2');
- Write_Data('0');
- Write_Data((TIME[6]/16)+0x30);
- Write_Data((TIME[6]&0x0f)+0x30);
- LCD_PutString(2,3,"年");
- Write_Data((TIME[4]/16)+0x30);
- Write_Data((TIME[4]&0x0f)+0x30);
- LCD_PutString(4,3,"月");
- Write_Data((TIME[3]/16)+0x30);
- Write_Data((TIME[3]&0x0f)+0x30);
- LCD_PutString(6,3,"日");
- // Write_Cmd(0x98+2);
- // Write_Data((TIME[5]/16)+0x30);
- // Write_Data((TIME[5]&0x0f)+0x30);
- LCD_PutString(0,4,"星期");
- switch(week)
- {
- case 1:LCD_PutString(2,4,"一");break;
- case 2:LCD_PutString(2,4,"二");break;
- case 3:LCD_PutString(2,4,"叁");break;
- case 4:LCD_PutString(2,4,"四");break;
- case 5:LCD_PutString(2,4,"五");break;
- case 6:LCD_PutString(2,4,"六");break;
- case 7:LCD_PutString(2,4,"天");break;
- }
- if(!KEY_Esc)
- {
- ESC();
- }
- }
- /*------------------------------------
- Menu3設(shè)置時(shí)間子菜單處理
- ------------------------------------*/
- void Menu3_Pro()
- {
- Read_AD_Data(0x94);
- if(!KEY_Esc)
- {
- ESC();
- }
- }
- #endif
復(fù)制代碼
|
|