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

📄 main.c

📁 自己写的测试程序,调试已通过,可以直接使用, 而且有的还有详细的注释.红外采集器软件
💻 C
📖 第 1 页 / 共 5 页
字号:
				  }
	display_set(); 

  ch451_init();  
  ch451_write(0x406);
   

 } 
 //******************    off    *********************************************//
 void off(void)
 {
              clear_lcd_screen();
  
       
              write_word(0,3,16,&chinese[63]);  // 重新启动中……
              write_word(0,3,32,&chinese[39]);
              write_word(0,3,48,&chinese[64]);  
              write_word(1,3,0,&chinese[65]); 
			                                  write_byte(1,3,30,&number[24]);
              write_word(1,3,16,&chinese[36]);

              
              write_byte(1,3,34,&number[24]);
              write_byte(1,3,38,&number[24]);
              write_byte(1,3,42,&number[24]);
              write_byte(1,3,46,&number[24]);
             // write_byte(1,3,50,&number[24]);


         delay_1s(20000);
  EA=0;
  while(1);
  }
/*******************  myselfe_number  ******************************/
void myselfe_number(void)
{
  unsigned char o1,o2;
  clear_lcd_screen();
  write_word(0,3,16,&chinese[18]);            //write input a word "本"
  write_word(0,3,32,&chinese[19]);           //write input a word "机"
  write_word(0,3,48,&chinese[20]);           //write input a word "编"
  write_word(1,3,0,&chinese[21]);           //write input a word "号"
  write_byte(1,3,16,&number[22]);             //write input a byte ":"
 
  read_iic_data(1,&iic_read,5,1);
  o1=iic_read[0]/100;
  write_byte(1,3,24,&number[o1]);
  o2=(iic_read[0]-o1*100)/10;
  write_byte(1,3,32,&number[o2]);
  o1=(iic_read[0]-o1*100-o2*10)%10;
  write_byte(1,3,40,&number[o1]);
 key_delay(60000);
 key_delay(60000);
 clear_lcd_screen();
}
/*******************  myselfe_number  ******************************/
void myselfe_number_1(void)
{
  unsigned char o1,o2;

  write_word(0,0,18,&chinese[18]);            //write input a word "本"
  write_word(0,0,34,&chinese[19]);           //write input a word "机"
  write_word(0,0,50,&chinese[20]);           //write input a word "编"
  write_word(1,0,1,&chinese[21]);           //write input a word "号"
  write_byte(1,0,16,&number[22]);             //write input a byte ":"
 
  read_iic_data(1,&iic_read,5,1);
  o1=iic_read[0]/100;
  write_byte(1,0,24,&number[o1]);
  o2=(iic_read[0]-o1*100)/10;
  write_byte(1,0,32,&number[o2]);
  o1=(iic_read[0]-o1*100-o2*10)%10;
  write_byte(1,0,40,&number[o1]);
}

//**********  给写到LCD SCREEN 的数据求反  ***************/
void changed(bit x,bit k,unsigned char  y[])  
 {
  unsigned char i;
  unsigned char *p;
  p=y;

  if(x==0)
     {
	  for(i=0;i<16;i++)
	   {
	     if(k==1)
		   {change_byte[i]=~*p;
	       p++;}
		   else 
		     {
			  change_byte[i]=*p;
			  p++;
			  }
	     }}
   if(x==1)
   {
  for(i=0;i<32;i++)
  {   
     if(k==1)
      {
	  change_word[i]=~*p;
	 p++;
	  }
	  else 
	   {
	    change_word[i]=*p;
		p++;
		}
     }}
 }
/**************     setup succeed  ************************************/
void setup_succeed(void)
{								      
  clear_lcd_screen();
  write_word(0,3,32,&chinese[66]);
  write_word(0,3,48,&chinese[67]);  
  write_word(1,3,0,&chinese[55]);
  write_word(1,3,16,&chinese[56]);
  write_byte(1,3,32,&number[23]); 
  key_delay(60000);key_delay(60000);
  clear_lcd_screen();
  }
/****************  setup unceed  **************************/
void setup_unsucceed(void)
{								      
  clear_lcd_screen();
  write_word(0,3,24,&chinese[25]);
  write_word(0,3,40,&chinese[26]);  
  write_word(0,3,56,&chinese[17]);
  write_word(1,3,8,&chinese[114]);
  write_word(1,3,24,&chinese[115]);

  write_byte(1,3,40,&number[23]); 
  key_delay(60000);key_delay(60000);
  clear_lcd_screen();
  }
/*****************    key  *********************************************/

  
void key(void)
{
 unsigned char i,key_value,ff,bb,ss,display_mode;
 unsigned char change_value;
 unsigned char page;
 int temp;
 bit minus_flag;
 bit row1,row2,row3,row4;
 float temperature_value;                      // ES=0;



//  unsigned long int n1;
//  float g_value;
//   short int voltage;   
 
     key_value=key_code();                                                      
	 key_flag=0;
                            //if(key_flag==1){while(1);}
		 if(key_value==0x58|key_value==0x18)
		        {  
				                          clear_lcd_screen();
                                        write_word(0,3,40,&chinese[22]);
                                        write_word(0,3,56,&chinese[106]);
                                        write_word(1,3,8,&chinese[107]);

                                        write_byte(1,3,24,&number[27]); 
                                        write_byte(1,3,28,&number[27]); 
                                        write_byte(1,3,32,&number[27]); 
                                        write_byte(1,3,36,&number[27]); 
                                        write_byte(1,3,40,&number[27]); 

				 read_iic_data(1,&iic_read,0,8);delay_iic();
				 write_iic_data(3,&iic_read,0,8);delay_iic();				                                                
				       i=iic_read[0];                                       
				 for(iic_write[0]=0;iic_write[0]<i;iic_write[0]++)
				    {
   				 read_iic_data(0,&iic_read,iic_write[0]*8,8);delay_iic();
				 write_iic_data(2,&iic_read,iic_write[0]*8,8);delay_iic();

				    
				   }
             setup_succeed();
				}
 
		 if(key_value==0x60)                    
		  {
		    
		    for(i=0;i<40;i++)
			  {key_delay(1000);
			   key_value=key_code();
                  key_flag=0;
			    if(key_value!=0x60)
				  {break;}
				  }
				  if(key_value==0x60){myselfe_number();key_value=0; } // 查看本机编号!
		   }                                                 
         if(key_value==0x40)    // 重启!                  
           {
             for(i=0;i<40;i++)
		        {
		          key_delay(1000);
		          key_value=key_code();
		          if(key_value!=0x40){break;}
	            }
		        if(key_value==0x40){off();}
		   }                                            
		                                                        
        if(key_value==0x20|key_value==0x60)                   //enter menu
		  { 
		    row1=1;row2=0;row3=0;row4=0;change_value=0;
            clear_lcd_screen();                                                 
	while(1) 
		     {                                                                   flag_exit=1;if(flag_exit_ok){flag_exit=0;flag_exit_ok=0;return;}
	    changed(0,row1,&number[1]);                     //row1
			   
              write_byte(0,0,4,&change_byte);  
          changed(0,row1,&number[19]);                   
			   
              write_byte(0,0,12,&change_byte);  
 
        changed(1,row1,&chinese[11]);
		      write_word(0,0,16,&change_word);
        changed(1,row1,&chinese[12]);
              write_word(0,0,32,&change_word);  
        changed(1,row1,&chinese[66]);
              write_word(0,0,48,&change_word);
		changed(1,row1,&chinese[67]);
              write_word(1,0,0,&change_word);
            for(i=0;i<16;i++)
			   {
			    if(row1==1){ff=0xff;}
				else {ff=0x00;}
				change_byte[i]=ff;
				}
      
              write_byte(1,0,16,&change_byte);
              write_byte(1,0,24,&change_byte);
		      write_byte(1,0,32,&change_byte);
              write_byte(1,0,40,&change_byte);
              write_byte(1,0,48,&change_byte);
             // write_byte(1,0,48,&change_byte);
		     // write_byte(1,0,56,&change_byte);

           changed(0,row2,&number[2]);                      //row2
		      write_byte(0,2,4,&change_byte);
          changed(0,row2,&number[19]);                   
			   
              write_byte(0,2,12,&change_byte);  
             changed(1,row2,&chinese[68]);
              write_word(0,2,16,&change_word); 
             changed(1,row2,&chinese[69]);
              write_word(0,2,32,&change_word); 
           changed(1,row2,&chinese[60]);
              write_word(0,2,48,&change_word);   
            changed(1,row2,&chinese[61]);
              write_word(1,2,0,&change_word); 
                 for(i=0;i<16;i++)
			   {
			    if(row2==1){ff=0xff;}
				else {ff=0x00;}
				change_byte[i]=ff;
				}
      
              write_byte(1,2,16,&change_byte);
              write_byte(1,2,24,&change_byte);
		      write_byte(1,2,32,&change_byte);
              write_byte(1,2,40,&change_byte);
              write_byte(1,2,48,&change_byte);

          changed(0,row3,&number[3]);                      //row3
		      write_byte(0,4,4,&change_byte);
          changed(0,row3,&number[19]);                   
			   
              write_byte(0,4,12,&change_byte);  
             changed(1,row3,&chinese[70]);
              write_word(0,4,16,&change_word); 
             changed(1,row3,&chinese[71]);
              write_word(0,4,32,&change_word); 
           changed(1,row3,&chinese[72]);
              write_word(0,4,48,&change_word);   
            changed(1,row3,&chinese[73]);
              write_word(1,4,0,&change_word); 
             changed(1,row3,&chinese[66]);
              write_word(1,4,16,&change_word);   
            changed(1,row3,&chinese[67]);
              write_word(1,4,32,&change_word); 
         
          changed(0,row3,&number[19]); 
        write_byte(1,4,48,&change_byte);

           changed(0,row4,&number[4]);                      //row4
		      write_byte(0,6,4,&change_byte);
          changed(0,row4,&number[19]);                   
			   
              write_byte(0,6,12,&change_byte);  
             changed(1,row4,&chinese[74]);
              write_word(0,6,16,&change_word); 
             changed(1,row4,&chinese[75]);
              write_word(0,6,32,&change_word); 
           changed(1,row4,&chinese[76]);
              write_word(0,6,48,&change_word);   
            changed(1,row4,&chinese[77]);
              write_word(1,6,0,&change_word); 
                 for(i=0;i<16;i++)
			   {
			    if(row4==1){ff=0xff;}
				else {ff=0x00;}
				change_byte[i]=ff;
				}
      
              write_byte(1,6,16,&change_byte);
              write_byte(1,6,24,&change_byte);
		      write_byte(1,6,32,&change_byte);
              write_byte(1,6,40,&change_byte);
              write_byte(1,6,48,&change_byte);

             
          if(key_flag==1)
		  {            
	                                                                ok_n_times=0;
	   key_value=key_code();key_flag=0;
          if(key_value==0x20|key_value==0x60){clear_lcd_screen();  change_value=0;  row1=1;row2=0;row3=0;row4=0;break;}  
          
		  if(key_value==0x48|key_value==0x08) {change_value++; if(change_value>3){change_value=0;}	}
   		  if(key_value==0x50|key_value==0x10) {if(change_value<=0) {change_value=3;	}else{change_value--;}  }
		     if(key_value==0x40)
		           {
			      if(row1)
			        	 {row1=1;row2=0;row3=0;row4=0;
                         clear_lcd_screen();
				    	while(1)
		                   {               flag_exit=1;if(flag_exit_ok){flag_exit=0;flag_exit_ok=0;return;}
	                       changed(0,row1,&number[1]);                     //row11
			    
                           write_byte(0,0,4,&change_byte);  

⌨️ 快捷键说明

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