_nop_(); _nop_(); _nop_(); SBUF=dd; while(!TI); TI=0; E=0; }
//**************************** //通信子程序
sp_connection() {
send(0xF0); }
sp_readtime() {
getalltime(); send(0xF1); send(sec); send(min); send(hr); send(date); send(mon); send(day); send(year); }
sp_settime() {
send(0xf2); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
sec=receive(); min=receive(); hr=receive(); date=receive(); mon=receive(); day=receive(); year=receive();
ds_settime(0x80,sec); ds_settime(0x82,min); ds_settime(0x84,hr); ds_settime(0x86,date); ds_settime(0x88,mon); ds_settime(0x8a,day); ds_settime(0x8c,year); }
sp_readrec() {
send(0xf3); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); send(prelq); }
sp_readdat() {
uchar xdata *pt; send(0xF4); send(num1); send(num2); yanshi(); yanshi();
xmark=0x0000; if(*xmark==0) {
for(pt=0x0001;pt for(pt=0x0001;pt<=0x7530;pt++) ******************** { send(*pt); } numtab=0x0001; num1=0; num2=0; *xmark=0; } } sp_readlq() { send(0xF5); send(uplq); send(downlq); } sp_setlq() { send(0xf6); uplq=receive(); downlq=receive(); } sp_readlqakey() { send(0xf7); send(prelq); send(key); } //********************** //通信协议****************** check_mark() { switch(hostmark) { case 0x00: sp_connection();break; case 0x01: sp_readtime();break; case 0x02: sp_settime();break; case 0x03: sp_readrec();break; case 0x04: sp_readdat();break; case 0x05: sp_readlq();break; case 0x06: sp_setlq();break; case 0x07: sp_readlqakey();break; default: break; } } check_host() { if(RI==1) { RI=0; hostmark=SBUF; _nop_(); check_mark(); } } //记录数据 makemark(uchar mk) { getalltime(); *numtab=min; numtab++; *numtab=hr; numtab++; *numtab=date; numtab++; *numtab=mon; numtab++; *numtab=year; numtab++; *numtab=mk; xmark=0x0000; if(numtab==0x7530) { numtab=0x0001; *xmark=1; num1=50; num2=0; } else if (*xmark!=1) ************************** { tab=numtab; num1=(tab/6)/100; num2=(tab/6)0; numtab++; } } //********************************** //液位检测 ************************** check_lq() { ad_start(); _nop_(); _nop_(); _nop_(); ad_read(); if(prelq>=uplq && key==1) { RELAY=1; key=0; makemark(1); } else if(prelq<=downlq && key==0) { RELAY=0; key=1; makemark(0); } } //****************************//***************主程序main() { main_init(); while(1) { check_lq(); display(); check_host(); } } ****** **********