📄 shtxx_sample_code.lst
字号:
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 + -