wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

標題: 單片機+LCD19264液晶屏三級菜單程序 大數字電子鐘 [打印本頁]

作者: zouminglu    時間: 2020-6-30 23:16
標題: 單片機+LCD19264液晶屏三級菜單程序 大數字電子鐘
我寫的LCD液晶屏菜單程序,實現時鐘的年月日時分秒的調節,實現鬧鐘的設置,實現溫度的上下限設置并按照設置值驅動繼電器,溫度和鬧鐘的設置參數都寫入EEPROM中,掉電開機設置參數不丟失,大個數字顯示時分秒。菜單為三級,三級留空白,可自行添加內容,自己寫的,水平有限,發給壇里師兄吐槽,共同進步,下一步寫一個結構體加指針的菜單程序。望壇里師傅有的奉獻出來一下,謝謝。

制作出來的實物圖如下:


單片機源程序如下:
  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;   // 各級菜單標志位,如果為1代表已進入該機菜單,為0代表退出該級菜單
  11. char NaoZhongShi=8,NaoZhongFen=0,NaoZhongMiao=0;  //這里用char而不是unsigned char 的原因是操作此變量時減到0就停止,如果定義unsigned char,變量減到小于0就自動變為65535
  12. uchar kjcs;      //開機次數
  13. uchar key,num;       //鍵值
  14. uint wenduszd,wenduszg;//溫度設置上下限值,wenduszd溫度設置低,wenduszg溫度設置高,wdszgzjz溫度設置高未保存的值,wdszdzjz溫度設置高未保存的值
  15. #define SHORT_JIAO 80
  16. #define LONG_JIAO 150
  17. /************************************待機頁面函數**********************************/
  18. void DeskWall() //待機桌面
  19. {                  
  20.     Read_temp();   //讀取溫度值
  21.     Read_time();         //讀取時間值
  22. //  Disp_chinese_16x16(176,0,0,leijijd[8]);//在右上角顯示電池電量圖案
  23. //        Disp_chinese_16x16(0,0,0,leijijd[9]);//在右上角顯示WIFI信號圖案
  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);  //顯示“鬧鐘”設置2個字       
  33.                         Disp_chinese_N_16x16(80,2,2,1,SJSZ);  //顯示“時間”設置2個字
  34.                         Disp_chinese_16x16(112,2,1,leijijd[4]);//顯示“到”字
  35.                 }       
  36.                 else
  37.                 {
  38. /******************顯示年 月 日 時 分 秒 星期  ************************/      
  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]);   //冒號
  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]);   //冒號
  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轉換成中文顯示
  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. //////////////////////////////////如果溫度為零下時////////////////////////////////////////
  89. if(tflag==1)  
  90. {
  91.    
  92.     if(tvalue==0)
  93.     {
  94.         Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  95.         Disp_Char(144,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  96.         Disp_Char(152,6,0,F8X16[0]);//用空白字模擦除不需要顯示的內容
  97.         Disp_Char(160,6,0,F8X16[0]);  //用空白字模擦除不需要顯示的內容
  98.         Disp_Char(168,6,0,SZ[0]);
  99.         Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  100.         Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"         
  101.     }
  102.     else
  103.     {
  104.         if(tvalue<10)
  105.         {
  106.             Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  107.             Disp_Char(144,6,0,F8X16[13]); //用空白字模擦除不需要顯示的內容
  108.             Disp_Char(152,6,0,SZ[0]);
  109.             Disp_Char(160,6,0,F8X16[14]);  //小數點
  110.             Disp_Char(168,6,0,SZ[tvalue%10]);
  111.             Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  112.             Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"         
  113.         }
  114.         else
  115.         {
  116.             if(tvalue<100)
  117.             {
  118.                 Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  119.                 Disp_Char(144,6,0,F8X16[13]); //用空白字模擦除不需要顯示的內容
  120.                 Disp_Char(152,6,0,SZ[tvalue/10%10]);
  121.                 Disp_Char(160,6,0,F8X16[14]);  //小數點
  122.                 Disp_Char(168,6,0,SZ[tvalue%10]);
  123.                 Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  124.                 Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"
  125.             }
  126.             else
  127.             {
  128.                 if(tvalue<1000)
  129.                 {
  130.                     Disp_Char(136,6,0,F8X16[13]); //用空白字模擦除不需要顯示的內容
  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]);  //小數點
  134.                     Disp_Char(168,6,0,SZ[tvalue%10]);
  135.                     Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  136.                     Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"                  
  137.                 }
  138.              /*   else  //一般不會達到零下100度的低溫,不做無意義的事情,在這里屏蔽掉此段,
  139.                 {
  140.                     Disp_Char(136,6,0,SZ[tvalue/1000%10]);//溫度的負數和超過100度溫度時的顯示待處理
  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]);  //小數點
  144.                     Disp_Char(168,6,0,SZ[tvalue%10]);
  145.                     Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  146.                     Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"
  147.                 }  */
  148.             }
  149.         }
  150.     }  
  151. }
  152. else
  153. ////////////////////如果溫度為正時/////////////////////////////////////////////
  154. {
  155.     if(tvalue==0)
  156.     {
  157.         Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  158.         Disp_Char(144,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  159.         Disp_Char(152,6,0,F8X16[0]);//用空白字模擦除不需要顯示的內容
  160.         Disp_Char(160,6,0,F8X16[0]);  //用空白字模擦除不需要顯示的內容
  161.         Disp_Char(168,6,0,SZ[0]);
  162.         Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  163.         Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"   
  164.     }
  165.     else
  166.     {
  167.     if(tvalue<10)
  168.     {
  169.         Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  170.         Disp_Char(144,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  171.         Disp_Char(152,6,0,SZ[0]);
  172.         Disp_Char(160,6,0,F8X16[14]);  //小數點
  173.         Disp_Char(168,6,0,SZ[tvalue%10]);
  174.         Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  175.         Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"
  176.     }
  177.     else
  178.     {
  179.     if(tvalue<100)
  180.     {
  181.         Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  182.         Disp_Char(144,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  183.         Disp_Char(152,6,0,SZ[tvalue/10%10]);
  184.         Disp_Char(160,6,0,F8X16[14]);  //小數點
  185.         Disp_Char(168,6,0,SZ[tvalue%10]);
  186.         Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  187.         Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"
  188.     }
  189.     else
  190.     {
  191.         if(tvalue<1000)
  192.         {
  193.             Disp_Char(136,6,0,F8X16[0]); //用空白字模擦除不需要顯示的內容
  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]);  //小數點
  197.             Disp_Char(168,6,0,SZ[tvalue%10]);
  198.             Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  199.             Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"        
  200.         }
  201.         else
  202.         {
  203.             Disp_Char(136,6,0,SZ[tvalue/1000%10]);//溫度的負數和超過100度溫度時的顯示待處理
  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]);  //小數點
  207.             Disp_Char(168,6,0,SZ[tvalue%10]);
  208.             Disp_Char(176,6,0,F8X16[97]); //溫度符號攝氏度的點
  209.             Disp_Char(184,6,0,F8X16[35]); //溫度符號攝氏度的"C"
  210.         }
  211.       }
  212.     }
  213.    }
  214. }
  215.                 }
  216. }       
  217. /**********************************************************************************/

  218. /*******************************主函數************************************/
  219. void main()
  220. {
  221.         char i=0; //將i的數據類型定義為char型,而不是unsigned char 型,在通過按鍵調節減這個變量時不會出現小于0時自動到255,而是停留在0不變
  222.         uchar col,lie,cachu,kong;
  223.         char flash=0; //反白顯示溫度調節的上下限值,在902行溫度設置部分使用此變量
  224.         uchar j=0,k=0;//將j默認定位在6是讓調節選定用箭頭放在分鐘值上。k是鬧鐘時間值調節的位置
  225.         bit Set_OK_Flag = 0;  //設定OK標志位
  226.         P4M1=0x0C;  //將P4端口設為普通IO口
  227.         P4M0=0x7E;
  228.   P4SW=0x70;
  229.         LcdInit();    //LCD初始化
  230.         InitUART();   //串口初始化
  231.         Init_time(30,59,10,02,14,01,20); //系統時間初始化
  232.         x24C02_init(); //24c02初始化函數
  233.         kjcs = x24C02_read(2);//把24c02的地址2讀出來的數據賦給kjcs
  234.         delay_xms(50);         
  235.         wenduszg = x24C02_read(3);   //把24c16的地址3讀出來的數據賦給wenduszg
  236.         delay_xms(50);
  237.         wenduszd = x24C02_read(4);   //把24c16的地址4讀出來的數據賦給wenduszd
  238.         delay_xms(50);
  239.         NaoZhongShi = x24C02_read(5);   //把24c16的地址4讀出來的數據賦給NaoZhongShi
  240.         delay_xms(10);
  241.         NaoZhongFen = x24C02_read(6);   //把24c16的地址4讀出來的數據賦給NaoZhongFen
  242.         delay_xms(10);
  243.         NaoZhongMiao = x24C02_read(7);   //把24c16的地址4讀出來的數據賦給NaoZhongMiao
  244.         delay_xms(10);
  245.         if(kjcs>9999) //限制開機次數計到9999后就歸零
  246.                 kjcs = 0;
  247.                 kjcs++;   //每次開機就加1
  248.         delay_xms(20); //延時20毫秒
  249.         x24C02_write(2,kjcs);  //在24c02中的地址2寫入數據開機次數
  250.         ClearDisplay(); //清理一次屏幕
  251.   DeskWall();//待機頁面 */       
  252.         while(1)
  253.         {       
  254.           key=Scan_Key();  //獲取鍵值
  255. //                num = Key_Get_Num();
  256. //                Disp_Char(0,0,0,SZ[num%10]);//在右上角顯示按鍵值,用于調試
  257. //                Disp_Char(168,0,0,SZ[key/100%10]);//在右上角顯示按鍵值,用于調試
  258. //                Disp_Char(176,0,0,SZ[key/10%10]); //K
  259. //                Disp_Char(184,0,0,SZ[key%10]);//在右上角顯示按鍵值,用于調試
  260. /**************************制冷模式的溫控*************************************************/
  261.                 if(((tvalue/10)>wenduszg)) //如果溫度高于上限值,并且在溫度設置界面時,繼電器吸合制冷,顯示“開啟”
  262.                 {
  263.                         JDQ = 0;
  264.                 }
  265.                 else
  266.                 if(((tvalue/10)<wenduszd))   //如果溫度低于下限值,并且在溫度設置界面時,繼電器釋放制冷,顯示“關閉”
  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級菜單退出,
  284.                    DeskWall();        //則顯示桌面
  285.                 //////////////////////////////////////////////菜單框架
  286.                 if(key==ENT)//如果待機時不斷地按ENT鍵,一級一級深入各級菜單
  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]);//顯示“箭頭”在幾行之間移動動
  296.                                 Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示"時間設置"4個字       
  297.                           Disp_chinese_N_16x16(64,2,4,0,NZSZ);  //在第二行顯示"鬧鐘設置"4個字
  298.                           Disp_chinese_N_16x16(64,4,4,0,WDSZ);  //在第三行顯示"溫度設置"4個字
  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個字       
  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)  //通過調整k的值,對應賦lie的值,lie就是向上箭頭位置,就是調節值的位置
  315.                                                         {
  316.                                                                 case 1: { lie = 64;  };break;
  317.                                                                 case 2: { lie = 88; };break;
  318.                                                                 case 3: { lie = 112; };break;
  319.                                                                
  320.                                                         }
  321.                                                   switch(j)  //通過調整j的值,對應賦col的值,col就是向上箭頭位置,就是調節值的位置
  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級菜單要顯示的內容決定于i的值,i值剛好在1級菜單時通過DOWM和UP鍵設定好了
  332.                                                         {
  333.                                                                 case 0: { //i等于0時顯示時間設置的具體界面
  334.                                                                                     Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示"時間設置"4個字       
  335.                                                                                                                         Disp_chinese_16x16(col,4,0,leijijd[6]);//顯示“向上箭頭”在調節值之間切換移動
  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]);   //冒號
  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]);   //冒號
  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時顯示鬧鐘設置的具體界面
  357.                                                                                     Disp_chinese_N_16x16(64,0,4,0,NZSZ);  //在第1行顯示"鬧鐘設置"4個字
  358.                                                                                     Disp_chinese_16x16(lie,4,0,leijijd[6]);//顯示“向上箭頭”在調節值之間切換移動
  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]);   //冒號
  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]);   //冒號
  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時顯示溫度設置的具體界面
  369.                                                                                                                         Disp_chinese_N_16x16(64,0,4,0,WDSZ);//正中1行顯示"溫度設置"四個字
  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時百位顯示空白
  375.                                                                                                                         {
  376.                                                                                                                                         Disp_Char(40,2,0,F8X16[0]);//"wenduszg"百位位置顯示空白
  377.                                                                                                                                         Disp_Char(48,2,0,SZ[wenduszg/10%10]);//"wenduszg"溫度設置高
  378.                                                                                                                                         Disp_Char(56,2,0,SZ[wenduszg%10]);
  379.                                                                                                                         }
  380.                                                                                                                         else
  381.                                                                                                                         {
  382.                                                                                                                                         Disp_Char(40,2,0,SZ[wenduszg/100%10]);//"wenduszg"溫度設置高
  383.                                                                                                                                         Disp_Char(48,2,0,SZ[wenduszg/10%10]);//"wenduszg"溫度設置高
  384.                                                                                                                                         Disp_Char(56,2,0,SZ[wenduszg%10]);
  385.                                                                                                                         }
  386. //                                                                                    Disp_Char(40,2,0,SZ[wenduszg/100%10]);//"wenduszg"溫度設置高
  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]); //溫度符號攝氏度的點
  390.                                                                                                                         Disp_Char(72,2,0,F8X16[35]); //溫度符號攝氏度的"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"溫度設置低
  401.                                                                                                                                         Disp_Char(56,6,0,SZ[wenduszd%10]);
  402.                                                                                                                         }
  403.                                                                                                                         else
  404.                                                                                                                         {
  405.                                                                                                                                         Disp_Char(40,6,0,SZ[wenduszd/100%10]);//"wenduszd"溫度設置低
  406.                                                                                                                                         Disp_Char(48,6,0,SZ[wenduszd/10%10]);//"wenduszd"溫度設置低
  407.                                                                                                                                         Disp_Char(56,6,0,SZ[wenduszd%10]);
  408.                                                                                                                         }
  409. //                                                                                    Disp_Char(40,6,0,SZ[wenduszd/100%10]);//"wenduszd"溫度設置低
  410. //                                                                                    Disp_Char(48,6,0,SZ[wenduszd/10%10]);//"wenduszd"溫度設置低
  411. //                                                                                                                        Disp_Char(56,6,0,SZ[wenduszd%10]);                               
  412.                                                                                                                         Disp_Char(64,6,0,F8X16[97]); //溫度符號攝氏度的點
  413.                                                                                                                         Disp_Char(72,6,0,F8X16[35]); //溫度符號攝氏度的"C"                                                                                                                
  414.                                                                                                                         Disp_chinese_16x16(80,6,0,guan);//"關"
  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);//"關"
  424.                                                                                                                                 Disp_chinese_16x16(176,4,1,bi);//"閉"
  425.                                                                                                                         }
  426.                                                                                                 };  break;
  427.                                                                 case 6: {   //i等于6時顯示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) //如果進入了2級菜單還在按ENT鍵,就進入第三級菜單
  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);//如果打開到第三級到底了,還按ENT鍵的話就長叫提示到底不能再按
  450.                                                                 }
  451.                                                  }
  452.                                         }                         
  453.                          }       
  454.                 }
  455.                
  456.                  if(key==DOWN&&MenuFlag1==1&&MenuFlag2==0&&MenuFlag3==0) //如果進入1級菜單時按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]);//當i-2小于0時,不能負數,此處完美解決
  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]);//顯示“箭頭”在幾行之間移動動
  467.                                                 Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示時間設置4個字       
  468.                                                 Disp_chinese_N_16x16(64,2,4,0,NZSZ);  //在第二行顯示"鬧鐘設置"4個字
  469.                                                 Disp_chinese_N_16x16(64,4,4,0,WDSZ);  //在第三行顯示"溫度設置"4個字
  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個字       
  474.                                 }       
  475.                                
  476.                                 if(key==UP&&MenuFlag1==1&&MenuFlag2==0&&MenuFlag3==0)//如果進入1級菜單時按UP鍵
  477.                                 {
  478.                                         i-=2;
  479.                                         if((i-2)<0)
  480.                                                 Disp_chinese_16x16(48,0,0,leijijd[7]);//當i-2小于0時,不能負數,此處完美解決
  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]);//顯示“箭頭”在幾行之間移動動
  487.                                         Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示時間設置4個字       
  488.                                         Disp_chinese_N_16x16(64,2,4,0,NZSZ);  //在第二行顯示"鬧鐘設置"4個字
  489.                                         Disp_chinese_N_16x16(64,4,4,0,WDSZ);  //在第三行顯示"溫度設置"4個字
  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個字       
  494.                                 }       
  495.     if(key==ESC)  //如果待機時不斷地按ESC鍵,一級一級退出各級菜單,直到桌面
  496.                 {
  497.                          
  498.                         if(key==ESC&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==1) //如果第3級菜單打開時按ESC鍵,則退出3級菜單
  499.                         {
  500.                                  ClearDisplay(); //清理一次屏幕
  501.                                  Beep(SHORT_JIAO,8,4);
  502.                                  MenuFlag3=0;
  503.                                  Set_OK_Flag = 0;
  504.                                  switch(k)  //通過調整k的值,對應賦lie的值,lie就是向上箭頭位置,就是調節值的位置
  505.                                         {
  506.                                                 case 1: { lie = 64;  };break;
  507.                                                 case 2: { lie = 88; };break;
  508.                                                 case 3: { lie = 112; };break;
  509.                                                
  510.                                         }
  511.                                  switch(j)  //通過調整j的值,對應賦col的值,col就是向上箭頭位置,就是調節值的位置
  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級菜單要顯示的內容決定于i的值,i值剛好在1級菜單時通過DOWM和UP鍵設定好了
  522.                                                         {
  523.                                                                 case 0: {   //i等于0時顯示時間設置的具體界面
  524.                                                                                   Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示"時間設置"4個字       
  525.                                                                                                                 Disp_chinese_16x16(col,4,0,leijijd[6]);//顯示“向上箭頭”在調節值之間切換移動
  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]);   //冒號
  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]);   //冒號
  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時顯示鬧鐘設置的具體界面
  547.                                                                                   Disp_chinese_N_16x16(64,0,4,0,NZSZ);  //在第1行顯示"鬧鐘設置"4個字
  548.                                                                                   Disp_chinese_16x16(lie,4,0,leijijd[6]);//顯示“向上箭頭”在調節值之間切換移動
  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]);   //冒號
  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]);   //冒號
  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時顯示溫度設置的具體界面
  559.                                                                                                                 Disp_chinese_N_16x16(64,0,4,0,WDSZ);//正中1行顯示"溫度設置"四個字
  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時百位顯示空白
  565.                                                                                                                         {
  566.                                                                                                                                         Disp_Char(40,2,0,F8X16[0]);//"wenduszg"百位位置顯示空白
  567.                                                                                                                                         Disp_Char(48,2,0,SZ[wenduszg/10%10]);//"wenduszg"溫度設置高
  568.                                                                                                                                         Disp_Char(56,2,0,SZ[wenduszg%10]);
  569.                                                                                                                         }
  570.                                                                                                                         else
  571.                                                                                                                         {
  572.                                                                                                                                         Disp_Char(40,2,0,SZ[wenduszg/100%10]);//"wenduszg"溫度設置高
  573.                                                                                                                                         Disp_Char(48,2,0,SZ[wenduszg/10%10]);//"wenduszg"溫度設置高
  574.                                                                                                                                         Disp_Char(56,2,0,SZ[wenduszg%10]);
  575.                                                                                                                         }
  576. //                                                                                    Disp_Char(40,2,0,SZ[wenduszg/100%10]);//"wenduszg"溫度設置高
  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]); //溫度符號攝氏度的點
  580.                                                                                                                         Disp_Char(72,2,0,F8X16[35]); //溫度符號攝氏度的"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"溫度設置低
  591.                                                                                                                                         Disp_Char(56,6,0,SZ[wenduszd%10]);
  592.                                                                                                                         }
  593.                                                                                                                         else
  594.                                                                                                                         {
  595.                                                                                                                                         Disp_Char(40,6,0,SZ[wenduszd/100%10]);//"wenduszd"溫度設置低
  596.                                                                                                                                         Disp_Char(48,6,0,SZ[wenduszd/10%10]);//"wenduszd"溫度設置低
  597.                                                                                                                                         Disp_Char(56,6,0,SZ[wenduszd%10]);
  598.                                                                                                                         }
  599. //                                                                                    Disp_Char(40,6,0,SZ[wenduszd/100%10]);//"wenduszd"溫度設置低
  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]); //溫度符號攝氏度的點
  603.                                                                                                                         Disp_Char(72,6,0,F8X16[35]); //溫度符號攝氏度的"C"                                                                                                                
  604.                                                                                                                         Disp_chinese_16x16(80,6,0,guan);//"關"
  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);//"關"
  614.                                                                                                                                 Disp_chinese_16x16(176,4,1,bi);//"閉"
  615.                                                                                                                         }
  616.                                                                         };  break;
  617.                                                                 case 6: {   //i等于6時顯示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級菜單還按ESC鍵,則進入1級菜單
  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]);//顯示“箭頭”在幾行之間移動動
  635.                                          Disp_chinese_N_16x16(64,0,4,0,SJSZ);  //在第一行顯示時間設置4個字       
  636.                                          Disp_chinese_N_16x16(64,2,4,0,NZSZ);  //在第二行顯示"鬧鐘設置"4個字
  637.                                          Disp_chinese_N_16x16(64,4,4,0,WDSZ);  //在第三行顯示"溫度設置"4個字
  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個字       
  642.                                 }
  643.                                 else
  644.                                 {
  645.                                         if(key==ESC&&MenuFlag1==1&&MenuFlag2==0&&MenuFlag3==0) //如果退出到1級菜單還按ESC鍵,則進入桌面待機頁面
  646.                                         {
  647.                                                  ClearDisplay(); //清理一次屏幕
  648.                                                  Beep(SHORT_JIAO,8,4);
  649.                                                  MenuFlag1=0;
  650.                                                  Set_OK_Flag = 0;
  651.                                                  DeskWall();//最后回到待機頁面 */
  652.                                         }
  653.                                         else
  654.                                         {
  655.                                                 if(key==ESC&&MenuFlag1==0&&MenuFlag2==0&&MenuFlag3==0) //如果退出到桌面還按ESC鍵,告警音提示
  656.                                                 {
  657.                                                         Beep(LONG_JIAO,2,1);//如果關閉桌面到底了,還按ESC鍵的話就長叫提示到底不能再按
  658.                                                 }
  659.                                         }
  660.                                 }
  661.                         }
  662.                 }
  663.                
  664.                
  665.                 if(key==RIGHT&&i==0&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==0) //如果第3級菜單打開時并且是在時間設置界面時按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)  //通過調整j的值,對應賦col的值,col就是向上箭頭位置,就是調節值的位置
  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時就讓空白格停在秒值下
  696.                                         }
  697.                           //i等于0時顯示時間設置的具體界面
  698.                                 Disp_chinese_16x16(cachu,4,0,leijijd[7]);//把上次顯示的向上箭頭通過空白替換,起到擦除的效果,目的是避免每按鍵一次要清全屏的閃爍缺點
  699.                                  Disp_chinese_16x16(col,4,0,leijijd[6]);//顯示“向上箭頭”在調節值之間切換移動
  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]);   //冒號
  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]);   //冒號
  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級菜單打開時并且是在時間設置界面時按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)  //通過調整j的值,對應賦col的值,col就是向上箭頭位置,就是調節值的位置
  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時就讓空白格停在年值下
  749.                                         }
  750.                           //i等于0時顯示時間設置的具體界面
  751.                                 Disp_chinese_16x16(cachu,4,0,leijijd[7]);//把上次顯示的向上箭頭通過空白替換起到擦除的效果
  752.                                  Disp_chinese_16x16(col,4,0,leijijd[6]);//顯示“向上箭頭”在調節值之間切換移動
  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]);   //冒號
  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]);   //冒號
  770.                                 Disp_Char(176,2,0,SZ[miao/10%10]);
  771.                                 Disp_Char(184,2,0,SZ[miao%10]);

  772.                 }
  773.        

  774. /*******************************時間設置之調整年值*****************************************/
  775.                  if(key==UP&&i==0&&j==1&&MenuFlag1==1&&MenuFlag2==1&&MenuFlag3==0)//調整年+
  776.                 { //i=0,限定是在時間設置模式,j=1限定在時間設置模式的年值設置,MenuFlag1、2、3 分別=1、1、0鎖定在二級菜單
  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. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

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



作者: by64214    時間: 2020-7-1 15:44
謝謝分享  學習一下!
作者: rayin    時間: 2020-11-15 17:27
不錯,值得學習。51hei有你更精彩!!
作者: 面具下的狼性    時間: 2021-4-7 17:18
謝謝樓主分享,初學者請教一下i+=2這樣的語句是什么意思,和i++這種自加一有什么區別?
作者: winxp12345    時間: 2021-4-11 23:08
非常好的代碼,思路清晰,注釋明確。
作者: 米花卷    時間: 2021-4-14 21:35
為什么我的萬年歷就顯示不正常呢
作者: woojoon1981    時間: 2021-4-16 16:40
好東西。我也正想做一個呢
作者: 18634937090    時間: 2021-4-16 22:53
謝謝樓主分享,初學者請教一下i+=2這樣的語句是什么意思,和i++這種自加一有什么區別?
作者: 51hei團團    時間: 2021-4-17 03:25
18634937090 發表于 2021-4-16 22:53
謝謝樓主分享,初學者請教一下i+=2這樣的語句是什么意思,和i++這種自加一有什么區別?

i=i+2的簡寫
作者: lanxiaonan    時間: 2021-4-17 21:24
面具下的狼性 發表于 2021-4-7 17:18
謝謝樓主分享,初學者請教一下i+=2這樣的語句是什么意思,和i++這種自加一有什么區別?

這就是i=i+2;
作者: shuma520    時間: 2021-4-29 09:47
強烈  建議時鐘芯片改為DS3231,大家可以仿制一個來學習一下。
作者: yxdz1358    時間: 2021-5-4 11:32
有電路圖嗎,想下載看下,這個不錯,學習單片機的好幫手!
作者: luxu163    時間: 2021-5-16 21:18
厲害了大佬,大師級別的
作者: leezll    時間: 2021-7-6 11:08
這電路圖都沒有,誰知道怎么制作的啊。。。。再說這個程序也太大了點吧! 90多K。。。。
作者: xjx51    時間: 2021-7-19 09:26
能提供一下使用方法嗎?
作者: XDDZ1013    時間: 2021-12-21 20:44
正好我有一塊這種屏試試看
作者: zydl123    時間: 2021-12-21 21:48
這個不錯,學習單片機的好幫手
作者: 545338711    時間: 2021-12-22 11:10
最近研究液晶屏學習一下
作者: xskemc    時間: 2021-12-23 11:27
單片機+LCD19264液晶屏三級菜單程序 大數字電子鐘   
屏幕+主板+操作板哪買的!
作者: 紫色的云    時間: 2021-12-24 21:51
謝謝資料分享,樓主辛苦了
作者: joyb    時間: 2023-10-12 21:23
GPS怎么用?
作者: 太陽黑子1    時間: 2023-11-30 23:02
多謝分享,注解很清晰
作者: summer—13    時間: 2025-10-29 22:23
不錯不錯




歡迎光臨 (http://www.izizhuan.cn/bbs/) Powered by Discuz! X3.1
久久亚洲捆绑美女| 国产精品福利在线| 亚洲国产精品成人久久综合一区| 欧美电影《睫毛膏》| 热色播在线视频| 李丽珍裸体午夜理伦片| 国产专区一区二区| 久久成人人人人精品欧| 欧美丝袜丝nylons| 国产精品国产三级国产aⅴ中文| 亚洲一卡久久| 国产精品入口久久| 草民电影神马电影一区二区| 蜜桃成人在线视频| 岛国av免费观看| 裸体大乳女做爰69| 亚洲一区二区中文| 九九热在线精品视频| 日韩精品一区二区三区在线观看 | xxx成人少妇69| 91精品欧美一区二区三区综合在| 亚洲欧美日韩小说| 国产成人丝袜美腿| 亚洲影视综合| 色婷婷色综合| 57pao国产一区二区| 成年女人在线看片| 电影av一区| 免费观影入口看日本视频| 欧美性猛交xxxxbbbb| 91九色蝌蚪91por成人| 欧美三级免费看| 美女洗澡无遮挡| 亚欧精品在线视频| 777久久久精品一区二区三区| 秋霞在线观看一区二区三区| 91在线无精精品一区二区| 久久久久久久爱| 色伦专区97中文字幕| 亚洲精美色品网站| 91精选在线观看| 在线看不卡av| 亚洲第一激情av| 国产精品国产三级国产专播品爱网 | 国产主播中文字幕| 真人做人试看60分钟免费| 美女三级99| 成人高清在线观看| 国产主播喷水一区二区| 国产精品99久久久久久白浆小说 | 777777777亚洲妇女| 亚洲欧美在线一区| 亚洲精品在线网站| 日韩欧美综合一区| 91麻豆精品91久久久久久清纯| 高跟丝袜欧美一区| 粉嫩老牛aⅴ一区二区三区| 亚洲综合精品自拍| 亚洲成人激情av| 亚洲国产视频一区二区| 亚洲欧美偷拍另类a∨色屁股| 中文字幕精品三区| 国产精品美女一区二区在线观看| 久久亚洲一区二区三区明星换脸| 成人综合在线网站| 99国产精品99久久久久久| 成人免费毛片aaaaa**| 丁香五精品蜜臀久久久久99网站 | 亚洲不卡视频在线观看| 日韩精品无码一区二区| 国产一级一片免费播放| 亚洲天堂日韩av| 日韩不卡视频在线| 中文字幕人妻丝袜乱一区三区 | 欧美日韩精品国产| 色拍拍在线精品视频8848| 色婷婷久久99综合精品jk白丝| 精品国产户外野外| 欧美色偷偷大香| 欧美精品tushy高清| 日韩精品综合一本久道在线视频| 日韩亚洲欧美一区| 亚洲男人第一网站| 综合av色偷偷网| 九九视频这里只有精品| 国产91精品不卡视频| 国产精品6699| 国产区一区二区三区| 欧美精品一区二区三区久久| 亚洲日本japanese丝袜| 日韩极品视频在线观看| www.欧美日本| 国产 xxxx| 国产一区在线观看免费| 精品日本一区二区三区在线观看 | 一区二区在线免费播放| 亚洲男人都懂第一日本| 希岛爱理av一区二区三区| 激情五月***国产精品| 日韩精品高清不卡| 成人免费视频免费观看| 国产精品视频九色porn| 精品国产91久久久| 日韩欧美不卡一区| 久久精品99国产精品酒店日本| 久久露脸国产精品| 亚洲最大福利视频网| 午夜精品一区二区三区四区| 日韩免费一级视频| 搡的我好爽在线观看免费视频| 日韩精品人妻中文字幕有码| 无码人妻精品中文字幕| 一级久久久久久| 男女啪啪无遮挡网站| 九色视频在线观看免费| 亚洲图区欧美| 在线观看的黄色| 日韩福利视频一区| 国产欧美日韩一区二区三区在线| 国产成人自拍高清视频在线免费播放| 欧美高清在线精品一区| 色爱区综合激月婷婷| 亚洲免费成人av电影| 日本久久久久亚洲中字幕| 国严精品久久久久久亚洲影视| 波多野结衣av一区二区全免费观看| 亚洲黄色片免费看| 青青草手机视频在线观看| www.国产三级| av先锋下载| 国产黄色小视频在线| 亚洲一二av| 国产精品久久久久久久久久妞妞| gogo大胆日本视频一区| 精品欧美激情精品一区| 中文字幕欧美视频在线| 亚洲aa在线观看| 欧美精品久久久久久久久久久| aa片在线观看视频在线播放| av黄色在线播放| 欧美xxxxxbb| 久久亚洲精品石原莉奈| 午夜视频www| 337p日本| 538在线观看| 成人影院在线| 成人福利在线看| 欧美日本在线视频| 午夜精品久久久久久久白皮肤| 免费在线成人av| 善良的小姨在线| 亚洲欧美一二三区| 九色蝌蚪视频在线| 黑人另类精品××××性爽| 国产一区毛片| 91亚洲男人天堂| 日韩欧美国产成人一区二区| 国产精品av在线| 欧美不卡在线播放| 永久久久久久久| 欧美一级手机免费观看片| 婷婷婷国产在线视频| 精品99re| 久久se精品一区二区| 欧美日韩一区二区免费在线观看 | 亚洲精品永久视频| 在线天堂中文字幕| 猛性xxxxx| 成年人黄色大片在线| 一区二区影院| 亚洲少妇30p| 日韩在线视频导航| 亚洲天堂电影网| 妖精视频在线观看免费| 中文字幕乱在线伦视频中文字幕乱码在线 | 深夜精品寂寞黄网站在线观看| 国产v亚洲v天堂无码| 91极品视频在线观看| aaaaaa毛片| 99热热99| 亚洲开心激情| 99视频精品全部免费在线| 精品国产免费人成在线观看| aa成人免费视频| 人妻av一区二区| 国产视频1区2区3区| 日本午夜小视频| 天天撸天天射| 中文字幕一区日韩精品| 成人午夜av电影| 亚洲级视频在线观看免费1级| 久久国产精品-国产精品| 国产三级视频网站| 国产在线精选视频| 色是在线视频| 麻豆精品在线看| 精品久久一区二区三区| 乱色588欧美| 日韩欧美国产成人精品免费| 日本三级电影网站| 国产精选久久| 久久免费看少妇高潮| 一区二区在线视频| 99在线免费视频观看| 亚洲影院在线播放| 日韩av资源| 亚洲欧美一区在线| 欧美在线免费观看视频| 春色成人在线视频| 99成人在线观看| 夜色av.com| 亚洲免费毛片| 亚洲成年人影院| 91人人爽人人爽人人精88v| 无码人妻一区二区三区免费n鬼沢| www.国产.com| 91桃色在线| 国产一二三精品| 日韩资源在线观看| 中文字幕日本最新乱码视频| hs视频在线观看| 女同一区二区免费aⅴ| 久久99久久久久| 精品偷拍各种wc美女嘘嘘| 亚洲美女自拍偷拍| 中文字幕永久免费视频| 麻豆传媒视频在线观看| 日韩精品电影在线观看| 日韩精品视频在线免费观看| 日本a在线天堂| 国产精品久久久久久久免费看| 蜜桃av在线免费观看| 日本亚洲天堂网| 一区二区在线免费视频| 成人性生生活性生交12| 中文字幕专区| 久久久久久爱| 一区二区三区久久| 国产精品高清一区二区三区| 欧美黑人猛猛猛| 尤物网站在线| 麻豆成人在线| 一区二区av在线| 亚洲成人天堂网| 国产成人夜间影院在线观看| 国产精品天天看天天狠| 天天超碰亚洲| 欧美日韩你懂的| 国产成人精品免费看在线播放| 一起草av在线| 欧美成人影院| 日韩理论在线观看| 国产视频一区二区不卡| 国产精品一区无码| 丁香花在线影院| 国产欧美一区二区精品性色超碰| 国产日本欧美一区二区三区在线 | av电影免费| 欧美.www| 亚洲欧美资源在线| 亚欧美一区二区三区| 免费看黄资源大全高清| 欧美成人激情| 亚洲а∨天堂久久精品喷水| 岳毛多又紧做起爽| 免费91视频| 欧美日韩国产免费观看| 亚洲一区二区黄| 中国特级黄色大片| 无限国产资源| 久久草av在线| 国产精品久久电影观看| 国产中文字幕免费| 操人在线观看| 亚洲五月六月丁香激情| 樱花www成人免费视频| 爱福利一区二区| 九九综合九九| 亚洲精品久久久久久久久| 6080国产精品| 中文字幕av高清在线观看| 国产一区二区在线影院| 国产女精品视频网站免费| 伊人久久一区二区三区| 免费网站www在线观看| 久久一日本道色综合久久| 欧美精品久久久久a| h色网站在线观看| 女人天堂av在线播放| 亚洲精品一卡二卡| 欧美h视频在线观看| 欧美妇乱xxxxx视频| 婷婷丁香综合| 久久国产精品99国产精| 国产传媒免费在线观看| 手机在线免费av| 亚洲成年人网站在线观看| 日韩一区二区高清视频| 午夜天堂在线观看| 亚洲欧美日韩视频二区| 欧美怡春院一区二区三区| 欧美在线观看不卡| 在线高清欧美| 91精品国产综合久久福利| 午夜视频在线观| 男女污视频在线观看| 国产调教视频一区| 在线亚洲美日韩| 九九热视频在线| 麻豆免费看一区二区三区| 91在线观看免费高清| 欧美一级特黄aaaaaa| 天天操夜夜操国产精品| 欧美黄色免费网站| 亚洲婷婷综合网| 激情小说一区| 中文字幕av一区| www青青草原| 精品久久在线| 亚洲激情视频网| 午夜激情视频在线播放| 午夜精品成人av| 欧美va亚洲va| 香蕉久久久久久久| 久久91导航| 亚洲电影在线看| 亚洲一级二级片| 久久亚洲精品中文字幕| 亚洲激情在线视频| 欧美激情精品久久| 日韩欧美激情电影| 在线播放亚洲激情| 欧美一级特黄视频| 婷婷成人在线| 午夜精品三级视频福利| 一区二区三区免费观看视频| 成人在线免费观看网站| 97色在线观看| 亚洲福利在线观看视频| 欧美体内she精视频在线观看| 日韩av高清不卡| 亚洲色图视频在线观看| 免费一区视频| 乱色588欧美| 18岁免费网站| 欧美国产成人精品| 欧美在线观看www| 久久久久久久久亚洲精品| 亚洲高清视频在线| 香蕉视频色在线观看| 99热99re6国产在线播放| 欧美大黄免费观看| 福利所第一导航| 香蕉久久精品| 国产精品电影观看| 日韩激情文学| 成年人午夜久久久| 日韩精品―中文字幕| 在线观看的av| 在线91免费看| 久久精品久久精品久久| 特黄特色欧美大片| 久久综合九色综合97_久久久| 亚洲福利二区| 91午夜视频| 国产精品30p| 久久久久久草| 久久综合九色九九| 久久久久久久久免费| 精品一区三区| www天堂在线观看| 亚洲啊啊啊啊啊| 久久精品国产99国产| av小说天堂网| 欧美日韩夫妻久久| 国产午夜免费视频| 日本xxxxx18| 美腿丝袜在线亚洲一区| 中文字幕码精品视频网站| 日韩精品在线观看网站| 欧美四级在线| 夫妇露脸对白88av| 欧美日韩国产中字| 老司机深夜福利在线观看| 国产又粗又猛又黄又爽| 中文字幕av导航| 日韩一区二区在线看| 激情国产一区| 一个人看的www在线免费观看 | 老司机2019福利精品视频导航| 欧美人与禽zoz0善交| 亚洲v精品v日韩v欧美v专区| 成人在线免费观看黄色| 97精品久久久午夜一区二区三区 | 国产精品对白交换视频| 中文字幕日本在线观看| 日韩有码免费视频| 欧美视频专区一二在线观看| 日本天堂影院在线视频| 亚洲综合123|