亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? adc8.c

?? 門禁系統(tǒng) interated with LCD
?? C
字號:
//Sample program for AdvFamLab
//Include required header files here
// ADC2 is the temperature sensoring and fire alarm
// ADC3 is the Ambient control setting code
// ADC4 is the combine of both ADC3 and ADC2
// ADC5 include port to port communication 
// ADC6 include the fan speed control
// ADC8 is the final version

#include<pic1687x.h>
#include<pic.h>
#include"delay.c"
//Declare global variables here
volatile int on_time_counter, off_time_counter;
volatile unsigned char light;
int timer_value=0xFE;
//Declare functions to be used in the program, i.e.
//void initialize_IO_ports(void)
//void initialize_ADC(void)
//int read_ADC_channel(unsigned int)
//void initialize_timer1(int)
//Put the body of all the functions
void initialize_IO_ports(void)
{
//set the digital IO ports as per requirement
TRISA = 0xFF ; //portA as input
TRISB = 0xFF ; //portB as input
TRISC = 0x00 ; //portC as output
TRISD = 0x00 ; //portD as output
ADCON1= 0x82 ; //set PortE as digital io and portA as analog, and VDD and VSS
//clear the output ports at the beginning
PORTD = 0x00 ; //clear portD
PORTC = 0x00 ; //clear portC
}
void initialize_ADC(void)
{
//enable the ADC
ADON=1;
//set clock source for the ADC
ADCS1=1;
ADCS0=0;
}
int read_ADC_channel(unsigned int channel_number)
{
int value;
switch(channel_number)
{
case 0:
//set the channel selector
CHS2=0;
CHS1=0;
CHS0=0;
break;
case 1:
//set the channel selector
CHS2=0;
CHS1=0;
CHS0=1;
default:;
}

//start AD conversion
ADGO=1;
//wait for conversion to finish
while(ADGO)
{};
//read the values in the registers
value=(ADRESH<<8)+ADRESL;
return(value);
}
void BCDtoLPortD(int RD3_val,int RD2_val,int RD1_val,int RD0_val)
{
	RD3=RD3_val;
	RD2=RD2_val;
	RD1=RD1_val;
	RD0=RD0_val;
}	//end of function for BCDtoPortD
void BCDtoUPortD(int RD7_val,int RD6_val,int RD5_val,int RD4_val)
{
	RD7=RD7_val;
	RD6=RD6_val;
	RD5=RD5_val;
	RD4=RD4_val;
}	//end of function for BCDtoPortD

int digit1toBCD(int analog_value1,int base)
{
	// digit1toBCD is the function to convert analog_value1 into one digit
	// Return the one digit value to ConvToBCD, and add up to tenth digit
	if (analog_value1>(base+103)) //digit1 more than 5
	{
		if(analog_value1>(base+103+41)) //digit1 more than 7
		{
			if(analog_value1>(base+103+61))//digit1 more than 8
			{
				if(analog_value1>(base+103+82))//digit1 more than 9 =>BCD = 9
				{
					BCDtoLPortD(1,0,0,1);
					return(9);
				}
				else
				{
					BCDtoLPortD(1,0,0,0); //digit1 less than 9 => BCD = 8
					return(8);
				}
			}
			else	//digit1 less than 8 => BCD = 7
			{
				BCDtoLPortD(0,1,1,1);
				return(7);
			}
		}
		else	//digit1 less than 7
		{
			if(analog_value1>(base+103+20))//digit1 more than 6 => BCD = 6
			{
				BCDtoLPortD(0,1,1,0);
				return(6);
			}
			else //digit1 less than 6 => BCD = 5
			{
				BCDtoLPortD(0,1,0,1);
				return(5);
			}
		}
	}	
	else	//digit1 less than 5
	{
		if(analog_value1>(base+41)) //digit1 more than 2
		{
			if(analog_value1>(base+62))//digit1 more than 3
			{
				if(analog_value1>(base+82))//digit1 more than 4 =>BCD = 4
				{
					BCDtoLPortD(0,1,0,0);
					return(4);
				}
				else //digit1 less than 4 => BCD = 3
				{
					BCDtoLPortD(0,0,1,1);
					return(3);
				}
			}
			else	//digit1 less than 3 => BCD = 2
			{
				BCDtoLPortD(0,0,1,0);
				return(2);
			}
		}
		else	//digit1 less than 2
		{
			if(analog_value1>(base+21))//digit1 more than 1 => BCD = 1
			{
				BCDtoLPortD(0,0,0,1);
				return(1);
			}
			else //digit1 less than 0 => BCD = 0
			{
				BCDtoLPortD(0,0,0,0);
				return(0);
			}
		}
	} // end of convert digit1 to BCD using if-else statements
}	//end of function for digit1toBCD
int ConvToBCD(int analog_value1)
{
	int temp; // temperature reading in integer value
	
	// If-else statement for the digit2, 16to19, 20to29, 30to39, 40to49
	// Call digit1toBCD function to convert the analog_value1 to one digit 
	// add up to tenth digit and one digit, and store it in temp
	if(analog_value1<409)
 	{
 		BCDtoUPortD(0,0,0,1);
 		temp=10;
 		temp=digit1toBCD(analog_value1,205)+temp;
	}
 	else if((analog_value1>=409)&&(analog_value1<614))
 	{
 		BCDtoUPortD(0,0,1,0);
 		temp=20;
 		temp=digit1toBCD(analog_value1,409)+temp;
 	}
 	else if((analog_value1>=614)&&(analog_value1<818))
 	{
 		BCDtoUPortD(0,0,1,1);
 		temp=30;
 		temp=digit1toBCD(analog_value1,614)+temp;
 	}
 	else if((analog_value1>=818)&&(analog_value1<1020))
 	{
 		BCDtoUPortD(0,1,0,0);
 		temp=40;
 		temp=digit1toBCD(analog_value1,818)+temp;
 	}
 	return(temp);
}// end of function for ConvToBCD

void displayBCD(int temp)
{
	int digit1;
	
	//ranging from 16 to 34 temperature
	if(temp<20) 					BCDtoUPortD(0,0,0,1);
	else if((temp>=20)&&(temp<30)) 	BCDtoUPortD(0,0,1,0);
	else if(temp>=30) 				BCDtoUPortD(0,0,1,1);
	
	digit1= temp % 10 ;
	if(digit1>=5)
	{
		if(digit1>=7)
		{
			if(digit1>=8)
			{
				if(digit1==9) 	BCDtoLPortD(1,0,0,1); // digit1 is '9'
				else 			BCDtoLPortD(1,0,0,0); // digit1 is '8'
			}
			else				BCDtoLPortD(0,1,1,1); // digit1 is '7'
		}
		else
		{
			if(digit1==6) 		BCDtoLPortD(0,1,1,0); // digit1 is '6'
			else 				BCDtoLPortD(0,1,0,1); // digit1 is '5'
		}
	}
	else // less than 5
	{
		if(digit1>=2)
		{
			if(digit1>=3)
			{
				if(digit1==4) 	BCDtoLPortD(0,1,0,0); // digit1 is '4'
				else 			BCDtoLPortD(0,0,1,1); // digit1 is '3'
			}
			else				BCDtoLPortD(0,0,1,0); // digit1 is '2'
		}
		else
		{
			if(digit1==1) 		BCDtoLPortD(0,0,0,1); // digit1 is '1'
			else 				BCDtoLPortD(0,0,0,0); // digit1 is '0'
		}
	}
} // end of convert digit1 to BCD using if-else statements for setting temperature

void alarm_buzzer(int HighTemp)
{
	int analog; // for storing the analog value for ADC
	
	RC5=1;		//fire alarm signal activated==> "port to port" to main pic
	PORTD=0xFF; //off light for the led 7 segment

	do
	{
		
	if((RB4==1)||(RB5==1)) //FIRE ALARM(RB4) Enable from Main Pic or local(RB5) enable
	{
		RC6=0; //Off the fan
		RC7=0;
		RC4=1; // fire alarm sound activated
	}
	else
	{
		if((RC6!=1)&&(RC7!=1))
		{
		RC6=1; //On the fan
		RC7=1;
		}
		RC4=0; // fire alarm sound de-activated
	}
	
	analog = read_ADC_channel(0);	
	}while( analog > HighTemp );
    
	RC5=0; // fire alarm signal de-activated
	RC4=0; // fire alarm sound de-activated

} // end of alarm_buzzer function

//main function
int main()
{
//Declare the variables for the main function here
int analog_value1;
int HighTemp = 1020;	//this is 10bit representation of 5v and 50 deg celsius
int LowTemp  = 328;		//this is 10bit representation of 1.6v and 16 deg celsius
int STemp_low = 16;		//this is lower limit setting for ambient control
int STemp_high = 26;		//this is upper limit setting for ambient control
int Temp;				//the temperature reading from LM35 temp sensor
initialize_IO_ports();
initialize_ADC();

//put the infinite loop here
while(1)
{
	
 //read the analog channel and store the value in the variable;
analog_value1=read_ADC_channel(0);

//check the range of the value and set or clear the RC5 accordingly
	
	//volt more than 5.0V signal => more than 50 deg celsius => high temp
	if( analog_value1 > HighTemp )	alarm_buzzer(HighTemp);
	
	if((analog_value1<=HighTemp)&&(analog_value1>=LowTemp)) // Within the range 16to50deg
	{
		// Convert to 2 digit BCD, and store Temperature reading value.
 		Temp=ConvToBCD(analog_value1);
 		
 		if(Temp > STemp_high ) // Temperature reading higher than high temperature
 		{
 				RC6=1; //this is high fan speed
 				RC7=1;
 		}
 		else if(Temp < STemp_low ) // Temperature reading lower than low temperature
 		{
 				RC6=0; // this is switch off for the fan
 				RC7=0;
 		}
 		else // Temperature reading is in-between low and high temperature
 		{
 			
 			// Temperature in the upper portion of the Ambient Temperature Range
 			if( Temp - STemp_low >= STemp_high - Temp ) 
 			{
 				RC6=0; // this is the low fan speed
 				RC7=1;
 			}
 			// Temperature in the lower portion of the Ambient Temperature Range
 			else if( Temp - STemp_low < STemp_high - Temp )
 			{
 				RC6=1; // this is the middle fan speed
 				RC7=0;
 			}
 		}
	}
	
	if(RB3==1) //SET Pushbutton being press for setting the AMBIENT TEMPERATURE RANGE
	{
		RC0=1; // LED light on for Set Temp
		RC3=1; // LED light on for Low Temp
		DelayS(1);
		
		while((RC0==1)&&(RC3==1)) // while loop for setting low temperature
		{
			displayBCD(STemp_low); // display low temperature
		 	
		 	if(RB3==1) // exit whille loop for setting low temperature
		 	{
		 		RC3=0; // LED light off for Low Temp
		 		RC2=1; // LED light on for High Temp
		 		DelayS(1);
		 		break;
		 	}
		 	else if(RB1==1) // up by 1 for STemp_low
		 	{
		 		if(STemp_low < 29)	//move up by 1 for STemp_low and STemp_high til the max 
		 		{
		 			if(STemp_high - STemp_low > 5) // to keep the range of mini 5 deg
		 			{
		 				STemp_low++;
		 				displayBCD(STemp_low);
		 				DelayS(1);
		 			}
		 			else
		 			{
		 				STemp_low++;
		 				STemp_high++;
				 		displayBCD(STemp_low);
				 		DelayS(1);
		 			}
		 		}
			}
			else if(RB2==1) // down by 1 for STemp_low
			{
				if(STemp_low > 16)
				{
			 		STemp_low--;
			 		displayBCD(STemp_low);
			 		DelayS(1);
			 	}
			}
			 
			analog_value1=read_ADC_channel(0);
			if(analog_value1>HighTemp)	break;
		}; // End of while loop for setting low temperature
		
		//check the Fire alarm before enter while loop for setting high temperature
		if(analog_value1<HighTemp)
		{
		while((RC0==1)&&(RC2==1)) // whille loop for setting high temperature
		{
		 	displayBCD(STemp_high); // display high temperature
		 	
		 	if(RB3==1) // exit whille loop for setting high temperature
		 	{
		 		RC2=0; // LED light off for High Temp
		 		RC0=0; // LED light off for Set Temp
		 		DelayS(1);
		 		break;
		 	}
		 	else if(RB1==1) // up by 1 for STemp_low
		 	{
				if(STemp_high < 34)
				{
					STemp_high++;
				 	displayBCD(STemp_high);
				 	DelayS(1);
		 		}
			}
			else if(RB2==1) // down by 1 for STemp_low
			{
				if(STemp_high>21)
			 	{
			 		if(STemp_high - STemp_low > 5) // to keep the range of mini 5 deg
			 		{
			 			STemp_high--;
			 			displayBCD(STemp_high);
			 			DelayS(1);
			 		}
			 		else
			 		{
		 				STemp_high--;
		 				STemp_low--;
		 				displayBCD(STemp_high);
		 				DelayS(1);
		 			}
		 		}
		 	}
		 	
		 	analog_value1=read_ADC_channel(0);
			if(analog_value1>HighTemp) break;
			
		}; // End of while loop for setting high temperature
		} // If-statement for fire_alarm check
		
		RC0=0; // LED light off for Set Temp
		RC2=0; // LED light off for High Temp
		RC3=0; // LED light off for Low Temp
		PORTD=0x00;
	} // if-statement of SET THE AMBIENT TEMPERATURE RANGE
	
};//end of while loop of "while(1);" that never ending
return(1);
}
//the end of AdvFamLab sample program

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情文学综合丁香| 亚洲风情在线资源站| 国产精品亚洲综合一区在线观看| 精品噜噜噜噜久久久久久久久试看| 麻豆成人久久精品二区三区红| 欧美电影免费提供在线观看| 国内精品视频一区二区三区八戒| 欧美大胆一级视频| 国产乱码一区二区三区| 中文字幕第一区| 一本色道综合亚洲| 五月天精品一区二区三区| 日韩欧美激情一区| 国产成人欧美日韩在线电影| 国产精品家庭影院| 精品视频一区二区不卡| 久久99精品国产麻豆婷婷| 欧美激情中文不卡| 欧美午夜精品免费| 久草在线在线精品观看| 中文字幕日韩av资源站| 欧美日韩成人综合天天影院| 狠狠色狠狠色综合系列| 综合激情网...| 日韩视频一区在线观看| 大胆亚洲人体视频| 亚洲成年人影院| 欧美激情在线一区二区| 欧美日韩国产首页| 国产自产2019最新不卡| 怡红院av一区二区三区| 欧美mv日韩mv| 一本色道久久综合亚洲91| 久久国产精品露脸对白| 亚洲欧美日本韩国| 日韩免费在线观看| 色婷婷国产精品| 国产在线麻豆精品观看| 亚洲精品国产成人久久av盗摄| 精品免费99久久| 欧美日韩一卡二卡三卡| 高清不卡一二三区| 天天综合天天综合色| 国产精品久久综合| 精品噜噜噜噜久久久久久久久试看 | 天堂va蜜桃一区二区三区| 久久久久久久久久电影| 欧美日韩久久久久久| 风流少妇一区二区| 奇米精品一区二区三区在线观看一| 国产精品乱码久久久久久| 欧美一区二区三区在线视频| 91婷婷韩国欧美一区二区| 国产一区二区0| 丝袜美腿一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 久久综合九色综合欧美98 | 亚洲国产欧美在线人成| 国产精品每日更新| 精品国产乱码久久久久久图片 | 久久人人爽人人爽| 欧美日韩你懂得| 色先锋资源久久综合| 成人免费高清视频在线观看| 国产自产v一区二区三区c| 美美哒免费高清在线观看视频一区二区 | 久久精品国产精品青草| 亚洲国产一区视频| 亚洲日韩欧美一区二区在线| 国产亲近乱来精品视频| 久久综合久久久久88| 日韩欧美专区在线| 在线电影欧美成精品| 在线看国产日韩| 欧美一区二区三区免费在线看| 欧亚一区二区三区| 在线免费av一区| 91猫先生在线| 91免费看`日韩一区二区| 波多野结衣91| 9色porny自拍视频一区二区| k8久久久一区二区三区| 成人少妇影院yyyy| jvid福利写真一区二区三区| 成人免费视频app| 99久免费精品视频在线观看| 成人av在线资源| 99re热视频这里只精品| 色婷婷精品大在线视频| 欧美日韩小视频| 日韩一区二区三区在线| 久久日一线二线三线suv| 久久精品人人做人人综合 | 国产日韩高清在线| 日本一区二区三区dvd视频在线| 久久精品亚洲精品国产欧美kt∨| 久久人人超碰精品| 国产精品久久久久一区二区三区共| 国产精品三级久久久久三级| 亚洲欧洲性图库| 亚洲一区二区在线免费看| 日本最新不卡在线| 国产麻豆精品一区二区| www.久久精品| 欧美日韩精品一区二区三区四区| 91精品国产综合久久久久久久久久 | 久久久精品人体av艺术| 中文字幕第一区综合| 亚洲人亚洲人成电影网站色| 亚洲一区免费视频| 韩国中文字幕2020精品| 99精品久久99久久久久| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲韩国精品一区| 国产真实乱子伦精品视频| 91视频www| 欧美一区二区三区白人| 久久精品水蜜桃av综合天堂| 亚洲人成在线观看一区二区| 日本三级亚洲精品| 国产成a人亚洲精品| 91国产丝袜在线播放| 欧美大尺度电影在线| 国产调教视频一区| 亚洲一区在线视频观看| 国产成人综合在线播放| 欧美日韩免费电影| 国产日韩v精品一区二区| 亚洲综合一二区| 国产一区二区三区四区在线观看| 91麻豆精品一区二区三区| 日韩一级高清毛片| 亚洲激情欧美激情| 国产一区二区三区黄视频| 欧美亚洲综合色| 中文字幕欧美国产| 日本免费在线视频不卡一不卡二| 成人精品gif动图一区| 欧美变态tickle挠乳网站| 一区二区日韩电影| 成人黄色在线视频| 精品999在线播放| 视频一区二区国产| 色吧成人激情小说| 国产日韩在线不卡| 美女www一区二区| 欧美人与性动xxxx| 亚洲影视在线观看| 色综合久久久久综合| 国产精品久线在线观看| 国产美女av一区二区三区| 91精品国产综合久久久久久久久久 | 色综合久久天天综合网| 日本一区二区在线不卡| 久久99国产精品麻豆| 欧美肥胖老妇做爰| 亚洲高清视频在线| 91精彩视频在线观看| 1000部国产精品成人观看| 国产精品性做久久久久久| 精品国产乱码久久久久久影片| 丝袜亚洲另类欧美| 制服.丝袜.亚洲.中文.综合| 亚洲动漫第一页| 色999日韩国产欧美一区二区| 亚洲色图制服丝袜| 色久综合一二码| 亚洲国产一区二区视频| 欧美日韩精品免费| 日本欧美一区二区| 日韩午夜电影av| 久久精品国内一区二区三区| 欧美草草影院在线视频| 卡一卡二国产精品| 国产日韩综合av| 成人毛片视频在线观看| 国产精品青草久久| 99re66热这里只有精品3直播 | 久久久久久亚洲综合影院红桃| 精品午夜久久福利影院| 91精品国产麻豆国产自产在线| 天使萌一区二区三区免费观看| 91精品国产入口| 奇米在线7777在线精品| 欧美伦理影视网| 一本久久a久久免费精品不卡| 欧美人与禽zozo性伦| 日本免费在线视频不卡一不卡二 | 奇米色777欧美一区二区| 日韩视频免费观看高清完整版 | 国产欧美日本一区视频| 不卡电影一区二区三区| 亚洲人成7777| 欧美视频一区二区三区在线观看| 亚洲电影中文字幕在线观看| 欧美一区二区啪啪| 国产成人精品免费| 一区二区三区中文字幕电影| 欧美日韩一区 二区 三区 久久精品| 免费在线观看视频一区|