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

📄 adcvrt.c

📁 该程序是NECupd78F9479的开发的代LCD的空调方案
💻 C
字号:

#pragma NOP
#pragma rot
#include "define.h"

unsigned char D_ADtimes;		//ad sample times
unsigned char D_ADmin;			//ad value min
unsigned char D_ADbuf;			//ad value buffer
unsigned char D_ADmax;			//ad value max
unsigned char D_ADch;				//ad channle
unsigned char D_ADroom;			//room temprature ad value
unsigned char D_TMPrm;			//room temprature degree
unsigned char D_ADcoil;			//coil temprature ad value
unsigned char C_ADerr;			//AD Sample erro
unsigned char D_TMPcoil;		//coil temprature degree
unsigned char D_ADkey;			//eletric current ad value
unsigned char D_ADice;			//out coil temprature ad value
unsigned char err_buf;			//erro buf for erro ad sample flag
unsigned char D_ADout;			//out door temprature ad value

sreg unsigned char F_FLGerr;		//ad erro flag
sreg unsigned char F_ERRbak;		//ad erro flag backup
#define b_ERRTrm F_ERRbak.0			//room ad value erro flag				
#define b_ERRTcoil F_ERRbak.1		//coil ad value erro flag
sreg unsigned char ad_flag;
#define f_AD1s	ad_flag.0											//AD 1 ms delay
#define b_ERR1	ad_flag.1										//bit buffer
extern bit f_temp;	
const char TEMPTAB1[256]=
{	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	21,
	22,
	22,
	23,
	24,
	25,
	25,
	26,
	27,
	27,
	28,
	28,
	29,
	30,
	30,
	31,
	31,
	32,
	32,
	33,
	33,
	34,
	34,
	35,
	35,
	36,
	36,
	37,
	37,
	38,
	38,
	38,
	39,
	39,
	40,
	40,
	41,
	41,
	41,
	42,
	42,
	43,
	43,
	43,
	44,
	44,
	45,
	45,
	45,
	46,
	46,
	47,
	47,
	47,
	48,
	48,
	48,
	49,
	49,
	49,
	50,
	50,
	51,
	51,
	51,
	52,
	52,
	52,
	53,
	53,
	53,
	54,
	54,
	55,
	55,
	55,
	56,
	56,
	56,
	57,
	57,
	57,
	58,
	58,
	58,
	59,
	59,
	59,
	60,
	60,
	60,
	61,
	61,
	62,
	62,
	62,
	63,
	63,
	63,
	64,
	64,
	64,
	65,
	65,
	66,
	66,
	66,
	67,
	67,
	68,
	68,
	68,
	69,
	69,
	69,
	70,
	70,
	70,
	71,
	71,
	72,
	72,
	72,
	73,
	73,
	74,
	74,
	74,
	75,
	75,
	76,
	76,
	76,
	77,
	77,
	78,
	78,
	78,
	79,
	79,
	80,
	80,
	80,
	81,
	81,
	82,
	82,
	83,
	83,
	84,
	84,
	85,
	85,
	86,
	86,
	87,
	87,
	88,
	88,
	89,
	90,
	90,
	91,
	91,
	92,
	92,
	93,
	93,
	94,
	95,
	95,
	96,
	96,
	97,
	98,
	98,
	99,
	100,
	100,
	101,
	102,
	103,
	103,
	104,
	105,
	106,
	106,
	107,
	108,
	109,
	110,
	111,
	112,
	113,
	114,
	115,
	116,
	117,
	118,
	119,
	121,
	122,
	123,
	125,
	126,
	128,
	129,
	131,
	133,
	135,
	137,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,
	138,	
	139,
	139,
	139,
	139,
	139,
};

void ADnext(void);
void ADtab(void);
void ADcvrt()
{register unsigned char AD_buf1,AD_buf2;
	 
	
		
	if(f_adovr)
			{	f_adovr=0;
				//f_adstart=0;
				if(D_ADtimes==18)
					{	D_ADtimes--;
						D_ADmin=ADCRL0;
						D_ADbuf=0;
						
					//	f_adstart=1;
					}
				else
					{	if(D_ADtimes==17)
							{D_ADtimes--;
							if(ADCRL0<D_ADmin)
								{	D_ADmax=D_ADmin;
									D_ADmin=ADCRL0;									
								}
							else
								{D_ADmax=ADCRL0;
								}
						//	f_adstart=1;
							}
						else
							{		AD_buf1=ADCRL0;
									if(AD_buf1<D_ADmin)
										{	AD_buf1=D_ADmin;
											D_ADmin=ADCRL0;
										
										}							
										
									if(AD_buf1>D_ADmax)
										{	AD_buf2=D_ADmax;
											D_ADmax=AD_buf1;
													
										}	
											
										D_ADbuf=+AD_buf1;
										D_ADtimes--;
													if(D_ADtimes==0)
														{	D_ADtimes=18;
															rorb(D_ADbuf,4);
															switch(D_ADch)
																{	case n_ADroom:
																	{	D_ADroom=D_ADbuf;
																		//if(f_AD1s)
																		//{	
																		//	f_AD1s=0;
																			ADtab();
																			D_TMPrm=D_ADbuf;
																		b_ERRTrm=b_ERR1;
																	//	}
																			 ADnext();																		
																		break;
																	}
																	case n_ADcoil:
																		{D_ADcoil=D_ADbuf;
																			ADtab();
																		D_TMPcoil=D_ADbuf;
																		b_ERRTcoil=b_ERR1;
																		 ADnext();
																		 break;
																		}
																	case n_ADcurt:
																		{D_ADkey=D_ADbuf;
																			 ADnext();
																			 break;
																		}	
																	case n_iceAD:
																		{D_ADice=D_ADbuf;
																			 ADnext();
																			 break;
																		}
																	case n_outAD:
																			{D_ADout=D_ADbuf;
																				ADnext();
																			 	break;
																			}
																	default:  ADnext();
																}
														}
													else
														{//	f_adstart=1;
															return;
														}
														
																			
										
							}
					}
			}
			
}



void ADtab()
{	register unsigned char *ax, j=0;
		if(D_ADbuf>=10&&D_ADbuf<245)
	{
	
	j=D_ADbuf;
	//if(f_temp)
	//ax=(unsigned int)j+TEMPTAB;
	//else
	ax=( unsigned char *)(j+TEMPTAB1);
	D_ADbuf=*ax;
	b_ERR1=0;
	}
	else
	{	D_ADbuf=65;
		b_ERR1=1;
	}
}


void ADnext()
{	
	ADCS0=0;
	
	err_buf&=0b00000011;
	if(F_ERRbak!=0)
	{	if(err_buf!=F_ERRbak)
			{	C_ADerr=n_2s05s;
				err_buf=F_ERRbak;
			}
		else	
			{	
				if(C_ADerr==0)
							{//	err_buf=F_FLGerr;
								err_buf&=0b11111100;
								err_buf|=F_ERRbak;
								F_FLGerr=err_buf;
							}
			}
		}
	else{F_FLGerr=0;
			}
	f_adovr=0;
//	f_adstart=0;
	
	D_ADch++;
	if(D_ADch>5)
		D_ADch=1;		
		ADS0=D_ADch;
		
		
		NOP();
		NOP();
		NOP();
		NOP();
		NOP();
		NOP();
		NOP();
		NOP();
	//	f_adstart=1;
		ADCS0=1;
		return;
	
}

void ADintit0()
{ADCS0=1;
//f_adovr=0;
D_ADch=1;
D_ADtimes=18;
C_ADerr=20;
}



⌨️ 快捷键说明

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