⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gy33485.lst

📁 红外抄表系统的源代码。利用非电信号传送控制信息和数据信息
💻 LST
📖 第 1 页 / 共 5 页
字号:
 842   1          Ip_fault_flag = 0;
 843   1          UX_fault_flag = 0;
 844   1      }
 845          void clear(void)
 846          {
 847   1          uint i,j;
 848   1          uchar dis_play[6];
 849   1          fbase = 0;
 850   1          prefbase = 0;
 851   1      
 852   1      /*    UaStartEeprom = 72;
 853   1          UbStartEeprom = 96;
 854   1          UcStartEeprom = 120;
 855   1          IaStartEeprom = 144;
 856   1          IcStartEeprom = 168;
 857   1          IpStartEeprom = 192;
 858   1      */
 859   1          UaStartEeprom = 80;
 860   1          UbStartEeprom = 200;
 861   1          UcStartEeprom = 320;
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 15  

 862   1          IaStartEeprom = 440;
 863   1          IcStartEeprom = 560;
 864   1          IpStartEeprom = 680;
 865   1      
 866   1          for(i=0;i<9;i++)
 867   1              disnum[i] = 0;
 868   1          wr_s_eeprom(disnum, Num_EEPROM, sizeof(disnum[0]));
 869   1      
 870   1          wr_s_eeprom(disnum+1, 66, sizeof(disnum[1]));
 871   1          wr_s_eeprom(disnum+2, 67, sizeof(disnum[2]));
 872   1          wr_s_eeprom(disnum+3, 68, sizeof(disnum[3]));
 873   1          wr_s_eeprom(disnum+4, 69, sizeof(disnum[4]));
 874   1          wr_s_eeprom(disnum+6, 70, sizeof(disnum[6]));
 875   1          wr_s_eeprom(disnum+7, 70, sizeof(disnum[7]));
 876   1      
 877   1          for(i=0;i<sizeof(Ua_fault);i++)  dis_play[i]=0x0;
 878   1          wr_s_eeprom(dis_play, Ua_EEPROM, sizeof(Ua_fault));
 879   1      
 880   1          for(i=0;i<sizeof(Ub_fault);i++)  dis_play[i]=0x0;
 881   1          wr_s_eeprom(dis_play, Ub_EEPROM, sizeof(Ub_fault));
 882   1      
 883   1          for(i=0;i<sizeof(Uc_fault);i++)  dis_play[i]=0x0;
 884   1          wr_s_eeprom(dis_play, Uc_EEPROM, sizeof(Uc_fault));
 885   1      
 886   1          for(i=0;i<sizeof(Ia_fault);i++)  dis_play[i]=0x0;
 887   1          wr_s_eeprom(dis_play, Ia_EEPROM, sizeof(Ia_fault));
 888   1      
 889   1          for(i=0;i<sizeof(Ib_fault);i++)  dis_play[i]=0x0;
 890   1          wr_s_eeprom(dis_play, Ib_EEPROM, sizeof(Ib_fault));
 891   1      
 892   1          for(i=0;i<sizeof(Ic_fault);i++)  dis_play[i]=0x0;
 893   1          wr_s_eeprom(dis_play, Ic_EEPROM, sizeof(Ic_fault));
 894   1      
 895   1          for(i=0;i<sizeof(Ip_fault);i++)  dis_play[i]=0x0;
 896   1          wr_s_eeprom(dis_play, Ip_EEPROM, sizeof(Ip_fault));
 897   1      
 898   1          for(i=0;i<sizeof(UX_fault);i++)  dis_play[i]=0x0;
 899   1          wr_s_eeprom(dis_play, UX_EEPROM, sizeof(UX_fault));
 900   1      
 901   1      
 902   1      for(j=0;j<20;j++)
 903   1      {
 904   2          for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
 905   2          wr_s_eeprom(dis_play, UaStartEeprom, sizeof(FaultTime));
 906   2          UaStartEeprom +=6;
 907   2      }
 908   1      UaStartEeprom = 80;
 909   1      for(j=0;j<20;j++)
 910   1      {
 911   2          for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
 912   2          wr_s_eeprom(dis_play, UbStartEeprom, sizeof(FaultTime));
 913   2          UbStartEeprom +=6;
 914   2      }
 915   1      UbStartEeprom = 200;
 916   1      for(j=0;j<20;j++)
 917   1      {
 918   2          for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
 919   2          wr_s_eeprom(dis_play, UcStartEeprom, sizeof(FaultTime));
 920   2          UcStartEeprom +=6;
 921   2      }
 922   1      UcStartEeprom = 320;
 923   1      for(j=0;j<20;j++)
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 16  

 924   1      {
 925   2          for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
 926   2          wr_s_eeprom(dis_play, IaStartEeprom, sizeof(FaultTime));
 927   2          IaStartEeprom +=6;
 928   2      }
 929   1      IaStartEeprom = 440;
 930   1      for(j=0;j<20;j++)
 931   1      {
 932   2          for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
 933   2          wr_s_eeprom(dis_play, IcStartEeprom, sizeof(FaultTime));
 934   2          IcStartEeprom +=6;
 935   2      }
 936   1      IcStartEeprom = 560;
 937   1      for(j=0;j<20;j++)
 938   1      {
 939   2          for(i=0;i<sizeof(FaultTime);i++) dis_play[i]=0x0;
 940   2          wr_s_eeprom(dis_play, IpStartEeprom, sizeof(FaultTime));
 941   2          IpStartEeprom +=6;
 942   2      }
 943   1      IpStartEeprom = 680;
 944   1      ///////////////////////////////////////////////////////
 945   1          Ua_fault.sec = 0;
 946   1          Ua_fault.min = 0;
 947   1          Ua_fault.hour= 0;
 948   1          Ub_fault.sec = 0;
 949   1          Ub_fault.min = 0;
 950   1          Ub_fault.hour= 0;
 951   1          Uc_fault.sec = 0;
 952   1          Uc_fault.min = 0;
 953   1          Uc_fault.hour= 0;
 954   1          Ia_fault.sec = 0;
 955   1          Ia_fault.min = 0;
 956   1          Ia_fault.hour= 0;
 957   1          Ib_fault.sec = 0;
 958   1          Ib_fault.min = 0;
 959   1          Ib_fault.hour= 0;
 960   1          Ic_fault.sec = 0;
 961   1          Ic_fault.min = 0;
 962   1          Ic_fault.hour= 0;
 963   1          Ip_fault.sec = 0;
 964   1          Ip_fault.min = 0;
 965   1          Ip_fault.hour= 0;
 966   1          UX_fault.sec = 0;
 967   1          UX_fault.min = 0;
 968   1          UX_fault.hour= 0;
 969   1      
 970   1      
 971   1      Ua_interval_min = 0;
 972   1      Ub_interval_min = 0;
 973   1      Uc_interval_min = 0;
 974   1      Ia_interval_min = 0;
 975   1      Ic_interval_min = 0;
 976   1      Ip_interval_min = 0;
 977   1      
 978   1      
 979   1      Init_IC1();
 980   1      LCD_WD2(26,0x0F);
 981   1      a_stop = 0;
 982   1      a_start = 0;
 983   1      //TR0 = 0;
 984   1       TR2=0;
 985   1      
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 17  

 986   1      IdNum = 0;
 987   1      
 988   1      disnum_flag = 0;
 989   1      }
 990          
 991          //*************************eeprom*********************************//
 992          void txst(void) //这是发送时钟IC的开始条件
 993          {
 994   1          SCL = 1;
 995   1          SDA = 1;
 996   1          delay(DEL10);
 997   1          SDA = 0;
 998   1          delay(DEL10);
 999   1          SCL = 0;
1000   1      }
1001          void txstop(void) //这是发送时钟IC的结束条件
1002          {
1003   1          SDA = 0;            // stop writing
1004   1          delay(DEL10);
1005   1          SCL = 1;
1006   1          delay(DEL10);
1007   1          SDA = 1;
1008   1      }
1009          void wrbit(bit b)
1010          {
1011   1          SDA = b;
1012   1          delay(DEL10);
1013   1          SCL = 1;
1014   1          delay(DEL10);
1015   1          SCL = 0;
1016   1          delay(DEL10);
1017   1      }
1018          void wrbyte(uchar c)
1019          {
1020   1          B = c;
1021   1          wrbit(b7);
1022   1          wrbit(b6);
1023   1          wrbit(b5);
1024   1          wrbit(b4);
1025   1          wrbit(b3);
1026   1          wrbit(b2);
1027   1          wrbit(b1);
1028   1          wrbit(b0);
1029   1      }
1030          void wr_s_eeprom(uchar *buf, uint start_address, uchar len)
1031          {
1032   1          uint i,j;
1033   1          EEPROM_Enable = 0;
1034   1          for(i=start_address,j=0;i<start_address+len;i++,j++)
1035   1          {
1036   2              // EA = 0;
1037   2               WriteOneByte(i,buf[j]);
1038   2              // EA = 1;
1039   2          }
1040   1          EEPROM_Enable = 1;
1041   1          KickDog();
1042   1      }
1043          bit rdbit(void)
1044          {
1045   1          SDA = 1;        // ready for reading
1046   1          delay(DEL10);
1047   1          SCL = 1;
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 18  

1048   1          delay(DEL10);
1049   1          b0 = SDA;
1050   1          delay(DEL10);
1051   1          SCL = 0;
1052   1          delay(DEL10);
1053   1          return(b0);
1054   1      }
1055          uchar rdbyte(void)
1056          {
1057   1          b7 = rdbit();
1058   1          b6 = rdbit();
1059   1          b5 = rdbit();
1060   1          b4 = rdbit();
1061   1          b3 = rdbit();
1062   1          b2 = rdbit();
1063   1          b1 = rdbit();
1064   1          b0 = rdbit();
1065   1          SDA = 1;
1066   1          delay(DEL10);
1067   1          SCL = 1;
1068   1          delay(DEL10);
1069   1          SCL = 0;
1070   1          delay(DEL10);
1071   1          SDA = 0;
1072   1          delay(DEL10);
1073   1          return(B);
1074   1      }
1075          void rd_s_eeprom(uchar *buf, uint start_address, uchar len)
1076          {
1077   1          uint i, j;
1078   1          EEPROM_Enable = 0;
1079   1          for(i=start_address,j=0;i<start_address+len;i++, j++)
1080   1          {
1081   2               //EA = 0;
1082   2               buf[j]=ReadOneByte(i);
1083   2               //EA = 1;
1084   2          }
1085   1          EEPROM_Enable = 1;
1086   1      }
1087          //////////////////////////////////////?????????????????????????need test
1088          void WriteOneByte(uint address,uchar ch)
1089          {
1090   1      	  uchar AddrH,AddrL;
1091   1      	  AddrH = ((address&0x7FF)>>7)&0x0E;  //page
1092   1      	  AddrL = address&0x0FF;         //address
1093   1          txst();               // start I2C
1094   1          wrbyte(0xa0|AddrH);
1095   1          while(rdbit()==1);     // waiting for the response bit
1096   1          wrbyte(AddrL);
1097   1          while(rdbit()==1);
1098   1          wrbyte(ch);
1099   1          while(rdbit()==1);
1100   1           txstop();
1101   1           delay(DELL10);
1102   1      }
1103          ///////////////////////////////////////
1104          uchar ReadOneByte(uint address)
1105          {
1106   1          uchar uch;
1107   1      	  uchar AddrH,AddrL;
1108   1      	  AddrH = ((address&0x7FF)>>7)&0x0E;  //page
1109   1      	  AddrL = address&0x0FF;         //address
C51 COMPILER V6.00i GY33485                                                                08/16/2007 20:55:35 PAGE 19  

1110   1          txst();
1111   1          wrbyte(0xa0|AddrH);             // R/W = 0 for address writing
1112   1          while(rdbit()==1);          // waiting for the response bit
1113   1          wrbyte(AddrL);
1114   1          while(rdbit()==1);         // waiting for the response bit
1115   1          SDA = 1;
1116   1          SCL = 1;
1117   1          txst();
1118   1          wrbyte(0xa1|AddrH);              // R/W = 1 for reading
1119   1          while(rdbit()==1);          // waiting for the response bit
1120   1          uch = rdbyte();
1121   1          txstop();
1122   1          return(uch);
1123   1      }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -