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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4734|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的無DS1302 LCD1602電子時鐘鬧鐘源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:305386 發(fā)表于 2018-8-1 15:37 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
51單片機(jī)的電子時鐘,鬧鐘。無DS1302僅僅用定時器,LCD1602做成的鬧鐘,星期跟日期可以分開寫的,但無潤平年之分和無月份天數(shù)區(qū)分。

單片機(jī)源程序如下:
  1. #include"reg52.h"

  2. typedef unsigned char u8;
  3. typedef unsigned int u16;

  4. #define datapins P0

  5. sbit E=P2^7;
  6. sbit RW=P2^5;
  7. sbit RS=P2^6;
  8. sbit beep=P1^5;
  9. sbit k1=P1^4;                                                                         //時鐘功能鍵
  10. sbit k2=P1^3;                                                                         //增大鍵
  11. sbit k3=P1^2;                                                                        //減小鍵
  12. sbit k4=P1^1;                                                                        //鬧鐘功能鍵  

  13. u8 k1num,knnum,shi,fen,miao,nian,yue,ri,nshi,nfen,nmiao,nnian,nyue,nri,i,count,we,nwe;
  14. void delay(u16 c);                                                             //延時函數(shù) 誤差 0us
  15. void LcdWriteCom(u8 com);                                                 //LCD1602寫入8位命令子函數(shù)        
  16. void LcdWriteData(u8 dat);                                                 //LCD1602寫入8位數(shù)據(jù)子函數(shù)        
  17. void init();                                                                        //初始化程序
  18. void keyscan();                                                                         //按鍵程序
  19. void di();                                                                                  //發(fā)聲函數(shù)
  20. void write_sfm(u8 add,u8 date);                                        //時間調(diào)節(jié)
  21. void write_sfm1(u8 add,u8 date);                                //時間調(diào)節(jié)
  22. void write_nyr(u8 add,u8 date);                                        //時間調(diào)節(jié)
  23. void write_nyr1(u8 add,u8 date);                                //時間調(diào)節(jié)
  24. void lcd_init();                                                                //LCD1602初始化函數(shù)

  25. void delay(u16 c)                                                           //延時 誤差 0us
  26. {
  27.     u16 a,b;
  28.         for (;c>0;c--)
  29.         {
  30.                  for(b=199;b>0;b--)
  31.                  {
  32.                           for(a=1;a>0;a--);
  33.                  }      
  34.         }           
  35. }

  36. void lcd_init()                                                                        //lcd初始化函數(shù)
  37. {
  38.         E=0;
  39.         RW=0;
  40.         RS=0;
  41.         LcdWriteCom(0x38);                                                  //開顯示
  42.         LcdWriteCom(0x0c);                                                  //開顯示不顯示光標(biāo)
  43.         LcdWriteCom(0x06);                                                  //寫一個指針加1
  44.         LcdWriteCom(0x80);                                                  //設(shè)置數(shù)據(jù)指針起點(diǎn)
  45. }

  46. void di()                                                                                //發(fā)出di聲
  47. {
  48.         beep=0;
  49.         delay(100);
  50.         beep=1;
  51. }
  52. void LcdWriteCom(u8 com)                                                //寫入命令
  53. {                                
  54.          
  55.         datapins=com;                                                             //放入命令
  56.         delay(1);                                                                          //等待數(shù)據(jù)穩(wěn)定
  57.         E=1;                                                                         //寫入時序
  58.         delay(5);                                                                           //保持時間
  59.         E=0;
  60. }
  61. void LcdWriteData(u8 dat)                                                //寫入數(shù)據(jù)
  62. {                                                                          
  63.         E=0;                                                                                //使能清零
  64.         RS=1;                                                                                //選擇輸入數(shù)據(jù)
  65.         RW=0;                                                                                //選擇寫入
  66.         datapins=dat;                                                                 //寫入數(shù)據(jù)
  67.         delay(1);
  68.         E = 1;                                                                          //寫入時序
  69.         delay(5);                                                                   //保持時間
  70.         E = 0;
  71. }
  72. void write_sfm(u8 add,u8 date)                                        //時間調(diào)節(jié)
  73. {

  74.         u16 sh,ge;
  75.         sh=date/10;
  76.         ge=date%10;
  77.         lcd_init();
  78.          LcdWriteCom(0x80+0x40+add);
  79.         LcdWriteData(0x30+sh);
  80.         LcdWriteData(0x30+ge);

  81. }
  82. void write_sfm1(u8 add,u8 date)                                        //定時器用時間調(diào)節(jié)
  83. {
  84.         u16 sh,ge;
  85.         sh=date/10;
  86.         ge=date%10;
  87.         if(knnum==0)
  88.         {
  89.         lcd_init();
  90.          LcdWriteCom(0x80+0x40+add);
  91.         LcdWriteData(0x30+sh);
  92.         LcdWriteData(0x30+ge);
  93.         }
  94. }
  95. void write_nyr(u8 add,u8 date)                                        //時間調(diào)節(jié)
  96. {

  97.         u16 sh,ge;
  98.         sh=date/10;
  99.         ge=date%10;
  100.         lcd_init();
  101.          LcdWriteCom(0x80+add);
  102.         LcdWriteData(0x30+sh);
  103.         LcdWriteData(0x30+ge);

  104. }
  105. void write_nyr1(u8 add,u8 date)                                        //定時器用時間調(diào)節(jié)
  106. {
  107.         u16 sh,ge;
  108.         sh=date/10;
  109.         ge=date%10;
  110.         if(knnum==0)
  111.         {
  112.         lcd_init();
  113.          LcdWriteCom(0x80+add);
  114.         LcdWriteData(0x30+sh);
  115.         LcdWriteData(0x30+ge);
  116.         }
  117. }
  118. void write_week(u8 we)
  119. {
  120. LcdWriteCom(0x80+13);
  121. switch(we)
  122. {
  123.    case 1:LcdWriteData('M');delay(5);
  124.           LcdWriteData('O');delay(5);
  125.           LcdWriteData('N');
  126.                   break;
  127.    case 2:LcdWriteData('T');delay(5);
  128.           LcdWriteData('U');delay(5);
  129.           LcdWriteData('E');
  130.                   break;
  131.    case 3:LcdWriteData('W');delay(5);
  132.           LcdWriteData('E');delay(5);
  133.           LcdWriteData('D');
  134.                   break;
  135.    case 4:LcdWriteData('T');delay(5);
  136.           LcdWriteData('H');delay(5);
  137.           LcdWriteData('U');
  138.                   break;
  139.    case 5:LcdWriteData('F');delay(5);
  140.           LcdWriteData('R');delay(5);
  141.           LcdWriteData('T');
  142.                   break;
  143.    case 6:LcdWriteData('S');delay(5);
  144.           LcdWriteData('A');delay(5);
  145.           LcdWriteData('T');
  146.                   break;
  147.    case 7:LcdWriteData('S');delay(5);
  148.           LcdWriteData('U');delay(5);
  149.           LcdWriteData('N');
  150.                   break;
  151. }
  152. }
  153. void write_week1(u8 nwe)
  154. {
  155. LcdWriteCom(0x80+13);
  156. switch(nwe)
  157. {
  158.    case 1:LcdWriteData('M');delay(5);
  159.           LcdWriteData('O');delay(5);
  160.           LcdWriteData('N');
  161.                   break;
  162.    case 2:LcdWriteData('T');delay(5);
  163.           LcdWriteData('U');delay(5);
  164.           LcdWriteData('E');
  165.                   break;
  166.    case 3:LcdWriteData('W');delay(5);
  167.           LcdWriteData('E');delay(5);
  168.           LcdWriteData('D');
  169.                   break;
  170.    case 4:LcdWriteData('T');delay(5);
  171.           LcdWriteData('H');delay(5);
  172.           LcdWriteData('U');
  173.                   break;
  174.    case 5:LcdWriteData('F');delay(5);
  175.           LcdWriteData('R');delay(5);
  176.           LcdWriteData('T');
  177.                   break;
  178.    case 6:LcdWriteData('S');delay(5);
  179.           LcdWriteData('A');delay(5);
  180.           LcdWriteData('T');
  181.                   break;
  182.    case 7:LcdWriteData('S');delay(5);
  183.           LcdWriteData('U');delay(5);
  184.           LcdWriteData('N');
  185.                   break;
  186. }
  187. }
  188. void init()                                                                                //初始化程序
  189. {                                                                        
  190.          E=0;                                                                  
  191.         RW=0;
  192.         RS=0;                                                            
  193.         shi=23;
  194.         fen=59;
  195.         miao=55;
  196.         nian=18;
  197.         yue=7;
  198.         ri=30;
  199.     we=1;
  200.         nwe=2;
  201.         k1num=0;                                                                        //時鐘k1計(jì)數(shù)
  202.         knnum=0;                                                                        //鬧鐘k4計(jì)數(shù)
  203.         nshi=0;
  204.         nfen=0;
  205.         nmiao=5;
  206.         nnian=18;
  207.         nyue=8;
  208.         nri=1;                                                
  209.     LcdWriteCom(0x38);                                                  //開顯示
  210.         LcdWriteCom(0x0c);                                                  //開顯示不顯示光標(biāo)
  211.         LcdWriteCom(0x06);                                                  //寫一個指針加1
  212.         LcdWriteCom(0x01);                                                  //清屏
  213.         LcdWriteCom(0x80);                                                  //設(shè)置數(shù)據(jù)指針起點(diǎn)
  214.                                    delay(5);
  215.         RW=0;
  216.         RS=0;
  217.          E=0;
  218.         LcdWriteCom(0x38);                                                  //開顯示
  219.         LcdWriteCom(0x0c);                                                  //寫一個指針加1
  220.         LcdWriteCom(0x80+0x40);                                                //開顯示不顯示光標(biāo)
  221.         LcdWriteCom(0x06);                                                  //顯示時鐘標(biāo)志

  222.         LcdWriteData('S');
  223.         LcdWriteData('H');
  224.         LcdWriteData('I');

  225.         RW=0;
  226.         RS=0;
  227.         E=0;
  228.         LcdWriteCom(0x80+0x40+9);
  229.         LcdWriteData(':');
  230.         RW=0;                           
  231.         RS=0;
  232.         E=0;
  233.         LcdWriteCom(0x80+0x40+6);
  234.         LcdWriteData(':');

  235.         RW=0;                           
  236.         RS=0;
  237.         E=0;
  238.         LcdWriteCom(0x80+2);
  239.         LcdWriteData('2');
  240.         LcdWriteData('0');

  241.         RW=0;                           
  242.         RS=0;
  243.         E=0;
  244.         LcdWriteCom(0x80+6);
  245.         LcdWriteData('-');

  246.         RW=0;                           
  247.         RS=0;
  248.         E=0;
  249.         LcdWriteCom(0x80+9);
  250.         LcdWriteData('-');
  251.         
  252.         RW=0;                           
  253.         RS=0;
  254.         E=0;
  255.         LcdWriteCom(0x80+13);
  256.         write_week(we);
  257.                                  
  258.         write_sfm(4,shi);
  259.         write_sfm(7,fen);
  260.         write_sfm(10,miao);
  261.         write_nyr(4,nian);
  262.         write_nyr(7,yue);
  263.         write_nyr(10,ri);
  264.         write_week(we);               
  265.         TMOD|=0x01;                                                                        //設(shè)置定時器0工作模式1
  266.         TH0=(65536-50000)/256;                                                //定時器初裝
  267.         TL0=(65536-50000)%256;
  268.         EA=1;                                                                                //打開總中斷
  269.         ET0=1;                                                                                //打開定時器0中斷
  270.         TR0=1;                                                                                //啟動定時器0         
  271. }                                                                          
  272. void keyscan()                                                                        //按鍵調(diào)節(jié)
  273. {        
  274.         if(k4==0&&k1num==0)                                                        //進(jìn)入鬧鐘調(diào)節(jié)
  275.         {
  276.                 delay(5);
  277.                 if(k4==0)
  278.                 {
  279.                         knnum++;
  280.                         while(!k4);                                                        //檢查按鍵松開
  281.                         di();
  282.                         if(knnum==1)
  283.                         {
  284.                                 E=0;
  285.                                 RS=0;
  286.                                 RW=0;
  287.                                 LcdWriteCom(0x80+0x40);                        //顯示鬧鐘標(biāo)志
  288.                                 LcdWriteData('N');
  289.                                 LcdWriteData('A');
  290.                                 LcdWriteData('O');
  291.                                 E=0;
  292.                                 RS=0;
  293.                                 RW=0;                                                               
  294.                                 LcdWriteCom(0x80+0x40+6);                //在時分之間顯示":"        
  295.                                 LcdWriteData(':');        
  296.                                 delay(5);
  297.                                 E=0;
  298.                                 RS=0;
  299.                                 RW=0;        
  300.                                 LcdWriteCom(0x80+0x40+9);                //在分秒之間顯示":"        
  301.                                 LcdWriteData(':');

  302.                                 delay(5);
  303.                                 write_sfm(4,nshi);
  304.                                 write_sfm(7,nfen);
  305.                                 write_sfm(10,nmiao);
  306.                             write_nyr(4,nian);
  307.                     write_nyr(7,yue);
  308.                     write_nyr(10,ri);
  309.                                 write_week(we);
  310.                                 E=0;
  311.                                 RS=0;
  312.                                 RW=0;
  313.                                 LcdWriteCom(0x80+0x40+4);                //光標(biāo)指向時
  314.                                 LcdWriteCom(0x0f);                                //開啟光標(biāo)
  315.                         }
  316.                         if(knnum==2)
  317.                         {
  318.                                 LcdWriteCom(0x80+0x40+7);                 //光標(biāo)移動到fen                                    
  319.                         }
  320.                         if(knnum==3)
  321.                         {
  322.                                 LcdWriteCom(0x80+0x40+10) ;                //光標(biāo)移動到miao
  323.                         }
  324.                         if(knnum==4)
  325.                         {
  326.                                 LcdWriteCom(0x80+4) ;                //光標(biāo)移動到nian
  327.                         }
  328.                         if(knnum==5)
  329.                         {
  330.                                 LcdWriteCom(0x80+7) ;                //光標(biāo)移動到y(tǒng)ue
  331.                         }
  332.                         if(knnum==6)
  333.                         {
  334.                                 LcdWriteCom(0x80+10) ;                //光標(biāo)移動到ri
  335.                         }
  336.                         if(knnum==7)
  337.                         {
  338.                             LcdWriteCom(0x80+13);                //光標(biāo)移動到week
  339.                         }
  340.                         if(knnum==8)
  341.                         {
  342.                                 knnum=0;                                                //按鍵次數(shù)清零                                                                                
  343.                                 LcdWriteCom(0x0c);                                //取消光標(biāo)閃爍        
  344.                                 TR0=0;
  345.                                 E=0;
  346.                                 RS=0;
  347.                                 RW=0;
  348.                                 write_sfm(4,shi);
  349.                                 write_sfm(7,fen);
  350.                                 write_sfm(10,miao);
  351.                             write_nyr(4,nian);
  352.                     write_nyr(7,yue);
  353.                     write_nyr(10,ri);
  354.                                 write_week(we);
  355.                                 TR0=1;
  356.                                 E=0;
  357.                                 RS=0;
  358.                                 RW=0;                                
  359.                                 LcdWriteCom(0x80+0x40);                        //顯示時鐘標(biāo)志               
  360.                                 LcdWriteData('S');
  361.                                 LcdWriteData('H');
  362.                                 LcdWriteData('I');
  363.                         }

  364.                 }
  365.         }
  366. /**********************鬧鐘增大**********************************/                        
  367.         if(knnum!=0)
  368.         {
  369.                 if(k2==0)
  370.                 {
  371.                         delay(5);
  372.                         if(k2==0)
  373.                         {
  374.                                 while(!k2);                                                                //確認(rèn)按鍵釋放
  375.                                 di();
  376.                                 if(knnum==1)
  377.                                 {
  378.                                         nshi++;                                                                //shi加1
  379.                                         if(nshi==24)                                                //shi滿24清零
  380.                                                 nshi=0;                                                                        
  381.                                         write_sfm(4,nshi);
  382.                                         E=0;
  383.                                         RW=0;
  384.                                         RS=0;
  385.                                         LcdWriteCom(0x0f);                        
  386.                                         LcdWriteCom(0x80+0x40+4);                          //顯示重新回到調(diào)節(jié)處
  387.                                                 
  388.                                 }
  389.                                 if(knnum==2)
  390.                                 {
  391.                                         nfen++;
  392.                                         if(nfen==60)
  393.                                                 nfen=0;
  394.                                         write_sfm(7,nfen);
  395.                                         RW=0;
  396.                                         RS=0;
  397.                                         E=0;
  398.                                         LcdWriteCom(0x0f);
  399.                                         LcdWriteCom(0x80+0x40+7);                        //顯示重新回到調(diào)節(jié)處
  400.                                 }
  401.                                 if(knnum==3)
  402.                                 {
  403.                                         nmiao++;
  404.                                         if(nmiao==60)
  405.                                                 nmiao=0;
  406.                                         write_sfm(10,nmiao);
  407.                                         RW=0;
  408.                                         RS=0;
  409.                                         E=0;
  410.                                         LcdWriteCom(0x0f);
  411.                                         LcdWriteCom(0x80+0x40+10);                         //顯示重新回到調(diào)節(jié)處
  412.                                 }
  413.                                 if(knnum==4)
  414.                                         {
  415.                                                 nnian++;                                                //nian減1
  416.                                                 if(nnian==21)                                        //nian小于零回到最大
  417.                                                         nnian=10;
  418.                                                 write_nyr(4,nnian);
  419.                                                 RW=0;
  420.                                                 RS=0;
  421.                                                 E=0;
  422.                                                 LcdWriteCom(0x0f);
  423.                                                 LcdWriteCom(0x80+4);          //顯示重新回到調(diào)節(jié)處
  424.                                         }
  425.                                         if(knnum==5)
  426.                                         {
  427.                                                 nyue++;
  428.                                                 if(nyue==13)
  429.                                                         nyue=1;
  430.                                                 write_nyr(7,nyue);
  431.                                                 RW=0;
  432.                                                 RS=0;
  433.                                                 E=0;
  434.                                                 LcdWriteCom(0x0f);
  435.                                                 LcdWriteCom(0x80+7);        //顯示重新回到調(diào)節(jié)處
  436.                                         }
  437.                                         if(knnum==6)
  438.                                         {
  439.                                                 nri++;
  440.                                                 if(nri==31)
  441.                                                         nri=1;
  442.                                                 write_nyr(10,nri);
  443.                                                 RW=0;
  444.                                                 RS=0;
  445.                                                 E=0;
  446.                                                 LcdWriteCom(0x0f);
  447.                                                 LcdWriteCom(0x80+10);        //顯示重新回到調(diào)節(jié)處
  448.                                         }
  449.                                         if(knnum==7)
  450.                                         {
  451.                                                 nwe++;
  452.                                                  if(nwe==8)
  453.                                                         nwe=1;
  454.                                                 write_week1(nwe);
  455.                                                 RW=0;
  456.                                                 RS=0;
  457.                                                 E=0;
  458.                                                 LcdWriteCom(0x0f);
  459.                                                 LcdWriteCom(0x80+13);        //顯示重新回到調(diào)節(jié)處
  460.                                         }
  461.                         }
  462.                 }  
  463. /************************鬧鐘減小*********************************/
  464.                         if(k3==0)
  465.                         {
  466.                                 delay(5);
  467.                                 if(k3==0)
  468.                                 {
  469.                                         while(!k3);                                                        //確認(rèn)按鍵釋放
  470.                                         di();
  471.                                         if(knnum==1)
  472.                                         {
  473.                                                 nshi--;                                                        //nshi減1
  474.                                                 if(nshi==-1)                                        //nshi等于-1回到最大
  475.                                                         nshi=23;
  476.                                                 write_sfm(4,nshi);
  477.                                                 RW=0;
  478.                                                 RS=0;
  479.                                                 E=0;
  480.                                                 LcdWriteCom(0x0f);
  481.                                                 LcdWriteCom(0x80+0x40+4);                  //顯示重新回到調(diào)節(jié)處
  482.                                         }
  483.                                         if(knnum==2)
  484.                                         {                                                                        
  485.                                                 nfen--;                                                        //nfen減1
  486.                                                 if(nfen==-1)                                        //nfen等于-1回到最大
  487.                                                         nfen=59;
  488.                                                 write_sfm(7,nfen);
  489.                                                 RW=0;
  490.                                                 RS=0;
  491.                                                 E=0;
  492.                                                 LcdWriteCom(0x0f);
  493.                                                 LcdWriteCom(0x80+0x40+7);                //顯示重新回到調(diào)節(jié)處
  494.                                         }
  495.                                         if(knnum==3)
  496.                                         {                                                                        
  497.                                                 nmiao--;                                                //nmiao減1
  498.                                                 if(nmiao==-1)                                        //nmiao等于-1回到最大
  499.                                                         nmiao=59;
  500.                                                 write_sfm(10,nmiao);
  501.                                                 RW=0;
  502.                                                 RS=0;
  503.                                                 E=0;
  504.                                                 LcdWriteCom(0x0f);
  505.                                                 LcdWriteCom(0x80+0x40+10);                 //顯示重新回到調(diào)節(jié)處
  506.                                         }
  507.                                         if(knnum==4)
  508.                                         {
  509.                                                 nnian--;                                                //nian減1
  510.                                                 if(nnian==9)                                        //nian小于零回到最大
  511.                                                         nnian=20;
  512.                                                 write_nyr(4,nnian);
  513.                                                 RW=0;
  514.                                                 RS=0;
  515.                                                 E=0;
  516.                                                 LcdWriteCom(0x0f);
  517.                                                 LcdWriteCom(0x80+4);          //顯示重新回到調(diào)節(jié)處
  518.                                         }
  519.                                         if(knnum==5)
  520.                                         {
  521.                                                 nyue--;
  522.                                                 if(nyue==0)
  523.                                                         nyue=12;
  524.                                                 write_nyr(7,nyue);
  525.                                                 RW=0;
  526.                                                 RS=0;
  527.                                                 E=0;
  528.                                                 LcdWriteCom(0x0f);
  529.                                                 LcdWriteCom(0x80+7);        //顯示重新回到調(diào)節(jié)處
  530.                                         }
  531.                                         if(knnum==6)
  532.                                         {
  533.                                                 nri--;
  534.                                                 if(nri==0)
  535.                                                         nri=30;
  536.                                                 write_nyr(10,nri);
  537.                                                 RW=0;
  538.                                                 RS=0;
  539.                                                 E=0;
  540.                                                 LcdWriteCom(0x0f);
  541.                                                 LcdWriteCom(0x80+10);        //顯示重新回到調(diào)節(jié)處
  542.                                         }
  543.                                         if(knnum==7)
  544.                                         {
  545.                                                 nwe--;
  546.                                                  if(nwe==0)
  547.                                                         nwe=7;
  548.                                                 write_week1(nwe);
  549.                                                 RW=0;
  550.                                                 RS=0;
  551.                                                 E=0;
  552.                                                 LcdWriteCom(0x0f);
  553.                                                 LcdWriteCom(0x80+13);        //顯示重新回到調(diào)節(jié)處
  554.                                         }
  555.                                 }
  556.                         }
  557.                 }                        

  558.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
  559. /****************************************************************/                        
  560.         if(k1==0&&knnum==0)                                                        //進(jìn)入時鐘調(diào)節(jié)
  561.         {
  562.                 delay(5);
  563.                 if(k1==0)
  564.                 {
  565.                          k1num++;
  566.                         while(!k1);        
  567.                         di();
  568.                         if(k1num==1)
  569.                         {
  570.                                  TR0=0;                                                        //關(guān)閉定時器
  571.                                 E=0;
  572.                                 RW=0;
  573.                                 RS=0;                                                        
  574.                                 LcdWriteCom(0x80+0x40+4);                //光標(biāo)移動到shi
  575.                                 LcdWriteCom(0x0f);                                 //光標(biāo)閃爍
  576.                         }
  577.                         if(k1num==2)
  578.                         {
  579.                                 LcdWriteCom(0x80+0x40+7);                 //光標(biāo)移動到fen
  580.                         }
  581.                         if(k1num==3)
  582.                         {
  583.                                 LcdWriteCom(0x80+0x40+10);                //光標(biāo)移動到miao
  584.                         }
  585.                         if(k1num==4)
  586.                         {
  587.                                 LcdWriteCom(0x80+4) ;                //光標(biāo)移動到nian
  588.                         }
  589.                         if(k1num==5)
  590.                         {
  591.                                 LcdWriteCom(0x80+7) ;                //光標(biāo)移動到y(tǒng)ue
  592.                         }
  593.                         if(k1num==6)
  594.                         {
  595.                                 LcdWriteCom(0x80+10) ;                //光標(biāo)移動到ri
  596.                         }
  597.                         if(k1num==7)
  598.                         {
  599.                             LcdWriteCom(0x80+13);                //光標(biāo)移動到week
  600.                         }
  601.                         if(k1num==8)
  602.                         {
  603.                                 k1num=0;                                                //按鍵次數(shù)清零
  604.                                 LcdWriteCom(0x0c);                                //取消光標(biāo)閃爍
  605.                                 TR0=1;                                                        //計(jì)時啟動
  606.                         }
  607.                 }
  608.         }
  609. /**********************增大***************************************/                        
  610.                 if(k1num!=0)
  611.                 {
  612.                         if(k2==0)
  613.                         {
  614.                                 delay(5);
  615.                                 if(k2==0)
  616.                                 {
  617.                                         while(!k2);                                        //確認(rèn)按鍵釋放
  618.                                         di();
  619.                                         if(k1num==1)
  620.                                         {
  621.                                                 shi++;                                                //shi加1
  622.                                                 if(shi==24)                                        //shi滿24清零
  623.                                                         shi=0;                                                                        
  624.                                                 write_sfm(4,shi);
  625.                                                 RW=0;
  626.                                                 RS=0;
  627.                                                 E=0;
  628.                                                 LcdWriteCom(0x0f);                        
  629.                                                 LcdWriteCom(0x80+0x40+4);          //顯示重新回到調(diào)節(jié)處
  630.                                                 
  631.                                         }
  632.                                         if(k1num==2)
  633.                                         {
  634.                                                 fen++;
  635.                                                 if(fen==60)
  636.                                                         fen=0;
  637.                                                 write_sfm(7,fen);
  638.                                                 RW=0;
  639.                                                 RS=0;
  640.                                                 E=0;
  641.                                                 LcdWriteCom(0x0f);
  642.                                                 LcdWriteCom(0x80+0x40+7);        //顯示重新回到調(diào)節(jié)處
  643.                                         }
  644.                                         if(k1num==3)
  645.                                         {
  646.                                                 miao++;
  647.                                                 if(miao==60)
  648.                                                         miao=0;
  649.                                                 write_sfm(10,miao);
  650.                                                 RW=0;
  651.                                                 RS=0;
  652.                                                 E=0;
  653.                                                 LcdWriteCom(0x0f);
  654.                                                 LcdWriteCom(0x80+0x40+10);         //顯示重新回到調(diào)節(jié)處
  655.                                         }
  656.                                         if(k1num==4)
  657.                                         {
  658.                                                 nian++;                                                //nian減1
  659.                                                 if(nian==21)                                        //nian小于零回到最大
  660.                                                         nian=10;
  661.                                                 write_nyr(4,nian);
  662.                                                 RW=0;
  663.                                                 RS=0;
  664.                                                 E=0;
  665.                                                 LcdWriteCom(0x0f);
  666.                                                 LcdWriteCom(0x80+4);          //顯示重新回到調(diào)節(jié)處
  667.                                         }
  668.                                         if(k1num==5)
  669.                                         {
  670.                                                 yue++;
  671.                                                 if(yue==13)
  672.                                                         yue=1;
  673.                                                 write_nyr(7,yue);
  674.                                                 RW=0;
  675.                                                 RS=0;
  676.                                                 E=0;
  677.                                                 LcdWriteCom(0x0f);
  678.                                                 LcdWriteCom(0x80+7);        //顯示重新回到調(diào)節(jié)處
  679.                                         }
  680.                                         if(k1num==6)
  681.                                         {
  682.                                                 ri++;
  683.                                                 if (ri==31)
  684.                                                         ri=1;
  685.                                                 write_nyr(10,ri);
  686.                                                 RW=0;
  687.                                                 RS=0;
  688.                                                 E=0;
  689.                                                 LcdWriteCom(0x0f);
  690.                                                 LcdWriteCom(0x80+10);        //顯示重新回到調(diào)節(jié)處
  691.                                         }
  692.                                         if(k1num==7)
  693.                                         {
  694.                                                 we++;
  695.                                                  if(we==8)
  696.                                                         we=1;
  697.                                                 write_week(we);
  698.                                                 RW=0;
  699.                                                 RS=0;
  700.                                                 E=0;
  701.                                                 LcdWriteCom(0x0f);
  702.                                                 LcdWriteCom(0x80+13);        //顯示重新回到調(diào)節(jié)處
  703.                                         }
  704.                                 }
  705.                         }  
  706. /************************減小*********************************/
  707.                         if(k3==0)
  708.                         {
  709.                                 delay(5);
  710.                                 if(k3==0)
  711.                                 {
  712.                                         while(!k3);                                                //確認(rèn)按鍵釋放
  713.                                         di();
  714.                                         if(k1num==1)
  715.                                         {
  716.                                                 shi--;                                                //shi減1
  717.                                                 if(shi==-1)                                        //shi小于零回到最大
  718.                                                         shi=23;
  719.                                                 write_sfm(4,shi);
  720.                                                 RW=0;
  721.                                                 RS=0;
  722.                                                 E=0;
  723.                                                 LcdWriteCom(0x0f);
  724.                                                 LcdWriteCom(0x80+0x40+4);          //顯示重新回到調(diào)節(jié)處
  725.                                         }
  726.                                         if(k1num==2)
  727.                                         {
  728.                                                 fen--;
  729.                                                 if(fen==-1)
  730.                                                         fen=59;
  731.                                                 write_sfm(7,fen);
  732.                                                 RW=0;
  733.                                                 RS=0;
  734.                                                 E=0;
  735.                                                 LcdWriteCom(0x0f);
  736.                                                 LcdWriteCom(0x80+0x40+7);        //顯示重新回到調(diào)節(jié)處
  737.                                         }
  738.                                         if(k1num==3)
  739.                                         {
  740.                                                 miao--;
  741.                                                 if (miao==-1)
  742.                                                         miao=59;
  743.                                                 write_sfm(10,miao);
  744.                                                 RW=0;
  745.                                                 RS=0;
  746.                                                 E=0;
  747.                                                 LcdWriteCom(0x0f);
  748.                                                 LcdWriteCom(0x80+0x40+10);        //顯示重新回到調(diào)節(jié)處
  749.                                         }
  750.                                         if(k1num==4)
  751.                                         {
  752.                                                 nian--;                                                //nian減1
  753.                                                 if(nian==9)                                        //nian小于零回到最大
  754.                                                         nian=20;
  755.                                                 write_nyr(4,nian);
  756.                                                 RW=0;
  757.                                                 RS=0;
  758.                                                 E=0;
  759.                                                 LcdWriteCom(0x0f);
  760.                                                 LcdWriteCom(0x80+4);          //顯示重新回到調(diào)節(jié)處
  761.                                         }
  762.                                         if(k1num==5)
  763.                                         {
  764.                                                 yue--;
  765.                                                 if(yue==0)
  766.                                                         yue=12;
  767.                                                 write_nyr(7,yue);
  768.                                                 RW=0;
  769.                                                 RS=0;
  770.                                                 E=0;
  771.                                                 LcdWriteCom(0x0f);
  772.                                                 LcdWriteCom(0x80+7);        //顯示重新回到調(diào)節(jié)處
  773.                                         }
  774.                                         if(k1num==6)
  775.                                         {
  776.                                                 ri--;
  777.                                                 if (ri==0)
  778.                                                         ri=30;
  779. ……………………

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

所有資料51hei提供下載:
新建文件夾.zip (54.31 KB, 下載次數(shù): 53)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-8-1 23:12 | 只看該作者
補(bǔ)全原理圖即可獲得積分
回復(fù)

使用道具 舉報(bào)

板凳
ID:470508 發(fā)表于 2019-3-13 23:00 | 只看該作者
厲害,贊一個。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
午夜成人鲁丝片午夜精品| 成人激情免费网站| 国产一级免费在线观看| av免费观看一区二区| 一二三四视频在线中文| 久久99国产精品久久99大师 | 亚洲乱码国产乱码精品精| 亚洲一区999| 国产精品视频网址| 五月天亚洲综合小说网| 中文字幕一区二区三区四区在线视频| 欧美做受喷浆在线观看| 蜜臀av粉嫩av懂色av| 日韩在线观看视频一区二区| 国产精品久久久久久久久毛片 | 欧美精品一区二区久久婷婷| 欧美韩日一区二区| 日韩精品一区在线观看| 久久久成人的性感天堂| 成人免费在线看片| 99福利在线观看| 中国特黄一级片| 国产www视频| 天天操夜夜摸| 激情网站在线| 国产亚洲一区二区三区啪| 国产亚洲欧美日韩在线观看一区二区 | 亚洲男人天堂手机在线| 国产精品永久免费视频| 欧美一级欧美一级| 在线观看免费小视频| www日本在线| 黄色av地址| 国产污视频在线播放| 欧美xxx视频| 久久精品国产www456c0m| 国产乱码字幕精品高清av| 午夜影院久久久| 欧美日韩一区国产| 韩国日本不卡在线| 伊人久久青草| 成人乱码一区二区三区av| 精品国产无码一区二区| 国产福利电影| 青青久久精品| 日日夜夜精品视频免费| av在线这里只有精品| 欧美人动与zoxxxx乱| 国产97色在线| 欧美黄网站在线观看| 久久这里只有精品免费| 国产丰满美女做爰| 女人体1963| 国产高清亚洲| 久久精品二区亚洲w码| 欧美日韩国产一区中文午夜| 欧美丰满老妇厨房牲生活| 亚洲综合视频一区| 中文字幕91视频| 乱小说欧美综合| 国产视频资源| 国产一区二区三区免费在线| 免费人成网站在线观看欧美高清| 狠狠躁夜夜躁人人躁婷婷91 | 美女一区二区视频| 欧美日韩一区不卡| 国产精品入口日韩视频大尺度| 国产成人无码av在线播放dvd| 波多野结衣av在线免费观看| 亚洲国产日韩在线观看| 天海翼视频在线观看| 538视频在线| 丁香花在线观看完整版电影| 99久久夜色精品国产亚洲96| 黑人精品欧美一区二区蜜桃| 欧美日韩一区二区欧美激情 | 丁香亚洲综合激情啪啪综合| 日韩欧美高清在线| 黑人另类av| 亚洲精品国产91| 亚洲中文一区二区| 国产1区2区视频| 精品国产影院| 国产校园另类小说区| 色妞色视频一区二区三区四区| 国产精品久久久久不卡| 国产三级三级三级看三级| 国产免费一区二区三区四区| 本道综合精品| 欧美特黄aaaaaaaa大片| 久久国产精品区| 亚洲成人网av| 在线成人av电影| 久久久久久久99| 免费黄色网页| 国产成人短视频在线观看| 亚洲欧美在线视频| 欧美综合在线第二页| 一区二区三区国产好的精华液| 好吊视频一区二区三区| 新版中文在线官网| 美国毛片一区二区| 亚洲欧美国产精品专区久久| 在线视频不卡一区二区三区| 五月天婷婷综合网| 在线观看免费av网| 综合久久亚洲| 欧美精品日韩精品| 日韩精品久久久免费观看 | 日韩精品一区二区三区免费视频| 久久在线观看免费| 精品少妇一区二区三区在线播放| 欧洲亚洲一区二区| 国产无套粉嫩白浆内谢| 五月天天在线| 9国产精品视频| 欧美videossexotv100| 亚洲v国产v| 无码人妻精品一区二区三区蜜桃91 | 电影天堂爱爱爱爱| 欧美大人香蕉在线| 亚洲高清久久| 一区二区欧美视频| 国产专区欧美专区| 中文字幕天天干| 刘亦菲毛片一区二区三区| 国产后进白嫩翘臀在线观看视频 | 伊人永久在线| 亚洲国产专区校园欧美| 亚洲一区在线视频| 成人午夜激情网| 91香蕉一区二区三区在线观看| 看黄的a网站| 好吊一区二区三区| 亚洲国产99精品国自产| 久久av综合网| 好男人www社区在线视频夜恋| 久久91视频| 亚洲欧洲综合另类| 欧美裸体男粗大视频在线观看| 东京热加勒比无码少妇| 一二三四在线观看视频韩国| 国产成人视屏| 一区二区三区欧美日韩| 国产一区国产精品| 中文字幕伦理片| 男女激情网站| 午夜在线视频观看日韩17c| 亚洲人在线观看| 日本xxxx黄色| 影音先锋2020资源| 日本女优一区| 亚洲一区二区三区爽爽爽爽爽| 99se婷婷在线视频观看| 精品女人久久久| 又黄又爽在线观看| 日韩成人免费在线| 欧美精品在线视频观看| 女同毛片一区二区三区| 色网在线视频| 久久精品国产亚洲aⅴ| 久久久久久久久亚洲| 一色道久久88加勒比一| 日韩电影免费| 国产成人午夜精品影院观看视频| 情事1991在线| 国产主播在线播放| 免费在线观看av电影| 国产三级精品在线| av成人观看| 91一区二区视频| 四虎国产精品永久在线国在线| 天天综合网 天天综合色| 亚洲一区二区三区精品视频 | 护士精品一区二区三区| 成人精品电影| 日韩精品黄色网| 女女调教被c哭捆绑喷水百合| 九色porn| 日韩三区免费| 国产美女av一区二区三区| 国色天香2019中文字幕在线观看| 五月天精品在线| www.在线视频.com| 91丨九色丨黑人外教| 高清不卡日本v二区在线| 国产精品美女一区| 超碰一区二区三区| 亚洲一区视频在线| 亚洲欧美日本国产有色| 综合区小说区图片区在线一区| 国产超碰精品| 精品欧美aⅴ在线网站| 人妻av无码专区| 免费观看黄色av| 美女视频亚洲色图| 亚洲高清久久网| 插我舔内射18免费视频| 精品999视频| 国产午夜精品一区二区 | 亚洲精品国产高清久久伦理二区| 亚洲视频精品一区| 欧美高清videosex极品| 欧美精品aa| 国内精品久久久久影院优| 国产亚洲精品久久久久久无几年桃 | 自拍视频在线看| 色综合天天综合狠狠| 久久精品视频91| 午夜视频国产| 久久婷婷成人综合色| 日韩中文字幕一区二区| 国产欧美在线观看视频| 欧美亚洲视频| 91在线色戒在线| 亚洲成年人电影在线观看| 黄色成人小视频| 欧美日韩一区二区三区高清 | 黄色免费在线观看网站| 中文字幕一区二区视频| 欧美另类videos| 2023av视频| 国产电影精品久久禁18| 久久久久一区二区三区| 国产又粗又爽| 美女精品一区二区| 国产精品日韩一区二区三区| 推川ゆうり中文亚洲二区| 在线观看一区视频| 国产日韩在线播放| 亚洲 欧美 激情 小说 另类| 激情自拍一区| 国产欧美在线看| 神马久久久久久久久久| 韩日精品视频| 亚洲综合色av| 国产尤物在线观看| 欧美日韩高清| 91国内免费在线视频| 国产精品久久久久久免费播放| 精品福利久久久| 国内精品伊人久久| 国产免费一区二区三区免费视频| 日本在线一区二区三区| 精品性高朝久久久久久久| 无码国产精品一区二区高潮| 婷婷视频在线| 色8久久人人97超碰香蕉987| 中文字幕第九页| 黄色在线视频观看网站| 亚洲精品免费在线| 日韩精品视频一二三| 91se在线| 在线观看欧美日本| 性欧美丰满熟妇xxxx性久久久| 国产理论在线| 亚洲国产精品久久久久秋霞蜜臀 | 国产高清av片| 国产一线二线在线观看 | 美国黑人一级大黄| 欧美大片网站| 色偷偷88888欧美精品久久久 | 蜜桃av免费在线观看| 色噜噜成人av在线| 日韩在线观看高清| 中文字幕永久在线观看| 一区二区三区亚洲变态调教大结局 | 天海翼视频在线观看| 少妇一级淫片日本| jizz日本18| 成人黄色a**站在线观看| 亚洲av综合色区| 尤物视频在线观看| 欧美婷婷久久五月精品三区| 国产精品国产三级国产aⅴ原创 | 成人xxxxx色| 一级片a一级片| 欧美日韩国产一二三| 亚洲黄色三级视频| 亚洲欧美卡通另类91av| 日本大片免费看| 高清电影在线免费观看| 久久中文字幕在线| 免费国产麻豆传| 自拍偷拍国产精品| 一区二区三区在线播放视频| 91精品啪在线观看国产81旧版| 欧洲精品在线一区| 免费在线看黄| 91成人免费在线| 日韩免费黄色片| 亚洲精品黄色| 国产精品无码免费专区午夜| av中文在线资源库| 国语自产偷拍精品视频偷| 91sese| 第一福利永久视频精品| 日韩三级一区二区三区| 日本不卡一二三区黄网| 热久久精品免费视频| 一区二区三区| 成人精品网站在线观看| 波多野结衣av在线| 亚洲高清免费视频| 久久一二三四区| 蜜桃av综合| 美女喷白浆视频| 亚洲国产欧美在线观看| 国产99在线播放| av福利精品| 久久的精品视频| 全彩无遮拦全彩口工漫画全彩| 色综合咪咪久久| 亚洲一区二区三区网站| 99免费精品视频| 亚洲国产日韩一区无码精品久久久| 伊人色**天天综合婷婷| 欧美一区二区激情| 国产精品久久久久久吹潮| 成人有码在线视频| 九色在线免费| 久久这里有精品视频| h视频在线观看免费网站| 91精品国产麻豆| 亚洲无码精品一区二区三区| 国产精品亚洲午夜一区二区三区| 国产日韩视频一区| 91精品综合| 人人干视频在线| 久久久精品区| 欧美精品成人一区二区在线观看 | japanese国产在线观看| 成人高清伦理免费影院在线观看| 成人精品在线观看视频| 欧美视频导航| 日韩av片网站| 狠狠色丁香婷婷综合影院| 国产 国语对白 露脸| 亚洲成a人片777777久久| 精品一区二区三区视频日产| 国产经典三级在线| 91九色国产社区在线观看| 91高清在线视频| 欧美孕妇与黑人孕交| 中文在线一二区| 久久成人精品电影| 免费看的毛片| 日韩视频免费大全中文字幕| eeuss在线播放| 一本色道久久88精品综合| 亚洲最大色图| 黑人巨大精品欧美一区二区三区| 91成人一区二区三区| 综合久久给合久久狠狠狠97色| 国产成人在线免费视频| 91麻豆成人久久精品二区三区| 久久综合色综合| 99精品桃花视频在线观看| 精品99在线观看| av影院午夜一区| 日韩精品国产一区二区| 99re这里只有精品6| 国产在线视频二区| 91视频免费看| 国产成人在线视频观看| 欧美韩国一区二区| 人人澡人人澡人人看| 国产在线一区观看| 免费成人美女女在线观看| 国产精品中文字幕欧美| 手机av在线看| av在线播放成人| 久久久久久久黄色片| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 成人乱码手机视频| 亚洲午夜精品久久久中文影院av | 亚洲性无码av在线| 国产美女免费观看| 欧美成人免费播放| 中文在线a天堂| 夜夜亚洲天天久久| 色欲久久久天天天综合网| 欧美在线观看视频一区二区三区| 永久免费黄色软件| 亚洲国产成人av| 丰满岳乱妇国产精品一区| 在线区一区二视频| 欧美日韩亚洲第一页| 精品国产精品一区二区夜夜嗨| 女人天堂在线视频| 中文字幕日韩有码| 亚洲校园欧美国产另类| 国产91色在线|| 黄色软件视频在线观看| 日本精品一区二区三区高清 久久| 久久亚洲精精品中文字幕| 少妇高潮喷水在线观看| 亚洲国产精品久久久天堂| 精品人妻一区二区三区日产| 国产一区日韩二区欧美三区|