找回密码
 立即注册

QQ登录

只需一步,快速开始

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

这一段单片机智能雨刷代码都是什么意思啊?有没有大神帮我简单做段注释,感谢!

[复制链接]
跳转到指定楼层
楼主
ID:919992 发表于 2021-5-12 14:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <REGX52.H>
  2. #include <ADC0832.H>
  3. #include <LCD1602.H>         
  4. #include <eeprom52.H>
  5. uchar i=0;
  6. uint dat;
  7. uint dat1=0;
  8. uint dat2=0;
  9. uint dat_value=0;
  10. uint DJ_dat=0,ms=0,ms_1=0;
  11. uchar loop=0;
  12. sbit key_1=P3^2;
  13. sbit key_2=P3^3;
  14. sbit key_3=P3^4;
  15. bit key_1_flag=0;
  16. bit key_2_flag=0;
  17. bit key_3_flag=0;
  18. uint Value=1000;
  19. uint water_h=0;
  20. uint water_l=0;
  21. uchar state=0;
  22. bit  star_off=1,zheng_fan=1,s0=0,ir_on=0;
  23.   uchar zz[]=                                   //正转数据
  24.         {
  25.                 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
  26.         };
  27.   uchar fz[]=                                   //反转数据
  28.         {
  29.                 0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01
  30.         };
  31. void display()
  32.   {
  33.                    LCD1602_write(0,0x80);
  34.                LCD1602_writebyte("Water :");
  35.                    if(dat>99) LCD1602_write(1,0x30+dat/100%10);
  36.                         else             LCD1602_write(1,' ');
  37.                    if(dat>9)  LCD1602_write(1,0x30+dat/10%10);  
  38.                         else             LCD1602_write(1,' ');
  39.                    LCD1602_write(1,0x30+dat%10);
  40.                LCD1602_writebyte("%     ");
  41.                    dat_value=dat;
  42.                    LCD1602_write(0,0xC0);
  43.                LCD1602_writebyte("H:");
  44.                    if(state==1&&s0) LCD1602_writebyte("   ");
  45.                    else                                                               
  46.                     {
  47.                            if(water_h>99) LCD1602_write(1,0x30+water_h/100%10);
  48.                                 else             LCD1602_write(1,' ');
  49.                             if(water_h>9)  LCD1602_write(1,0x30+water_h/10%10);  
  50.                                 else             LCD1602_write(1,' ');
  51.                            LCD1602_write(1,0x30+water_h%10);                          
  52.                         }
  53.                          LCD1602_writebyte("%    ");                                    
  54.                LCD1602_writebyte("L:");
  55.                    if(state==2&&s0) LCD1602_writebyte("   ");
  56.                    else
  57.                     {
  58.                            if(water_l>99) LCD1602_write(1,0x30+water_l/100%10);
  59.                                 else             LCD1602_write(1,' ');
  60.                             if(water_l>9)  LCD1602_write(1,0x30+water_l/10%10);  
  61.                                 else             LCD1602_write(1,' ');
  62.                            LCD1602_write(1,0x30+water_l%10);                              
  63.                         }
  64.                          LCD1602_writebyte("%");         
  65.   }
  66. void key_dispose()
  67. {
  68.    if(key_1==0)
  69.      {
  70.             LCD1602_delay(20);
  71.       if(key_1_flag)
  72.              {
  73.                            key_1_flag=0;
  74.                            state=(state+1)%3;
  75.                    }
  76.          }
  77.          else key_1_flag=1;
  78.    if(key_2==0)
  79.      {
  80.               LCD1602_delay(20);
  81.            if(key_2_flag)
  82.              {
  83.                           key_2_flag=0;
  84.                         if(state==1)
  85.                           {
  86.                            if(water_h<100)       water_h++;
  87.                             SectorErase(0x2000);
  88.                             byte_write(0x2000,water_h);
  89.                           }
  90.                         if(state==2)
  91.                          {
  92.                            if(water_l<water_h-1) water_l++;
  93.                             SectorErase(0x2200);
  94.                             byte_write(0x2200,water_l);
  95.                          }
  96.                  }
  97.          }
  98.          else           key_2_flag=1;
  99.    if(key_3==0)
  100.      {
  101.            LCD1602_delay(20);
  102.            if(key_3_flag)
  103.              {
  104.                           key_3_flag=0;
  105.                         if(state==1)
  106.                           {
  107.                            if(water_h>water_l+1) water_h--;
  108.                             SectorErase(0x2000);
  109.                             byte_write(0x2000,water_h);
  110.                           }
  111.                         if(state==2)
  112.                          {
  113.                            if(water_l>0)         water_l--;
  114.                             SectorErase(0x2200);
  115.                             byte_write(0x2200,water_l);
  116.                          }
  117.                               
  118.                  }
  119.          }
  120.          else key_3_flag=1;
  121. }
  122. ... ...
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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