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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 11969|回復(fù): 21
收起左側(cè)

單片機(jī)+LCD19264液晶屏三級(jí)菜單程序 大數(shù)字電子鐘

  [復(fù)制鏈接]
ID:114701 發(fā)表于 2020-6-30 23:16 | 顯示全部樓層 |閱讀模式
我寫的LCD液晶屏菜單程序,實(shí)現(xiàn)時(shí)鐘的年月日時(shí)分秒的調(diào)節(jié),實(shí)現(xiàn)鬧鐘的設(shè)置,實(shí)現(xiàn)溫度的上下限設(shè)置并按照設(shè)置值驅(qū)動(dòng)繼電器,溫度和鬧鐘的設(shè)置參數(shù)都寫入EEPROM中,掉電開機(jī)設(shè)置參數(shù)不丟失,大個(gè)數(shù)字顯示時(shí)分秒。菜單為三級(jí),三級(jí)留空白,可自行添加內(nèi)容,自己寫的,水平有限,發(fā)給壇里師兄吐槽,共同進(jìn)步,下一步寫一個(gè)結(jié)構(gòu)體加指針的菜單程序。望壇里師傅有的奉獻(xiàn)出來(lái)一下,謝謝。

制作出來(lái)的實(shí)物圖如下:
IMG_20200630_224002.jpg IMG_20200630_223744.jpg

單片機(jī)源程序如下:
  1. #include "LCD19264.h"
  2. #include "1302.H"
  3. #include "18B20.h"
  4. #include "tm1650.h"
  5. #include "24C16.h"
  6. #include "UART.h"
  7. #include "Fonts.h"
  8. #include "delay.h"
  9. #include "FengMingQiJiDianQi.h"
  10. bit MenuFlag1,MenuFlag2,MenuFlag3;   // 各級(jí)菜單標(biāo)志位,如果為1代表已進(jìn)入該機(jī)菜單,為0代表退出該級(jí)菜單
  11. char NaoZhongShi=8,NaoZhongFen=0,NaoZhongMiao=0;  //這里用char而不是unsigned char 的原因是操作此變量時(shí)減到0就停止,如果定義unsigned char,變量減到小于0就自動(dòng)變?yōu)?5535
  12. uchar kjcs;      //開機(jī)次數(shù)
  13. uchar key,num;       //鍵值
  14. uint wenduszd,wenduszg;//溫度設(shè)置上下限值,wenduszd溫度設(shè)置低,wenduszg溫度設(shè)置高,wdszgzjz溫度設(shè)置高未保存的值,wdszdzjz溫度設(shè)置高未保存的值
  15. #define SHORT_JIAO 80
  16. #define LONG_JIAO 150
  17. /************************************待機(jī)頁(yè)面函數(shù)**********************************/
  18. void DeskWall() //待機(jī)桌面
  19. {                  
  20.     Read_temp();   //讀取溫度值
  21.     Read_time();         //讀取時(shí)間值
  22. //  Disp_chinese_16x16(176,0,0,leijijd[8]);//在右上角顯示電池電量圖案
  23. //        Disp_chinese_16x16(0,0,0,leijijd[9]);//在右上角顯示W(wǎng)IFI信號(hào)圖案
  24.           if(shi==NaoZhongShi&&fen==NaoZhongFen&&miao==NaoZhongMiao)
  25.                 {
  26.                         ClearDisplay(); //清理一次屏幕
  27.                 }
  28.                 if(shi==NaoZhongShi&&fen==NaoZhongFen&&miao<NaoZhongMiao+30)
  29.                 {
  30.                         Beep(50,5,5); //鬧鐘響起
  31.                         Beep(50,8,4);
  32.                         Disp_chinese_N_16x16(48,2,2,1,NZSZ);  //顯示“鬧鐘”設(shè)置2個(gè)字       
  33.                         Disp_chinese_N_16x16(80,2,2,1,SJSZ);  //顯示“時(shí)間”設(shè)置2個(gè)字
  34.                         Disp_chinese_16x16(112,2,1,leijijd[4]);//顯示“到”字
  35.                 }       
  36.                 else
  37.                 {
  38. /******************顯示年 月 日 時(shí) 分 秒 星期  ************************/      
  39.     Disp_Char_16x32(32,4,0,DSZ[shi/10%10]);  
  40.     Disp_Char_16x32(48,4,0,DSZ[shi%10]);
  41.     Disp_Char_16x32(64,4,0,DSZ[10]);   //冒號(hào)
  42.     Disp_Char_16x32(80,4,0,DSZ[fen/10%10]);
  43.     Disp_Char_16x32(96,4,0,DSZ[fen%10]);
  44.     Disp_Char_16x32(112,4,0,DSZ[10]);   //冒號(hào)
  45.     Disp_Char_16x32(128,4,0,DSZ[miao/10%10]);
  46.     Disp_Char_16x32(144,4,0,DSZ[miao%10]);
  47.     Disp_Char(0,6,0,SZ[nian/10%10]);
  48.     Disp_Char(8,6,0,SZ[nian%10]);
  49.     Disp_chinese_16x16(16,6,0,NYRSFMZ[0]); //年字
  50.     Disp_Char(32,6,0,SZ[yue/10%10]);  
  51.     Disp_Char(40,6,0,SZ[yue%10]);
  52.     Disp_chinese_16x16(48,6,0,NYRSFMZ[1]); //月字
  53.     Disp_Char(64,6,0,SZ[ri/10%10]);
  54.     Disp_Char(72,6,0,SZ[ri%10]);       
  55.     Disp_chinese_16x16(80,6,0,NYRSFMZ[2]); //日字
  56.     switch(xingqi) //將星期1-7轉(zhuǎn)換成中文顯示
  57.     {
  58.         case 1: {
  59.                     Disp_chinese_16x16(96,6,0,NYRSFMZ[6]);
  60.                     Disp_chinese_16x16(112,6,0,DaXieShuZi[1]);
  61.                  };break;
  62.         case 2: {
  63.                     Disp_chinese_16x16(96,6,0,NYRSFMZ[6]);
  64.                     Disp_chinese_16x16(112,6,0,DaXieShuZi[2]);
  65.                 };break;
  66.         case 3: {
  67.                     Disp_chinese_16x16(96,6,0,NYRSFMZ[6]);
  68.                     Disp_chinese_16x16(112,6,0,DaXieShuZi[3]);
  69.                 };break;
  70.         case 4: {
  71.                     Disp_chinese_16x16(96,6,0,NYRSFMZ[6]);
  72.                     Disp_chinese_16x16(112,6,0,DaXieShuZi[4]);
  73.                 };break;
  74.         case 5: {
  75.                     Disp_chinese_16x16(96,6,0,NYRSFMZ[6]);
  76.                     Disp_chinese_16x16(112,6,0,DaXieShuZi[5]);
  77.                 };break;
  78.         case 6: {
  79.                     Disp_chinese_16x16(96,6,0,NYRSFMZ[6]);
  80.                     Disp_chinese_16x16(112,6,0,DaXieShuZi[6]);
  81.                 };break;
  82.         case 7: {
  83.                     Disp_chinese_16x16(96,6,0,NYRSFMZ[6]);
  84.                     Disp_chinese_16x16(112,6,0,NYRSFMZ[2]);
  85.                 };break;
  86.     }
  87.                 /*************************************顯示溫度值*********************************************/       
  88. //////////////////////////////////如果溫度為零下時(shí)////////////////////////////////////////
  89. if(tflag==1)  
  90. {
  91.    
  92.     if(tvalue==0)
  93.     {
  94.         Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  95.         Disp_Char(144,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  96.         Disp_Char(152,6,0,F8X16[0]);//用空白字模擦除不需要顯示的內(nèi)容
  97.         Disp_Char(160,6,0,F8X16[0]);  //用空白字模擦除不需要顯示的內(nèi)容
  98.         Disp_Char(168,6,0,SZ[0]);
  99.         Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  100.         Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"         
  101.     }
  102.     else
  103.     {
  104.         if(tvalue<10)
  105.         {
  106.             Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  107.             Disp_Char(144,6,0,F8X16[13]); //用空白字模擦除不需要顯示的內(nèi)容
  108.             Disp_Char(152,6,0,SZ[0]);
  109.             Disp_Char(160,6,0,F8X16[14]);  //小數(shù)點(diǎn)
  110.             Disp_Char(168,6,0,SZ[tvalue%10]);
  111.             Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  112.             Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"         
  113.         }
  114.         else
  115.         {
  116.             if(tvalue<100)
  117.             {
  118.                 Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  119.                 Disp_Char(144,6,0,F8X16[13]); //用空白字模擦除不需要顯示的內(nèi)容
  120.                 Disp_Char(152,6,0,SZ[tvalue/10%10]);
  121.                 Disp_Char(160,6,0,F8X16[14]);  //小數(shù)點(diǎn)
  122.                 Disp_Char(168,6,0,SZ[tvalue%10]);
  123.                 Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  124.                 Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"
  125.             }
  126.             else
  127.             {
  128.                 if(tvalue<1000)
  129.                 {
  130.                     Disp_Char(136,6,0,F8X16[13]); //用空白字模擦除不需要顯示的內(nèi)容
  131.                     Disp_Char(144,6,0,SZ[tvalue/100%10]); //顯示溫度十位
  132.                     Disp_Char(152,6,0,SZ[tvalue/10%10]);
  133.                     Disp_Char(160,6,0,F8X16[14]);  //小數(shù)點(diǎn)
  134.                     Disp_Char(168,6,0,SZ[tvalue%10]);
  135.                     Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  136.                     Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"                  
  137.                 }
  138.              /*   else  //一般不會(huì)達(dá)到零下100度的低溫,不做無(wú)意義的事情,在這里屏蔽掉此段,
  139.                 {
  140.                     Disp_Char(136,6,0,SZ[tvalue/1000%10]);//溫度的負(fù)數(shù)和超過(guò)100度溫度時(shí)的顯示待處理
  141.                     Disp_Char(144,6,0,SZ[tvalue/100%10]); //顯示溫度十位
  142.                     Disp_Char(152,6,0,SZ[tvalue/10%10]);
  143.                     Disp_Char(160,6,0,F8X16[14]);  //小數(shù)點(diǎn)
  144.                     Disp_Char(168,6,0,SZ[tvalue%10]);
  145.                     Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  146.                     Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"
  147.                 }  */
  148.             }
  149.         }
  150.     }  
  151. }
  152. else
  153. ////////////////////如果溫度為正時(shí)/////////////////////////////////////////////
  154. {
  155.     if(tvalue==0)
  156.     {
  157.         Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  158.         Disp_Char(144,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  159.         Disp_Char(152,6,0,F8X16[0]);//用空白字模擦除不需要顯示的內(nèi)容
  160.         Disp_Char(160,6,0,F8X16[0]);  //用空白字模擦除不需要顯示的內(nèi)容
  161.         Disp_Char(168,6,0,SZ[0]);
  162.         Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  163.         Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"   
  164.     }
  165.     else
  166.     {
  167.     if(tvalue<10)
  168.     {
  169.         Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  170.         Disp_Char(144,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  171.         Disp_Char(152,6,0,SZ[0]);
  172.         Disp_Char(160,6,0,F8X16[14]);  //小數(shù)點(diǎn)
  173.         Disp_Char(168,6,0,SZ[tvalue%10]);
  174.         Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  175.         Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"
  176.     }
  177.     else
  178.     {
  179.     if(tvalue<100)
  180.     {
  181.         Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  182.         Disp_Char(144,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  183.         Disp_Char(152,6,0,SZ[tvalue/10%10]);
  184.         Disp_Char(160,6,0,F8X16[14]);  //小數(shù)點(diǎn)
  185.         Disp_Char(168,6,0,SZ[tvalue%10]);
  186.         Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  187.         Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"
  188.     }
  189.     else
  190.     {
  191.         if(tvalue<1000)
  192.         {
  193.             Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內(nèi)容
  194.             Disp_Char(144,6,0,SZ[tvalue/100%10]); //顯示溫度十位
  195.             Disp_Char(152,6,0,SZ[tvalue/10%10]);
  196.             Disp_Char(160,6,0,F8X16[14]);  //小數(shù)點(diǎn)
  197.             Disp_Char(168,6,0,SZ[tvalue%10]);
  198.             Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  199.             Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"        
  200.         }
  201.         else
  202.         {
  203.             Disp_Char(136,6,0,SZ[tvalue/1000%10]);//溫度的負(fù)數(shù)和超過(guò)100度溫度時(shí)的顯示待處理
  204.             Disp_Char(144,6,0,SZ[tvalue/100%10]); //顯示溫度十位
  205.             Disp_Char(152,6,0,SZ[tvalue/10%10]);
  206.             Disp_Char(160,6,0,F8X16[14]);  //小數(shù)點(diǎn)
  207.             Disp_Char(168,6,0,SZ[tvalue%10]);
  208.             Disp_Char(176,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  209.             Disp_Char(184,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"
  210.         }
  211.       }
  212.     }
  213.    }
  214. }
  215.                 }
  216. }       
  217. /**********************************************************************************/

  218. /*******************************主函數(shù)************************************/
  219. void main()
  220. {
  221.         char i=0; //將i的數(shù)據(jù)類型定義為char型,而不是unsigned char 型,在通過(guò)按鍵調(diào)節(jié)減這個(gè)變量時(shí)不會(huì)出現(xiàn)小于0時(shí)自動(dòng)到255,而是停留在0不變
  222.         uchar col,lie,cachu,kong;
  223.         char flash=0; //反白顯示溫度調(diào)節(jié)的上下限值,在902行溫度設(shè)置部分使用此變量
  224.         uchar j=0,k=0;//將j默認(rèn)定位在6是讓調(diào)節(jié)選定用箭頭放在分鐘值上。k是鬧鐘時(shí)間值調(diào)節(jié)的位置
  225.         bit Set_OK_Flag = 0;  //設(shè)定OK標(biāo)志位
  226.         P4M1=0x0C;  //將P4端口設(shè)為普通IO口
  227.         P4M0=0x7E;
  228.   P4SW=0x70;
  229.         LcdInit();    //LCD初始化
  230.         InitUART();   //串口初始化
  231.         Init_time(30,59,10,02,14,01,20); //系統(tǒng)時(shí)間初始化
  232.         x24C02_init(); //24c02初始化函數(shù)
  233.         kjcs = x24C02_read(2);//把24c02的地址2讀出來(lái)的數(shù)據(jù)賦給kjcs
  234.         delay_xms(50);         
  235.         wenduszg = x24C02_read(3);   //把24c16的地址3讀出來(lái)的數(shù)據(jù)賦給wenduszg
  236.         delay_xms(50);
  237.         wenduszd = x24C02_read(4);   //把24c16的地址4讀出來(lái)的數(shù)據(jù)賦給wenduszd
  238.         delay_xms(50);
  239.         NaoZhongShi = x24C02_read(5);   //把24c16的地址4讀出來(lái)的數(shù)據(jù)賦給NaoZhongShi
  240.         delay_xms(10);
  241.         NaoZhongFen = x24C02_read(6);   //把24c16的地址4讀出來(lái)的數(shù)據(jù)賦給NaoZhongFen
  242.         delay_xms(10);
  243.         NaoZhongMiao = x24C02_read(7);   //把24c16的地址4讀出來(lái)的數(shù)據(jù)賦給NaoZhongMiao
  244.         delay_xms(10);
  245.         if(kjcs>9999) //限制開機(jī)次數(shù)計(jì)到9999后就歸零
  246.                 kjcs = 0;
  247.                 kjcs++;   //每次開機(jī)就加1
  248.         delay_xms(20); //延時(shí)20毫秒
  249.         x24C02_write(2,kjcs);  //在24c02中的地址2寫入數(shù)據(jù)開機(jī)次數(shù)
  250.         ClearDisplay(); //清理一次屏幕
  251.   DeskWall();//待機(jī)頁(yè)面 */       
  252.         while(1)
  253.         {       
  254.           key=Scan_Key();  //獲取鍵值
  255. //                num = Key_Get_Num();
  256. //                Disp_Char(0,0,0,SZ[num%10]);//在右上角顯示按鍵值,用于調(diào)試
  257. //                Disp_Char(168,0,0,SZ[key/100%10]);//在右上角顯示按鍵值,用于調(diào)試
  258. //                Disp_Char(176,0,0,SZ[key/10%10]); //K
  259. //                Disp_Char(184,0,0,SZ[key%10]);//在右上角顯示按鍵值,用于調(diào)試
  260. /**************************制冷模式的溫控*************************************************/
  261.                 if(((tvalue/10)>wenduszg)) //如果溫度高于上限值,并且在溫度設(shè)置界面時(shí),繼電器吸合制冷,顯示“開啟”
  262.                 {
  263.                         JDQ = 0;
  264.                 }
  265.                 else
  266.                 if(((tvalue/10)<wenduszd))   //如果溫度低于下限值,并且在溫度設(shè)置界面時(shí),繼電器釋放制冷,顯示“關(guān)閉”
  267.                 {
  268.                         JDQ = 1;
  269.                 }               
  270. /***************************************************************************************/
  271.                
  272. /**************************制熱模式的溫控************************************************/
  273. //                if((tvalue/10)<wenduszd) //如果溫度低于下限值,繼電器吸合制熱升溫
  274. //                {
  275. //                        JDQ = 0;
  276. //                }
  277. //                else
  278. //                if((tvalue/10)>wenduszg)
  279. //                {
  280. //                        JDQ = 1;
  281. //                }               
  282. /***************************************************************************************/               
  283.                 if(MenuFlag1==0) //如果1級(jí)菜單退出,
  284.                    DeskWall();        //則顯示桌面
  285.                 //////////////////////////////////////////////菜單框架
  286.                 if(key==ENT)//如果待機(jī)時(shí)不斷地按ENT鍵,一級(jí)一級(jí)深入各級(jí)菜單
  287.                 {
  288.                                
  289.                          if(key==ENT&&MenuFlag1==0&&MenuFlag2==0&&MenuFlag3==0)
  290.                          {
  291.                                         ClearDisplay(); //清理一次屏幕
  292.                                         Beep(SHORT_JIAO,8,4);
  293.                                         MenuFlag1=1;
  294.                                   Set_OK_Flag = 0;
  295.                                 Disp_chinese_16x16(48,i,0,leijijd[5]);//顯示“箭頭”在幾行之間移動(dòng)動(dòng)
  296.                                 Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示"時(shí)間設(shè)置"4個(gè)字       
  297.                           Disp_chinese_N_16x16(64,2,4,0,NZSZ);  //在第二行顯示"鬧鐘設(shè)置"4個(gè)字
  298.                           Disp_chinese_N_16x16(64,4,4,0,WDSZ);  //在第三行顯示"溫度設(shè)置"4個(gè)字
  299.                                 Disp_Char(64,6,0,ZM[6]);
  300.                                 Disp_Char(72,6,0,ZM[15]);
  301.                                 Disp_Char(80,6,0,ZM[18]);
  302.                                 Disp_chinese_N_16x16(88,6,2,0,XX);           //在第四行顯示"GPS信息"5個(gè)字       
  303.                          }
  304.                          else
  305.                          {
  306.                                         if(key==ENT&&MenuFlag1==1&&MenuFlag2==0&&MenuFlag3==0)
  307.                                         {
  308.                                                  ClearDisplay(); //清理一次屏幕
  309.                                                  Beep(SHORT_JIAO,8,4);
  310.                                                  MenuFlag2=1;
  311.                                                  Set_OK_Flag = 0;
  312.                                                   j = 1;
  313.                                                    k = 1;
  314.                                                   switch(k)  //通過(guò)調(diào)整k的值,對(duì)應(yīng)賦lie的值,lie就是向上箭頭位置,就是調(diào)節(jié)值的位置
  315.                                                         {
  316.                                                                 case 1: { lie = 64;  };break;
  317.                                                                 case 2: { lie = 88; };break;
  318.                                                                 case 3: { lie = 112; };break;
  319.                                                                
  320.                                                         }
  321.                                                   switch(j)  //通過(guò)調(diào)整j的值,對(duì)應(yīng)賦col的值,col就是向上箭頭位置,就是調(diào)節(jié)值的位置
  322.                                                         {
  323.                                                                 case 1: { col = 0;  };break;
  324.                                                                 case 2: { col = 32; };break;
  325.                                                                 case 3: { col = 64; };break;
  326.                                                                 case 4: { col = 112; };break;
  327.                                                                 case 5: { col = 128; };break;
  328.                                                                 case 6: { col = 152; };break;
  329.                                                                 case 7: { col = 176; };break;
  330.                                                         }
  331.                                                  switch(i)  //2級(jí)菜單要顯示的內(nèi)容決定于i的值,i值剛好在1級(jí)菜單時(shí)通過(guò)DOWM和UP鍵設(shè)定好了
  332.                                                         {
  333.                                                                 case 0: { //i等于0時(shí)顯示時(shí)間設(shè)置的具體界面
  334.                                                                                     Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示"時(shí)間設(shè)置"4個(gè)字       
  335.                                                                                                                         Disp_chinese_16x16(col,4,0,leijijd[6]);//顯示“向上箭頭”在調(diào)節(jié)值之間切換移動(dòng)
  336.                                                                                                                         Disp_Char(0,2,0,SZ[nian/10%10]);
  337.                                                                                                                         Disp_Char(8,2,0,SZ[nian%10]);
  338.                                                                                                                         Disp_chinese_16x16(16,2,0,NYRSFMZ[0]); //年
  339.                                                                                                                         Disp_Char(32,2,0,SZ[yue/10%10]);  
  340.                                                                                                                         Disp_Char(40,2,0,SZ[yue%10]);
  341.                                                                                                                         Disp_chinese_16x16(48,2,0,NYRSFMZ[1]);  //月
  342.                                                                                                                         Disp_Char(64,2,0,SZ[ri/10%10]);
  343.                                                                                                                         Disp_Char(72,2,0,SZ[ri%10]);
  344.                                                                                                                         Disp_chinese_16x16(80,2,0,NYRSFMZ[2]);  //日
  345.                                                                                                                         Disp_chinese_16x16(96,2,0,NYRSFMZ[6]);  //周
  346.                                                                                                                         Disp_chinese_16x16(112,2,0,DaXieShuZi[xingqi]);
  347.                                                                                                                         Disp_Char(128,2,0,SZ[shi/10%10]);
  348.                                                                                                                         Disp_Char(136,2,0,SZ[shi%10]);
  349.                                                                                                                         Disp_Char(144,2,0,FH[0]);   //冒號(hào)
  350.                                                                                                                         Disp_Char(152,2,0,SZ[fen/10%10]);
  351.                                                                                                                         Disp_Char(160,2,0,SZ[fen%10]);
  352.                                                                                                                         Disp_Char(168,2,0,FH[0]);   //冒號(hào)
  353.                                                                                                                         Disp_Char(176,2,0,SZ[miao/10%10]);
  354.                                                                                                                         Disp_Char(184,2,0,SZ[miao%10]);
  355.                                                                                                                 };  break;
  356.                                                                 case 2: {   //i等于2時(shí)顯示鬧鐘設(shè)置的具體界面
  357.                                                                                     Disp_chinese_N_16x16(64,0,4,0,NZSZ);  //在第1行顯示"鬧鐘設(shè)置"4個(gè)字
  358.                                                                                     Disp_chinese_16x16(lie,4,0,leijijd[6]);//顯示“向上箭頭”在調(diào)節(jié)值之間切換移動(dòng)
  359.                                                                                                                         Disp_Char(64,2,0,SZ[NaoZhongShi/10%10]);
  360.                                                                                                                         Disp_Char(72,2,0,SZ[NaoZhongShi%10]);
  361.                                                                                                                         Disp_Char(80,2,0,FH[0]);   //冒號(hào)
  362.                                                                                                                         Disp_Char(88,2,0,SZ[NaoZhongFen/10%10]);
  363.                                                                                                                         Disp_Char(96,2,0,SZ[NaoZhongFen%10]);
  364.                                                                                                                         Disp_Char(104,2,0,FH[0]);   //冒號(hào)
  365.                                                                                                                         Disp_Char(112,2,0,SZ[NaoZhongMiao/10%10]);
  366.                                                                                                                         Disp_Char(120,2,0,SZ[NaoZhongMiao%10]);
  367.                                                                                                                 };  break;
  368.                                                                 case 4: {   //i等于4時(shí)顯示溫度設(shè)置的具體界面
  369.                                                                                                                         Disp_chinese_N_16x16(64,0,4,0,WDSZ);//正中1行顯示"溫度設(shè)置"四個(gè)字
  370.                                                                        
  371.                                                                                                                         Disp_chinese_16x16(0,2,0,gao);//"高"
  372.                                                                                                                         Disp_chinese_16x16(16,2,0,yu);//"于"
  373.                                                                                     Disp_Char(32,2,0,FH[0]);//":"
  374.                                                                                                                         if(wenduszg<100)  //低于100時(shí)百位顯示空白
  375.                                                                                                                         {
  376.                                                                                                                                         Disp_Char(40,2,0,F8X16[0]);//"wenduszg"百位位置顯示空白
  377.                                                                                                                                         Disp_Char(48,2,0,SZ[wenduszg/10%10]);//"wenduszg"溫度設(shè)置高
  378.                                                                                                                                         Disp_Char(56,2,0,SZ[wenduszg%10]);
  379.                                                                                                                         }
  380.                                                                                                                         else
  381.                                                                                                                         {
  382.                                                                                                                                         Disp_Char(40,2,0,SZ[wenduszg/100%10]);//"wenduszg"溫度設(shè)置高
  383.                                                                                                                                         Disp_Char(48,2,0,SZ[wenduszg/10%10]);//"wenduszg"溫度設(shè)置高
  384.                                                                                                                                         Disp_Char(56,2,0,SZ[wenduszg%10]);
  385.                                                                                                                         }
  386. //                                                                                    Disp_Char(40,2,0,SZ[wenduszg/100%10]);//"wenduszg"溫度設(shè)置高
  387. //                                                                                                                        Disp_Char(48,2,0,SZ[wenduszg/10%10]);
  388. //                                                                                                                        Disp_Char(56,2,0,SZ[wenduszg%10]);
  389.                                                                                     Disp_Char(64,2,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  390.                                                                                                                         Disp_Char(72,2,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"                                                                                    
  391.                                                                                                                         Disp_chinese_16x16(80,2,0,kai);//"開"
  392.                                                                                                                         Disp_chinese_16x16(96,2,0,qi);//"啟"
  393.                                                                        
  394.                                                                                                                         Disp_chinese_16x16(0,6,0,di);//"低"
  395.                                                                                                                         Disp_chinese_16x16(16,6,0,yu);//"于"
  396.                                                                                                                         Disp_Char(32,6,0,FH[0]);//":"
  397.                                                                                                                         if(wenduszd<100)
  398.                                                                                                                         {
  399.                                                                                                                                         Disp_Char(40,6,0,F8X16[0]);//"wenduszd"百位位置顯示空白
  400.                                                                                                                                         Disp_Char(48,6,0,SZ[wenduszd/10%10]);//"wenduszd"溫度設(shè)置低
  401.                                                                                                                                         Disp_Char(56,6,0,SZ[wenduszd%10]);
  402.                                                                                                                         }
  403.                                                                                                                         else
  404.                                                                                                                         {
  405.                                                                                                                                         Disp_Char(40,6,0,SZ[wenduszd/100%10]);//"wenduszd"溫度設(shè)置低
  406.                                                                                                                                         Disp_Char(48,6,0,SZ[wenduszd/10%10]);//"wenduszd"溫度設(shè)置低
  407.                                                                                                                                         Disp_Char(56,6,0,SZ[wenduszd%10]);
  408.                                                                                                                         }
  409. //                                                                                    Disp_Char(40,6,0,SZ[wenduszd/100%10]);//"wenduszd"溫度設(shè)置低
  410. //                                                                                    Disp_Char(48,6,0,SZ[wenduszd/10%10]);//"wenduszd"溫度設(shè)置低
  411. //                                                                                                                        Disp_Char(56,6,0,SZ[wenduszd%10]);                               
  412.                                                                                                                         Disp_Char(64,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  413.                                                                                                                         Disp_Char(72,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"                                                                                                                
  414.                                                                                                                         Disp_chinese_16x16(80,6,0,guan);//"關(guān)"
  415.                                                                                                                         Disp_chinese_16x16(96,6,0,bi);//"閉"
  416.                                                                                                                         if(JDQ==0)
  417.                                                                                                                         {
  418.                                                                                                                                 Disp_chinese_16x16(160,4,1,kai);//"開"
  419.                                                                                                                                 Disp_chinese_16x16(176,4,1,qi);//"啟"
  420.                                                                                                                         }
  421.                                                                                                                         else       
  422.                                                                                                                         {
  423.                                                                                                                                 Disp_chinese_16x16(160,4,1,guan);//"關(guān)"
  424.                                                                                                                                 Disp_chinese_16x16(176,4,1,bi);//"閉"
  425.                                                                                                                         }
  426.                                                                                                 };  break;
  427.                                                                 case 6: {   //i等于6時(shí)顯示GPS信息的具體界面
  428.                                                                                                                         Disp_Char(64,0,0,ZM[6]);
  429.                                                                                                                         Disp_Char(72,0,0,ZM[15]);
  430.                                                                                                                         Disp_Char(80,0,0,ZM[18]);
  431.                                                                                                                         Disp_chinese_N_16x16(88,0,2,0,XX);
  432.                                                                                                                 };  break;
  433.                                                                 default:{;};break;
  434.                                                         }
  435.                                         }
  436.                                         else
  437.                                         {
  438.                                                  if(key==ENT&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==0) //如果進(jìn)入了2級(jí)菜單還在按ENT鍵,就進(jìn)入第三級(jí)菜單
  439.                                                  {
  440.                                                                 ClearDisplay(); //清理一次屏幕
  441.                                                                 Beep(SHORT_JIAO,8,4);
  442.                                                                 MenuFlag3=1;
  443.                                                           Set_OK_Flag = 0;
  444.                                                  }
  445.                                                  else
  446.                                                  {
  447.                                                                 if(key==ENT&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==1)
  448.                                                                 {
  449.                                                                         Beep(LONG_JIAO,2,1);//如果打開到第三級(jí)到底了,還按ENT鍵的話就長(zhǎng)叫提示到底不能再按
  450.                                                                 }
  451.                                                  }
  452.                                         }                         
  453.                          }       
  454.                 }
  455.                
  456.                  if(key==DOWN&&MenuFlag1==1&&MenuFlag2==0&&MenuFlag3==0) //如果進(jìn)入1級(jí)菜單時(shí)按DOWN鍵
  457.                                 {
  458.                                                 i+=2;
  459.                                                 if(i>6)
  460.                                                         i=0;
  461.                                                 if((i-2)<0)
  462.                                                         Disp_chinese_16x16(48,6,0,leijijd[7]);//當(dāng)i-2小于0時(shí),不能負(fù)數(shù),此處完美解決
  463.                                         //        ClearDisplay(); //清理一次屏幕
  464.                                                 Beep(SHORT_JIAO,5,5);
  465.                                                 Disp_chinese_16x16(48,i-2,0,leijijd[7]);//把上次的箭頭擦除
  466.                                                 Disp_chinese_16x16(48,i,0,leijijd[5]);//顯示“箭頭”在幾行之間移動(dòng)動(dòng)
  467.                                                 Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示時(shí)間設(shè)置4個(gè)字       
  468.                                                 Disp_chinese_N_16x16(64,2,4,0,NZSZ);  //在第二行顯示"鬧鐘設(shè)置"4個(gè)字
  469.                                                 Disp_chinese_N_16x16(64,4,4,0,WDSZ);  //在第三行顯示"溫度設(shè)置"4個(gè)字
  470.                                                 Disp_Char(64,6,0,ZM[6]);
  471.                                                 Disp_Char(72,6,0,ZM[15]);
  472.                                                 Disp_Char(80,6,0,ZM[18]);
  473.                                                 Disp_chinese_N_16x16(88,6,2,0,XX);           //在第四行顯示"GPS信息"5個(gè)字       
  474.                                 }       
  475.                                
  476.                                 if(key==UP&&MenuFlag1==1&&MenuFlag2==0&&MenuFlag3==0)//如果進(jìn)入1級(jí)菜單時(shí)按UP鍵
  477.                                 {
  478.                                         i-=2;
  479.                                         if((i-2)<0)
  480.                                                 Disp_chinese_16x16(48,0,0,leijijd[7]);//當(dāng)i-2小于0時(shí),不能負(fù)數(shù),此處完美解決
  481.                                         if(i<0)
  482.                                                 i=6;                               
  483.                                 //        ClearDisplay(); //清理一次屏幕
  484.                                         Beep(SHORT_JIAO,5,5);
  485.                                         Disp_chinese_16x16(48,i+2,0,leijijd[7]);//把上次的箭頭擦除
  486.                                         Disp_chinese_16x16(48,i,0,leijijd[5]);//顯示“箭頭”在幾行之間移動(dòng)動(dòng)
  487.                                         Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示時(shí)間設(shè)置4個(gè)字       
  488.                                         Disp_chinese_N_16x16(64,2,4,0,NZSZ);  //在第二行顯示"鬧鐘設(shè)置"4個(gè)字
  489.                                         Disp_chinese_N_16x16(64,4,4,0,WDSZ);  //在第三行顯示"溫度設(shè)置"4個(gè)字
  490.                                         Disp_Char(64,6,0,ZM[6]);
  491.                                         Disp_Char(72,6,0,ZM[15]);
  492.                                         Disp_Char(80,6,0,ZM[18]);
  493.                                         Disp_chinese_N_16x16(88,6,2,0,XX);           //在第四行顯示"GPS信息"5個(gè)字       
  494.                                 }       
  495.     if(key==ESC)  //如果待機(jī)時(shí)不斷地按ESC鍵,一級(jí)一級(jí)退出各級(jí)菜單,直到桌面
  496.                 {
  497.                          
  498.                         if(key==ESC&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==1) //如果第3級(jí)菜單打開時(shí)按ESC鍵,則退出3級(jí)菜單
  499.                         {
  500.                                  ClearDisplay(); //清理一次屏幕
  501.                                  Beep(SHORT_JIAO,8,4);
  502.                                  MenuFlag3=0;
  503.                                  Set_OK_Flag = 0;
  504.                                  switch(k)  //通過(guò)調(diào)整k的值,對(duì)應(yīng)賦lie的值,lie就是向上箭頭位置,就是調(diào)節(jié)值的位置
  505.                                         {
  506.                                                 case 1: { lie = 64;  };break;
  507.                                                 case 2: { lie = 88; };break;
  508.                                                 case 3: { lie = 112; };break;
  509.                                                
  510.                                         }
  511.                                  switch(j)  //通過(guò)調(diào)整j的值,對(duì)應(yīng)賦col的值,col就是向上箭頭位置,就是調(diào)節(jié)值的位置
  512.                                         {
  513.                                                 case 1: { col = 0;  };break;
  514.                                                 case 2: { col = 32; };break;
  515.                                                 case 3: { col = 64; };break;
  516.                                                 case 4: { col = 112; };break;
  517.                                                 case 5: { col = 128; };break;
  518.                                                 case 6: { col = 152; };break;
  519.                                                 case 7: { col = 176; };break;
  520.                                         }
  521.                                  switch(i)   //2級(jí)菜單要顯示的內(nèi)容決定于i的值,i值剛好在1級(jí)菜單時(shí)通過(guò)DOWM和UP鍵設(shè)定好了
  522.                                                         {
  523.                                                                 case 0: {   //i等于0時(shí)顯示時(shí)間設(shè)置的具體界面
  524.                                                                                   Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示"時(shí)間設(shè)置"4個(gè)字       
  525.                                                                                                                 Disp_chinese_16x16(col,4,0,leijijd[6]);//顯示“向上箭頭”在調(diào)節(jié)值之間切換移動(dòng)
  526.                                                                                                                 Disp_Char(0,2,0,SZ[nian/10%10]);
  527.                                                                                                                 Disp_Char(8,2,0,SZ[nian%10]);
  528.                                                                                                                 Disp_chinese_16x16(16,2,0,NYRSFMZ[0]); //年
  529.                                                                                                                 Disp_Char(32,2,0,SZ[yue/10%10]);  
  530.                                                                                                                 Disp_Char(40,2,0,SZ[yue%10]);
  531.                                                                                                                 Disp_chinese_16x16(48,2,0,NYRSFMZ[1]);  //月
  532.                                                                                                                 Disp_Char(64,2,0,SZ[ri/10%10]);
  533.                                                                                                                 Disp_Char(72,2,0,SZ[ri%10]);
  534.                                                                                                                 Disp_chinese_16x16(80,2,0,NYRSFMZ[2]);  //日
  535.                                                                                                                 Disp_chinese_16x16(96,2,0,NYRSFMZ[6]);  //周
  536.                                                                                                                 Disp_chinese_16x16(112,2,0,DaXieShuZi[xingqi]);
  537.                                                                                                                 Disp_Char(128,2,0,SZ[shi/10%10]);
  538.                                                                                                                 Disp_Char(136,2,0,SZ[shi%10]);
  539.                                                                                                                 Disp_Char(144,2,0,FH[0]);   //冒號(hào)
  540.                                                                                                                 Disp_Char(152,2,0,SZ[fen/10%10]);
  541.                                                                                                                 Disp_Char(160,2,0,SZ[fen%10]);
  542.                                                                                                                 Disp_Char(168,2,0,FH[0]);   //冒號(hào)
  543.                                                                                                                 Disp_Char(176,2,0,SZ[miao/10%10]);
  544.                                                                                                                 Disp_Char(184,2,0,SZ[miao%10]);
  545.                                                                                                         };  break;
  546.                                                                 case 2: {   //i等于2時(shí)顯示鬧鐘設(shè)置的具體界面
  547.                                                                                   Disp_chinese_N_16x16(64,0,4,0,NZSZ);  //在第1行顯示"鬧鐘設(shè)置"4個(gè)字
  548.                                                                                   Disp_chinese_16x16(lie,4,0,leijijd[6]);//顯示“向上箭頭”在調(diào)節(jié)值之間切換移動(dòng)
  549.                                                                                                                 Disp_Char(64,2,0,SZ[NaoZhongShi/10%10]);
  550.                                                                                                                 Disp_Char(72,2,0,SZ[NaoZhongShi%10]);
  551.                                                                                                                 Disp_Char(80,2,0,FH[0]);   //冒號(hào)
  552.                                                                                                                 Disp_Char(88,2,0,SZ[NaoZhongFen/10%10]);
  553.                                                                                                                 Disp_Char(96,2,0,SZ[NaoZhongFen%10]);
  554.                                                                                                                 Disp_Char(104,2,0,FH[0]);   //冒號(hào)
  555.                                                                                                                 Disp_Char(112,2,0,SZ[NaoZhongMiao/10%10]);
  556.                                                                                                                 Disp_Char(120,2,0,SZ[NaoZhongMiao%10]);
  557.                                                                                                 };  break;
  558.                                                                 case 4: {   //i等于4時(shí)顯示溫度設(shè)置的具體界面
  559.                                                                                                                 Disp_chinese_N_16x16(64,0,4,0,WDSZ);//正中1行顯示"溫度設(shè)置"四個(gè)字
  560.                                                                        
  561.                                                                                                                         Disp_chinese_16x16(0,2,0,gao);//"高"
  562.                                                                                                                         Disp_chinese_16x16(16,2,0,yu);//"于"
  563.                                                                                     Disp_Char(32,2,0,FH[0]);//":"
  564.                                                                                                                         if(wenduszg<100)  //低于100時(shí)百位顯示空白
  565.                                                                                                                         {
  566.                                                                                                                                         Disp_Char(40,2,0,F8X16[0]);//"wenduszg"百位位置顯示空白
  567.                                                                                                                                         Disp_Char(48,2,0,SZ[wenduszg/10%10]);//"wenduszg"溫度設(shè)置高
  568.                                                                                                                                         Disp_Char(56,2,0,SZ[wenduszg%10]);
  569.                                                                                                                         }
  570.                                                                                                                         else
  571.                                                                                                                         {
  572.                                                                                                                                         Disp_Char(40,2,0,SZ[wenduszg/100%10]);//"wenduszg"溫度設(shè)置高
  573.                                                                                                                                         Disp_Char(48,2,0,SZ[wenduszg/10%10]);//"wenduszg"溫度設(shè)置高
  574.                                                                                                                                         Disp_Char(56,2,0,SZ[wenduszg%10]);
  575.                                                                                                                         }
  576. //                                                                                    Disp_Char(40,2,0,SZ[wenduszg/100%10]);//"wenduszg"溫度設(shè)置高
  577. //                                                                                                                        Disp_Char(48,2,0,SZ[wenduszg/10%10]);
  578. //                                                                                                                        Disp_Char(56,2,0,SZ[wenduszg%10]);
  579.                                                                                     Disp_Char(64,2,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  580.                                                                                                                         Disp_Char(72,2,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"                                                                                    
  581.                                                                                                                         Disp_chinese_16x16(80,2,0,kai);//"開"
  582.                                                                                                                         Disp_chinese_16x16(96,2,0,qi);//"啟"
  583.                                                                        
  584.                                                                                                                         Disp_chinese_16x16(0,6,0,di);//"低"
  585.                                                                                                                         Disp_chinese_16x16(16,6,0,yu);//"于"
  586.                                                                                                                         Disp_Char(32,6,0,FH[0]);//":"
  587.                                                                                                                         if(wenduszd<100)
  588.                                                                                                                         {
  589.                                                                                                                                         Disp_Char(40,6,0,F8X16[0]);//"wenduszd"百位位置顯示空白
  590.                                                                                                                                         Disp_Char(48,6,0,SZ[wenduszd/10%10]);//"wenduszd"溫度設(shè)置低
  591.                                                                                                                                         Disp_Char(56,6,0,SZ[wenduszd%10]);
  592.                                                                                                                         }
  593.                                                                                                                         else
  594.                                                                                                                         {
  595.                                                                                                                                         Disp_Char(40,6,0,SZ[wenduszd/100%10]);//"wenduszd"溫度設(shè)置低
  596.                                                                                                                                         Disp_Char(48,6,0,SZ[wenduszd/10%10]);//"wenduszd"溫度設(shè)置低
  597.                                                                                                                                         Disp_Char(56,6,0,SZ[wenduszd%10]);
  598.                                                                                                                         }
  599. //                                                                                    Disp_Char(40,6,0,SZ[wenduszd/100%10]);//"wenduszd"溫度設(shè)置低
  600. //                                                                                    Disp_Char(48,6,0,SZ[wenduszd/10%10]);
  601. //                                                                                                                        Disp_Char(56,6,0,SZ[wenduszd%10]);                               
  602.                                                                                                                         Disp_Char(64,6,0,F8X16[97]); //溫度符號(hào)攝氏度的點(diǎn)
  603.                                                                                                                         Disp_Char(72,6,0,F8X16[35]); //溫度符號(hào)攝氏度的"C"                                                                                                                
  604.                                                                                                                         Disp_chinese_16x16(80,6,0,guan);//"關(guān)"
  605.                                                                                                                         Disp_chinese_16x16(96,6,0,bi);//"閉"
  606.                                                                                                                         if(JDQ==0)
  607.                                                                                                                         {
  608.                                                                                                                                 Disp_chinese_16x16(160,4,1,kai);//"開"
  609.                                                                                                                                 Disp_chinese_16x16(176,4,1,qi);//"啟"
  610.                                                                                                                         }
  611.                                                                                                                         else       
  612.                                                                                                                         {
  613.                                                                                                                                 Disp_chinese_16x16(160,4,1,guan);//"關(guān)"
  614.                                                                                                                                 Disp_chinese_16x16(176,4,1,bi);//"閉"
  615.                                                                                                                         }
  616.                                                                         };  break;
  617.                                                                 case 6: {   //i等于6時(shí)顯示GPS信息的具體界面
  618.                                                                                                                 Disp_Char(64,0,0,ZM[6]);
  619.                                                                                                                 Disp_Char(72,0,0,ZM[15]);
  620.                                                                                                                 Disp_Char(80,0,0,ZM[18]);
  621.                                                                                                                 Disp_chinese_N_16x16(88,0,2,0,XX);
  622.                                                                                                 };  break;
  623.                                                                 default:{;};break;
  624.                                                         }
  625.                         }
  626.                         else
  627.                         {
  628.                                 if(key==ESC&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==0)  //如果退出到2級(jí)菜單還按ESC鍵,則進(jìn)入1級(jí)菜單
  629.                                 {
  630.                                          ClearDisplay(); //清理一次屏幕
  631.                                          Beep(SHORT_JIAO,8,4);
  632.                                          MenuFlag2=0;
  633.                                          Set_OK_Flag = 0;
  634.                                          Disp_chinese_16x16(48,i,0,leijijd[5]);//顯示“箭頭”在幾行之間移動(dòng)動(dòng)
  635.                                          Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示時(shí)間設(shè)置4個(gè)字       
  636.                                          Disp_chinese_N_16x16(64,2,4,0,NZSZ);  //在第二行顯示"鬧鐘設(shè)置"4個(gè)字
  637.                                          Disp_chinese_N_16x16(64,4,4,0,WDSZ);  //在第三行顯示"溫度設(shè)置"4個(gè)字
  638.                                          Disp_Char(64,6,0,ZM[6]);
  639.                                          Disp_Char(72,6,0,ZM[15]);
  640.                                          Disp_Char(80,6,0,ZM[18]);
  641.                                          Disp_chinese_N_16x16(88,6,2,0,XX);           //在第四行顯示"GPS信息"5個(gè)字       
  642.                                 }
  643.                                 else
  644.                                 {
  645.                                         if(key==ESC&&MenuFlag1==1&&MenuFlag2==0&&MenuFlag3==0) //如果退出到1級(jí)菜單還按ESC鍵,則進(jìn)入桌面待機(jī)頁(yè)面
  646.                                         {
  647.                                                  ClearDisplay(); //清理一次屏幕
  648.                                                  Beep(SHORT_JIAO,8,4);
  649.                                                  MenuFlag1=0;
  650.                                                  Set_OK_Flag = 0;
  651.                                                  DeskWall();//最后回到待機(jī)頁(yè)面 */
  652.                                         }
  653.                                         else
  654.                                         {
  655.                                                 if(key==ESC&&MenuFlag1==0&&MenuFlag2==0&&MenuFlag3==0) //如果退出到桌面還按ESC鍵,告警音提示
  656.                                                 {
  657.                                                         Beep(LONG_JIAO,2,1);//如果關(guān)閉桌面到底了,還按ESC鍵的話就長(zhǎng)叫提示到底不能再按
  658.                                                 }
  659.                                         }
  660.                                 }
  661.                         }
  662.                 }
  663.                
  664.                
  665.                 if(key==RIGHT&&i==0&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==0) //如果第3級(jí)菜單打開時(shí)并且是在時(shí)間設(shè)置界面時(shí)按RIGHT鍵,
  666.                 {
  667.                         // ClearDisplay(); //清理一次屏幕
  668.                          Set_OK_Flag = 0;    //
  669.                          Beep(SHORT_JIAO,8,4);
  670.                          j+=1;
  671.                          if(j>7)
  672.                          {
  673.                                  j=1;
  674.                          }
  675.        
  676.                                    switch(j)  //通過(guò)調(diào)整j的值,對(duì)應(yīng)賦col的值,col就是向上箭頭位置,就是調(diào)節(jié)值的位置
  677.                                         {
  678.                                                 case 1: { col = 0;  };break;
  679.                                                 case 2: { col = 32; };break;
  680.                                                 case 3: { col = 64; };break;
  681.                                                 case 4: { col = 112; };break;
  682.                                                 case 5: { col = 128; };break;
  683.                                                 case 6: { col = 152; };break;
  684.                                                 case 7: { col = 176; };break;
  685.                                         }
  686.                                                 switch(j-1)  //不同的J-1讓不同的擦除空格換位置
  687.                                         {
  688.                                                 case 1: { cachu = 0;  };break;
  689.                                                 case 2: { cachu = 32; };break;
  690.                                                 case 3: { cachu = 64; };break;
  691.                                                 case 4: { cachu = 112; };break;
  692.                                                 case 5: { cachu = 128; };break;
  693.                                                 case 6: { cachu = 152; };break;
  694.                                                 case 7: { cachu = 176; };break;
  695.                                                 default:{ Disp_chinese_16x16(176,4,0,leijijd[7]);};break; //此處就是j-1=0時(shí)就讓空白格停在秒值下
  696.                                         }
  697.                           //i等于0時(shí)顯示時(shí)間設(shè)置的具體界面
  698.                                 Disp_chinese_16x16(cachu,4,0,leijijd[7]);//把上次顯示的向上箭頭通過(guò)空白替換,起到擦除的效果,目的是避免每按鍵一次要清全屏的閃爍缺點(diǎn)
  699.                                  Disp_chinese_16x16(col,4,0,leijijd[6]);//顯示“向上箭頭”在調(diào)節(jié)值之間切換移動(dòng)
  700.                                 Disp_Char(0,2,0,SZ[nian/10%10]);
  701.                                 Disp_Char(8,2,0,SZ[nian%10]);
  702.                                 Disp_chinese_16x16(16,2,0,NYRSFMZ[0]); //年
  703.                                 Disp_Char(32,2,0,SZ[yue/10%10]);  
  704.                                 Disp_Char(40,2,0,SZ[yue%10]);
  705.                                 Disp_chinese_16x16(48,2,0,NYRSFMZ[1]);  //月
  706.                                 Disp_Char(64,2,0,SZ[ri/10%10]);
  707.                                 Disp_Char(72,2,0,SZ[ri%10]);
  708.                                 Disp_chinese_16x16(80,2,0,NYRSFMZ[2]);  //日
  709.                                 Disp_chinese_16x16(96,2,0,NYRSFMZ[6]);  //周
  710.                                 Disp_chinese_16x16(112,2,0,DaXieShuZi[xingqi]);
  711.                                 Disp_Char(128,2,0,SZ[shi/10%10]);
  712.                                 Disp_Char(136,2,0,SZ[shi%10]);
  713.                                 Disp_Char(144,2,0,FH[0]);   //冒號(hào)
  714.                                 Disp_Char(152,2,0,SZ[fen/10%10]);
  715.                                 Disp_Char(160,2,0,SZ[fen%10]);
  716.                                 Disp_Char(168,2,0,FH[0]);   //冒號(hào)
  717.                                 Disp_Char(176,2,0,SZ[miao/10%10]);
  718.                                 Disp_Char(184,2,0,SZ[miao%10]);
  719.                 }
  720.                
  721.                 if(key==LEFT&&i==0&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==0) //如果第3級(jí)菜單打開時(shí)并且是在時(shí)間設(shè)置界面時(shí)按LEFT鍵,
  722.                 {
  723.                 //         ClearDisplay(); //清理一次屏幕
  724.                          Set_OK_Flag = 0;  
  725.                          Beep(SHORT_JIAO,8,4);
  726.                          j-=1;
  727.                           if(j<1)
  728.                                  j=7;
  729.                                         switch(j)  //通過(guò)調(diào)整j的值,對(duì)應(yīng)賦col的值,col就是向上箭頭位置,就是調(diào)節(jié)值的位置
  730.                                         {
  731.                                                 case 1: { col = 0;  };break;
  732.                                                 case 2: { col = 32; };break;
  733.                                                 case 3: { col = 64; };break;
  734.                                                 case 4: { col = 112; };break;
  735.                                                 case 5: { col = 128; };break;
  736.                                                 case 6: { col = 152; };break;
  737.                                                 case 7: { col = 176; };break;
  738.                                         }
  739.                                                         switch(j+1)  //不同的J+1讓不同的擦除空格換位置,模擬擦除效果
  740.                                         {
  741.                                                 case 1: { cachu = 0;  };break;
  742.                                                 case 2: { cachu = 32; };break;
  743.                                                 case 3: { cachu = 64; };break;
  744.                                                 case 4: { cachu = 112; };break;
  745.                                                 case 5: { cachu = 128; };break;
  746.                                                 case 6: { cachu = 152; };break;
  747.                                                 case 7: { cachu = 176; };break;
  748.                                                 default:{ Disp_chinese_16x16(0,4,0,leijijd[7]);};break; //此處就是j+1=8時(shí)就讓空白格停在年值下
  749.                                         }
  750.                           //i等于0時(shí)顯示時(shí)間設(shè)置的具體界面
  751.                                 Disp_chinese_16x16(cachu,4,0,leijijd[7]);//把上次顯示的向上箭頭通過(guò)空白替換起到擦除的效果
  752.                                  Disp_chinese_16x16(col,4,0,leijijd[6]);//顯示“向上箭頭”在調(diào)節(jié)值之間切換移動(dòng)
  753.                                 Disp_Char(0,2,0,SZ[nian/10%10]);
  754.                                 Disp_Char(8,2,0,SZ[nian%10]);
  755.                                 Disp_chinese_16x16(16,2,0,NYRSFMZ[0]); //年
  756.                                 Disp_Char(32,2,0,SZ[yue/10%10]);  
  757.                                 Disp_Char(40,2,0,SZ[yue%10]);
  758.                                 Disp_chinese_16x16(48,2,0,NYRSFMZ[1]);  //月
  759.                                 Disp_Char(64,2,0,SZ[ri/10%10]);
  760.                                 Disp_Char(72,2,0,SZ[ri%10]);
  761.                                 Disp_chinese_16x16(80,2,0,NYRSFMZ[2]);  //日
  762.                                 Disp_chinese_16x16(96,2,0,NYRSFMZ[6]);  //周
  763.                                 Disp_chinese_16x16(112,2,0,DaXieShuZi[xingqi]);
  764.                                 Disp_Char(128,2,0,SZ[shi/10%10]);
  765.                                 Disp_Char(136,2,0,SZ[shi%10]);
  766.                                 Disp_Char(144,2,0,FH[0]);   //冒號(hào)
  767.                                 Disp_Char(152,2,0,SZ[fen/10%10]);
  768.                                 Disp_Char(160,2,0,SZ[fen%10]);
  769.                                 Disp_Char(168,2,0,FH[0]);   //冒號(hào)
  770.                                 Disp_Char(176,2,0,SZ[miao/10%10]);
  771.                                 Disp_Char(184,2,0,SZ[miao%10]);

  772.                 }
  773.        

  774. /*******************************時(shí)間設(shè)置之調(diào)整年值*****************************************/
  775.                  if(key==UP&&i==0&&j==1&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==0)//調(diào)整年+
  776.                 { //i=0,限定是在時(shí)間設(shè)置模式,j=1限定在時(shí)間設(shè)置模式的年值設(shè)置,MenuFlag1、2、3 分別=1、1、0鎖定在二級(jí)菜單
  777.                         nian+=1;
  778.                         if(nian>99)
  779.                                 nian=20;
  780.                         Beep(SHORT_JIAO,8,4);
  781.                         Disp_Char(0,2,0,SZ[nian/10%10]);
  782.                         Disp_Char(8,2,0,SZ[nian%10]);
  783.                         Set_OK_Flag = 0;
  784. ……………………

  785. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
LCD菜單程序大數(shù)字電子鐘(三級(jí)菜單,參數(shù)設(shè)置保存、溫度控制器,).zip (312.96 KB, 下載次數(shù): 348)


評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:44037 發(fā)表于 2020-7-1 15:44 | 顯示全部樓層
謝謝分享  學(xué)習(xí)一下!
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2020-11-15 17:27 | 顯示全部樓層
不錯(cuò),值得學(xué)習(xí)。51hei有你更精彩!!
回復(fù)

使用道具 舉報(bào)

ID:77840 發(fā)表于 2021-4-7 17:18 | 顯示全部樓層
謝謝樓主分享,初學(xué)者請(qǐng)教一下i+=2這樣的語(yǔ)句是什么意思,和i++這種自加一有什么區(qū)別?
回復(fù)

使用道具 舉報(bào)

ID:230752 發(fā)表于 2021-4-11 23:08 | 顯示全部樓層
非常好的代碼,思路清晰,注釋明確。
回復(fù)

使用道具 舉報(bào)

ID:600695 發(fā)表于 2021-4-14 21:35 | 顯示全部樓層
為什么我的萬(wàn)年歷就顯示不正常呢
回復(fù)

使用道具 舉報(bào)

ID:266164 發(fā)表于 2021-4-16 16:40 | 顯示全部樓層
好東西。我也正想做一個(gè)呢
回復(fù)

使用道具 舉報(bào)

ID:907139 發(fā)表于 2021-4-16 22:53 | 顯示全部樓層
謝謝樓主分享,初學(xué)者請(qǐng)教一下i+=2這樣的語(yǔ)句是什么意思,和i++這種自加一有什么區(qū)別?
回復(fù)

使用道具 舉報(bào)

ID:328014 發(fā)表于 2021-4-17 03:25 | 顯示全部樓層
18634937090 發(fā)表于 2021-4-16 22:53
謝謝樓主分享,初學(xué)者請(qǐng)教一下i+=2這樣的語(yǔ)句是什么意思,和i++這種自加一有什么區(qū)別?

i=i+2的簡(jiǎn)寫
回復(fù)

使用道具 舉報(bào)

ID:778645 發(fā)表于 2021-4-17 21:24 | 顯示全部樓層
面具下的狼性 發(fā)表于 2021-4-7 17:18
謝謝樓主分享,初學(xué)者請(qǐng)教一下i+=2這樣的語(yǔ)句是什么意思,和i++這種自加一有什么區(qū)別?

這就是i=i+2;
回復(fù)

使用道具 舉報(bào)

ID:69536 發(fā)表于 2021-4-29 09:47 | 顯示全部樓層
強(qiáng)烈  建議時(shí)鐘芯片改為DS3231,大家可以仿制一個(gè)來(lái)學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

ID:334781 發(fā)表于 2021-5-4 11:32 | 顯示全部樓層
有電路圖嗎,想下載看下,這個(gè)不錯(cuò),學(xué)習(xí)單片機(jī)的好幫手!
回復(fù)

使用道具 舉報(bào)

ID:39866 發(fā)表于 2021-5-16 21:18 | 顯示全部樓層
厲害了大佬,大師級(jí)別的
回復(fù)

使用道具 舉報(bào)

ID:242298 發(fā)表于 2021-7-6 11:08 | 顯示全部樓層
這電路圖都沒有,誰(shuí)知道怎么制作的啊。。。。再說(shuō)這個(gè)程序也太大了點(diǎn)吧! 90多K。。。。
回復(fù)

使用道具 舉報(bào)

ID:884042 發(fā)表于 2021-7-19 09:26 | 顯示全部樓層
能提供一下使用方法嗎?
回復(fù)

使用道具 舉報(bào)

ID:200118 發(fā)表于 2021-12-21 20:44 | 顯示全部樓層
正好我有一塊這種屏試試看
回復(fù)

使用道具 舉報(bào)

ID:977861 發(fā)表于 2021-12-21 21:48 | 顯示全部樓層
這個(gè)不錯(cuò),學(xué)習(xí)單片機(jī)的好幫手
回復(fù)

使用道具 舉報(bào)

ID:173831 發(fā)表于 2021-12-22 11:10 | 顯示全部樓層
最近研究液晶屏學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

ID:993294 發(fā)表于 2021-12-23 11:27 | 顯示全部樓層
單片機(jī)+LCD19264液晶屏三級(jí)菜單程序 大數(shù)字電子鐘   
屏幕+主板+操作板哪買的!
回復(fù)

使用道具 舉報(bào)

ID:156220 發(fā)表于 2021-12-24 21:51 | 顯示全部樓層
謝謝資料分享,樓主辛苦了
回復(fù)

使用道具 舉報(bào)

ID:1064915 發(fā)表于 2023-10-12 21:23 | 顯示全部樓層
GPS怎么用?
回復(fù)

使用道具 舉報(bào)

ID:305511 發(fā)表于 2023-11-30 23:02 | 顯示全部樓層
多謝分享,注解很清晰
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 四虎成人精品永久免费av九九 | 91在线一区二区 | 男女又爽又黄视频 | av香港经典三级级 在线 | 中文字幕精品一区二区三区精品 | 国产精品国产三级国产aⅴ中文 | 久久免费国产 | 91精品综合久久久久久五月天 | 一区二区三区亚洲视频 | m豆传媒在线链接观看 | 欧美日韩成人网 | 国产精品自拍视频 | 久久成人激情 | 成人福利视频 | 欧美日韩精品中文字幕 | 精品欧美一区二区在线观看视频 | 亚洲人成人一区二区在线观看 | 免费毛片www com cn | 久久久av一区| 91在线一区二区 | 2019天天操 | av中文字幕在线播放 | 国产精品视频网 | 久久亚洲一区二区三区四区 | 成人福利在线 | 亚洲激情在线 | 欧美精品福利 | 亚洲小视频在线播放 | 欧美日韩成人网 | 久草福利| 99国产精品99久久久久久粉嫩 | 日本在线播放一区二区 | 亚洲欧洲精品一区 | 国产一区2区 | 久久久久久久夜 | 日韩一区二区在线观看 | 一区二区中文字幕 | 日韩伦理一区二区 | 凹凸日日摸日日碰夜夜 | 国产在线观看一区二区三区 | 国产一二区在线 |