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

📄 lcdkey03.c

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 C
📖 第 1 页 / 共 2 页
字号:
    lcd_wrcmd(0x83);
    for(i=0;i<9;i++)
        lcd_wrdata(warn[i]);
    lcd_wrcmd(0xc1);     
    for(i=0;i<12;i++)
        lcd_wrdata(warn[i+9]);
    while(1)
    {
        ii=getkey();
        if(ii!=0xff)
        {
            lcd_wrcmd(1);
            break;
            
        }

    }
}


uchar dac_convert(uchar *amp)
{
    uint v;
    v=amp[2]*100+amp[1]*10+amp[0];
    if(v<500)
    {
         v=32*v;
         dac_tlc5620(v/100);
         return 0;
     }
     else
     {
         return 1;
     }
        
}


amplitude()
{
     uchar i,ii;
     uchar amp[3],t=0;
     lcd_wrcmd(0x80);
     for(i=0;i<16;i++)
         lcd_wrdata(am[i]);
     lcd_wrcmd(0xcc);
     lcd_wrdata('V');
     lcd_wrcmd(0xc7);
     lcd_wrdata('.'); 
     lcd_wrcmd(0x0f);            //开光标
     lcd_wrcmd(0xc7);
     while(1)
     {
         ii=table[getkey()];
         if(ii==11)
         {
             if(t==4)
             {
                 if(dac_convert(amp))
            	 {
                     warning();
                     break;
                  }
             }
             lcd_wrcmd(0x0c);
             state=1;
             lcd_wrcmd(1);
             break;
         }
         if(ii<10)
         {   
             t++;
             if(t==1)
             {
                lcd_wrcmd(0xc9);
             }
             if(t==2)t++;
             if(t==1)amp[2]=ii;
             else if(t==3)amp[1]=ii;
             else if(t==4)amp[0]=ii;         

             if(t==5)
             {
                  t=0;
                  lcd_wrcmd(0xc7);
                  lcd_wrdata(' '); lcd_wrdata('.');lcd_wrdata(' ');lcd_wrdata(' ');
                  lcd_wrcmd(0xc7);
             }
             else
             {
                  lcd_wrcmd(0xc6+t);
                  lcd_wrdata(0x30+ii);
             }
                		 
        	 
         }

                 
     }
    
}

inputtl()
{  
    uchar i,j,n,cnt=0;
    for(i=0;i<3;i++)   
      TL[i]=NULL;
    lcd_wrcmd(0x80);
    lcd_wrdata('T');
    lcd_wrdata('L');
    lcd_wrdata('=');
    while(1)
    {i=table[getkey()];
           if(i<10)
           {        cnt++;
                 if(cnt<=3)
                 {	 TL[cnt-1]=i;
                     lcd_wrcmd(0x83+cnt-1);
                     lcd_wrdata(0x30+i);
                     
                 }       			 
                 else{
                     cnt=0;             	 					 
                     lcd_wrcmd(0x83);
                     for(j=0;j<=3;j++)
                         lcd_wrdata(' ');  
                          lcd_wrcmd(0x83);

                     }
           }

          else if(i==12)
            {
                 state=1;
                 lcd_wrcmd(0x0c);
                 lcd_wrcmd(1);
                 lcd_wrcmd(0x80);
                 n=strlen(TL);
                 if(TL[2]>=0&&TL[2]<=9)
                 TLL=TL[0]*100+TL[1]*10+TL[2];
                
                 break;
            }

             
                 
       
  }
}


inputth()
{  
    uchar i,j,n,cnt=0;
    for(i=0;i<3;i++)   
      TL[i]=NULL;
    lcd_wrcmd(0x80);
    lcd_wrdata('T');
    lcd_wrdata('H');
    lcd_wrdata('=');
    while(1)
    {i=table[getkey()];
           if(i<10)
           {        cnt++;
                 if(cnt<=3)
                 {	 TH[cnt-1]=i;
                     lcd_wrcmd(0x83+cnt-1);
                     lcd_wrdata(0x30+i);
                     
                 }       			 
                 else{
                     cnt=0;             	 					 
                     lcd_wrcmd(0x83);
                     for(j=0;j<=3;j++)
                         lcd_wrdata(' ');  
                          lcd_wrcmd(0x83);

                     }
           }

          else if(i==12)
            {
                 state=1;
                 lcd_wrcmd(0x0c);
                 lcd_wrcmd(1);
                 lcd_wrcmd(0x80);
                 n=strlen(TH);
                 if(TH[2]>=0&&TH[2]<=9)
                 THH=TH[0]*100+TH[1]*10+TH[2];
                
                 break;
            }

             
                 
       
  }
}
    
menu()
{
     uchar i,ii,cnt=1;

     lcd_wrcmd(0x83);
     for(i=0;i<strlen(str4);i++)
         lcd_wrdata(str4[i]);
     lcd_wrcmd(0xc3);
     i=0;
     while(str5[i]!='\0')
     {
        lcd_wrdata(str5[i]);
        i++;
     }
     lcd_wrcmd(0x80);
     lcd_wrdata('-');
     lcd_wrdata('>');


     while(1)
     {
         ii=table[getkey()];
       ///////////////////////////翻屏///////////////////////////////
         if(ii==15)        
         {   cnt++;
             if(cnt==7) cnt=1;
             if(cnt==1)
             {
                 //////////////////////
                 // ->1: FREQENCY
                 //   2: PHASE
                 /////////////////////
                 lcd_wrcmd(1);//clear
                 lcd_wrcmd(0x83);        //frequency
                 for(i=0;i<strlen(str4);i++)
                     lcd_wrdata(str4[i]);

                 lcd_wrcmd(0xc3);       //phase
                 i=0;
                  while(str5[i]!='\0')
                  {
                       lcd_wrdata(str5[i]);
                       i++;
                  }
                  lcd_wrcmd(0x80);
                  lcd_wrdata('-');
                  lcd_wrdata('>');               
             }

             else if(cnt==2)
             {
                 //////////////////////
                 //     1: FREQENCY
                 //   ->2: PHASE
                 /////////////////////
                 lcd_wrcmd(1);//clear

                 lcd_wrcmd(0x83);        //frequency
                 for(i=0;i<strlen(str4);i++)
                     lcd_wrdata(str4[i]);

                 lcd_wrcmd(0xc3);       //phase
                 i=0;
                  while(str5[i]!='\0')
                  {
                       lcd_wrdata(str5[i]);
                       i++;
                  }
                  lcd_wrcmd(0xc0);
                  lcd_wrdata('-');
                  lcd_wrdata('>');
             }
             else if(cnt==3)
             { 

                 //////////////////////
                 //     2: PHASE
                 //  -> 3: Amplitude 
                 /////////////////////
                 lcd_wrcmd(1);

                 lcd_wrcmd(0xc3);           //Amplitude 
                 for(i=0;i<strlen(str6);i++)
                     lcd_wrdata(str6[i]);        

                  lcd_wrcmd(0x83);
                  i=0;
                  while(str5[i]!='\0')      //phase
                  {
                       lcd_wrdata(str5[i]);
                       i++;
                  }
                  lcd_wrcmd(0xc0);
                  lcd_wrdata('-');
                  lcd_wrdata('>');
             }
             else if(cnt==4)
             {

                 //////////////////////
                 //     3: Amplitude 
                 //  -> 4: tempeture
                 /////////////////////
                 lcd_wrcmd(1);
                 lcd_wrcmd(0x83);           //setting
                 for(i=0;i<strlen(str6);i++)
                     lcd_wrdata(str6[i]);        
                 lcd_wrcmd(0xc3);
                 for(i=0;i<strlen(str8);i++)
                     lcd_wrdata(str8[i]);   //help      		
                 lcd_wrcmd(0xc0);
                 lcd_wrdata('-');
                 lcd_wrdata('>'); 
             }
               else if(cnt==5)
             {

                 //////////////////////
                 //    4: tempeture   
                   
                 // ->   5: INPUT  TL 
                 /////////////////////
                 lcd_wrcmd(1);
                 lcd_wrcmd(0x83);           //setting
                 for(i=0;i<strlen(str8);i++)
                     lcd_wrdata(str8[i]);        
                 lcd_wrcmd(0xc3);
                 for(i=0;i<strlen(str10);i++)
                     lcd_wrdata(str10[i]);   //help      		
                 lcd_wrcmd(0xc0);
                 lcd_wrdata('-');
                 lcd_wrdata('>'); 
             }
                else if(cnt==6)
             {

                 //////////////////////
                 //    5: INPUT  TL    
                   
                 // ->  6: INPUT  TH 
                 /////////////////////
                 lcd_wrcmd(1);
                 lcd_wrcmd(0x83);           //setting
                 for(i=0;i<strlen(str10);i++)
                     lcd_wrdata(str10[i]);        
                 lcd_wrcmd(0xc3);
                 for(i=0;i<strlen(str11);i++)
                     lcd_wrdata(str11[i]);   //help      		
                 lcd_wrcmd(0xc0);
                 lcd_wrdata('-');
                 lcd_wrdata('>'); 
             }
        	 
                     		    
         }
////////////////////////////////////////////////////////////////
         else if(ii==14)
         {
             if(cnt==1)
             {
                 state=2;
                 lcd_wrcmd(1);
                 break;
              }
              else if(cnt==2)
              {
                  state=3;
                  lcd_wrcmd(1);
                  break;
              }
              else if(cnt==3)
              {
                  state=5;
                  lcd_wrcmd(1);
                  break;
              }         	    
              else if(cnt==4)     //help
              {
                  state=4;
                  lcd_wrcmd(1);
                  break;

              }
              else if(cnt==5)     //help
              {
                  state=6;
                  lcd_wrcmd(1);
                  break;
               }
                else if(cnt==6)     //help
              {
                  state=7;
                  lcd_wrcmd(1);
                  break;
               }

         }
         else if(ii==1)
         {
              state=2;
              lcd_wrcmd(1);
              break;
         }
         else if(ii==2)
         {
              state=3;
              lcd_wrcmd(1);
              break;
         }
         else if(ii==3)
         {
              state=5;
              lcd_wrcmd(1);
              break;
         }
         else if(ii==4)
         {
               state=4;
              lcd_wrcmd(1);
               break;
         }    


     }




}


/*help()
{
    uchar i,ii;
    lcd_wrcmd(0x80);
    for(i=0;i<16;i++)
    {
        lcd_wrdata(he[i]);
    }
    while(1)
    {
        ii=getkey();
        if(ii!=0xff)
        {
            lcd_wrcmd(1);
            state=1;
            break;
         }
        
        
    }

}*/


main()
{     
       lcd_bus=0xff;
       lcd_ini();
       dac_tlc5620(128);    //A(LPS)=1.586

       while(1)
       {   
           if(state==0)welcome();
           else if(state==1)menu();
           else if(state==2)frequency();
           else if(state==3)phase();
           else if(state==4)tempdisplay();
           else if(state==5)amplitude();
           else if(state==6)inputtl();
           else if(state==7)inputth();
       }
           
}
        	



                

⌨️ 快捷键说明

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