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); }
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); }
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); }
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); }
//#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); }