<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51驅(qū)動(dòng)1602液晶+按鍵 protues仿真

          51驅(qū)動(dòng)1602液晶+按鍵 protues仿真

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
          51驅(qū)動(dòng)1602液晶+按鍵 protues仿真



          程序:

          本文引用地址:http://www.ex-cimer.com/article/201611/321330.htm

          #include
          #define uchar unsigned char
          #define uint unsigned int
          unsigned char Trg;
          unsigned char Cont;
          sbit lcdrs=P0^4;
          sbit lcden=P0^6;

          uchar code table1[]="20121029SAT12:00";
          uchar code table2[]="0123456789";
          void delay(uint z)
          {
          uint x,y;
          for(x=0;x for(y=0;y<110;y++)
          ;
          }
          void KeyRead( void )
          {
          unsigned char ReadData = P1^0xff; // 1
          Trg = ReadData & (ReadData ^ Cont); // 2
          Cont = ReadData; // 3
          }


          void write_com(uchar com)
          {
          lcdrs=0;
          P2=com;
          delay(2);
          lcden=1;
          lcden=0;
          }
          void write_data(uchar dat)
          {
          lcdrs=1;
          P2=dat;
          delay(2);
          lcden=1;
          lcden=0;
          }
          void lcd1602_inti()
          {
          write_com(0x38);
          delay(5);
          write_com(0x0c);
          delay(5);
          write_com(0x06);
          delay(5);
          write_com(0x01);//清屏
          delay(5);
          }
          void main()
          {
          uchar i,x,y,z,w,p=0,m,a,s,d;
          lcd1602_inti();
          write_com(0x01);
          while(1)
          { KeyRead();
          write_com(0x80+0x00);
          for(i=0;i<4;i++)
          {
          write_data(table1[i]);
          delay(5);
          }
          write_com(0x80+0x40);
          write_data(table2[x]);
          delay(10);
          write_data(table2[y]);
          delay(10);
          write_com(0x80+0x43);
          write_data(table2[z]);
          delay(10);
          write_data(table2[w]);
          delay(10);
          write_com(0x80+0x46);
          write_data(table2[d]);
          delay(10);
          write_com(0x80+0x48);
          write_data(table2[m]);
          delay(10);
          if(Trg==0x01)
          {
          switch(p%4)
          { case 1: { a++;
          if(a==21)
          a=0;
          } break;
          case 2:{s++;
          if(s==39)
          s=0;
          } break;
          case 3: {d++;
          if(d==9)
          d=0;
          } break;
          }
          x=a/10;y=a;
          z=s/10;w=s;
          }

          if(Trg==0x02)
          {
          switch(p%4)
          { case 1: { a--;
          if(a==0)
          a=20;
          } break;
          case 2:{s--;
          if(s==0)
          s=38;
          } break;
          case 3: {d--;
          if(d==0)
          d=8;
          } break;
          }
          x=a/10;y=a;
          z=s/10;w=s;
          }

          if(Trg==0x04)
          {p++;
          if(p==9)
          {p=0;}
          if(p%4==0)
          {m=1;}else m=0;
          }

          delay(50);
          if((Trg==0x00)&&(Cont==0x01))
          { switch(p%4)
          { case 1: {a++;delay(60);
          if(a==21)
          a=0;
          } break;
          case 2: {s++;delay(60);
          if(s==39)
          s=0;
          } break;
          case 3: {d++; delay(60);
          if(d==9)
          d=0;
          }break;
          }
          x=a/10;y=a;
          z=s/10;w=s;
          }

          if((Trg==0x00)&&(Cont==0x02))
          {
          { switch(p%4)
          { case 1: {a--;delay(60);
          if(a==0)
          a=20;
          } break;
          case 2: {s--;delay(60);
          if(s==0)
          s=38;
          } break;
          case 3: {d--; delay(60);
          if(d==0)
          d=8;
          }break;
          }
          x=a/10;y=a;
          z=s/10;w=s;
          }
          }
          }
          }
          按鍵部分功能:

          P1.2:功能鍵

          p1.1:減

          p1.0:加

          p1.2按一下,開始設(shè)置液晶左下方00,然后可按鍵加減(00-20);

          p1.2再按一下,開始設(shè)置液晶第二個(gè)00,然后可按鍵加減(00-38);

          p1.2再按一下,開始設(shè)置液晶第三個(gè)參數(shù)0,然后可按鍵加減(0-8);

          p1.2再按一下,最后一位編程1,表示設(shè)置完成;

          可長(zhǎng)時(shí)間按加減鍵,連續(xù)加減;

          以上操作可重復(fù)。



          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();