ƻ

MapReduce综合应用案例 — 电信数据清洗 结果乱码:评测输出结果过长,请检查代码逻辑,部分输出如下: ������,������,18620192711,15733218050,2017-09-28 19:49:34,2017-09-28 19:51:05,91,�½�ά���������,����ر������� ����ͮ,������,18641241020,15733218050,2017-11-04 01:01:16,2017-11-04 01:04:24,188,�㽭ʡ,����ʡ ����,������,15778423030,15614201525,2017-05-20 14:27:31,2017-05-20 14:35:23,472,ɽ��ʡ,����ʡ �ι���,��ٻ,13341109505,15151889601,2017-04-20 04:16:02,2017-04-20 04:23:20,438,�㽭ʡ,����ʡ �ι���,�˶�,13341109505,13666666666,2016-08-02 04:10:26,2016-08-02 04:16:36,370,����ʡ,������ʡ ����,����·,15032293356,13799999999,2017-05-28 02:06:21,2017-05-28 02:09:20,179,������,�ຣʡ ������,�ι���,15733218050,13341109505,2016-01-12 12:32:56,2016-01-12 12:40:01,425,����ʡ,����ʡ ������,������,13269361119,13269361119,2017-02-21 01:31:30,2017-02-21 01:37:03,333,����׳��������,����ʡ ����·,���ȫ,13799999999,15338595369,2017-11-29 04:13:34,2017-11-29 04:18:31,297,����������,������ʡ ������,����,15733218050,15778423030,2018-11-17 12:27:13,2018-11-17 12:27:58,45,����׳��������,����ʡ �ι���,����,13341109505,17731088562,2017-01-14 03:34:04,2017-01-14 03:42:22,498,����ʡ,����ʡ ���п�,����,18332562075,15778423030,2018-03-30 16:11:15,2018-03-30 16:14:33,198,ɽ��ʡ,����� �ƻỪ,����ı,13560190665,18301589432,2017-01-29 00:09:56,2017-01-29 00:14:19,263,����ʡ,�����ر������� ������,�º�Ӣ,15733218050,13520404983,2018-10-08 09:55:31,2018-10-08 09:56:45,74,�ӱ�ʡ,���ɹ������� ����,����,15778423030,13566666666,2017-01-10 00:38:41,2017-01-10 00:46:50,489,����ر�������,�㽭ʡ ����,����,13566666666,17731088562,2018-11-10 01:21:53,2018-11-10 01:26:54,301,����ʡ,����ʡ ����,������,15778423030,15733218050,2016-05-25 17:50:21,2016-05-25 17:53:23,182,�ຣʡ,����ʡ ��ٻ,�ι���,15151889601,13341109505,2016-07-02 06:30:52,2016-07-02 06:38:58,486,���Ļ���������,�㶫ʡ ������,�˶�,18620192711,13666666666,2017-11-18 09:37:56,2017-11-18 09:44:13,377,����׳��������,����ʡ �ι���,����ͮ,13341109505,18641241020,2017-10-27 03:29:06,2017-10-27 03:33:21,255,̨��ʡ,�Ϻ��� ����,�ι���,17731088562,13341109505,2016-08-19 01:47:50,2016-08-19 01:55:06,436,����ʡ,�ຣʡ �º�Ӣ,�ƻỪ,13520404983,13560190665,2016-10-16 13:56:34,2016-10-16 14:04:43,489,������,�㶫ʡ ���ȫ,�ι���,15338595369,13341109505,2018-04-17 20:13:51,2018-04-17 20:14:19,28,����ʡ,����ʡ ��ٻ,�ι���,15151889601,13341109505,2017-03-16 09:56:39,2017-03-16 09:59:54,195,�㽭ʡ,������ �ƻỪ,���ȫ,13560190665,15338595369,2017-11-17 03:51:21,2017-11-17 03:58:49,448,����ʡ,����ʡ ������,����,15733218050,13566666666,2017-08-23 14:29:00,2017-08-23 14:32:06,186,����ʡ,�Ϻ��� ����,�ƻỪ,17731088562,13560190665,2016-08-07 12:00:55,2016-08-07 12:08:28,453,����������,�㽭ʡ ���ȫ,������,15338595369,15614201525,2017-06-06 16:51:19,2017-06-06 16:59:24,485,����ʡ,������ ����,����,17731088562,15778423030,2017-05-12 15:22:47,2017-05-12 15:26:24,217,������,����ʡ ����,����ͮ,15778423030,18641241020,2018-02-01 00:30:07,2018-02-01 00:35:58,351,����׳��������,����ʡ ����,����,13566666666,17731088562,2016-05-31 12:29:25,2016-05-31 12:31:34,129,����ʡ,����ʡ ����,����·,15778423030,13799999999,2018-05-05 18:00:18,2018-05-05 18:04:53,275,������,�����ر������� �ι���,�º�Ӣ,13341109505,13520404983,2018-03-24 03:13:58,2018-03-24 03:17:01,183,������,�ӱ�ʡ ����,�ƻỪ,13566666666,13560190665,2017-12-22 04:49:20,2017-12-22 04:55:38,378,����ʡ,����ʡ ����,������,15032293356,18620192711,2017-01-29 11:13:08,2017-01-29 11:15:37,149,����������,����ʡ ����·,�ι���,13799999999,13341109505,2018-07-10 04:19:23,2018-07-10 04:20:38,75,������ʡ,����ʡ ���ȫ,��ٻ,15338595369,15151889601,2017-12-01 10:51:54,2017-12-01 10:59:38,464,����������,����ر������� ���п�,�ƻỪ,18332562075,13560190665,2018-04-09 22:12:31,2018-04-09 22:17:19,288,�½�ά���������,����ʡ ����,����,15778423030,15032293356,2016-07-08 04:56:22,2016-07-08 05:00:54,272,����ر�������,���������� ��ٻ,������,15151889601,15733218050,2018-07-06 03:35:47,2018-07-06 03:37:11,84,�Ϻ���,���ɹ������� ������,����ı,13269361119,18301589432,2018-11-03 19:04:34,2018-11-03 19:11:13,399,�Ϻ���,�Ϻ��� ����,���ȫ,15032293356,15338595369,2018-03-12 05:51:55,2018-03-12 05:56:41,286,����׳��������,����ʡ ����,������,15778423030,13269361119,2016-01-15 00:23:11,2016-01-15 00:26:36,205,�����ر�������,����ʡ �º�Ӣ,���п�,13520404983,18332562075,2016-09-22 16:55:16,2016-09-22 16:59:53,277,̨��ʡ,���������� ����ı,����,18301589432,15778423030,2016-09-11 12:18:04,2016-09-11 12:22:08,244,����ʡ,�Ϻ��� ���ɷ�,��ٻ,15732648446,15151889601,2018-08-29 23:17:25,2018-08-29 23:25:17,472,����ʡ,�Ϻ��� ����ı,������,18301589432,13269361119,2017-11-28 23:05:16,2017-11-28 23:05:41,25,����ʡ,����ʡ �ƻỪ,����ͮ,13560190665,18641241020,2018-08-04 10:47:39,2018-08-04 10:48:37,58,�����,̨��ʡ ���ȫ,���п�,15338595369,18332562075,2016-09-17 22:54:07,2016-09-17 22:58:12,245,�㽭ʡ,������ �º�Ӣ,����,13520404983,17731088562,2017-09-08 21:50:56,2017-09-08 21:53:37,161,�����ر�������,�Ĵ�ʡ ���ɷ�,����ı,15732648446,18301589432,2018-03-22 04:27:16,2018-03-22 04:29:37,141,����ʡ,ɽ��ʡ ����,������,15032293356,15614201525,2016-08-17 14:48:13,2016-08-17 14:55:56,463,����ʡ,����ʡ ����ͮ,����,18641241020,15778423030,2018-
06-09
#include <STC15F2K60S2.h> #include <stdio.h> #include <intrins.h> #include <Init.h> #include <Led.h> #include <Key.h> #include <Seg.h> #include <onewire.h> #include <icc.h> #include <Uart.h> #include <ds1302.h> // ########################################################################### // ���������������ͱ������������������Ŷ��� // ########################################################################### #define P 3.14 //Բ���� sbit TX=P1^0;//�������������� sbit RX=P1^1;//�������������� bit Freq_Sharp_Locked = 0;//Ƶ��ͻ��������־ bit Freq_Trend_Abnormal_Flag = 0; //Ƶ�������쳣��־ float T;//�¶����ݱ��� float volt;//AD��ʾֵ float xdata send_val;//���ڷ��͵�Һλ���� float xdata cali_val;//�¶Ȳ���ϵ�� float xdata V_yz,V_yz_max;//Բ��Һ�����С����,Բ��Һ��������ֵС���� float xdata V_qiu,V_qiu_max;//Բ��Һ�����С����,Բ��Һ��������ֵС���� float xdata V_cft,V_cft_max;//Բ��Һ�����С����,Բ��Һ��������ֵС���� float xdata percent_float;//�ٷֱ���С�� int xdata Liquid_Level; //������Һλֵ int xdata int_part;//������������ int xdata dec_part;//����С������ unsigned char Seg_Point[8]={0,0,0,0,0,0,0,0};//�����С����λ�ã�1Ϊ�У�0Ϊ�� unsigned char xdata Seg_Buf[8]={10,10,10,10,10,10,10,10};//�����λ���������� unsigned char xdata RTC_Time[3]={0x23,0x59,0x50};//�ϵ��ʼֵ unsigned char xdata Power_On_Init_Flag = 1;//�ϵ��ʼ����־ unsigned char xdata LED7_Flag = 0; //led7״̬��0��,1��(������˸) unsigned char xdata ucLed[8]={0,0,0,0,0,0,0,0};//LED����λ������ unsigned char xdata EEPROM_Dat[10];//�궨ģʽ�������� unsigned char xdata Relay_Control = 0;//�̵������� 1-���� 0-�Ͽ� unsigned char xdata Uart_Recv[99];//���ڽ��������������� Ĭ��10�ֽ� unsigned char xdata Uart_Recv_Index=0;//���ڽ���ָ��(���������л�) unsigned char xdata Uart_Recv_buff=0;//���ڽ���ָ��(Һ������޸�) unsigned char xdata Uart_Slow_Down;//�������ݴ�����ʱ unsigned char xdata Uart_Send[99];//���ڷ��������������� Ĭ��10�ֽ� unsigned char xdata Freq_Flag = 0;//Ƶ��ͻ���쳣��־ unsigned char xdata Freq_Send = 0;// Ƶ��ͻ�䱨�����ͱ�־ unsigned char xdata LED8_Flash_Timer = 0;// led8��˸��ʱ�� unsigned char xdata Freq_History_Index = 0;// Ƶ����ʷ����������ѭ�����£� unsigned char xdata Freq_Trend_Abnormal_Send = 0;//Ƶ�����Ʊ������ͱ�־ unsigned char xdata Temp_Flag[5]={0,10,20,40,50};//��־ģʽ��ʾ���� unsigned char xdata Temp_Flag_Index[5]={0,10,20,40,50};//��־ģʽ�������� unsigned int xdata Index_Flag[8]={10,1,2000,2,10,10,10,10};//������ʾ���� unsigned int xdata Up_limit;//Һλ������ֵ unsigned int xdata Low_limit;//Һλ������ֵ unsigned int xdata F;//�����ű�ʶ unsigned int xdata ad_val;//AD����ԭʼֵ unsigned int xdata Freq_Last = 0;//��һ��Ƶ��ֵ unsigned int xdata Freq_Change_Timer = 0;//Ƶ�ʱ仯��ʱ�� unsigned int xdata LED8_Off_Timer = 0;// led8��ʱ�رռ����� unsigned int xdata Freq_Change;//Ƶ�ʱ仯�� unsigned int xdata Freq_History[5] = {0};//Ƶ����ʷ���ݣ������5��ֵ�����������жϣ� unsigned int xdata LED7_Flash_Timer = 0;//led7��˸��ʱ�� unsigned int xdata L,W,H,r,S;//�����ߴ� L-�� W-�� H-�� r-�뾶 S-�������� unsigned int xdata Time_1000Ms;//1000Ms���� unsigned int xdata Freq;//Ƶ��ֵ unsigned int xdata Uindex;//����������ֵ unsigned int xdata V_yzs,V_yzm;//Բ��Һ��������հ�,Բ��Һ�����������հ� unsigned int xdata V_qius,V_qium;//����Һ��������հ�,����Һ�����������հ� unsigned int xdata V_cfts,V_cftm;//������Һ��������հ�,������Һ�����������հ� unsigned int xdata percent;//�ٷֱ�(��С��) unsigned char Freq_Stable_Count = 0;//Ƶ���ȶ�������(����2���ȶ������ͻ����) unsigned char Freq_Abnormal_Sent = 0;//Ƶ�ʹ��߱������ͱ�־ unsigned char Flag_Crol_Index;//�궨ģʽ����ָ�� unsigned char k;//ѭ��ϵ�� unsigned char i;//ѭ��ϵ�� unsigned char Wave_Delay;//��������ʱ unsigned char Work_Mode;//����ģʽ 0-����ģʽ 1-����ģʽ 2-�궨ģʽ unsigned char Seg_Disp_Mode;//����ģʽ�л����� 0-ʱ�ӽ��� 1-Һ����ʾ 2-�����ʾ 3-������ʾ unsigned char Seg_Index_Mode;//����ģʽ�л����� unsigned char Key_Slow_Down;//��������ר�ñ��� unsigned char Seg_Clay_Mode;//�궨ģʽ���� unsigned char Freq_Abnormal_Flag = 0; //Ƶ�ʹ��߱�־ unsigned char Seg_Pos;//�����ɨ��ר�ñ��� unsigned char Uart_Send_Flag = 0;//�߶��쳣�ж�ֵ unsigned char Uart_Send_Trey= 0;//�߶��쳣�ж�ֵ unsigned char Key_Val,Key_Old,Key_Up,Key_Down;//���̼��ٱ��� unsigned int Seg_Slow_Down;//����ܼ���ר�ñ��� unsigned int Hour,Min,Sec;//ʱ���봮�����ֵ /*��ʱ��0��ʼ��(Ƶ�ʲɼ�)*/ void Timer0_Init() { TMOD &= 0xF0;//��ն�ʱ��0ģʽ TMOD |= 0x05;//��Ϊ16λ������ģʽ TL0 = 0;//��ʼֵ���� TH0 = 0;//��ʼֵ���� TF0 = 0;//��ն�ʱ��0�����־ TR0 = 1;//������ʱ��0���� } /*����ģ�麯��*/ void Key_proc() { if(Key_Slow_Down)return;//������������ʱ��ֱ�ӷ��� Key_Slow_Down=1;//���̼��ٳ��� Key_Val=Key_Read();//ʵʱ��ȡ����ֵ Key_Down=Key_Val&(Key_Old^Key_Val);//��׽�����½��� Key_Up=~Key_Val&(Key_Old^Key_Val);//��׽���������� Key_Old=Key_Val;//����ɨ����� switch(Key_Down) { case 4://�л�����ģʽ if(++Work_Mode==3)Work_Mode=0;//����ģʽ�л� break; case 5://�л�������ģʽ����ģʽ if(Work_Mode==0)//����ģʽ { if(++Seg_Disp_Mode==4)//����ģʽ���л� Seg_Disp_Mode=0; } if(Work_Mode==1)//����ģʽ { if(++Seg_Index_Mode==8)//����ģʽ���л� Seg_Index_Mode=0; } if(Work_Mode==2)//��־ģʽ { if(++Seg_Clay_Mode==5)//��־ģʽ���л� Seg_Clay_Mode=0; if(++Flag_Crol_Index==5) Flag_Crol_Index=0; } break; case 8://�궨ģʽ�£�����S8��־�0.1 if(Work_Mode==2) { Temp_Flag[Flag_Crol_Index]++;//�궨ֵ��0.1 if(Temp_Flag[Flag_Crol_Index]>50)//�������� Temp_Flag[Flag_Crol_Index]=50;//Ϊ5.0 for(i=0;i<5;i++)//�����º�ı궨ֵ����EEPROM { EEPROM_Dat[i]=Temp_Flag[i]; } EEPROM_Write(EEPROM_Dat,0,5); } break; case 9://�궨ģʽ�£�����S9��־��-0.1 if(Work_Mode==2) { if(Temp_Flag[Flag_Crol_Index] > 0)//����0ʱ-0.1 { Temp_Flag[Flag_Crol_Index]--; } if(Temp_Flag[Flag_Crol_Index]<0)//С��0ʱ��Ϊ0 { Temp_Flag[Flag_Crol_Index]=0; } for(i=0;i<5;i++)//�����º�ı궨ֵ����EEPROM { EEPROM_Dat[i]=Temp_Flag[i]; } EEPROM_Write(EEPROM_Dat,0,5); } break; } } /*��������ʱר�ú���*/ void Delay12us()//12us/12Mz { unsigned char i; _nop_(); _nop_(); i = 33; while (--i); } /*��������ʼ������*/ void Wave_Init() { TX = 1; Delay12us(); TX = 0; Delay12us(); } /*�����������ȡ����*/ unsigned int Wave_Read() { unsigned int temp;//����PCA�������ļ���ֵ T = read_t();//�¶ȵĶ�ȡ CH = CL = 0;//PCA�������ߵ�λ���� CMOD = 0X00;//PCA����ģʽ����ʱ��0������� EA = 0;//�ر����ж�(�����жϸ��ż���) Wave_Init();//���������� EA = 1;//�����ж� CR = 1;//����PCA������ while((RX == 1) && (CF == 0)); CR = 0;//ֹͣPCA���� if(CF == 0)//δ������������� { temp = (CH << 8) | CL;//�ϲ��ߵ�λ�����ܼ��� return temp * (T * 0.6 + 330) /20000; //���ش�У׼�ľ���ֵ } else //�������ʱ { CF = 0;//��������־ return 0;//����0 } } /*��Ϣ��������*/ void Seg_proc() { if(Seg_Slow_Down)return; Seg_Slow_Down=1;//����ܼ��ٳ��� Read_Rtc(RTC_Time);//��ȡDS1302ʱ�� T=read_t();//��ȡ�¶�ʵʱֵ Uindex=Wave_Read();//��ȡ���������� ad_val = ad_Read(0x43); //��ȡADֵ volt = (float)ad_val / 51.0; //ʵʱ��ȡADת��ѹ��ֵ cali_val = (0.04 * T * T - 10 * T + 225) / 1000;//У׼ϵ�� cali_val = (cali_val < 0) ? 0 : cali_val;//����ϵ����С��0 volt+=cali_val;//У׼�������ADֵ�������� S=Index_Flag[3];//ģ�͸�ֵ r=Index_Flag[4];//�뾶��ֵ H=Index_Flag[7];//�߶ȸ�ֵ W=Index_Flag[6];//���ȸ�ֵ L=Index_Flag[5];//���ȸ�ֵ V_yz=P*(r*10)*(r*10)*(10*H-Uindex)/1000000.0;//Բ�����(δ��) V_yz_max=P*(r*10)*(r*10)*(10*H)/1000000.0;//Բ��������(δ��) V_qiu =P*(20*r-Uindex)*(20*r-Uindex)*(3*r*10-(20*r-Uindex))/3/1000000.0;//�������(δ��) V_qiu_max =(4.0/3.0)*P*(r*10)*(r*10)*(r*10)/1000000.0;//����������(δ��) V_cft=((long)(L*10))*(W*10)*(10*H-Uindex)/1000000.0;//���������(δ��) V_cft_max=((long)(L*10))*(W*10)*(H*10)/1000000.0;//������������(δ��) if(Work_Mode==0)//����ģʽ { if(Seg_Disp_Mode==0)//ʱ����ʾ { Seg_Point[6]=0; Seg_Point[5]=0; ucLed[3]=0; ucLed[0]=1; Seg_Buf[0]=RTC_Time[0]/16; Seg_Buf[1]=RTC_Time[0]%16; Seg_Buf[3]=RTC_Time[1]/16; Seg_Buf[4]=RTC_Time[1]%16; Seg_Buf[2]=Seg_Buf[5]=11; Seg_Buf[6]=RTC_Time[2]/16; Seg_Buf[7]=RTC_Time[2]%16; } else if(Seg_Disp_Mode==1)//Һλ��ʾ { if(Seg_Disp_Mode==1&&S==0)//����Һλ { ucLed[0]=0;//led0�� ucLed[1]=1;//led1�� Seg_Buf[0]=Seg_Buf[1]=10; Seg_Buf[2]=(unsigned char)T/10%10; //�¶�ʮλ Seg_Buf[3]=(unsigned char)T%10; //�¶ȸ�λ Seg_Buf[4]=11; //�ָ��� if(Uindex==0)//������������Ϊ0(����Һ��) { Seg_Buf[5]=(20*r)/100%10;//������λ(��) Seg_Buf[6]=(20*r)/10%10;//����С��1λ(��) Seg_Buf[7]=(20*r)%10;//����С��2λ(��) } if(Uindex!=0)//����������в�Ϊ0 { if(Uindex>=(20*r))//��������������ڲ������ֵ { Seg_Buf[5]=Seg_Buf[6]=Seg_Buf[7]=0;//��0(��Һλ) } if(Uindex<(20*r))//������������С�������� { Seg_Buf[5]=(20*r-Uindex)/100%10; //Һλ��λ(��) Seg_Buf[6]=(20*r-Uindex)/10%10;//ҺλС��1λ(��) Seg_Buf[7]=(20*r-Uindex)%10;//ҺλС��2λ(��) } } Seg_Point[5]=1; } if(Seg_Disp_Mode==1&&S==1)//Բ��Һλ { ucLed[0]=0;//led0�� ucLed[1]=1;//led1�� Seg_Buf[0]=Seg_Buf[1]=10; Seg_Buf[2]=(unsigned char)T/10%10; //�¶�ʮλ Seg_Buf[3]=(unsigned char)T%10; //�¶ȸ�λ Seg_Buf[4]=11; //�ָ��� if(Uindex==0)//������������Ϊ0(����Һ��) { Seg_Buf[5]=(10*H)/100%10;//������λ(��) Seg_Buf[6]=(10*H)/10%10;//����С��1λ(��) Seg_Buf[7]=(10*H)%10;//����С��2λ(��) } if(Uindex!=0)//����������в�Ϊ0 { if(Uindex>=(10*H))//��������������ڲ������ֵ { Seg_Buf[5]=Seg_Buf[6]=Seg_Buf[7]=0;//��0(��Һλ) } if(Uindex<(10*H))//������������С�������� { Seg_Buf[5]=(10*H-Uindex)/100%10; //Һλ��λ(��) Seg_Buf[6]=(10*H-Uindex)/10%10;//ҺλС��1λ(��) Seg_Buf[7]=(10*H-Uindex)%10;//ҺλС��2λ(��) } } Seg_Point[5]=1; } if(Seg_Disp_Mode==1&&S==2)//������Һλ { ucLed[0]=0;//led0�� ucLed[1]=1;//led1�� Seg_Buf[0]=Seg_Buf[1]=10; Seg_Buf[2]=(unsigned char)T/10%10; //�¶�ʮλ Seg_Buf[3]=(unsigned char)T%10; //�¶ȸ�λ Seg_Buf[4]=11; //�ָ��� if(Uindex==0)//������������Ϊ0(����Һ��) { Seg_Buf[5]=(10*H)/100%10;//������λ(��) Seg_Buf[6]=(10*H)/10%10;//����С��1λ(��) Seg_Buf[7]=(10*H)%10;//����С��2λ(��) } if(Uindex!=0)//����������в�Ϊ0 { if(Uindex>=(10*H))//��������������ڲ������ֵ { Seg_Buf[5]=Seg_Buf[6]=Seg_Buf[7]=0;//��0(��Һλ) } if(Uindex<(10*H))//������������С�������� { Seg_Buf[5]=(10*H-Uindex)/100%10; //Һλ��λ(��) Seg_Buf[6]=(10*H-Uindex)/10%10;//ҺλС��1λ(��) Seg_Buf[7]=(10*H-Uindex)%10;//ҺλС��2λ(��) } } Seg_Point[5]=1; } } else if(Seg_Disp_Mode==2)//�����ʾ { Seg_Point[5]=0; ucLed[1]=0; ucLed[2]=1; Seg_Point[6]=1; if(Seg_Disp_Mode==2&&S==0)//����� { if(V_qiu>V_qiu_max)//����쳣(�������ֵ) { Seg_Buf[0]=1; Seg_Buf[1]=0; Seg_Buf[2]=0; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=0; Seg_Buf[7]=0; } if( (V_qiu >= 1.0)&&(V_qiu_max>=V_qiu))//����������1 { V_qius = (unsigned int)(V_qiu * 10 + 0.5);//Һλ���С��������1λ V_qius = V_qius % 100; //Һλ�����Ϊ��λ���� V_qium = (unsigned int)(V_qiu_max * 10 + 0.5);//������С��������1λ V_qium = V_qium % 100; //��������Ϊ��λ���� percent_float = (V_qiu / V_qiu_max) * 100;//Һ�������ռ�ٷֱ� percent = (unsigned int)(percent_float + 0.5);//Һ�������ռ�ٷֱ�ȡ�� percent=100-percent;//ʣ������ٷֱ� Seg_Buf[0]=percent/100%10; if(Seg_Buf[0]==0)Seg_Buf[0]=10; Seg_Buf[1]=percent/10%10; if(Seg_Buf[1]==0)Seg_Buf[1]=10; Seg_Buf[2]=percent%10; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=V_qius/10%10; Seg_Buf[7]=V_qius%10; } if(V_qiu < 1.0)//������С��1 { V_qius = (unsigned int)(V_qiu * 10 + 0.5);//Һλ���С��������2λ V_qius = V_qius % 10; //Һλ�����Ϊ��λ���� V_qium = (unsigned int)(V_qiu_max * 10 + 0.5);//������С��������1λ V_qium = V_qium % 100; //��������Ϊ��λ���� percent_float = (V_qiu / V_qiu_max) * 100;//Һ�������ռ�ٷֱ� percent = (unsigned int)(percent_float + 0.5); //Һ�������ռ�ٷֱ�ȡ�� percent=100-percent;//ʣ������ٷֱ� Seg_Buf[0]=percent/100%10; if(Seg_Buf[0]==0)Seg_Buf[0]=10; Seg_Buf[1]=percent/10%10; if(Seg_Buf[1]==0)Seg_Buf[1]=10; Seg_Buf[2]=percent%10; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=0; Seg_Buf[7]=V_qius%10; } } if(Seg_Disp_Mode==2&&S==1)//Բ����� { if(V_yz>V_yz_max)//����쳣(�������ֵ) { Seg_Buf[0]=1; Seg_Buf[1]=0; Seg_Buf[2]=0; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=0; Seg_Buf[7]=0; } if( (V_yz >= 1.0)&&(V_yz_max>=V_yz))//����������1 { V_yzs = (unsigned int)(V_yz * 10 + 0.5);//Һλ���С��������1λ V_yzs = V_yzs % 100; //Һλ�����Ϊ��λ���� V_yzm = (unsigned int)(V_yz_max * 10 + 0.5);//������С��������1λ V_yzm = V_yzm % 100; //��������Ϊ��λ���� percent_float = (V_yz / V_yz_max) * 100;//Һ�������ռ�ٷֱ� percent = (unsigned int)(percent_float + 0.5); //Һ�������ռ�ٷֱ�ȡ�� percent=100-percent;////ʣ�������ռ�ٷֱ� Seg_Buf[0]=percent/100%10; if(Seg_Buf[0]==0)Seg_Buf[0]=10; Seg_Buf[1]=percent/10%10; if(Seg_Buf[1]==0)Seg_Buf[1]=10; Seg_Buf[2]=percent%10; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=V_yzs/10%10; Seg_Buf[7]=V_yzs%10; } if(V_yz < 1.0)//������С��1 { V_yzs = (unsigned int)(V_yz * 10 + 0.5);//Һλ���С��������2λ V_yzs = V_yzs % 10; //Һλ�����Ϊ��λ���� V_yzm = (unsigned int)(V_yz_max * 10 + 0.5);//������С��������1λ V_yzm = V_yzm % 100; //��������Ϊ��λ���� percent_float = (V_yz / V_yz_max) * 100;//Һ�������ռ�ٷֱ� percent = (unsigned int)(percent_float + 0.5);//Һ�������ռ�ٷֱ�ȡ�� percent=100-percent;////ʣ�������ռ�ٷֱ� Seg_Buf[0]=percent/100%10; if(Seg_Buf[0]==0)Seg_Buf[0]=10; Seg_Buf[1]=percent/10%10; if(Seg_Buf[1]==0)Seg_Buf[1]=10; Seg_Buf[2]=percent%10; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=0; Seg_Buf[7]=V_yzs%10; } } if(Seg_Disp_Mode==2&&S==2)//��������� { if(V_cft>V_cft_max)//����쳣(�������ֵ) { Seg_Buf[0]=1; Seg_Buf[1]=0; Seg_Buf[2]=0; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=0; Seg_Buf[7]=0; } if( (V_cft >= 1.0)&&(V_cft_max>=V_cft))//����������1 { V_cfts = (unsigned int)(V_cft * 10 + 0.5);//Һλ���С��������1λ V_cfts = V_cfts % 100; //Һλ�����Ϊ��λ���� V_cftm = (unsigned int)(V_cft_max * 10 + 0.5);//������С��������1λ V_cftm = V_cftm % 100; //��������Ϊ��λ���� percent_float = (V_cft / V_cft_max) * 100;//Һ�������ռ�ٷֱ� percent = (unsigned int)(percent_float + 0.5);//Һ�������ռ�ٷֱ�ȡ�� percent=100-percent;//ʣ�������ռ�ٷֱ� Seg_Buf[0]=percent/100%10; if(Seg_Buf[0]==0)Seg_Buf[0]=10; Seg_Buf[1]=percent/10%10; if(Seg_Buf[1]==0)Seg_Buf[1]=10; Seg_Buf[2]=percent%10; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=V_cfts/10%10; Seg_Buf[7]=V_cfts%10; } if((V_cft < 1.0)&&(V_cft_max>=V_cft)) { V_cfts = (unsigned int)(V_cft * 10 + 0.5);//Һλ���С��������2λ V_cfts = V_cfts % 10; //Һλ�����Ϊ��λ���� V_cftm = (unsigned int)(V_cft_max * 10 + 0.5);//������С��������1λ V_cftm = V_cftm % 100; //��������Ϊ��λ���� percent_float = (V_cft / V_cft_max) * 100;//Һ�������ռ�ٷֱ� percent = (unsigned int)(percent_float + 0.5);//Һ�������ռ�ٷֱ�ȡ�� percent=100-percent;//ʣ�������ռ�ٷֱ� Seg_Buf[0]=percent/100%10; if(Seg_Buf[0]==0)Seg_Buf[0]=10; Seg_Buf[1]=percent/10%10; if((Seg_Buf[1]==0)&&(Seg_Buf[2]!=0))Seg_Buf[1]=10; Seg_Buf[2]=percent%10; Seg_Buf[3]=11; Seg_Buf[4]=10; Seg_Buf[5]=10; Seg_Buf[6]=V_cfts/10%10; Seg_Buf[7]=V_cfts%10; } } } else if(Seg_Disp_Mode==3)//������ʾ { float weight_float; //����������ֵ if(volt <= 2) { weight_float = volt * 5.0; //0-2v��Ӧ0-10t } else if(volt > 2 && volt <= 4) { weight_float = volt * 2.5 + 5.0;//2-4v��Ӧ0-15t } else if(volt > 4 && volt <= 5) { weight_float = volt * 5.0 - 5.0;//4-5v��Ӧ15-20t } else { weight_float = 0.0; //��ѹ����Χ������ȡ�� } int_part = (int)weight_float; //������������ dec_part = (int)(weight_float * 10) % 10; //����С������(1λ) ucLed[2] = 0; ucLed[3] = 1; Seg_Buf[0] = 10; Seg_Buf[1] = (unsigned char)T / 10 % 10; Seg_Buf[2] = (unsigned char)T % 10; Seg_Buf[3] = 11; Seg_Point[6] = 1; Seg_Buf[4] = 10; Seg_Buf[5] = (int_part / 10 % 10 == 0) ? 10 : (int_part / 10 % 10); Seg_Buf[6] = int_part % 10; Seg_Buf[7] = dec_part; } } if(Work_Mode==1)//����ģʽ {ucLed[3] = 0; Seg_Point[5]=0; Seg_Point[6]=1; ucLed[0]=0; if(Seg_Index_Mode==0)//P1 { Seg_Buf[0]=12; Seg_Buf[1]=1; Seg_Buf[2]=11; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Index_Flag[0]/10%10; Seg_Buf[7]=Index_Flag[0]%10; } else if(Seg_Index_Mode==1)//P2 { Seg_Buf[0]=12; Seg_Buf[1]=2; Seg_Buf[2]=11; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Index_Flag[1]/10%10; Seg_Buf[7]=Index_Flag[1]%10; } else if(Seg_Index_Mode==2)//P3 { Seg_Buf[0]=12; Seg_Buf[1]=3; Seg_Buf[2]=11; Seg_Buf[3]=10; Seg_Buf[4]=Index_Flag[2]/1000%10; Seg_Buf[5]=Index_Flag[2]/100%10; Seg_Buf[6]=Index_Flag[2]/10%10; Seg_Buf[7]=Index_Flag[2]%10; Seg_Point[6]=0; } else if(Seg_Index_Mode==3)//P4 { Seg_Point[6]=0; Seg_Buf[0]=12; Seg_Buf[1]=4; Seg_Buf[2]=11; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=Seg_Buf[6]=10; Seg_Buf[7]=Index_Flag[3]; } else if(Seg_Index_Mode==4)//P5 { Seg_Buf[0]=12; Seg_Buf[1]=5; Seg_Buf[2]=11; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Index_Flag[4]/10%10; Seg_Buf[7]=Index_Flag[4]%10; } else if(Seg_Index_Mode==5)//P6 { Seg_Buf[0]=12; Seg_Buf[1]=6; Seg_Buf[2]=11; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Index_Flag[5]/10%10; Seg_Buf[7]=Index_Flag[5]%10; } else if(Seg_Index_Mode==6)//P7 { Seg_Buf[0]=12; Seg_Buf[1]=7; Seg_Buf[2]=11; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Index_Flag[6]/10%10; Seg_Buf[7]=Index_Flag[6]%10; } else if(Seg_Index_Mode==7)//P8 { Seg_Buf[0]=12; Seg_Buf[1]=8; Seg_Buf[2]=11; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Index_Flag[7]/10%10; Seg_Buf[7]=Index_Flag[7]%10; } } if(Work_Mode==2)//��־ģʽ { Seg_Point[5]=0; Seg_Point[6]=1; if(Seg_Clay_Mode==0)//E00 { Seg_Buf[0]=13; Seg_Buf[1]=Seg_Buf[2]=0; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Temp_Flag[Flag_Crol_Index]/10%10; Seg_Buf[7]=Temp_Flag[Flag_Crol_Index]%10; } else if(Seg_Clay_Mode==1)//E05 { Seg_Buf[0]=13; Seg_Buf[1]=0; Seg_Buf[2]=5; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Temp_Flag[Flag_Crol_Index]/10%10; Seg_Buf[7]=Temp_Flag[Flag_Crol_Index]%10; } else if(Seg_Clay_Mode==2)//E10 { Seg_Buf[0]=13; Seg_Buf[1]=1; Seg_Buf[2]=0; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Temp_Flag[Flag_Crol_Index]/10%10; Seg_Buf[7]=Temp_Flag[Flag_Crol_Index]%10; } else if(Seg_Clay_Mode==3)//E15 { Seg_Buf[0]=13; Seg_Buf[1]=1; Seg_Buf[2]=5; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Temp_Flag[Flag_Crol_Index]/10%10; Seg_Buf[7]=Temp_Flag[Flag_Crol_Index]%10; } else if(Seg_Clay_Mode==4)//E20 { Seg_Buf[0]=13; Seg_Buf[1]=2; Seg_Buf[2]=0; Seg_Buf[3]=Seg_Buf[4]=Seg_Buf[5]=10; Seg_Buf[6]=Temp_Flag[Flag_Crol_Index]/10%10; Seg_Buf[7]=Temp_Flag[Flag_Crol_Index]%10; } } } /*���ں�������*/ void Uart_Proc() { unsigned char param,bay,bad,rest,west,H1,H2,M1,M2,S1,S2,Htemp,Mtemp,Stemp,H_bcd,M_bcd,S_bcd; if(Uart_Slow_Down)return; Uart_Slow_Down=1;//���ڼ��ٳ��� if(Uart_Recv_Index==23) { if(Uart_Recv[0]=='('&&Uart_Recv[1]=='H'&&Uart_Recv[2]=='1'&&Uart_Recv[3]==','&& Uart_Recv[5]=='.'&&Uart_Recv[7]==')'&&Uart_Recv[8]=='('&&Uart_Recv[9]=='H'&& Uart_Recv[10]=='2'&&Uart_Recv[11]==','&&Uart_Recv[13]=='.'&&Uart_Recv[15]==')'&& Uart_Recv[16]=='('&&Uart_Recv[17]=='r'&&Uart_Recv[18]==','&&Uart_Recv[20]=='.'&& Uart_Recv[22]==')')//�ж��Ƿ�Ϊ(H1��0.0)(H2��0.0)(r��0.0)��ʽ { bay = (Uart_Recv[4] - '0')*10+(Uart_Recv[6]-'0');//����H1�IJ��� bad = (Uart_Recv[12] - '0')*10+(Uart_Recv[14]-'0');//����H2�IJ��� rest = (Uart_Recv[19] - '0')*10+(Uart_Recv[21]-'0');//����r�IJ��� Index_Flag[0] = bay;//H1���ݸ�ֵ Index_Flag[1] = bad;//H2���ݸ�ֵ Index_Flag[4] = rest;//r���ݸ�ֵ sprintf(Uart_Send, "OK\r\n");//����OK Uart_Send_String(Uart_Send); } Uart_Recv_Index = 0;//���ý�������ֵ } if(Uart_Recv_Index==12) { if(Uart_Recv[0]=='('&&Uart_Recv[1]=='W'&&Uart_Recv[2]==','&&Uart_Recv[4]=='.'&& Uart_Recv[6]==')'&&Uart_Recv[7]=='('&&Uart_Recv[8]=='S'&&Uart_Recv[9]==','&& Uart_Recv[11]==')')//�ж��Ƿ�Ϊ(W��0.0)(S��0)��ʽ { west = (Uart_Recv[3] - '0')*10+(Uart_Recv[5]-'0');//����W�IJ��� param = Uart_Recv[10] - '0';//����S�IJ��� if(param < 3)//���S����С��3 ����ȷֵ�� { Index_Flag[6] = west;//W���ݸ�ֵ Index_Flag[3] = param;//S���ݸ�ֵ sprintf(Uart_Send, "OK\r\n");//����OK Uart_Send_String(Uart_Send); } else//���S�������ڵ���3 ������ֵ�� { Index_Flag[3]=2;//ǿ��S����Ϊ2 sprintf(Uart_Send, "WARN\r\n");//����WARN Uart_Send_String(Uart_Send); } }Uart_Recv_Index = 0;//���ý�������ֵ } if(Uart_Recv_Index==10) { if(Uart_Recv[0]=='('&&Uart_Recv[1]=='T'&&Uart_Recv[2]==':'&&Uart_Recv[9]==')')//�ж��Ƿ�Ϊ(T��123456)��ʽ { H1=Uart_Recv[3]-'0';//Сʱʮλ��ȡ H2=Uart_Recv[4]-'0';//Сʱ��λ��ȡ M1=Uart_Recv[5]-'0';//����ʮλ��ȡ M2=Uart_Recv[6]-'0';//���Ӹ�λ��ȡ S1=Uart_Recv[7]-'0';//��ʮλ��ȡ S2=Uart_Recv[8]-'0';//���λ��ȡ Htemp = H1 * 10 + H2;//Сʱ���� Mtemp = M1 * 10 + M2;//���ӻ��� Stemp = S1 * 10 + S2;//����� if(Htemp <=23 && Mtemp <=59 && Stemp <=59)//���Ϊ����ʱ��ֵ { /*ʮ����תBCD��*/ H_bcd = (H1 << 4) | H2; M_bcd = (M1 << 4) | M2; S_bcd = (S1 << 4) | S2; RTC_Time[0] = H_bcd;//Сʱ������� RTC_Time[1] = M_bcd;//���Ӹ������ RTC_Time[2] = S_bcd;//�븳����� Set_Rtc(RTC_Time);//��ȡDS1302ʱ��ֵ sprintf(Uart_Send, "OK\r\n");//����OK Uart_Send_String(Uart_Send); } else//ʱ���ʽ���� { sprintf(Uart_Send, "ERROR\r\n");//����ERROR Uart_Send_String(Uart_Send); } } Uart_Recv_Index=0;//���ý�������ֵ } if(Uart_Recv_Index==5) { if(Uart_Recv[0]=='('&&Uart_Recv[1]=='S'&&Uart_Recv[2]==','&&Uart_Recv[3]=='?'&&Uart_Recv[4]==')')//�ж��Ƿ�Ϊ(S,?)��ʽ { if(Uart_Recv[3]=='?')//����(S,?)��(S,0)ģʽ sprintf(Uart_Send, "(S,%d)\r\n",Index_Flag[3]);//����S���� Uart_Send_String(Uart_Send); Uart_Recv_Index=0; //���ý�������ֵ } else if(Uart_Recv[0]=='('&&Uart_Recv[1]=='F'&&Uart_Recv[2]==','&&Uart_Recv[3]=='?'&&Uart_Recv[4]==')')//�ж��Ƿ�Ϊ(S,?)��ʽ { sprintf(Uart_Send, "(F,%4d)\r\n",Index_Flag[2]);//����F���� Uart_Send_String(Uart_Send); Uart_Recv_Index=0; //���ý�������ֵ } else if(Uart_Recv[0]=='('&&Uart_Recv[1]=='S'&&Uart_Recv[2]==','&&Uart_Recv[4]==')')//�ж��Ƿ�Ϊ(S,0)��ʽ { if(Uart_Recv[3]!='?')//�жϲ���(s,?) { param = Uart_Recv[3] - '0'; //���ڷ���ֵ���ո�parram if(param >= 0 && param <= 2) //�ж��Ƿ񳬳���Χ 0 1 2 { Index_Flag[3] = param;//��parram�����������ж�Ӧ��ģ���л� sprintf(Uart_Send, "OK\r\n");//���ڷ���OK Uart_Send_String(Uart_Send);//�ַ������� } else //����ڷ�Χ֮�� { Index_Flag[3]=2;//������ֵΪ2 sprintf(Uart_Send, "ERROR\r\n");//���ڷ��ʹ��� Uart_Send_String(Uart_Send);//�ַ������� } Uart_Recv_Index = 0; //���ý�������ֵ } } } } /*�����޴����жϺ���*/ void Led_porc() { /*��DS1302��BCD��ת��Ϊʮ����*/ Hour = ((RTC_Time[0] >> 4) & 0x0F) * 10 + (RTC_Time[0] & 0x0F); // Сʱ Min = ((RTC_Time[1] >> 4) & 0x0F) * 10 + (RTC_Time[1] & 0x0F);//���� Sec = ((RTC_Time[2] >> 4) & 0x0F) * 10 + (RTC_Time[2] & 0x0F); // �� S = Index_Flag[3];//����S r = Index_Flag[4];//����r H = Index_Flag[7];//����H Up_limit = Index_Flag[0] * 10;//Һλ���� Low_limit = Index_Flag[1] * 10;//Һλ���� if (S == 0)//���� Liquid_Level = 20 * r - Uindex;//����Һλ else//�����壬Բ�� Liquid_Level = 10 * H - Uindex;//�����壬Բ��Һλ if (Liquid_Level < 0)//���ҺλС��0 Liquid_Level = 0; send_val = Liquid_Level / 100.0; //Һλת������ if (Liquid_Level > Up_limit) //�������� { ucLed[4] = 1;//led5�� if (Uart_Send_Flag == 0)//δ���͹��߱��� { F = 500; sprintf(Uart_Send, "%d,%02d%02d%02d,%0.2f\r\n", F, Hour, Min, Sec, send_val); //����(500.ʱ�䣬��������) Uart_Send_String(Uart_Send); Uart_Send_Flag = 1;//��־λ�ѷ��ͣ������ظ����� Uart_Recv_Index = 0; } } else if (Liquid_Level < Low_limit) // Һλ�������� { ucLed[4] = 1;//led5�� if (Uart_Send_Trey == 0)//δ���͹��ͱ��� { F = 501; sprintf(Uart_Send, "%d,%02d%02d%02d,%0.2f\r\n", F, Hour, Min, Sec, send_val);//����(501.ʱ�䣬��������) Uart_Send_String(Uart_Send); Uart_Send_Trey = 1;//��־λ�ѷ��ͣ������ظ����� Uart_Recv_Index = 0; } } else // { ucLed[4] = 0;//led5�� Uart_Send_Flag = 0;//���÷��ͱ�־ Uart_Send_Trey = 0; } } /*Ƶ���쳣�жϺ���*/ void ERROR_Proc() { bit is_Continuous_Up = 1;//Ƶ���������� bit is_Continuous_Down = 1;// Ƶ�������½� bit is_History_Full = 1;//��ʷ�������ж� bit is_trigger_504 = 0;//ͻ�䴥�� if(Power_On_Init_Flag == 1)//�ϵ��ʼ���׶Σ�������쳣 { return; } if(Freq > Index_Flag[2] && Freq_Abnormal_Sent == 0)//Ƶ�ʹ����쳣 { F = 502; sprintf(Uart_Send,"%d,%02d%02d%02d,%u\r\n",F,Hour,Min,Sec,Freq);//����(502.ʱ�䣬����Ƶ��) Uart_Send_String(Uart_Send); Freq_Abnormal_Sent = 1;//��־λ�ѷ��ͱ��� Freq_Abnormal_Flag = 1;//���Ƶ�ʹ���״̬ } else if(Freq <= Index_Flag[2])//Ƶ�ʻָ����� { Freq_Abnormal_Sent = 0;//��־λ�ѷ��ͱ������ Freq_Abnormal_Flag = 0;//���Ƶ�ʹ���״̬��� } if (Freq_Last == 0)//��ʼ��Ƶ����ʷֵ { Freq_Last = Freq; return; } Freq_Change = (Freq > Freq_Last) ? (Freq - Freq_Last) : (Freq_Last - Freq);//����Ƶ�ʱ仯������ǰFreq���ϴ�Freq_Last��ֵ is_trigger_504 = 0;//��ʼ��ͻ�䴥����־ if (Freq_Change > 1000 && Freq <= 60000 && Freq_Sharp_Locked == 0 && Freq_Send == 0)//Ƶ��ͻ���쳣���仯ֵ����1000�� { F = 504; sprintf(Uart_Send,"%d,%02d%02d%02d,0\r\n",F,Hour,Min,Sec);//����(504.ʱ�䣬0) Uart_Send_String(Uart_Send); Freq_Flag = 1;//���ͻ���쳣״̬ ucLed[7] = 1;//led8�� Freq_Last = Freq;//�����ϴ�Ƶ��ֵ is_trigger_504 = 1;//����Ѵ���ͻ�� Freq_Sharp_Locked = 1;//����ͻ���� Freq_Send = 1;//����ѷ���ͻ�䱨�� Freq_Stable_Count = 0;//����Ƶ���ȶ������� } if (Freq_Change <= 1000)//Ƶ���ȶ��ж� { Freq_Stable_Count++;//�ȶ�����+1 if (Freq_Stable_Count >= 2)//���������ȶ� { Freq_Sharp_Locked = 0;//���ͻ���� Freq_Send = 0;//����ͻ�䱨�������ͱ�־ Freq_Stable_Count = 0;//�����ȶ������� } } else { Freq_Stable_Count = 0;//�仯������Χ�������ȶ������� } if (!is_trigger_504)//δ����ͻ��ʱ�������ϴ�Ƶ��ֵ { Freq_Last = Freq; } if (Power_On_Init_Flag == 0 && Time_1000Ms == 0)//Ƶ�������쳣���;����������Ƶ�� { Freq_History[Freq_History_Index] = Freq;//���뵱ǰƵ�� Freq_History_Index = (Freq_History_Index + 1) % 5; } for (k = 0; k < 5; k++)//�ж�Ƶ����ʷֵ�Ƿ���� { if (Freq_History[k] == 0)//��ֵΪ0����ʾû�� { is_History_Full = 0; break; } } if (is_History_Full)//��ʷֵ�������ж��������������½� { for (k = 0; k < 4; k++) { if (Freq_History[k+1] <= Freq_History[k]) is_Continuous_Up = 0;//������������ if (Freq_History[k+1] >= Freq_History[k]) is_Continuous_Down = 0;//���������½� } } else//����δ�����ж����� { is_Continuous_Up = 0; is_Continuous_Down = 0; } if (Freq_Flag == 1)//Ƶ��ͻ��led���ƣ�led7��˸3s��Ϩ�� { if (++LED8_Flash_Timer >= 200)//0.2s��˸ { LED8_Flash_Timer = 0; ucLed[7] ^= 1; } if (++LED8_Off_Timer >= 3000)//3s������ͻ��״̬ { LED8_Off_Timer = 0; LED8_Flash_Timer = 0; Freq_Flag = 0; ucLed[7] = 0; } } if ((is_Continuous_Up || is_Continuous_Down) && Freq_Trend_Abnormal_Send == 0)//Ƶ���쳣�����������½����� { F = 503; sprintf(Uart_Send,"%d,%02d%02d%02d,0\r\n",F,Hour,Min,Sec);//���ͣ�503,ʱ�䣬0�� Uart_Send_String(Uart_Send); Freq_Trend_Abnormal_Send = 1;//����ѷ������Ʊ��� Freq_Trend_Abnormal_Flag = 1;//��������쳣״̬ } else if (!(is_Continuous_Up || is_Continuous_Down))//���ƻָ����������ñ�־ { Freq_Trend_Abnormal_Flag = 0; Freq_Trend_Abnormal_Send = 0; LED7_Flag = 0; ucLed[6] = LED7_Flag; } if (Freq_Trend_Abnormal_Flag == 1)//Ƶ�������쳣led7���� { LED7_Flash_Timer++; if (LED7_Flash_Timer >= 100) { LED7_Flash_Timer = 0; LED7_Flag = ~LED7_Flag; ucLed[6] = LED7_Flag; } } else//�������������ñ�־ { LED7_Flash_Timer = 0; LED7_Flag = 0; ucLed[6] = LED7_Flag; } } /*��ʱ��1��ʼ������*/ void Timer1_Init() { AUXR &= 0xBF; //��ʱ��ʱ��12Tģʽ TMOD &= 0x0F; //���ö�ʱ��ģʽ TL1 = 0x18; //���ö�ʱ��ʼֵ TH1 = 0xFC; //���ö�ʱ��ʼֵ TF1 = 0; //���TF1��־ TR1 = 1; //��ʱ��1��ʼ��ʱ ET1=1; EA=1; } /*��ʱ��1�жϺ���*/ void Timer1_Server()interrupt 3 { static unsigned int uart_timeout = 0;//���ڽ��ճ�ʱ��ʱ�� if(++Key_Slow_Down==10)Key_Slow_Down=0;//��������ר�� if(++Seg_Slow_Down==200)Seg_Slow_Down=0;//����ܼ���ר�� if(++Seg_Pos==8)Seg_Pos=0;//�������ʾר�� if(++Uart_Slow_Down >= 10) Uart_Slow_Down = 0; Seg_Disp(Seg_Pos,Seg_Buf[Seg_Pos],Seg_Point[Seg_Pos]);//�������ʾ������λѡ����ѡ��С���㣩 Led_Disp(Seg_Pos,ucLed[Seg_Pos]);//led��̬��ʾ if(++Wave_Delay==200)Wave_Delay=0;//��������ʱ if(++Time_1000Ms==1000)//1���ʱ�� { Time_1000Ms=0; TR0 = 0; //ֹͣ��ʱ��0 Freq = TL0 | (TH0 << 8);//�ϲ���ʱ��0�ߵ�λ���õ�Ƶ��ֵ TR0 = 1;//����������ʱ��0 TH0=TL0=0;//��ն�ʱ��0���� if(Power_On_Init_Flag == 1)//�ϵ��ʼ����ɣ����ñ�־λ { Power_On_Init_Flag = 0; } } if(Uart_Recv_Index > 0)//���ڽ��ճ�ʱ���� { uart_timeout++; if(uart_timeout >= 500) { Uart_Recv_Index = 0; uart_timeout = 0; } } else { uart_timeout = 0; } } /*�����жϺ���*/ void Uart_Server() interrupt 4 { if(RI==1)//��鴮�ڽ����жϱ�־ { Uart_Recv[Uart_Recv_Index]=SBUF; Uart_Recv_Index++; RI=0; } } main() { Timer1_Init();//��ʱ��1��ʼ�� Timer0_Init();//��ʱ��0��ʼ�� EEPROM_Read(EEPROM_Dat, 0, 5);//��EEPROM��ȡ�궨���� for(i = 0; i < 5; i++) { Temp_Flag[i] = EEPROM_Dat[i]; } System_Init();//�ϵ��ʼ�� Uart_Init();//���ڳ�ʼ�� Set_Rtc(RTC_Time);//��ʼ��DS1302ʱ�� while(1) { Key_proc(); Seg_proc(); Led_porc(); Uart_Proc(); ERROR_Proc(); if(Uart_Send_Flag == 1 || Uart_Send_Trey == 1 || (Freq > Index_Flag[2]&& (Freq_Abnormal_Flag == 1 || Freq_Flag == 1)) || Freq_Trend_Abnormal_Flag == 1 )//�̵��������ж� { Relay_Control = 1; //�쳣���̵������� } else { Relay_Control = 0; //�������̵����Ͽ� } if (Freq > Index_Flag[2] && Freq_Abnormal_Flag == 1)//Ƶ�ʹ���led���� { ucLed[5] = 1; } else { ucLed[5] = 0; } Relay(Relay_Control); //�̵���ִ�еײ��������� } } 根据这个代码帮我画 简单逻辑结构框图
10-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值