⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档 (2).txt

📁 自己做的一个小玩意基于步进电机的横切机液晶显示
💻 TXT
📖 第 1 页 / 共 2 页
字号:

for(i=0;i<8;i++) /*write 16 bytes of one character to ssd1815bt*/

{disp_data=sz[i+shuzi*16];
write_lcd(1,disp_data);
}

_nop_();
x--;
if(x==-1)
x=7;
page=x+0xb0;
write_lcd(0,page);
column=yl; /*set column lower address*/
write_lcd(0,column);
column=yh; /*set column higher address*/
write_lcd(0,column);


for(i=0;i<8;i++) /*write 16 bytes of one character to ssd1815bt*/

{disp_data=sz[i+shuzi*16+8];
write_lcd(1,disp_data);
}

_nop_();
_nop_();

}

void disp_blank()//清屏
{
uchar j,column,disp_data,page; /*page address*/
uint i;
for(j=0x00;j<0x08;j++) /*write 8 page*/
{ page=j+0xb0; /*set page address*/
write_lcd(0,page);
column=0x00; /*set column lower address*/
write_lcd(0,column);
column=0x10; /*set column higher address*/
write_lcd(0,column);
for(i=0;i<132;i++)
{
disp_data=0x00;
write_lcd(1,disp_data);
}
}
}

void main()
{ TMOD=0x11;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  TH1=(65536-50000)/256;
  TL1=(65536-50000)%256;
  ET0=1;
  ET1=1;
  EA=1;
  TR0=0;
  c1=0;
  TR1=0;
  qg=0;
  cp=0;

  init_1815();
  disp_blank();
  delay(1);
  x24c02_init();
 while(1)
 {  P1=0xfe;
   temp=P1;
   temp=temp&0xf0;
    if(temp!=0xf0)
    { delay(10);
    if(temp!=0xf0)
    {temp=P1;
        switch(temp)
          { case 0xee: key=1;
             break;
           case 0xde:key=2;
              break;
            case 0xbe:key=3;
             break;
          }
           //while(temp!=0xf0)
           // {temp=P1;
           // temp=temp&0xf0;
       //BELL=0;
             //}
               //BELL=1;
           if(key==1)
           {  if(cdbz==1&sdbz==0)
              {
              c1++;
              if(c1==10000)
               c1=0 ;
                qian=c1/1000;
              bai=c1%1000/100 ;
              shi=c1%100/10;
              ge=c1%10;
                }
               if(sdbz==1&cdbz==0)
            {
                i++;
                if(i==10000)
                i=0;
                qian1=i/1000;
                  bai1=i%1000/100 ;
                shi1=i%100/10;
                 ge1=i%10;

            }

            }
           if(key==2)
           {if(cdbz==1&sdbz==0)
             {
               if(c1==0)
            c1=10000;
              c1--;
               qian=c1/1000;
              bai=c1%1000/100 ;
              shi=c1%100/10;
              ge=c1%10;
            }
              if(sdbz==1&cdbz==0)
              {
               i--;
               if(i==0)
                 i=10000;
                 qian1=i/1000;
                 bai1=i%1000/100 ;
                  shi1=i%100/10;
                  ge1=i%10;
               }
             }
        if(key==3)
          {if(cdbz==3)
           {
           TR0=0;
           TH0=(65536-50000)/256;
           TL0=(65536-50000)%256;
            //cr4=c1*10/counter0;
           cr3=counter0/1000;
           cr2=counter0%1000/100;
           cr1=counter0 %100/10;
           cr0=counter0%10;
           disp(2,5,0x05,0x11,kb);
           dispdata(5,0x08,0x15,cr1);
           dispdata(5,0x05,0x16,cr0);
           dispdata(5,0x0b,0x14,cr2);
           dispdata(5,0x0f,0x13,cr3);


           }
             else TR1=0;
          }
         }
      }

     P1=0xfd;
     temp=P1;
     temp=temp&0xf0;
   if(temp!=0xf0)
     {delay(10);
      if(temp!=0xf0)
        {temp=P1;
         switch(temp)
          {case 0xed:key=4;
             break;
           case 0xdd:key=5;
             break;
           case 0xbd:key=6;
             break;
           }
          while(temp!=0xf0)
           {temp=P1;
            temp=temp&0xf0;
            //BELL=0;
           }
          BELL=1;
     
    
           if(key==6)
          {  delay(5);
             if(key==6)
             {BELL=0;
             delay(50);
             BELL=1;
             cdbz++ ;
             if(cdbz<=2)
              {
               dispdata(1,0x08,0x12,cdbz);
               disp(2,5,0x00,0x10,kb) ;
              }
               else{
                    dispdata(5,0x05,0x10,cdbz);
                    disp(1,1,0x08,0x12,kb) ;
                   }
             if(cdbz==2)
                {   
                  x24c02_write(0,  qian);
                  delay();
                  x24c02_write(1,  bai);
                  delay();
                  x24c02_write(2,  shi);
                  delay();
                  x24c02_write(3,  ge);


                }

           if(cdbz==4)
             {
               cdbz=-1;
               disp(2,5,0x08,0x15,kb);
               disp(2,5,0x06,0x13,kb);
               cr4=c1/counter0;
               cr3=cr4/1000;
               cr2=cr4%1000/100;
               cr1=cr4 %100/10;
               cr0=cr4%10;
               //dispdata(5,0x08,0x15,cr1);
               //dispdata(5,0x05,0x16,cr0);
               //dispdata(5,0x0b,0x14,cr2);
              // dispdata(5,0x0f,0x13,cr3);
               x24c02_write(8,  cr3);
               delay();
               x24c02_write(9,  cr2);
               delay();
               x24c02_write(10,  cr1);
               delay();
               x24c02_write(11,  cr0);
               delay();
             }
            }
          }
           if(key==4)
            {
             if(cdbz==3)
              {
               disp(2,5,0x05,0x11,bd);
               counter0=0;
              TR0=1;
              }
             if (cdbz==0)
               {TR1=1;
                disp(2,5,0x05,0x11,bd);
                }
             }
            if(key==5)
             {
              sdbz++;
              if(sdbz==3)
              sdbz=0;
              dispdata(3,0x08,0x12,sdbz);
              if(sdbz==2)
                {  //qian1=i/1000;
                 // bai1=i%1000/100 ;
                //shi1=i%100/10;
                // ge1=i%10;
                 x24c02_write(4,  qian1);
                 delay();
                  x24c02_write(5,  bai1);
                  delay();
                  x24c02_write(6,  shi1);
                  delay();
                   x24c02_write(7,  ge1);
                }

              }
          }
       } 
      
      if(J2==0)
       {delay(5);
        if(J2==0)
         { TR0=1;
         
          g++;
          BELL=0;
            delay(50);
            BELL=1;
        if(g==300)
           { g=0;
            BELL=0;
            delay(50);
            BELL=1;
            }
          }
        }
        if(J3==0)
         {delay(1000);
           if(J3==0)
            {
             TR0=0;
             TR1=0;
             counter0=0;
             //dispdata(5,0x0f,0x13,counter0);
             //counter1=0;
             //THO=;
            /// TL0=;
            // TH1=;
            // TL1=;
            }
          } 
       
 
      if(cdbz==0)
      {qian=x24c02_read(0);
       bai=x24c02_read(1);
       shi=x24c02_read(2);
       ge=x24c02_read(3);
      c1=1000*qian+100*bai+10*shi+ge;
      }
      dispdata(1,0x08,0x15,shi);
      dispdata(1,0x05,0x16,ge);
      dispdata(1,0x0b,0x14,bai);
      dispdata(1,0x0f,0x13,qian);

       if(sdbz==0)
      {
      qian1=x24c02_read(4);
    
      bai1=x24c02_read(5);
    
      shi1=x24c02_read(6);
      
      ge1=x24c02_read(7);
      }
      dispdata(3,0x08,0x15,shi1);
      dispdata(3,0x05,0x16,ge1);
      dispdata(3,0x0b,0x14,bai1);
      dispdata(3,0x0f,0x13,qian1);

      qian2=g/1000;
      bai2=g%1000/100 ;
      shi2=g%100/10;
      ge2=g%10;
      dispdata(7,0x08,0x15,shi2);
      dispdata(7,0x05,0x16,ge2);
      dispdata(7,0x0b,0x14,bai2);
      dispdata(7,0x0f,0x13,qian2);
      disp(1,3,0x02,0x10,zs);
      disp(1,1,0x02,0x10,cd);
      disp(2,7,0x02,0x10,gs);
      dispdata(1,0x0f,0x16,10);
      dispdata(1,0x0b,0x17,11);
      //dispdata(3,0x0f,0x15,12);
      //dispdata(3,0x0e,0x16,13);
      //dispdata(3,0x0d,0x17,11);
     // cr3=x24c02_read(8);
      //cr2=x24c02_read(9);
      //cr1=x24c02_read(10);
     // cr0=x24c02_read(11);
      cr4=1000*cr3+100*cr2+10*cr1+cr0;
    
     
      if(c1/(cr4*counter1)==0)
       {TR1=0;
        dispdata(5,0x08,0x15,2);
         qg=1;
         delay(500);
         qg=0;
         
       }


 }
}
void timer0() interrupt 1
{TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 counter0++;

 }
void timer1() interrupt 3
{TH1=(65536-50000)/256;
 TL1=(65536-50000)%256;
 counter1++;
 cp=~cp;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -