找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7534|回复: 13
打印 上一主题 下一主题
收起左侧

stm32c8t6单片机制作的多功能时钟闹钟 源程序

  [复制链接]
跳转到指定楼层
楼主
基于stm32c8t6,结合DHT12 、 DS1302 、OLED 屏 、 5独立按键,可实现5界面切换:第一界面时间显示,温湿度显示;第二界面秒表功能,按键开启、结束与清零;第三界面录放音,同步记录录放音时间显示 ;第四界面三闹钟,按键选择闹钟,并制定闹钟时间;第五界面时间调整,通过按键手动调节1302时间。同时具备简单串口接收功能,上位机发送1,
单片机即回传1.程序未优化,main函数1000多行基本全是界面设计,但逻辑比较清晰

单片机源程序如下:
  1. #include "Systerm.h"

  2. /*****************秒表变量*********************/
  3. u32 Stopwatch_counting = 0;
  4. u8 Stopwatch_Start = 0;
  5. u8 Stopwatch_RST = 0;
  6. /*****************录音变量*********************/
  7. u16 Luyin_counting = 0;
  8. u8 Luyin_start = 0;
  9. /*****************放音变量*********************/
  10. u16 Fangyin_counting = 0;
  11. u8 Fangyin_start = 0;
  12. /*****************时间调整*********************/
  13. int        clock_gengxin[7] = {0,1,1};
  14. int main(void)
  15. {       
  16.          static uint8 key=0;       
  17.          static uint8 key1=0;       
  18.          static uint8 key2=0;       
  19.                 
  20.          static uint8 key3=0;       
  21. //         static uint8 key4=0;       
  22.          
  23.          
  24.          
  25.          uint8 Add1=0,Add2=0,Add3=0,Add4=0,Add5=0,Add6 = 0;
  26.          uint8 ADd1=0;
  27.        
  28.          /*****************录放音变量*********************/
  29.          u32 Stopwatch_count[2];
  30.          u16 Luyin_count[2] = {0,0};
  31.          u16 Fangyin_count[2] = {0,0};
  32.          uint8 i;
  33.          /*****************闹钟变量*********************/
  34.          uint16 Shi = 0,Shi1 = 0,Shi2 = 0,Fen = 0,Fen1 = 0,Fen2 = 0,Miao = 0,Miao1 = 0,Miao2 = 0;
  35.          uint16 Alarm_clock_S1 = 0,Alarm_clock_F1 = 0,Alarm_clock_M1 = 0;
  36.          uint16 Alarm_clock_S2 = 0,Alarm_clock_F2 = 0,Alarm_clock_M2 = 0;
  37.          uint16 Alarm_clock_S3 = 0,Alarm_clock_F3 = 0,Alarm_clock_M3 = 0;
  38.        
  39.           /*****************时间调整变量*********************/
  40.          u32 t = 2000;
  41.          
  42.          Systerm_Init();
  43.                
  44.           
  45.          
  46.         while(1)
  47.         {
  48.        
  49.                 BLED_ON;                        //蓝色指示灯
  50.                
  51.                 DHT12_READ();                        //读取温湿度
  52.                 Ds1302_Readtime();        //读取时间
  53.                
  54.                 key = KEY_Scan();                //读取按键值
  55.                
  56.                 /*************************************************一界面------------------秒表*********************************************/
  57.                 if(key == 1)                                                                                                        //一界面------------------秒表
  58.                 {
  59.                                 if(!Add1)
  60.                                 {
  61.                                                 OLED_Clear();                //先清屏
  62.                                           Add1 = 1;
  63.                                 }
  64.                                 Add2 = 0;
  65.                                 Add3 = 0;
  66.                                 Add4 = 0;
  67.                                 Add5 = 0;
  68.                                 Add6 = 0;
  69.                        
  70.                                 for(i=10;i<12;i++)
  71.                                 {
  72.                                         OLED_P16x16Ch(46+(i-10)*16,0,i);//一界面显示“秒表”
  73.                                 }
  74.                                 for(i=14;i<16;i++)
  75.                                 {
  76.                                         OLED_P16x8Ch(1+(i-14)*16,3,i);//一界面显示“计时”
  77.                                 }
  78.                                 if(KEY2==1)
  79.                                 {
  80.                                                 Stopwatch_Start = 1;
  81.                                 }
  82.                                 else if(KEY3==1)
  83.                                 {
  84.                                                 Stopwatch_Start = 0;
  85.                                 }
  86.                                 else if(WK_UP==1)
  87.                                 {
  88.                                                 Stopwatch_counting = 0;
  89.                                                 Stopwatch_Start = 0;
  90.                                 }
  91.                                
  92.                                 Stopwatch_count[1] = Stopwatch_counting/10;
  93.                                 Stopwatch_count[0] = Stopwatch_counting%10;
  94.                                
  95.                                 OLED_F6x8Str1(84,6,Stopwatch_count[1],4);
  96.                                 OLED_P6x8Str(108,6,".");
  97.                                 OLED_F6x8Str1(114,6,Stopwatch_count[0],1);
  98.                 }
  99.                 /*************************************************二界面------------------录放音*********************************************/
  100.                 else if(key == 2)                                                                                //二界面------------------录放音
  101.                 {
  102.                                 if(!Add2)
  103.                                 {
  104.                                                 OLED_Clear();                //先清屏
  105.                                           Add2 = 1;
  106.                                 }
  107.                                 Add1 = 0;
  108.                                 Add3 = 0;
  109.                                 Add4 = 0;
  110.                                 Add5 = 0;
  111.                                 Add6 = 0;
  112.                                
  113.                                 for(i=12;i<15;i++)
  114.                                 {
  115.                                         OLED_P16x16Ch(38+(i-12)*16,0,i);//二界面显示“录放音”
  116.                                 }
  117.                                
  118.                                 OLED_P16x16Ch(5,3,12);//二界面显示“录”
  119.                                 OLED_P16x16Ch(5+16,3,14);//二界面显示“音”
  120.                                 OLED_P16x16Ch(5+32,3,23);//二界面显示“:”
  121.                                
  122.                                 OLED_P16x16Ch(5,6,13);//二界面显示“放”
  123.                                 OLED_P16x16Ch(5+16,6,14);//二界面显示“音”
  124.                                 OLED_P16x16Ch(5+32,6,23);//二界面显示“:”
  125.                                 if(Luyin_counting<100)
  126.                                 {
  127.                                                 OLED_F6x8Str1(104,4,Luyin_count[1],2);
  128.                                                 OLED_P6x8Str(116,4,".");
  129.                                                 OLED_F6x8Str1(122,4,Luyin_count[0],1);
  130.                                                
  131.                                                 OLED_F6x8Str1(104,7,Fangyin_count[1],2);
  132.                                                 OLED_P6x8Str(116,7,".");
  133.                                                 OLED_F6x8Str1(122,7,Fangyin_count[0],1);
  134.                                 }
  135.                                 /*************************************************录音*********************************************/
  136.                                 if(KEY4 == 1)                                                                               
  137.                                 {
  138.                                                
  139.                                                 if(Luyin_counting>100)
  140.                                                 {
  141.                                                                
  142.                                                                 Luyin_start = 0;
  143.                                                                 for(i=24;i<29;i++)
  144.                                                                 {
  145.                                                                         OLED_P16x16Ch(55+(i-24)*16,3,i);//二界面显示“录音超时”
  146.                                                                         ADd1 = 1;
  147.                                                                 }
  148.                                                 }
  149.                                                 else
  150.                                                 {
  151.                                                                 LY_start;
  152.                                                                 Luyin_start = 1;
  153.                                                        
  154.                                                                 for(i=16;i<18;i++)
  155.                                                                 {
  156.                                                                         OLED_P16x8Ch(55+(i-16)*16,4,i);//二界面显示“开始”
  157.                                                                 }
  158.                                                                 Luyin_count[1] = Luyin_counting/10;
  159.                                                                 Luyin_count[0] = Luyin_counting%10;
  160.                                                 }
  161.                                                
  162.                                 }
  163.                                 else
  164.                                 {
  165.                                                                 Luyin_counting = 0;
  166.                                                                 LY_stop;
  167.                                                                 Luyin_start = 0;
  168.                                                                 if(ADd1 == 1)
  169.                                                                 {
  170.                                                                                 ADd1 = 0;
  171.                                                                                 for(i=55;i<128;i++)
  172.                                                                                 {
  173.                                                                                         OLED_P6x8Str(i,3," ");
  174.                                                                                         OLED_P6x8Str(i,4," ");
  175.                                                                                 }
  176.                                                                 }
  177.                                                                 for(i=18;i<20;i++)
  178.                                                                 {
  179.                                                                         OLED_P16x8Ch(55+(i-18)*16,4,i);//二界面显示“结束”
  180.                                                                 }
  181.                                 }
  182.                                 /*************************************************放音*********************************************/
  183.                                 if(WK_UP == 1)
  184.                                 {
  185.                                                 BF_start;
  186.                                                 Fangyin_start = 1;
  187.                                                
  188.                                                 for(i=16;i<18;i++)
  189.                                                 {
  190.                                                         OLED_P16x8Ch(55+(i-16)*16,7,i);//二界面显示“开始”
  191.                                                 }
  192.                                 }
  193.                                 Fangyin_count[1] = Fangyin_counting/10;
  194.                                 Fangyin_count[0] = Fangyin_counting%10;

  195.                                 if(Fangyin_counting>Luyin_count[1]*10+Luyin_count[0])
  196.                                 {
  197.                                                 TBF_stop;
  198.                                                 Fangyin_start = 0;
  199.                                                 Fangyin_counting =0;
  200.                                                 for(i=18;i<20;i++)
  201.                                                 {
  202.                                                         OLED_P16x8Ch(55+(i-18)*16,7,i);//二界面显示“结束”
  203.                                                 }
  204.                                 }

  205.                 }
  206.                 /*************************************************三界面------------------闹钟*********************************************/
  207.                 else if(key == 3)
  208.                 {
  209.                                 if(!Add3)
  210.                                 {
  211.                                                 OLED_Clear();                //先清屏
  212.                                           Add3 = 1;
  213.                                 }
  214.                                 Add1 = 0;
  215.                                 Add2 = 0;
  216.                                 Add4 = 0;
  217.                                 Add5 = 0;
  218.                                 Add6 = 0;
  219.                                
  220.                                 for(i=29;i<31;i++)
  221.                                 {
  222.                                         OLED_P16x16Ch(46+(i-29)*16,0,i);//三界面显示“闹钟”
  223.                                 }

  224.                                 key1 = KEY_Scan2();                //读取按键值
  225.                
  226.                                 if(key1 == 1)
  227.                                 {
  228.                                                 for(i=23;i<26;i++)
  229.                                                 {
  230.                                                         OLED_P16x8Ch(5+(i-23)*16,5,i);//三界面显示“定时二”
  231.                                                 }
  232.                                                 OLED_P16x8Ch(5+3*16,5,29);//三界面显示“:”
  233.                                                 for(i=26;i<29;i++)
  234.                                                 {
  235.                                                         OLED_P16x8Ch(5+(i-26)*16,7,i);//三界面显示“定时三”
  236.                                                 }
  237.                                                 OLED_P16x8Ch(5+3*16,5,29);//三界面显示“:”
  238.                                                 OLED_F6x8Str1(67,5,Shi1,2);                //shi
  239.                                                 OLED_P6x8Str(82,5,":");
  240.                                                 OLED_F6x8Str1(91,5,Fen1,2);                //shi
  241.                                                 OLED_P6x8Str(106,5,":");
  242.                                                 OLED_F6x8Str1(115,5,Miao1,2);                //shi
  243.                                                
  244.                                                 OLED_P16x8Ch(5+3*16,7,29);//三界面显示“:”
  245.                                                 OLED_F6x8Str1(67,7,Shi2,2);                //shi
  246.                                                 OLED_P6x8Str(82,7,":");
  247.                                                 OLED_F6x8Str1(91,7,Fen2,2);                //shi
  248.                                                 OLED_P6x8Str(106,7,":");
  249.                                                 OLED_F6x8Str1(115,7,Miao2,2);                //shi
  250.                                                 /***************************上面是把上一界面消掉*********************************/
  251.                                                 for(i=20;i<23;i++)
  252.                                                 {
  253.                                                         OLED_P16x8Ch1(5+(i-20)*16,3,i);//三界面显示“定时一”
  254.                                                 }
  255.                                                 OLED_P16x8Ch1(5+3*16,3,29);//三界面显示“:”
  256.                                                 key2 = KEY_Scan3();                //读取按键值
  257.                                                 if(key2 == 1)
  258.                                                 {
  259.                                                                 OLED_F6x8Str2(67,3,Shi,2);                //shi
  260.                                                                 OLED_P6x8Str(82,3,":");
  261.                                                                 OLED_F6x8Str1(91,3,Fen,2);                //shi
  262.                                                                 OLED_P6x8Str(106,3,":");
  263.                                                                 OLED_F6x8Str1(115,3,Miao,2);                //shi
  264.                                                                 if(KEY4 == 1)
  265.                                                                 {
  266.                                                                                 delay_ms(100);
  267.                                                                                 if(KEY4 == 1)
  268.                                                                                 {
  269.                                                                                         Shi++;
  270.                                                                                         if(Shi>24)
  271.                                                                                         {
  272.                                                                                                         Shi = 0;
  273.                                                                                         }
  274.                                                                                 }
  275.                                                                 }
  276.                                                 }
  277.                                                 else if(key2 == 2)
  278.                                                 {
  279.                                                                 OLED_F6x8Str1(67,3,Shi,2);                //shi
  280.                                                                 OLED_P6x8Str(82,3,":");
  281.                                                                 OLED_F6x8Str2(91,3,Fen,2);                //shi
  282.                                                                 OLED_P6x8Str(106,3,":");
  283.                                                                 OLED_F6x8Str1(115,3,Miao,2);                //shi
  284.                                                                 if(KEY4 == 1)
  285.                                                                 {
  286.                                                                                 delay_ms(100);
  287.                                                                                 if(KEY4 == 1)
  288.                                                                                 {
  289.                                                                                         Fen++;
  290.                                                                                         if(Fen>60)
  291.                                                                                         {
  292.                                                                                                         Fen = 0;
  293.                                                                                         }
  294.                                                                                 }
  295.                                                                 }
  296.                                                 }
  297.                                                 else if(key2 == 3)
  298.                                                 {
  299.                                                                 OLED_F6x8Str1(67,3,Shi,2);                //shi
  300.                                                                 OLED_P6x8Str(82,3,":");
  301.                                                                 OLED_F6x8Str1(91,3,Fen,2);                //shi
  302.                                                                 OLED_P6x8Str(106,3,":");
  303.                                                                 OLED_F6x8Str2(115,3,Miao,2);                //shi
  304.                                                                 if(KEY4 == 1)
  305.                                                                         {
  306.                                                                                         delay_ms(100);
  307.                                                                                         if(KEY4 == 1)
  308.                                                                                         {
  309.                                                                                                 Miao++;
  310.                                                                                                 if(Miao>60)
  311.                                                                                                 {
  312.                                                                                                                 Miao = 0;
  313.                                                                                                 }
  314.                                                                                         }
  315.                                                                         }
  316.                                                 }
  317.                                                 else
  318.                                                 {
  319.                                                                 OLED_F6x8Str1(67,3,Shi,2);                //shi
  320.                                                                 OLED_P6x8Str(82,3,":");
  321.                                                                 OLED_F6x8Str1(91,3,Fen,2);                //shi
  322.                                                                 OLED_P6x8Str(106,3,":");
  323.                                                                 OLED_F6x8Str1(115,3,Miao,2);                //shi
  324.                                                 }
  325.                                                 if(WK_UP == 1)
  326.                                                 {
  327.                                                                
  328.                                                                 Alarm_clock_S1 = Shi;
  329.                                                                 Alarm_clock_F1 = Fen;
  330.                                                                 Alarm_clock_M1 = Miao;

  331.                                                                 counting = 0;
  332.                                                 }
  333.                                                 /***************************界面准备完毕,开始变量*********************************/
  334.                                                
  335.                                 }
  336.                                 else if(key1 == 2)
  337.                                 {
  338.                                                 for(i=26;i<29;i++)
  339.                                                 {
  340.                                                         OLED_P16x8Ch(5+(i-26)*16,7,i);//三界面显示“定时三”
  341.                                                 }
  342.                                                 OLED_P16x8Ch(5+3*16,7,29);//三界面显示“:”
  343.                                                 for(i=20;i<23;i++)
  344.                                                 {
  345.                                                         OLED_P16x8Ch(5+(i-20)*16,3,i);//三界面显示“定时一”
  346.                                                 }
  347.                                                 OLED_P16x8Ch(5+3*16,3,29);//三界面显示“:”
  348.                                                 OLED_F6x8Str1(67,3,Shi,2);                //shi
  349.                                                 OLED_P6x8Str(82,3,":");
  350.                                                 OLED_F6x8Str1(91,3,Fen,2);                //shi
  351.                                                 OLED_P6x8Str(106,3,":");
  352.                                                 OLED_F6x8Str1(115,3,Miao,2);                //shi
  353.                                                
  354.                                                 OLED_F6x8Str1(67,7,Shi2,2);                //shi
  355.                                                 OLED_P6x8Str(82,7,":");
  356.                                                 OLED_F6x8Str1(91,7,Fen2,2);                //shi
  357.                                                 OLED_P6x8Str(106,7,":");
  358.                                                 OLED_F6x8Str1(115,7,Miao2,2);                //shi
  359.                                                 /***************************上面是把上一界面消掉*********************************/
  360.                                                 for(i=23;i<26;i++)
  361.                                                 {
  362.                                                         OLED_P16x8Ch1(5+(i-23)*16,5,i);//三界面显示“定时二”
  363.                                                 }
  364.                                                 OLED_P16x8Ch1(5+3*16,5,29);//三界面显示“:”
  365.                                                 key2 = KEY_Scan3();                //读取按键值
  366.                                                 if(key2 == 1)
  367.                                                 {
  368.                                                                 OLED_F6x8Str2(67,5,Shi1,2);                //shi
  369.                                                                 OLED_P6x8Str(82,5,":");
  370.                                                                 OLED_F6x8Str1(91,5,Fen1,2);                //shi
  371.                                                                 OLED_P6x8Str(106,5,":");
  372.                                                                 OLED_F6x8Str1(115,5,Miao1,2);                //shi
  373.                                                                 if(KEY4 == 1)
  374.                                                                 {
  375.                                                                                 delay_ms(100);
  376.                                                                                 if(KEY4 == 1)
  377.                                                                                 {
  378.                                                                                         Shi1++;
  379.                                                                                         if(Shi1>23)
  380.                                                                                         {
  381.                                                                                                         Shi1 = 0;
  382.                                                                                         }
  383.                                                                                 }
  384.                                                                 }
  385.                                                        
  386.                                                 }
  387.                                                 else if(key2 == 2)
  388.                                                 {
  389.                                                                 OLED_F6x8Str1(67,5,Shi1,2);                //shi
  390.                                                                 OLED_P6x8Str(82,5,":");
  391.                                                                 OLED_F6x8Str2(91,5,Fen1,2);                //shi
  392.                                                                 OLED_P6x8Str(106,5,":");
  393.                                                                 OLED_F6x8Str1(115,5,Miao1,2);                //shi
  394.                                                                 if(KEY4 == 1)
  395.                                                                 {
  396.                                                                                 delay_ms(100);
  397.                                                                                 if(KEY4 == 1)
  398.                                                                                 {
  399.                                                                                         Fen1++;
  400.                                                                                         if(Fen1>60)
  401.                                                                                         {
  402.                                                                                                         Fen1 = 0;
  403.                                                                                         }
  404.                                                                                 }
  405.                                                                 }
  406.                                                 }
  407.                                                 else if(key2 == 3)
  408.                                                 {
  409.                                                                 OLED_F6x8Str1(67,5,Shi1,2);                //shi
  410.                                                                 OLED_P6x8Str(82,5,":");
  411.                                                                 OLED_F6x8Str1(91,5,Fen1,2);                //shi
  412.                                                                 OLED_P6x8Str(106,5,":");
  413.                                                                 OLED_F6x8Str2(115,5,Miao1,2);                //shi
  414.                                                                 if(KEY4 == 1)
  415.                                                                         {
  416.                                                                                         delay_ms(100);
  417.                                                                                         if(KEY4 == 1)
  418.                                                                                         {
  419.                                                                                                 Miao1++;
  420.                                                                                                 if(Miao1>60)
  421.                                                                                                 {
  422.                                                                                                                 Miao1 = 0;
  423.                                                                                                 }
  424.                                                                                         }
  425.                                                                         }
  426.                                                 }
  427.                                                 else
  428.                                                 {
  429.                                                                 OLED_F6x8Str1(67,5,Shi1,2);                //shi
  430.                                                                 OLED_P6x8Str(82,5,":");
  431.                                                                 OLED_F6x8Str1(91,5,Fen1,2);                //shi
  432.                                                                 OLED_P6x8Str(106,5,":");
  433.                                                                 OLED_F6x8Str1(115,5,Miao1,2);                //shi
  434.                                                                
  435.                                                 }
  436.                                                 if(WK_UP == 1)
  437.                                                                 {
  438.                                                                                
  439.                                                                                 Alarm_clock_S2 = Shi1;
  440.                                                                                 Alarm_clock_F2 = Fen1;
  441.                                                                                 Alarm_clock_M2 = Miao1;

  442.                                                                                 counting = 0;
  443.                                                                 }
  444.                                                 /***************************界面准备完毕,开始变量*********************************/
  445.                                                
  446.                                 }
  447.                                 else if(key1 == 3)
  448.                                 {
  449.                                                 for(i=20;i<23;i++)
  450.                                                 {
  451.                                                         OLED_P16x8Ch(5+(i-20)*16,3,i);//三界面显示“定时一”
  452.                                                 }
  453.                                                 OLED_P16x8Ch(5+3*16,3,29);//三界面显示“:”
  454.                                                 for(i=23;i<26;i++)
  455.                                                 {
  456.                                                         OLED_P16x8Ch(5+(i-23)*16,5,i);//三界面显示“定时二”
  457.                                                 }
  458.                                                 OLED_P16x8Ch(5+3*16,5,29);//三界面显示“:”
  459.                                                 OLED_F6x8Str1(67,3,Shi,2);                //shi
  460.                                                 OLED_P6x8Str(82,3,":");
  461.                                                 OLED_F6x8Str1(91,3,Fen,2);                //shi
  462.                                                 OLED_P6x8Str(106,3,":");
  463.                                                 OLED_F6x8Str1(115,3,Miao,2);                //shi
  464.                                                
  465.                                                 OLED_F6x8Str1(67,5,Shi1,2);                //shi
  466.                                                 OLED_P6x8Str(82,5,":");
  467.                                                 OLED_F6x8Str1(91,5,Fen1,2);                //shi
  468.                                                 OLED_P6x8Str(106,5,":");
  469.                                                 OLED_F6x8Str1(115,5,Miao1,2);                //shi
  470.                                                 /***************************上面是把上一界面消掉*********************************/
  471.                                                 for(i=26;i<29;i++)
  472.                                                 {
  473.                                                         OLED_P16x8Ch1(5+(i-26)*16,7,i);//三界面显示“定时三”
  474.                                                 }
  475.                                                 OLED_P16x8Ch1(5+3*16,7,29);//三界面显示“:”
  476.                                                 key2 = KEY_Scan3();                //读取按键值
  477.                                                 if(key2 == 1)
  478.                                                 {
  479.                                                                 OLED_F6x8Str2(67,7,Shi2,2);                //shi
  480.                                                                 OLED_P6x8Str(82,7,":");
  481.                                                                 OLED_F6x8Str1(91,7,Fen2,2);                //shi
  482.                                                                 OLED_P6x8Str(106,7,":");
  483.                                                                 OLED_F6x8Str1(115,7,Miao2,2);                //shi
  484.                                                                 if(KEY4 == 1)
  485.                                                                 {
  486.                                                                                 delay_ms(100);
  487.                                                                                 if(KEY4 == 1)
  488.                                                                                 {
  489.                                                                                         Shi2++;
  490.                                                                                         if(Shi2>23)
  491.                                                                                         {
  492.                                                                                                         Shi2 = 0;
  493.                                                                                         }
  494.                                                                                 }
  495.                                                                 }
  496.                                                 }
  497.                                                 else if(key2 == 2)
  498.                                                 {
  499.                                                                 OLED_F6x8Str1(67,7,Shi2,2);                //shi
  500.                                                                 OLED_P6x8Str(82,7,":");
  501.                                                                 OLED_F6x8Str2(91,7,Fen2,2);                //shi
  502.                                                                 OLED_P6x8Str(106,7,":");
  503.                                                                 OLED_F6x8Str1(115,7,Miao2,2);                //shi
  504.                                                                 if(KEY4 == 1)
  505.                                                                 {
  506.                                                                                 delay_ms(100);
  507.                                                                                 if(KEY4 == 1)
  508.                                                                                 {
  509.                                                                                         Fen2++;
  510.                                                                                         if(Fen2>59)
  511.                                                                                         {
  512.                                                                                                         Fen2 = 0;
  513.                                                                                         }
  514.                                                                                 }
  515.                                                                 }
  516.                                                 }
  517.                                                 else if(key2 == 3)
  518.                                                 {
  519.                                                                 OLED_F6x8Str1(67,7,Shi2,2);                //shi
  520.                                                                 OLED_P6x8Str(82,7,":");
  521.                                                                 OLED_F6x8Str1(91,7,Fen2,2);                //shi
  522.                                                                 OLED_P6x8Str(106,7,":");
  523.                                                                 OLED_F6x8Str2(115,7,Miao2,2);                //shi
  524.                                                                 if(KEY4 == 1)
  525.                                                                         {
  526.                                                                                         delay_ms(100);
  527.                                                                                         if(KEY4 == 1)
  528.                                                                                         {
  529.                                                                                                 Miao2++;
  530.                                                                                                 if(Miao2>59)
  531.                                                                                                 {
  532.                                                                                                                 Miao2 = 0;
  533.                                                                                                 }
  534.                                                                                         }
  535.                                                                         }
  536.                                                 }
  537.                                                 else
  538.                                                 {
  539.                                                                 OLED_F6x8Str1(67,7,Shi2,2);                //shi
  540.                                                                 OLED_P6x8Str(82,7,":");
  541.                                                                 OLED_F6x8Str1(91,7,Fen2,2);                //shi
  542.                                                                 OLED_P6x8Str(106,7,":");
  543.                                                                 OLED_F6x8Str1(115,7,Miao2,2);                //shi
  544.                                                                
  545.                                                 }
  546.                                                 if(WK_UP == 1)
  547.                                                                 {
  548.                                                                                
  549.                                                                                 Alarm_clock_S2 = Shi2;
  550.                                                                                 Alarm_clock_F2 = Fen2;
  551.                                                                                 Alarm_clock_M2 = Miao2;

  552.                                                                                 counting = 0;
  553.                                                                 }
  554.                                                 /***************************界面准备完毕,开始变量*********************************/
  555.                                                
  556.                                 }
  557.                                 else
  558.                                 {
  559.                                                 /*******************************定时一*******************************/
  560.                                                 for(i=20;i<23;i++)
  561.                                                 {
  562.                                                         OLED_P16x8Ch(5+(i-20)*16,3,i);//三界面显示“定时一”
  563.                                                 }
  564.                                                 OLED_P16x8Ch(5+3*16,3,29);//三界面显示“:”
  565.                                                
  566.                                                 OLED_F6x8Str1(67,3,Shi,2);                //shi
  567.                                                 OLED_P6x8Str(82,3,":");
  568.                                                 OLED_F6x8Str1(91,3,Fen,2);                //shi
  569.                                                 OLED_P6x8Str(106,3,":");
  570.                                                 OLED_F6x8Str1(115,3,Miao,2);                //shi
  571.                                                
  572.                                                 /*******************************定时二*******************************/
  573.                                                 for(i=23;i<26;i++)
  574.                                                 {
  575.                                                         OLED_P16x8Ch(5+(i-23)*16,5,i);//三界面显示“定时二”
  576.                                                 }
  577.                                                 OLED_P16x8Ch(5+3*16,5,29);//三界面显示“:”
  578.                                                
  579.                                                 OLED_F6x8Str1(67,5,Shi1,2);                //shi
  580.                                                 OLED_P6x8Str(82,5,":");
  581.                                                 OLED_F6x8Str1(91,5,Fen1,2);                //shi
  582.                                                 OLED_P6x8Str(106,5,":");
  583.                                                 OLED_F6x8Str1(115,5,Miao1,2);                //shi
  584.                                                
  585.                                                 /*******************************定时三*******************************/
  586.                                                 for(i=26;i<29;i++)
  587.                                                 {
  588.                                                         OLED_P16x8Ch(5+(i-26)*16,7,i);//三界面显示“定时三”
  589.                                                 }
  590.                                                 OLED_P16x8Ch(5+3*16,7,29);//三界面显示“:”
  591.                                                
  592.                                                 OLED_F6x8Str1(67,7,Shi2,2);                //shi
  593.                                                 OLED_P6x8Str(82,7,":");
  594.                                                 OLED_F6x8Str1(91,7,Fen2,2);                //shi
  595.                                                 OLED_P6x8Str(106,7,":");
  596.                                                 OLED_F6x8Str1(115,7,Miao2,2);                //shi
  597.                                                
  598.                                                 /*******************************定时初始界面结束*******************************/
  599.                                 }
  600.                                
  601.                 }
  602.                 /*************************************************四界面------------------时间调整*********************************************/
  603.                 else if(key == 4)
  604.                 {
  605.                                 if(!Add4)
  606.                                 {
  607.                                                 OLED_Clear();                //先清屏
  608.                                           Add4 = 1;
  609.                                 }
  610.                                 Add1 = 0;
  611.                                 Add2 = 0;
  612.                                 Add3 = 0;
  613.                                 Add5 = 0;
  614.                                 Add6 = 0;
  615.                                
  616.                                 for(i=31;i<35;i++)
  617.                                 {
  618.                                         OLED_P16x16Ch(28+(i-31)*16,0,i);//三界面显示“闹钟”
  619.                                 }
  620.                                
  621.                                 key3 = KEY_Scan21();
  622.                                
  623.                                
  624.                                 if(key3 == 1)
  625.                                 {
  626.                                                 OLED_P16x8Ch(5,3,30);//四界面显示“时”
  627.                                                 OLED_P16x8Ch(5,6,31);//四界面显示“间”
  628.                                        
  629.                                                 OLED_P16x8Ch(40,2,0);//四界面显示“年”
  630.                                                 OLED_P16x8Ch(61,2,29);//四界面显示“:”
  631.                                                 OLED_P16x8Ch(40,3,1);//四界面显示“月”
  632.                                                 OLED_P16x8Ch(61,3,29);//四界面显示“:”
  633.                                                 OLED_P16x8Ch(40,4,2);//四界面显示“日”
  634.                                                 OLED_P16x8Ch(61,4,29);//四界面显示“:”
  635.                                                 OLED_P16x8Ch(40,5,3);//四界面显示“时”
  636.                                                 OLED_P16x8Ch(61,5,29);//四界面显示“:”
  637.                                                 OLED_P16x8Ch(40,6,4);//四界面显示“分”
  638.                                                 OLED_P16x8Ch(61,6,29);//四界面显示“:”
  639.                                                 OLED_P16x8Ch(40,7,5);//四界面显示“秒”
  640.                                                 OLED_P16x8Ch(61,7,29);//四界面显示“:”
  641.                                        
  642.                                                 OLED_F6x8Str2(96,2,t+clock_gengxin[0],4);                //shi
  643.                                                 OLED_F6x8Str1(108,3,clock_gengxin[1],2);                //shi
  644.                                                 OLED_F6x8Str1(108,4,clock_gengxin[2],2);                //shi
  645.                                                 OLED_F6x8Str1(108,5,clock_gengxin[3],2);                //shi
  646.                                                 OLED_F6x8Str1(108,6,clock_gengxin[4],2);                //shi
  647.                                                 OLED_F6x8Str1(108,7,clock_gengxin[5],2);                //shi
  648.                                                 if(KEY3 == 1)
  649.                                                 {
  650.                                                                 delay_ms(100);
  651.                                                                 if(KEY3 == 1)
  652.                                                                 {
  653.                                                                         clock_gengxin[0]++;
  654.                                                                         if(clock_gengxin[0]>99)
  655.                                                                         {
  656.                                                                                         clock_gengxin[0] = 0;
  657.                                                                                         t+=100;
  658.                                                                         }
  659.                                                                 }
  660.                                                 }
  661.                                                 else if(KEY4 == 1)
  662.                                                 {
  663.                                                                 delay_ms(100);
  664.                                                                 if(KEY4 == 1)
  665.                                                                 {
  666.                                                                         clock_gengxin[0]--;
  667.                                                                         if(clock_gengxin[0]<0)
  668.                                                                         {
  669.                                                                                         clock_gengxin[0] = 99;
  670.                                                                                         t-=100;
  671.                                                                         }
  672.                                                                 }
  673.                                                 }
  674.                                                
  675.                                 }
  676.                                 else if(key3 == 2)
  677.                                 {
  678.                                                 OLED_P16x8Ch(5,3,30);//四界面显示“时”
  679.                                                 OLED_P16x8Ch(5,6,31);//四界面显示“间”
  680.                                        
  681.                                                 OLED_P16x8Ch(40,2,0);//四界面显示“年”
  682.                                                 OLED_P16x8Ch(61,2,29);//四界面显示“:”
  683.                                                 OLED_P16x8Ch(40,3,1);//四界面显示“月”
  684.                                                 OLED_P16x8Ch(61,3,29);//四界面显示“:”
  685.                                                 OLED_P16x8Ch(40,4,2);//四界面显示“日”
  686.                                                 OLED_P16x8Ch(61,4,29);//四界面显示“:”
  687.                                                 OLED_P16x8Ch(40,5,3);//四界面显示“时”
  688.                                                 OLED_P16x8Ch(61,5,29);//四界面显示“:”
  689.                                                 OLED_P16x8Ch(40,6,4);//四界面显示“分”
  690.                                                 OLED_P16x8Ch(61,6,29);//四界面显示“:”
  691.                                                 OLED_P16x8Ch(40,7,5);//四界面显示“秒”
  692.                                                 OLED_P16x8Ch(61,7,29);//四界面显示“:”
  693.                                        
  694.                                                 OLED_F6x8Str1(96,2,2000+clock_gengxin[0],4);                //shi
  695.                                                 OLED_F6x8Str2(108,3,clock_gengxin[1],2);                //shi
  696.                                                 OLED_F6x8Str1(108,4,clock_gengxin[2],2);                //shi
  697.                                                 OLED_F6x8Str1(108,5,clock_gengxin[3],2);                //shi
  698.                                                 OLED_F6x8Str1(108,6,clock_gengxin[4],2);                //shi
  699.                                                 OLED_F6x8Str1(108,7,clock_gengxin[5],2);                //shi
  700.                                                 if(KEY3 == 1)
  701.                                                 {
  702.                                                                 delay_ms(100);
  703.                                                                 if(KEY3 == 1)
  704.                                                                 {
  705.                                                                         clock_gengxin[1]++;
  706.                                                                         if(clock_gengxin[1]>12)
  707.                                                                         {
  708.                                                                                         clock_gengxin[1] = 1;
  709.                                                                         }
  710.                                                                 }
  711.                                                 }
  712.                                                 else if(KEY4 == 1)
  713.                                                 {
  714.                                                                 delay_ms(100);
  715.                                                                 if(KEY4 == 1)
  716.                                                                 {
  717.                                                                         clock_gengxin[1]--;
  718.                                                                         if(clock_gengxin[1]<1)
  719.                                                                         {
  720.                                                                                         clock_gengxin[1] = 12;
  721.                                                                         }
  722.                                                                 }
  723.                                                 }
  724.                                 }
  725.                                 else if(key3 == 3)
  726.                                 {
  727.                                                 OLED_P16x8Ch(5,3,30);//四界面显示“时”
  728.                                                 OLED_P16x8Ch(5,6,31);//四界面显示“间”
  729.                                        
  730.                                                 OLED_P16x8Ch(40,2,0);//四界面显示“年”
  731.                                                 OLED_P16x8Ch(61,2,29);//四界面显示“:”
  732.                                                 OLED_P16x8Ch(40,3,1);//四界面显示“月”
  733.                                                 OLED_P16x8Ch(61,3,29);//四界面显示“:”
  734.                                                 OLED_P16x8Ch(40,4,2);//四界面显示“日”
  735.                                                 OLED_P16x8Ch(61,4,29);//四界面显示“:”
  736.                                                 OLED_P16x8Ch(40,5,3);//四界面显示“时”
  737.                                                 OLED_P16x8Ch(61,5,29);//四界面显示“:”
  738.                                                 OLED_P16x8Ch(40,6,4);//四界面显示“分”
  739.                                                 OLED_P16x8Ch(61,6,29);//四界面显示“:”
  740.                                                 OLED_P16x8Ch(40,7,5);//四界面显示“秒”
  741.                                                 OLED_P16x8Ch(61,7,29);//四界面显示“:”
  742.                                        
  743.                                                 OLED_F6x8Str1(96,2,2000+clock_gengxin[0],4);                //shi
  744.                                                 OLED_F6x8Str1(108,3,clock_gengxin[1],2);                //shi
  745.                                                 OLED_F6x8Str2(108,4,clock_gengxin[2],2);                //shi
  746.                                                 OLED_F6x8Str1(108,5,clock_gengxin[3],2);                //shi
  747.                                                 OLED_F6x8Str1(108,6,clock_gengxin[4],2);                //shi
  748.                                                 OLED_F6x8Str1(108,7,clock_gengxin[5],2);                //shi
  749.                                                 if(KEY3 == 1)
  750.                                                 {
  751.                                                                 delay_ms(100);
  752.                                                                 if(KEY3 == 1)
  753.                                                                 {
  754.                                                                         clock_gengxin[2]++;
  755.                                                                         if(clock_gengxin[2]>31)
  756.                                                                         {
  757.                                                                                         clock_gengxin[2] = 1;
  758.                                                                         }                                                                       
  759.                                                                 }
  760.                                                 }
  761.                                                 else if(KEY4 == 1)
  762.                                                 {
  763.                                                                 delay_ms(100);
  764.                                                                 if(KEY4 == 1)
  765.                                                                 {
  766.                                                                         clock_gengxin[2]--;
  767.                                                                         if(clock_gengxin[2]<1)
  768.                                                                         {
  769.                                                                                         clock_gengxin[2] = 31;
  770.                                                                         }
  771.                                                                 }
  772.                                                 }
  773.                
  774.                                 }
  775.                                 else if(key3 == 4)
  776.                                 {
  777.                                                 OLED_P16x8Ch(5,3,30);//四界面显示“时”
  778.                                                 OLED_P16x8Ch(5,6,31);//四界面显示“间”
  779.                                        
  780.                                                 OLED_P16x8Ch(40,2,0);//四界面显示“年”
  781.                                                 OLED_P16x8Ch(61,2,29);//四界面显示“:”
  782.                                                 OLED_P16x8Ch(40,3,1);//四界面显示“月”
  783.                                                 OLED_P16x8Ch(61,3,29);//四界面显示“:”
  784.                                                 OLED_P16x8Ch(40,4,2);//四界面显示“日”
  785.                                                 OLED_P16x8Ch(61,4,29);//四界面显示“:”
  786.                                                 OLED_P16x8Ch(40,5,3);//四界面显示“时”
  787.                                                 OLED_P16x8Ch(61,5,29);//四界面显示“:”
  788.                                                 OLED_P16x8Ch(40,6,4);//四界面显示“分”
  789.                                                 OLED_P16x8Ch(61,6,29);//四界面显示“:”
  790.                                                 OLED_P16x8Ch(40,7,5);//四界面显示“秒”
  791.                                                 OLED_P16x8Ch(61,7,29);//四界面显示“:”
  792.                                        
  793.                                                 OLED_F6x8Str1(96,2,2000+clock_gengxin[0],4);                //shi
  794.                                                 OLED_F6x8Str1(108,3,clock_gengxin[1],2);                //shi
  795.                                                 OLED_F6x8Str1(108,4,clock_gengxin[2],2);                //shi
  796.                                                 OLED_F6x8Str2(108,5,clock_gengxin[3],2);                //shi
  797.                                                 OLED_F6x8Str1(108,6,clock_gengxin[4],2);                //shi
  798.                                                 OLED_F6x8Str1(108,7,clock_gengxin[5],2);                //shi
  799.                                                 if(KEY3 == 1)
  800.                                                 {
  801.                                                                 delay_ms(100);
  802.                                                                 if(KEY3 == 1)
  803.                                                                 {
  804.                                                                         clock_gengxin[3]++;
  805.                                                                         if(clock_gengxin[3]>23)
  806.                                                                         {
  807.                                                                                         clock_gengxin[3] = 0;
  808.                                                                         }
  809.                                                                 }
  810.                                                 }
  811.                                                 else if(KEY4 == 1)
  812.                                                 {
  813.                                                                 delay_ms(100);
  814.                                                                 if(KEY4 == 1)
  815.                                                                 {
  816.                                                                         clock_gengxin[3]--;
  817.                                                                         if(clock_gengxin[3]<1)
  818.                                                                         {
  819.                                                                                         clock_gengxin[3] = 24;
  820.                                                                         }
  821.                                                                 }
  822.                                                 }
  823.                                 }
  824.                                 else if(key3 == 5)
  825.                                 {
  826.                                                 OLED_P16x8Ch(5,3,30);//四界面显示“时”
  827.                                                 OLED_P16x8Ch(5,6,31);//四界面显示“间”
  828.                                        
  829.                                                 OLED_P16x8Ch(40,2,0);//四界面显示“年”
  830.                                                 OLED_P16x8Ch(61,2,29);//四界面显示“:”
  831.                                                 OLED_P16x8Ch(40,3,1);//四界面显示“月”
  832.                                                 OLED_P16x8Ch(61,3,29);//四界面显示“:”
  833.                                                 OLED_P16x8Ch(40,4,2);//四界面显示“日”
  834.                                                 OLED_P16x8Ch(61,4,29);//四界面显示“:”
  835.                                                 OLED_P16x8Ch(40,5,3);//四界面显示“时”
  836.                                                 OLED_P16x8Ch(61,5,29);//四界面显示“:”
  837.                                                 OLED_P16x8Ch(40,6,4);//四界面显示“分”
  838.                                                 OLED_P16x8Ch(61,6,29);//四界面显示“:”
  839.                                                 OLED_P16x8Ch(40,7,5);//四界面显示“秒”
  840.                                                 OLED_P16x8Ch(61,7,29);//四界面显示“:”
  841.                                        
  842.                                                 OLED_F6x8Str1(96,2,2000+clock_gengxin[0],4);                //shi
  843.                                                 OLED_F6x8Str1(108,3,clock_gengxin[1],2);                //shi
  844.                                                 OLED_F6x8Str1(108,4,clock_gengxin[2],2);                //shi
  845.                                                 OLED_F6x8Str1(108,5,clock_gengxin[3],2);                //shi
  846.                                                 OLED_F6x8Str2(108,6,clock_gengxin[4],2);                //shi
  847.                                                 OLED_F6x8Str1(108,7,clock_gengxin[5],2);                //shi
  848.                                                 if(KEY3 == 1)
  849.                                                 {
  850.                                                                 delay_ms(100);
  851.                                                                 if(KEY3 == 1)
  852.                                                                 {
  853.                                                                         clock_gengxin[4]++;
  854.                                                                         if(clock_gengxin[4]>59)
  855.                                                                         {
  856.                                                                                         clock_gengxin[4] = 0;
  857.                                                                         }
  858.                                                                 }
  859.                                                 }
  860.                                                 else if(KEY4 == 1)
  861.                                                 {
  862.                                                                 delay_ms(100);
  863.                                                                 if(KEY4 == 1)
  864.                                                                 {
  865.                                                                         clock_gengxin[4]--;
  866.                                                                         if(clock_gengxin[4]<0)
  867.                                                                         {
  868.                                                                                         clock_gengxin[4] = 59;
  869.                                                                         }
  870.                                                                 }
  871.                                                 }
  872.                                 }
  873.                                 else if(key3 == 6)
  874.                                 {
  875.                                                 OLED_P16x8Ch(5,3,30);//四界面显示“时”
  876.                                                 OLED_P16x8Ch(5,6,31);//四界面显示“间”
  877.                                        
  878.                                                 OLED_P16x8Ch(40,2,0);//四界面显示“年”
  879.                                                 OLED_P16x8Ch(61,2,29);//四界面显示“:”
  880.                                                 OLED_P16x8Ch(40,3,1);//四界面显示“月”
  881.                                                 OLED_P16x8Ch(61,3,29);//四界面显示“:”
  882.                                                 OLED_P16x8Ch(40,4,2);//四界面显示“日”
  883.                                                 OLED_P16x8Ch(61,4,29);//四界面显示“:”
  884.                                                 OLED_P16x8Ch(40,5,3);//四界面显示“时”
  885.                                                 OLED_P16x8Ch(61,5,29);//四界面显示“:”
  886.                                                 OLED_P16x8Ch(40,6,4);//四界面显示“分”
  887.                                                 OLED_P16x8Ch(61,6,29);//四界面显示“:”
  888.                                                 OLED_P16x8Ch(40,7,5);//四界面显示“秒”
  889.                                                 OLED_P16x8Ch(61,7,29);//四界面显示“:”
  890.                                        
  891.                                                 OLED_F6x8Str1(96,2,2000+clock_gengxin[0],4);                //shi
  892.                                                 OLED_F6x8Str1(108,3,clock_gengxin[1],2);                //shi
  893.                                                 OLED_F6x8Str1(108,4,clock_gengxin[2],2);                //shi
  894.                                                 OLED_F6x8Str1(108,5,clock_gengxin[3],2);                //shi
  895.                                                 OLED_F6x8Str1(108,6,clock_gengxin[4],2);                //shi
  896.                                                 OLED_F6x8Str2(108,7,clock_gengxin[5],2);                //shi
  897.                                                 if(KEY3 == 1)
  898.                                                 {
  899.                                                                 delay_ms(100);
  900.                                                                 if(KEY3 == 1)
  901.                                                                 {
  902.                                                                         clock_gengxin[5]++;
  903.                                                                         if(clock_gengxin[5]>59)
  904.                                                                         {
  905.                                                                                         clock_gengxin[5] = 0;
  906.                                                                         }
  907.                                                                 }
  908.                                                 }
  909.                                                 else if(KEY4 == 1)
  910.                                                 {
  911.                                                                 delay_ms(100);
  912.                                                                 if(KEY4 == 1)
  913.                                                                 {
  914.                                                                         clock_gengxin[5]--;
  915.                                                                         if(clock_gengxin[5]<0)
  916.                                                                         {
  917.                                                                                         clock_gengxin[5] = 59;
  918.                                                                         }
  919.                                                                 }
  920.                                                 }
  921.                                 }
  922.                                 else
  923.                                 {
  924.                                                
  925.                                                 OLED_P16x8Ch(5,3,30);//四界面显示“时”
  926.                                                 OLED_P16x8Ch(5,6,31);//四界面显示“间”
  927.                                        
  928.                                                 OLED_P16x8Ch(40,2,0);//四界面显示“年”
  929.                                                 OLED_P16x8Ch(61,2,29);//四界面显示“:”
  930.                                                 OLED_P16x8Ch(40,3,1);//四界面显示“月”
  931.                                                 OLED_P16x8Ch(61,3,29);//四界面显示“:”
  932.                                                 OLED_P16x8Ch(40,4,2);//四界面显示“日”
  933.                                                 OLED_P16x8Ch(61,4,29);//四界面显示“:”
  934.                                                 OLED_P16x8Ch(40,5,3);//四界面显示“时”
  935.                                                 OLED_P16x8Ch(61,5,29);//四界面显示“:”
  936.                                                 OLED_P16x8Ch(40,6,4);//四界面显示“分”
  937.                                                 OLED_P16x8Ch(61,6,29);//四界面显示“:”
  938.                                                 OLED_P16x8Ch(40,7,5);//四界面显示“秒”
  939.                                                 OLED_P16x8Ch(61,7,29);//四界面显示“:”
  940.                                                 OLED_F6x8Str1(96,2,2000+clock_gengxin[0],4);                //shi
  941.                                                 OLED_F6x8Str1(108,3,clock_gengxin[1],2);                //shi
  942.                                                 OLED_F6x8Str1(108,4,clock_gengxin[2],2);                //shi
  943.                                                 OLED_F6x8Str1(108,5,clock_gengxin[3],2);                //shi
  944.                                                 OLED_F6x8Str1(108,6,clock_gengxin[4],2);                //shi
  945.                                                 OLED_F6x8Str1(108,7,clock_gengxin[5],2);                //shi
  946.                                 }
  947.                                 if(WK_UP == 1)
  948.                                 {
  949.                                                 delay_ms(100);
  950.                                                 if(WK_UP == 1)
  951.                                                 {
  952.                                                                 OLED_P16x8Ch(5,3,30);//四界面显示“时”
  953.                                                                 OLED_P16x8Ch(5,6,31);//四界面显示“间”
  954.                                                        
  955.                                                                 OLED_P16x8Ch(40,2,0);//四界面显示“年”
  956.                                                                 OLED_P16x8Ch(61,2,29);//四界面显示“:”
  957.                                                                 OLED_P16x8Ch(40,3,1);//四界面显示“月”
  958.                                                                 OLED_P16x8Ch(61,3,29);//四界面显示“:”
  959.                                                                 OLED_P16x8Ch(40,4,2);//四界面显示“日”
  960.                                                                 OLED_P16x8Ch(61,4,29);//四界面显示“:”
  961.                                                                 OLED_P16x8Ch(40,5,3);//四界面显示“时”
  962.                                                                 OLED_P16x8Ch(61,5,29);//四界面显示“:”
  963.                                                                 OLED_P16x8Ch(40,6,4);//四界面显示“分”
  964.                                                                 OLED_P16x8Ch(61,6,29);//四界面显示“:”
  965.                                                                 OLED_P16x8Ch(40,7,5);//四界面显示“秒”
  966.                                                                 OLED_P16x8Ch(61,7,29);//四界面显示“:”
  967.                                                                 OLED_F6x8Str1(96,2,2000+clock_gengxin[0],4);                //shi
  968.                                                                 OLED_F6x8Str1(108,3,clock_gengxin[1],2);                //shi
  969.                                                                 OLED_F6x8Str1(108,4,clock_gengxin[2],2);                //shi
  970.                                                                 OLED_F6x8Str1(108,5,clock_gengxin[3],2);                //shi
  971.                                                                 OLED_F6x8Str1(108,6,clock_gengxin[4],2);                //shi
  972.                                                                 OLED_F6x8Str1(108,7,clock_gengxin[5],2);                //shi
  973.                                                                 coun2 = 0;
  974.                                                                 Ds1302_Write_Time_All1();
  975.                                                 }
  976.                                 }
  977.                                
  978.                 }
  979.                 /*************************************************五界面------------------操作提示*********************************************/
  980.                 else if(key == 5)
  981.                 {
  982.                                 if(!Add5)
  983.                                 {
  984.                                                 OLED_Clear();                //先清屏
  985.                                           Add5 = 1;
  986.                                 }
  987.                                 Add1 = 0;
  988.                                 Add2 = 0;
  989.                                 Add3 = 0;
  990.                                 Add4 = 0;
  991.                                 Add6 = 0;
  992.                                
  993.                                 for(i=35;i<39;i++)
  994.                                 {
  995.                                         OLED_P16x16Ch(30+(i-35)*16,1,i);//主界面显示“演示结束”
  996.                                 }
  997.                                 for(i=39;i<44;i++)
  998.                                 {
  999.                                         OLED_P16x16Ch(28+(i-39)*16,4,i);//主界面显示“谢谢师傅!”
  1000.                                 }
  1001.                 }
  1002.                 else                                                                                                                        //主界面---------------时间、温湿度
  1003.                 {
  1004.                                 if(!Add6)
  1005.                                 {
  1006.                                                 OLED_Clear();                //先清屏
  1007.                                           Add6 = 1;
  1008.                                 }
  1009.                                 Add1 = 0;
  1010.                                 Add2 = 0;
  1011.                                 Add3 = 0;
  1012.                                 Add4 = 0;
  1013.                                 Add5 = 0;
  1014.                                
  1015.                                 for(i=0;i<7;i++)
  1016.                                 {
  1017.                                         OLED_P16x16Ch(8+i*16,0,i);//主界面显示“多功能电子时钟”
  1018.                                 }
  1019.                                
  1020.                                 for(i=0;i<3;i++)
  1021.                                 {
  1022.                                         OLED_P16x8Ch(1+i*16,3,i);//主界面显示“年月日”
  1023.                                 }
  1024.                                 for(i=3;i<6;i++)
  1025.                                 {
  1026.                                         OLED_P16x8Ch(1+(i-3)*16,4,i);//主界面显示“时分秒”
  1027.                                 }

  1028.                                 OLED_P6x8Str(1,6,"Temperature:");
  1029.                                 OLED_P6x8Str(1,7,"Humidity:");
  1030.                                
  1031.                                
  1032.                                 clock_NYR();
  1033.                                 clock_SFM();
  1034.                                 Temperature_and_humidity();

  1035.                 }
  1036.                 if(ascii_time[2] == Alarm_clock_S1 && ascii_time[1] == Alarm_clock_F1 && ascii_time[0] == Alarm_clock_M1 )        //闹钟
  1037.                 {
  1038.                                 BEEP_ON;
  1039.                 }
  1040.                 else if(ascii_time[2] == Alarm_clock_S2 && ascii_time[1] == Alarm_clock_F2 && ascii_time[0] == Alarm_clock_M2)
  1041.                 {
  1042.                                 BEEP_ON;
  1043.                 }
  1044.                 else if(ascii_time[2] == Alarm_clock_S3 && ascii_time[1] == Alarm_clock_F3 && ascii_time[0] == Alarm_clock_M3)
  1045.                 {
  1046.                                 BEEP_ON;
  1047.                 }
  1048.                 else
  1049.                 {
  1050.                
  1051.                                 if(WK_UP == 1)
  1052.                                 {
  1053.                                                 BEEP_OFF;
  1054.                                 }
  1055.                 }
  1056.                
  1057.                

  1058. /***********************************程序结束**************************************/               
  1059.         }
  1060.        
  1061. }
复制代码

所有资料51hei提供下载:
源程序.7z (210.03 KB, 下载次数: 200)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏14 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:64089 发表于 2019-8-9 13:26 | 只看该作者
很不错的资料,可以参考
回复

使用道具 举报

板凳
ID:5793 发表于 2019-8-26 11:19 | 只看该作者
有没有电路图,谢谢
回复

使用道具 举报

地板
ID:589808 发表于 2019-8-27 11:48 | 只看该作者
有没有温湿度显示
回复

使用道具 举报

5#
ID:302850 发表于 2019-8-28 08:56 来自手机 | 只看该作者
很棒的资料啊,很喜欢。。
回复

使用道具 举报

6#
ID:130649 发表于 2019-11-18 22:56 | 只看该作者
很好的例子
回复

使用道具 举报

7#
ID:679059 发表于 2020-1-2 23:00 | 只看该作者
那个四角开关是怎么接线
回复

使用道具 举报

8#
ID:417194 发表于 2020-2-17 19:14 | 只看该作者
很不错的项目,支持!
回复

使用道具 举报

9#
ID:705208 发表于 2020-3-9 22:23 | 只看该作者
有没有单独按键控制闹钟部分的程序呢
回复

使用道具 举报

10#
ID:700459 发表于 2020-3-10 05:38 | 只看该作者
is there a technical way to reduce consuption of engie ?
回复

使用道具 举报

11#
ID:265664 发表于 2020-3-19 21:50 | 只看该作者
很不错的东西,值得研究研究。
回复

使用道具 举报

12#
ID:91165 发表于 2020-3-21 09:14 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

13#
ID:93852 发表于 2020-9-26 11:33 | 只看该作者
不错呀,楼主不错呀,做得不错
回复

使用道具 举报

14#
ID:146782 发表于 2020-10-6 21:29 | 只看该作者
请问可以提供电路图吗?谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表