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

📄 newboy.c

📁 使用emc单片机控制家用小电跑的面板控制程序,是学习EM78x447系列单片机c语言入门的好帮手
💻 C
📖 第 1 页 / 共 2 页
字号:
        {
        	key_scan_up++;
        }
         else if((Speed_up_key==1)&&(Speed_down_key==0))
        {
        	key_scan_down++;
        } 
        else if(Speed_3km_key==0)
        {
        	key_scan_three++;
         }
        else if(Speed_6km_key==0)
        {
        	key_scan_six++;
        }
        else if((Speed_up_key==0)&&(Speed_down_key==0))
        {
        	key_scan_zero++;
        }
        
        
        if(key_scan_ss>=99)
        {
             key_scan_ss=0;
             sw=1;
             be_nud++;
             
        }
        
        else if(key_scan_up>=150)
        {
             sw=2;
             key_scan_up=0;
             be_nud++;
        }
        else if(key_scan_down>=150)
        {
             sw=3;
             key_scan_down=0;
             be_nud++;
        }
        else if(key_scan_three>=150)
        {
             sw=4;
             key_scan_three=0;
        }
        else if(key_scan_six>=150)
        {
             sw=5;
             key_scan_six=0;
        }
        else if(key_scan_zero>=150)
        {
             sw=6;
             key_scan_zero=0;
        }
       
        time_speed_distance_displayer_count();
        
        if(trans_flag==1)
        {
            trans_pin=0;
            trans_time++;
            if(trans_time==7)
            {
                 trans_flag=0;
                 trans_time=0;
                 communication_trans_data(trans_num);
            }
        }
        
        if(cs_times==1)
        {
           	PORT6=0xff;	
           	led_write_eight(0xff);
            led_write_eight(realistic_miao);
            PORT6=0xfe;
        } 
        if(cs_times==2)
        {
           	PORT6=0xff;	
           	led_write_eight(0xff);
            led_write_eight(realistic_shi_miao);
            PORT6=0xfd;
        }
         if(cs_times==3)
        {
        	PORT6=0xff;
        	led_write_eight(0xff);
            led_write_eight(realistic_fen);
        	PORT6=0xfb;
        }
         if(cs_times==4)
        {
        	PORT6=0xff;
        	led_write_eight(realistic_tenkilometer);
            led_write_eight(realistic_shi_wei);
            PORT6=0xf7;
        }
         if(cs_times==5)
        {
        	PORT6=0xff;
        	led_write_eight(realistic_kilometer);
            led_write_eight(realistic_ge_wei);
            PORT6=0xef;
        }
         if(cs_times==6)
        {
        	PORT6=0xff;
        	led_write_eight(realistic_hundredmeter);
            led_write_eight(realistic_fen_wei);
            PORT6=0xdf;   
        }
        if(cs_times==7)
        {
        	PORT6=0xff;
        	led_write_eight(0xff);
            led_write_eight(realistic_shi_fen);
            PORT6=0xbf;
            cs_times=0;
        }
               
         
        cs_times++;
        if(display_on==8)
        {
             on_all_display++;
             delayms(68);
             if(on_all_display==800)
             {
                display_on=0;
                clean_display();
                on_all_display=0;
             }
        }
        
        bee_sound_scan();

          if((on_off==1)&&(power_on==1))
          {
     	      if(on_off==1){start_time=1;} //enable time interrupt
     	    
     	       if(sw==1)
        	   {
        	       if(be_nud==1)
        		  {
        		     on_off=0;
        		     sw=0;
        		     bee_num=1;
        		     trans_flag=1;
        		     trans_num=206;  
        		  } 
        		   
        	   }
        	   else if(sw==2)
        	   {

        		       speed++;
        		        sw=0;
        		          if(be_nud<3)
        		           {
        		               bee_num=1;
        		           }
        		           if(speed>100)
        		           {
        		              bee_num=2;
        		           }

        	   }
        	   else if(sw==3)
        	  {
        		  speed--;
        		  sw=0;
        		  if(be_nud<3)
        		  {
        		     bee_num=1;
        		  }
        		  if(speed<8)
        		  {
        		     bee_num=2;
        		  }
        	  }
        	  else if(sw==4)
        	  {
        		  speed=30;
        		  sw=0;
        		  bee_num=1;
        	  }
        	  else if(sw==5)
        	  {
        		  speed=60;
        		  sw=0;
        		  bee_num=1;
        	  }
        	  else;
                
                if(speed<8)speed=8;
                else if(speed>100)speed=100; 
                
                receive_com();
                
                if(t_zero==1)
                {
                	display_on=4;
                	on_off=0;
                }
                
                
                if((former_speed!=speed)&&(former_second==1))
                {
                    k=2;
                    former_speed=speed;
                    trans_num=(Byte)(former_speed);
                    trans_flag=1;   
                }
                
                time_count();
                if(ten_minute>9)
                {
                    second=0;
                  	ten_second=0;
                   	minute=0;
                	ten_minute=0;
                }
                if(distance>=1000)
                {
                	distance=0;
                }
                h=(Byte)(360/speed);
                if(k>h)
                {
                     distance+=(speed*k)/360;
         	         k=0;
                } 
                
                
          }	 
          
                
          else if((on_off==0)&&(power_on==1))
          {
     	      if(on_off==0){start_time=0;}
     	     
     	        if(sw==1)
             	{
             	    if(be_nud==1)
        	     	{
        	  
        		    bee_num=1;
        	    	sw=0;
        	    	display_on=16;

        	    	clean_display();
        	    	count_num=91;
        	    	ENI();
        	    	
        	    	}
             	}
        	     else if(sw==2)
        	     {
        	    	bee_num=2;
        	    	sw=0;
               	 }
        	     else if(sw==3)
        	     {
        		    bee_num=2;
        		    sw=0;
        	     }
        	     else if(sw==4)
        	     {
        		    bee_num=2;
        		    sw=0;
        	     }
        	     else if(sw==5)
        	     {
        		    bee_num=2;
        	        sw=0;
        	     }
        	     else if(sw==6)
        	     {
        		    bee_num=1;
        		    clean_display();
        		    sw=0;
        	     }
        	     else;
        	     if(display_on==16)
        	     {
        	          dao_ji_shi=1;     
        	     }
        	     if(three_dao_ji==0)
                 {
                      trans_flag=1;
        	          trans_num=205;
        	          three_dao_ji=3;
        	          dao_ji_shi=0;
        	          on_off=1;
        	          display_on=0;
        	          t_zero=0;   
                 }
     	   }    
                       
           
           
           else
           {
                if(sw!=0)
                {
                    sw=0;
                    bee_num=2;
                    delayms(1000);
                   
                }
           }
          
          if((Speed_up_key!=0)&&(Speed_down_key!=0)&&(Start_stop_key!=0))
          {
          		be_nud=0;
          }
         
	}

}

void _intcall INTERRUPT_l(void) @ 0x01:low_int 0
{
  //backup ACC,R3,R4
  _asm 
   {
     MOV 0X1F,A
     SWAPA 0X4
     BS 0X4,6
     BS 0X4,7
     MOV 0X3F-1,A
     SWAPA 0X3
     MOV 0X3E-1,A
   }  	
 
}
void _intcall INTTERRUPT(void) @ int 0
{
   //backup C system
   _asm
    { 
	MOV A,0X10	// USE 1 BYTE C TYPE,C SYSTEM BACKUP
	MOV 0X3C,A
	MOV A,0X14
	MOV 0X3B,A
	MOV A,0X18
	MOV 0X3A,A
	MOV A,0X1B
	MOV 0X39,A
	MOV A,0X1C
	MOV 0X38,A
    }
 
     
 
  // Write your code (inline assembly or C) here
   TCC=0;
     if(dao_ji_shi==1)
     {
           count_num--;
           if(count_num==0)
           {
               count_num=91;
               three_dao_ji--;
               bee_num=1;
           }
     }
     if(start_time==1)
     {
          
     	  count_num--;
     	  if(count_num==45)
     	  {
     	  		former_second=!former_second;
     	  }
     	  if(count_num==0)
          {
     	      count_num=91;
              second++;
              k++;
              former_second=!former_second;
              
          }
             
     }
       _asm
     {
  		mov	a,@0
  		mov	0x3f,a
     }
  
   //restore C system
   _asm
    {  
        BS 0X4,6
     	BS 0X4,7
	MOV A,0X3C	// USE 1 BYTE C TYPE,C SYSTEM RESTORE
	MOV 0X10,A
	MOV A,0X3B
	MOV 0X14,A
	MOV A,0X3A
	MOV 0X18,A
	MOV A,0X39
	MOV 0X1B,A
	MOV A,0X38
	MOV 0X1C,A
    }

 
  //restore ACC,R3,R4
  _asm 
   {
     BS 0X4,6
     BS 0X4,7
     SWAPA 0X3E-1
     MOV 0X3,A
     SWAPA 0X3F-1
     MOV 0X4,A
     SWAP 0X1F
     SWAPA 0X1F 
   } 
 	
}

⌨️ 快捷键说明

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