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

📄 shtxx_sample_code.lst

📁 这是单片机驱动温湿度传感器SHT11温湿度传感器的源代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
 938   1              float dat_ad_xian = 0;
 939   1              value humi_val,temp_val;
 940   1        float dew_point=0;
 941   1        unsigned char error,checksum;
 942   1              unsigned int num_i = 0;
 943   1      //      unsigned int num_i;
 944   1      
 945   1              lcd_off();
 946   1              lcd_on();
 947   1              lcd_ini();
 948   1      //      lcd_wrc(0x80);
 949   1      /*
 950   1              for(i=0;i<60;i++)
 951   1              {
 952   1                              lcd_wrd(0x00+i);
 953   1              }
 954   1      */
 955   1              delay(100);
 956   1              lcd_add(1,1);
 957   1      
 958   1              for(i=0;i<4;i++)
 959   1              {
 960   2                      lcd_dis_ch(0xb5,0xa1+i);
 961   2              }
 962   1      
 963   1      //      lcd_dis_ch(0xb5,0xa1);
 964   1      //      lcd_dis_ch(0xb5,0xa1);
 965   1      //      lcd_dis_ch(0xb5,0xa1);
 966   1              delay(200);
 967   1      //      i=lcd_read_ac();
 968   1      //      i=lcd_read_ac();
 969   1              i=lcd_read_ac();
 970   1      //      delay(200);
 971   1              lcd_dis_num(i);
 972   1              lcd_dis_num(12458);
 973   1      
 974   1      //      I2C
 975   1              WP = 0;
 976   1      
 977   1      //  write to rom
 978   1      /*
 979   1              lcd_add(3,1);
 980   1      
 981   1              i = ISendStr_16(0xa0,0x0000,19);
 982   1              lcd_wrd(0x30+i);
 983   1      */
C51 COMPILER V7.07   SHTXX_SAMPLE_CODE                                                     04/04/2007 18:18:08 PAGE 17  

 984   1      /*
 985   1              lcd_add(4,1);
 986   1              for(v=0x0000;v<8;v++)
 987   1              {
 988   1                      i = 0;
 989   1                      while(i == 0)
 990   1                      {
 991   1                              i = ISendStr_16(0xa0,v,3*v);
 992   1                      }
 993   1                      lcd_wrd(0x30+(uchar)i); 
 994   1              }
 995   1      */
 996   1      
 997   1      // read rom   set address
 998   1      /*
 999   1              lcd_add(3,1);
1000   1              for(v=0x0000;v<8;v++)
1001   1              {
1002   1                      i = IRcvStr_16(0xa0,v);
1003   1      //              lcd_wrc(0x88+2*v);
1004   1                      lcd_dis_num(i);
1005   1              }
1006   1      */
1007   1      
1008   1      //      set_time(30,13,21,1,12,3,7);            //时钟设置sec, min, hr, dy, dt, mn, yr
1009   1      
1010   1      
1011   1      //ad中断相关
1012   1      /*
1013   1      //      IE = IE&0X81;           //1000 0001
1014   1              EA = 0;
1015   1              EX0 = 1;
1016   1      //      TCON
1017   1              IT0 = 1;
1018   1      */
1019   1      
1020   1              init_uart();
1021   1              s_connectionreset();
1022   1              while(1)
1023   1              {
1024   2              error=0;
1025   2              lcd_add(2,1);
1026   2              lcd_dis_num(error);
1027   2          error+=s_measure((unsigned char*) &humi_val.i,&checksum,HUMI);  //measure humidity
1028   2              lcd_add(2,4);
1029   2              lcd_dis_num(error);
1030   2          error+=s_measure((unsigned char*) &temp_val.i,&checksum,TEMP);  //measure temperature
1031   2              lcd_add(2,7);
1032   2              lcd_dis_num(error);
1033   2              if(error!=0)
1034   2              {
1035   3                      s_connectionreset();                 //in case of an error: connection reset
1036   3                      lcd_add(3,1);
1037   3                      lcd_dis_num(error);
1038   3              }
1039   2              else
1040   2              {
1041   3                      humi_val.f=(float)humi_val.i;                   //converts integer to float
1042   3                      temp_val.f=(float)temp_val.i;                   //converts integer to float
1043   3                      calc_sth11(&humi_val.f,&temp_val.f);            //calculate humidity, temperature
1044   3      //              dew_point=calc_dewpoint(humi_val.f,temp_val.f); //calculate dew point
1045   3      //      printf("temp:%5.1fC humi:%5.1f%% dew point:%5.1fC\n",temp_val.f,humi_val.f,dew_point);
C51 COMPILER V7.07   SHTXX_SAMPLE_CODE                                                     04/04/2007 18:18:08 PAGE 18  

1046   3              lcd_add(3,1);
1047   3              lcd_dis_num((uint)temp_val.f);
1048   3              lcd_add(3,4);
1049   3              lcd_dis_num((uint)humi_val.f);
1050   3      
1051   3              }
1052   2          //----------wait approx. 0.8s to avoid heating up SHTxx------------------------------      
1053   2      //    for (i=0;i<40000;i++);     //(be sure that the compiler doesn't eliminate this line!)
1054   2              ldelay(200);
1055   2              ldelay(200);
1056   2      
1057   2      //-----------------------------------------------------------------------------------                     
             -  
1058   2              
1059   2      
1060   2      //              lcd_dis_time();         //时钟显示函数
1061   2      //测试n次
1062   2      //              i = ad_ce_n();
1063   2      //              ldelay(80);
1064   2      
1065   2      /*
1066   2      //ad测试
1067   2                      dat_ad = ad_ce();
1068   2                      lcd_en();
1069   2                      lcd_add(2,1);
1070   2                      lcd_dis_num(dat_ad);
1071   2                      dat_ad_xian = (float)(dat_ad*1.28/2.048);
1072   2                      lcd_dis_num((uint)dat_ad_xian);
1073   2                      ldelay(80);
1074   2      
1075   2      
1076   2      /*
1077   2      //ad读
1078   2                      if(sta == 0)
1079   2                      {
1080   2                              P0 = 0XFF;
1081   2                              delay(50);
1082   2      
1083   2                              if(sta == 0)
1084   2                              {
1085   2      //                              P0 = 0XFF;
1086   2                                      lben = 0;
1087   2                                      hben = 1;
1088   2                                      ad_en();
1089   2                                      _nop_();
1090   2                                      i = P0;
1091   2                                      ce = 1;
1092   2                                      _nop_();
1093   2      
1094   2                                      hben = 0;
1095   2                                      lben = 1;
1096   2                                      ad_en();
1097   2                                      _nop_();
1098   2                                      v = P0&0x0f;
1099   2      
1100   2                                      lcd_en();
1101   2                                      lcd_add(2,1);
1102   2                                      lcd_dis_num(v);
1103   2                                      lcd_dis_num(i);
1104   2                                      
1105   2                                      
1106   2                                      dat_ad = v*256+i;
C51 COMPILER V7.07   SHTXX_SAMPLE_CODE                                                     04/04/2007 18:18:08 PAGE 19  

1107   2                                      lcd_dis_num(dat_ad);
1108   2      
1109   2                                      dat_ad_xian = (float)(dat_ad*1.28/2.048);
1110   2      //                              dat_ad_xian = (float)(dat_ad/2.048);
1111   2      
1112   2                                      lcd_dis_num((uint)dat_ad_xian);
1113   2      
1114   2      //                              v = P0&0X30;
1115   2      //                              v = v>>4;
1116   2      //                              lcd_dis_num(v);
1117   2      
1118   2                                      ldelay(80);
1119   2                              }
1120   2                      
1121   2                      }
1122   2      //ad读结束
1123   2      */
1124   2      
1125   2      /*              keydata = key_data();
1126   2                      lcd_add(4,7);
1127   2                      switch(keydata)
1128   2                      {
1129   2                              case 0:
1130   2                              {
1131   2                                      v = 3;
1132   2                                      lcd_dis_num(v);
1133   2                                      break;
1134   2                              }
1135   2                              case 1:
1136   2                              {
1137   2                                      v = 4;
1138   2                                      lcd_dis_num(v);
1139   2                                      break;
1140   2                              }
1141   2                              case 2:
1142   2                              {
1143   2                                      v = 5;
1144   2                                      lcd_dis_num(v);
1145   2                                      break;
1146   2                              }
1147   2                              case 3:
1148   2                              {
1149   2                                      v = 6;
1150   2                                      lcd_dis_num(v);
1151   2                                      break;
1152   2                              }
1153   2                              case 4:
1154   2                              {
1155   2                                      v = 2;
1156   2                                      lcd_dis_num(v);
1157   2                                      break;
1158   2                              }
1159   2                              case 5:
1160   2                              {
1161   2                                      v = 7;
1162   2                                      lcd_dis_num(v);
1163   2                                      break;
1164   2                              }
1165   2                              case 6:
1166   2                              {
1167   2                                      v = 8;
1168   2                                      lcd_dis_num(v);
C51 COMPILER V7.07   SHTXX_SAMPLE_CODE                                                     04/04/2007 18:18:08 PAGE 20  

1169   2                                      break;
1170   2                              }
1171   2                              case 7:
1172   2                              {
1173   2                                      v = 9;
1174   2                                      lcd_dis_num(v);
1175   2                                      break;
1176   2                              }
1177   2                              case 8:
1178   2                              {
1179   2                                      v = 1;
1180   2                                      lcd_dis_num(v);
1181   2                                      break;
1182   2                              }
1183   2                              case 9:
1184   2                              {
1185   2                                      v = 10;
1186   2                                      lcd_dis_num(v);
1187   2                                      break;
1188   2                              }
1189   2                              case 10:
1190   2                              {
1191   2                                      v = 11;
1192   2                                      lcd_dis_num(v);
1193   2                                      break;
1194   2                              }
1195   2                              case 11:
1196   2                              {
1197   2                                      v = 12;
1198   2                                      lcd_dis_num(v);
1199   2                                      break;
1200   2                              }
1201   2                              case 12:
1202   2                              {
1203   2                                      v = 0;
1204   2                                      lcd_dis_num(v);
1205   2                                      break;
1206   2                              }
1207   2                              case 13:
1208   2                              {
1209   2                                      v = 13;
1210   2                                      lcd_dis_num(v);
1211   2                                      break;
1212   2                              }
1213   2                              case 14:
1214   2                              {
1215   2                                      v = 14;
1216   2                                      lcd_dis_num(v);
1217   2                                      break;
1218   2                              }
1219   2                              case 15:
1220   2                              {
1221   2                                      v = 15;
1222   2                                      lcd_dis_num(v);
1223   2                                      break;
1224   2                              }
1225   2                              default:
1226   2                              {
1227   2                                      v = 16;
1228   2                                      lcd_dis_num(v);
1229   2                                      break;
1230   2                              }
C51 COMPILER V7.07   SHTXX_SAMPLE_CODE                                                     04/04/2007 18:18:08 PAGE 21  

1231   2                      }
1232   2      */
1233   2              
1234   2              }
1235   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2951    ----
   CONSTANT SIZE    =     24    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =      1     143
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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