예제 #1
0
void fun3(void) //第一层,显示功能菜单、传感器、时间、【设置】
{
        clrram();
        display(0x82,0xb9,0xa6); 
        display(0x83,0xc4,0xdc); 
        display(0x84,0xb2,0xcb);
        display(0x85,0xb5,0xa5);
        
        write(COMMAND, 0x90);
        write(DATA, 0x31);
        write(DATA, 0x2e);
        display(0x92,0xb4,0xab);
        display(0x93,0xb8,0xd0);
        display(0x94,0xc6,0xf7);
        
	write(COMMAND, 0x88); //设置液晶屏的显示地址,下同.
        write(DATA, 0x32);
        write(DATA, 0x2e);
        display(0x8a,0xca,0xb1);
        display(0x8b,0xbc,0xe4);
        
        write(COMMAND, 0x98);
        write(DATA, 0x33);
        write(DATA, 0x2e);
        display(0x99,0xa1,0xbe);
        display(0x9a,0xc9,0xe8);
        display(0x9b,0xd6,0xc3);
        display(0x9c,0xa1,0xbf);
}
예제 #2
0
void fun6(void) //第二层,显示温湿度传感器、烟雾传感器、【门磁传感器】、返回
{
        clrram();

        display(0x81,0xce,0xc2); 
        display(0x82,0xca,0xaa); 
        display(0x83,0xb6,0xc8);
        display(0x84,0xb4,0xab);
        display(0x85,0xb8,0xd0);
        display(0x86,0xc6,0xf7); 

        display(0x91,0xd1,0xcc);
        display(0x92,0xce,0xed);
        display(0x93,0xb4,0xab);
        display(0x94,0xb8,0xd0);
        display(0x95,0xc6,0xf7);

        display(0x88,0xa1,0xbe);        
        display(0x89,0xc3,0xc5);
        display(0x8a,0xb4,0xc5);
        display(0x8b,0xb4,0xab);
        display(0x8c,0xb8,0xd0);
        display(0x8d,0xc6,0xf7);
        display(0x8e,0xa1,0xbf);
        
        display(0x99,0xb7,0xb5);
        display(0x9a,0xbb,0xd8);
}
예제 #3
0
void fun7(void) //第二层,显示温湿度传感器、烟雾传感器、门磁传感器、【返回】 
{
        clrram();

        display(0x81,0xce,0xc2); //温
        display(0x82,0xca,0xaa); //湿
        display(0x83,0xb6,0xc8); //度
        display(0x84,0xb4,0xab); //传
        display(0x85,0xb8,0xd0); //感
        display(0x86,0xc6,0xf7); //器

        display(0x91,0xd1,0xcc);
        display(0x92,0xce,0xed);
        display(0x93,0xb4,0xab);
        display(0x94,0xb8,0xd0);
        display(0x95,0xc6,0xf7);
       
        display(0x89,0xc3,0xc5);
        display(0x8a,0xb4,0xc5);
        display(0x8b,0xb4,0xab);
        display(0x8c,0xb8,0xd0);
        display(0x8d,0xc6,0xf7);


        display(0x98,0xa1,0xbe);         
        display(0x99,0xb7,0xb5);
        display(0x9a,0xbb,0xd8);        
        display(0x9b,0xa1,0xbf);        
}
예제 #4
0
void fun9(void) //第三层,显示现在的温度是、现在的湿度是、重新获取、【返回】
{
        clrram();

        display(0x80,0xcf,0xd6); 
        display(0x81,0xd4,0xda); 
        display(0x82,0xb5,0xc4);
        display(0x83,0xce,0xc2);
        display(0x84,0xb6,0xc8);
        display(0x85,0xca,0xc7);
        write(COMMAND, 0x86);
        write(DATA, 0x3a);
        write(DATA, 0x20);
        write(COMMAND, 0x87);
        write(DATA, dht11data[0]);
        write(DATA, dht11data[1]);        

        display(0x90,0xcf,0xd6); 
        display(0x91,0xd4,0xda); 
        display(0x92,0xb5,0xc4);
        display(0x93,0xca,0xaa);
        display(0x94,0xb6,0xc8);
        display(0x95,0xca,0xc7);
        write(COMMAND, 0x96);
        write(DATA, 0x3a);
        write(DATA, 0x20);
        write(DATA, dht11data[2]);
        write(DATA, dht11data[3]);        
       
        display(0x89,0xd6,0xd8);//重
        display(0x8a,0xd0,0xc2);//新
        display(0x8b,0xbb,0xf1);//获
        display(0x8c,0xc8,0xa1);//取


        display(0x98,0xa1,0xbe);         
        display(0x99,0xb7,0xb5);
        display(0x9a,0xbb,0xd8);
        display(0x9b,0xa1,0xbf);        
}
예제 #5
0
//#pragma vector=RESET_VECTOR
//#define PROGRAMDEBUG  1
int main(void)
{
  INT16U i,temp,second;
  INT16U count,oldDI;
  INT8U RUN;
  //RUNRECORD runlog;
  unsigned char old__second;
	unsigned char old__minute;
	unsigned char old__hour;
	unsigned char old__day;
	unsigned char minute_counter=0;
	//unsigned char hour_counter=0;
  unsigned int DI_Convert=0;

  char checkcode[6]="vh11+\0";
	char DI_C[4]="DI=\0";
	char d[5];

	unsigned int Prog_Circle=0;
	//unsigned char cps[]="DataTime=\0";
	INT8U DI_Alter=0;
  INT8U Save_Hourdata=0;
  INT8U Save_Daydata=0;

  //INT8U a[16]="123456789ABCDEF";
  //INT8U b[17];
   // INT8U c[3]={0xf8,0x10,0x10};
  INT8U checknum[7];
  /***********************************************
                     device initializing
  ************************************************/
  CPU_init();
  P4OUT |=BIT0;   //flash rst
  GPRS_POWERON;
  RealData.R_D.DO=0;
  DIInput();
	DOOutput(RealData.R_D.DO);
   init_lcd ();
   clrram();
   LCD_light_ON;
   disp_img(0x01e0+960,30,64,zimo240128);
   //MemoryClear(Modbustore,sizeof(Modbustore));
   Modbustore =0;
   MemoryClear(local_mma_H,sizeof(local_mma_H));
   MemoryClear(local_mma_D,sizeof(local_mma_D));
   MemoryClear(local_mma_M,sizeof(local_mma_M));//100504
   MemoryClear(dev_mma_D,sizeof(dev_mma_D));
   MemoryClear(dev_mma_H,sizeof(dev_mma_H));
   MemoryClear(dev_mma_M,sizeof(dev_mma_M));  //100504
   MemoryClear(Hour_COD_avg,sizeof(Hour_COD_avg));
   MemoryClear(Hour_B01_avg,sizeof(Hour_B01_avg));
	delay11(3200);
  //GPRS_POWEROFF;
 //test

#ifdef PROGRAMDEBUG
 char c[3]={0x00,0,0};
 char aa='A';
 FlashBufferWrite(c,"abcdefg",7,0);
 //c[0]=0xf0;
 //FlashBuffertoMemory(c,0);
 Delay_N_mS(20000);
 c[0]=0;
 FlashBufferRead(c,checknum,5,0);
 checknum[0]=0;

 c[0]=0xf0;
 FlashMemorytoBuffer(c,0);
 c[0]=0;
 FlashBufferRead(c,checknum,5,0);
 checknum[0]=0;
 c[0]=0xf0;
 FlashMemoryRead(c,checknum,5);
 //FlashMemoryWrite(c,checkcode,5,0);
 Delay_N_mS(20000);
   //c[2]=0x05;
 //FlashMemoryWrite(c,&aa,1,0);
 Delay_N_mS(20000);
 c[2]=0;
 FlashMemoryRead(c,checknum,5);
#endif
 //---------------------------
 /****************************************************
                  system initializing
 ****************************************************/
 AT24C64_RS(checknum,0x00,6);
 Delay_N_mS(2000);
 AT24C64_RS(checknum,0x00,6);
 if(strcmp(checknum,checkcode)!=0)
	{
    v_charge1302();
		v_Set1302();
		
		for(count=0;count<6;count++)
			SPARA.pw[count]=(count+1)|0x30;  //初始密码123456
		
		for(count=0;count<9;count++)
		{
			SPARA.mn[count]=(count+1)|0x30;  //mn 12345678901234
			ml_mn[count]=parameter.sys_parameter.mn[count];
		}
			
		for(count=0;count<5;count++)
		{
			SPARA.mn[count+9]=count|0x30;
			ml_mn[count+9]=parameter.sys_parameter.mn[count+9];
		}
		
		SPARA.st[0]='3';             //st 32
		SPARA.st[1]='2';
		ml_st[0]='3';
		ml_st[1]='2';
		for(count=0;count<9;count++)
			SPARA.sim[count]=(count+1)|0x30;  //sim 123456789
		
		SPARA.rd_interval[0]='3';     //实时数据上报时间 60秒
		SPARA.rd_interval[1]='0';
		SPARA.rd_interval[2]='0';
		
		for(count=0;count<5;count++)
			SPARA.overtime[count]='0';    //超时时间 5秒
		SPARA.overtime[4]='5';
		SPARA.resendtime[0]='0';		//重发次数 3次
		SPARA.resendtime[1]='3';
		for(count=0;count<5;count++)
			SPARA.warntime[count]='0';    //报警时间 5
		SPARA.warntime[4]='5';
		
		for(count=0;count<4;count++)
			SPARA.reporttime[count]='0';	//上报时间 5
		SPARA.reporttime[3]='5';
		for(count=0;count<2;count++)
			SPARA.alarmtarge[count]=0x30+count;		//仪表污染物编号
		SPARA.alarmtarge[2]='\0';
		SPARA.alarmtarge[3]='\0';
							
		for(count=0;count<8;count++)
		{
			//ADPARA(count).po_id[0]='P';
			//ADPARA(count).po_id[1]=0x31+count;
			//ADPARA(count).po_id[2]='\0';
                        ADPARA(count).po_id[0]='0';
			ADPARA(count).po_id[1]='0';
			ADPARA(count).po_id[2]='0';
			ADPARA(count).ADUV.b=16.0;
			ADPARA(count).ADLV.b=0.0;
			ADPARA(count).U_Alarmlimt.b=10.0;
			ADPARA(count).L_Alarmlimt.b=0.0;
			ADPARA(count).rate.b=(16.0-0.0)/0x666;
					
			ADPARA(count).AI_Type=2;
			
		}
    for(count=0;count<6;count++)
    SPARA.Serial_Baud[count]=0;
		//LCD_Baud=0;
		for(checknum[0]=0;checknum[0]<6;checknum[0]++)
			for(count=0;count<16;count++)
				SPARA.PO_SerialNum[checknum[0]][count]=0xff;		

    SPARA.PO_SerialNum[0][0]=0x05;
		
    for(count=0;count<6;count++)
		{
			SPARA.PO_Type[count]=0;
			Channel_Num[count]=0;
		}
    SPARA.PO_Type[0]=1; //水,哈希
			Channel_Num[0]=1;
		SPARA.alarmtarge[10]=0;//baud rate
    SPARA.LCD_Backtime=1;
		
		AT24C64_W(parameter.sys_setting,0x10,sizeof(PARAMETER));	
                /*初始化历史数据标志组结构体,存储于Flash第一页(页地址0x00)*/
                INT8U  Rdaddr[3]={0,0,0};
                INT16U pageaddr=0;
                HISDATAFLAGS Sighisdata;
                MemoryClear(&Sighisdata,sizeof(Sighisdata));
                for(count=0;count<7;)
                {
                  Sighisdata.page =0x10+count*31*24;
                  Rdaddr[1]=(INT8U)(pageaddr>>8);
                  Rdaddr[2]=(INT8U)(pageaddr);
                  FlashBufferWrite(Rdaddr,&Sighisdata,sizeof(Sighisdata),FLASHBUFFER1);
                  FlashBufferWrite(Rdaddr,&Sighisdata,sizeof(Sighisdata),FLASHBUFFER1);
                  count++;
                  pageaddr=count*120;
                }
                Rdaddr[0]=0;
                Rdaddr[1]=0;
                Rdaddr[2]=0;
                FlashBuffertoMemory(Rdaddr,FLASHBUFFER1);

                HISDATAFLAGS_D sig_d;
                pageaddr=0;
                MemoryClear(&sig_d,sizeof(sig_d));
                for(count=0;count<13;)
                {
                  sig_d.page =5400+count*31;
                  Rdaddr[0]=0;
                  Rdaddr[1]=((INT8U)(pageaddr>>8))|0x28;  //page 5
                  Rdaddr[2]=(INT8U)(pageaddr);
                  FlashBufferWrite(Rdaddr,&sig_d,sizeof(sig_d),FLASHBUFFER1);
                  count++;
                  pageaddr=count*80;
                }
                Rdaddr[0]=0;
                Rdaddr[1]=0x28;
                Rdaddr[2]=0;
                FlashBuffertoMemory(Rdaddr,FLASHBUFFER1);

                HISDATAFLAGS_R sig_r;
                MemoryClear(&sig_r,sizeof(sig_r));
                pageaddr=0;
                for(count=0;count<3;)
                {
                  sig_r.page =6000+count*24*12;
                  Rdaddr[0]=0;
                  Rdaddr[1]=((INT8U)(pageaddr>>8))|0x50;
                  Rdaddr[2]=(INT8U)(pageaddr);
                  FlashBufferWrite(Rdaddr,&sig_r,sizeof(sig_r),FLASHBUFFER1);
                  count++;
                  pageaddr=count*200;
                }
                Rdaddr[0]=0;
                Rdaddr[1]=0x50; // page 10
                Rdaddr[2]=0;
                FlashBuffertoMemory(Rdaddr,FLASHBUFFER1);
                
                //运行日志存储于8190页(1FFE)
                RUNRECORD runlog;
                MemoryClear(&runlog,sizeof(runlog));
                pageaddr=0; 
                for(count=0;count<10;count++)
                {
                  pageaddr=count*64;
                  Rdaddr[0]=0xff;
                  Rdaddr[1]=((INT8U)(pageaddr>>8))|0xf0;
                  Rdaddr[2]=(INT8U)(pageaddr);
                  FlashBufferWrite(Rdaddr,&runlog,sizeof(runlog),FLASHBUFFER1);
                }
                Rdaddr[0]=0xff;
                Rdaddr[1]=0xf0;
                Rdaddr[2]=0;
                FlashBuffertoMemory(Rdaddr,FLASHBUFFER1);
                
                //Sighisdata.page =0;
                //FlashBufferWrite(Rdaddr,&Sighisdata,sizeof(Sighisdata),FLASHBUFFER1);
		AT24C64_W(checkcode,0x00,6);


	}