ADC_CONTR = ADC_CONTR|(display_AD_channel_ID[channel]&0x07); //ÉèÖõ±Ç°Í¨µÀºÅ delay_ms(1); //ÑÓʱʹÊäÈëµçѹ´ïµ½Îȶ¨ ADC_DATA = 0; //ÇåA/Dת»»½á¹û¼Ä´æÆ÷ ADC_LOW2 = 0;
ADC_CONTR = ADC_CONTR|0x08; //0000£¬1000ADCS £½ 1£¬Æô¶¯×ª»» do { DogReset();}
while((ADC_CONTR & 0x10)==0); //0001,0000µÈ´ýA/Dת»»½áÊø
ADC_CONTR = ADC_CONTR&0xE7; //1110,0111ÇåADC_FLAGλ£¬Í£Ö¹A/Dת»» AD_Result_Temp = ((AD_Result_Temp|ADC_DATA)<<2)|(ADC_LOW2&0x03); //±£´æ·µ»ØADת»»µÄ ½á¹û
//----------------------------ת»»³É¿ÉÓÉ´®¿ÚÏÔʾµÄ×Ö·û AD_channel_result[channel][0] = AD_Result_Temp/1000+0x30; AD_channel_result[channel][1] = (AD_Result_Temp00)/100+0x30; AD_channel_result[channel][2] = (AD_Result_Temp0)/10+0x30; AD_channel_result[channel][3] = AD_Result_Temp+0x30;
//------------------------´®¿Ú¼àÊÓ
// send_char_com(ADC_DATA); //////·¢ËÍת»» µÄ µ½µÄ Öµ£¬ÕâÀïÖ»ÊÇ ¸ß8λ£¬ÖµµÄת»»ÐèÒª¿¼ÂÇ
// send_char_com(ADC_LOW2); //////·¢ËÍת»» µÄ µ½µÄ Öµ£¬ÕâÀïÖ»ÊÇ µÍ2λ£¬ÖµµÄת»»ÐèÒª¿¼ÂÇ
// send_string_com(AD_channel_result[channel],4); delay_ms(10); // return(ADC_DATA); }
uchar AD_Filter(void){
uchar i;
uchar cTemp[32]; uchar cAverage; for(i=32;i>0;i--){ cTemp[i]=Ad_Change(0);
cAverage=((cAverage+cTemp[i])>>1); }
return(cAverage); }
void InitCom(unsigned char BaudRate){ switch (BaudRate){
case 1: THTL = 64; break; //²¨ÌØÂÊ300 case 2: THTL = 160; break; //600 case 3: THTL = 208; break; //1200 case 4: THTL = 232; break; //2400 case 5: THTL = 244; break; //4800 case 6: THTL = 250; break; //9600 case 7: THTL = 253; break; //19200 case 8: THTL = 255; break; //57600 default: THTL = 208; break; //1200 } }
void Chip_initial(void){ IE=0;
// ¶¨Ê±Æ÷¿ØÖÆ×Ö³õʼ»¯
TMOD=0x21; // ¶¨Ê±Æ÷1Ϊ·½Ê½2£¬¶¨Ê±Æ÷0Ϊ·½Ê½1 TCON=0x50; // ÉèÖÃÍⲿÖжÏÀàÐÍ
T2CON=0x0d; // Ñ¡Ôñ¶¨Ê±Æ÷1Ϊ²¨ÌØÂÊ·¢ÉúÆ÷£¬T2Ϊ²¶»ñ¹¤×÷·½Ê½ // ET2=1;
ET0=1; // ÔÊÐí¶¨Ê±Æ÷0¡¢¶¨Ê±Æ÷2ÖжÏ
// ÍⲿÖжÏÉèÖÃ
EX0=0; // FFSKÖжϳõʼʱ¹Ø±Õ£¬ÓÐÔØ²¨Ê±ÔÙ¿ªÆô EX1=0;
IT1=1; // ÍⲿÖжÏ0¡¢1¾ùΪϽµÑØ´¥·¢ IT0=1;
// Æô¶¯¶¨Ê±Æ÷0
TH0=vT0HVal; // Æô¶¯¶¨Ê±Æ÷0 TL0=vT0LVal; TR0=1;
InitCom(6); //ÉèÖò¨ÌØÂÊΪ9600 1-7²¨ÌØÂÊ300£19200 SCON = 0x50; //´®¿Ú·½Ê½1,ÔÊÐí½ÓÊÕ TH1 = THTL; TL1 = THTL;
PCON = 0x80; //²¨ÌØÂʼӱ¶¿ØÖÆ,SMODλ RI = 0; //ÇåÊÕ·¢±êÖ¾ TI = 0;
TR1 = 1; //Æô¶¯¶¨Ê±Æ÷ IP=0x02; //PT2=1
IPH=0x02; //PT2H=1,PT0H=1 EA=1;
delay_ms(10); // ÑÓʱÊÇΪÁ˱ÜÃⶨʱÆ÷0ÎÞ·¨²úÉúÖжϵÄÎÊÌâ }
void Para_initial(void){
OutFlag=0; cT01ms = vT01ms; cT10ms = vT10ms; // cT100ms = vT100ms; cT01s = vT01S;
CS = 0; //ÉèÖÃCSΪ0²»Ñ¡ÈκεÄÒôÔ´£¬ÈçΪ1ÔòÑ¡µÚ1· }
void system_initial(void){ Chip_initial(); Para_initial();
DogReset(); // ÒÑÕë¶Ô STC89C58RD+ ×÷ÐÞ¸Ä.06-04-06 }
void main(void){ system_initial(); while(1){ DogReset(); if(OutFlag){ OutFlag=0;
send_char_com(AD_Filter()); } } }
void Trint0(void) interrupt 1 using 1{
TR0=0; // ʱ»ù1mS