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

📄 2.c

📁 本人设计的汽车用燃油加热器控制程序
💻 C
字号:
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int

                   /* 0   1     2    3    4     5   6    7   8     9   H     L   n    */
uchar code table[]={0x14,0x77,0x4c,0x45,0x27,0x85,0x84,0x57,0x04,0x05,0x26,0xf4,0xe6,0xff,0xff};
uchar idata buf[]={0,1,2,3,4,5,6,7,8,9,10,11,12};
uchar idata buf1[]={0,1,2,3,4,5,6,7,8,9,10,11,12};
void dis(uchar idata *t);
sbit keysub=P3^6;
sbit keyadd=P3^5;
sbit out=P2^4;
sbit setting=P3^7;
bit flag=1;
uint hh=25;uint ll=50;uint h=50;uint l=25; uchar nn=20;
 key(){char i;uchar dy=250; 
         TR0=1;ET0=1;
         
	 	              do{ buf1[2]=nn/10;
                            buf1[0]=nn%10;
                            buf1[1]=0x0c;
  	                        buf1[3]=0x0a;
							dis(buf1+3);}while(!setting);
                            _nop_();
		  do{ 	            _nop_();
							buf1[2]=nn/10;
                            buf1[0]=nn%10;
                            buf1[1]=0x0c;
  	                        buf1[3]=0x0a;
							dis(buf1+3);
                            _nop_();  
       if(!keyadd)do{if(++nn>30){nn=30;}
                            buf1[2]=nn/10;
                            buf1[0]=nn%10;
                            buf1[1]=0x0c;
  	                        buf1[3]=0x0a;
								for(i=0;i<50;i++){
							while(--dy);
							while(--dy);
                            dis(buf1+3); 
							while(--dy);}
			                }while(!keyadd);
	  if(!keysub)do{if(1<nn){--nn;}
	                else{nn=1;}
					 	     buf1[2]=nn/10;
                             buf1[0]=nn%10;
                             buf1[1]=0x0c;
                             buf1[3]=0x0a;
                            	for(i=0;i<50;i++){
							while(--dy);
							while(--dy);
							dis(buf1+3);
							while(--dy);}
                                  }while(!keysub);
		     }while(setting);

		do{                _nop_();
							buf1[2]=nn/10;
                            buf1[0]=nn%10;
                            buf1[1]=0x0c;
  	                        buf1[3]=0x0a;
							dis(buf1+3);
		}while(!setting);
	 _nop_();
	 _nop_();
 TR0=0;ET0=0;
  hh=ll=h=l=(500/nn);
   TR0=1;ET0=1;
 
    
 }  



void main(){
    
   TMOD=0x11;
   TH0=0xfc;
   TL0=0x4a;
   
   EA=1;
   ET0=1;
   TR0=1;		     
   TH1=0xd8;
   TL1=0xf0;
   ET1=0;
   TR1=0;   
   while(1){ 

         
                      
  if(!setting){
  _nop_();
  _nop_();
  _nop_();
  TR0=0;ET0=0;
   key();
              } 
	 else{              buf1[2]=nn/10;
                        buf1[0]=nn%10;
                    	buf1[1]=0x0d;
                    	buf1[3]=0x0d;
                        dis(buf1+3);
                         _nop_();
	                     _nop_();}
 } 
}
void dis  (uchar idata *t){
    uchar i;uchar m=100;uchar rl=0x01;
	for(i=0;i<=3;i++){	
	   P1=table[*t];
	   P3=~rl;
	   
	   rl=(rl<<1);
	   t--;
	   while(--m);
	  
	}

}
 time0() interrupt 1 using 1{
      
      TH0=0xfc;
      TL0=0x4a;
	  P1=0xff;P3=0xff;
	  if(flag){if(h!=0){--h;}
	          else {out=!out;h=hh;}
			  }
      else {if(l!=0){--l;}
	            else{out=!out;l=ll;}
			}

     
}


⌨️ 快捷键说明

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