📄 main.lst
字号:
157 2 if(disptime.sec != curtime.sec)
158 2 {
159 3 disptime.sec = curtime.sec;
160 3 flash_clr(FLASH_ADDR_SEC);//flash扇区擦除
161 3 flash_write(FLASH_ADDR_SEC,curtime.sec);//flash写
162 3 i = disptime.sec / 10;
163 3 j = disptime.sec % 10;
164 3 write_char(7,i);
165 3 write_char(8,j);
166 3 }
167 2 if(disptime.min != curtime.min)
168 2 {
169 3 disptime.min = curtime.min;
170 3 flash_clr(FLASH_ADDR_MIN);//flash扇区擦除
171 3 flash_write(FLASH_ADDR_MIN,curtime.min);//flash写
172 3 i = disptime.min / 10;
173 3 j = disptime.min % 10;
174 3 write_char(5,i);
175 3 write_char(6,j);
176 3 }
177 2 if(disptime.hour != curtime.hour)
178 2 {
179 3 disptime.hour = curtime.hour;
C51 COMPILER V7.50 MAIN 01/23/2007 22:31:40 PAGE 4
180 3 flash_clr(FLASH_ADDR_HOUR);//flash扇区擦除
181 3 flash_write(FLASH_ADDR_HOUR,curtime.hour);//flash写
182 3 i = disptime.hour / 10;
183 3 j = disptime.hour % 10;
184 3 write_char(3,i);
185 3 write_char(4,j);
186 3 }
187 2 // disptime = curtime;//把系统时间送去显示.为什么用这句话代码大了266字节,而且刷新LCD太不及时???
188 2
189 2 if(bmsw_temp != BMSW1)
190 2 {
191 3 if(bmsw_temp == BMSW2)
192 3 {
193 4 switch(stat)
194 4 {
195 5 case 1: curtime.hour++;//顺时针加
196 5 delayN33ms = 10;//333毫秒,调节时闪烁
197 5 delayNs = 6;
198 5 if(curtime.hour >= 24)curtime.hour = 0;
199 5 break;
200 5 case 2: curtime.min++;//顺时针加
201 5 delayN33ms = 10;//333毫秒,调节时闪烁
202 5 delayNs = 6;
203 5 if(curtime.min >= 60)curtime.min = 0;
204 5 break;
205 5 case 3: curtime.sec++;//顺时针加
206 5 delayN33ms = 10;//333毫秒,调节时闪烁
207 5 delayNs = 6;
208 5 if(curtime.sec >= 60)curtime.sec = 0;
209 5 break;
210 5 default:break;
211 5 }
212 4 }
213 3 else
214 3 {
215 4 switch(stat)
216 4 {
217 5 case 1: curtime.hour--;//逆时针减
218 5 delayN33ms = 10;//333毫秒,调节时闪烁
219 5 delayNs = 6;
220 5 if(curtime.hour >= 24)curtime.hour = 23;
221 5 break;
222 5 case 2: curtime.min--;//逆时针减
223 5 delayN33ms = 10;//333毫秒,调节时闪烁
224 5 delayNs = 6;
225 5 if(curtime.min >= 60)curtime.min = 59;
226 5 break;
227 5 case 3: curtime.sec--;//逆时针减
228 5 delayN33ms = 10;//333毫秒,调节时闪烁
229 5 delayNs = 6;
230 5 if(curtime.sec >= 60)curtime.sec = 59;
231 5 break;
232 5 default:break;
233 5 }
234 4 }
235 3 // while(BMSW1 == BMSW2);
236 3 bmsw_temp = BMSW1;
237 3 }
238 2 if(!BMSW)
239 2 {
240 3 stat++;
241 3 if(stat > 3)stat = 0;
C51 COMPILER V7.50 MAIN 01/23/2007 22:31:40 PAGE 5
242 3 wink = 0;//调时闪烁标记
243 3 disptime.hour = 24;//为了防止退出调节时间时显示空
244 3 disptime.min = 60;
245 3 disptime.sec = 60;
246 3 /* switch(stat)
247 3 {
248 3 case 1: write_char(1,'H');//第一位显示H代表当前调节时
249 3 delayNs = 6;
250 3 break;
251 3 case 2: write_char(1,'M');//第一位显示M代表当前调节分
252 3 delayNs = 6;
253 3 break;
254 3 case 3: write_char(1,'S');//第一位显示S代表当前调节秒
255 3 delayNs = 6;
256 3 break;
257 3 default:write_char(1,37);//第一位全显代表当前不在调节状态
258 3 break;
259 3 }*/
260 3 }
261 2 while(!BMSW){delayNs = 6;delayN33ms = 0;}
262 2 if(!delayN33ms && stat)
263 2 {
264 3 wink = !wink;
265 3 delayN33ms = 10;//333毫秒,调节时闪烁
266 3 switch(stat)
267 3 {
268 4 case 1: if(wink)
269 4 { disptime.hour = 24;}
270 4 else
271 4 {
272 5 write_char(3,10);
273 5 write_char(4,10);
274 5 }
275 4 break;
276 4 case 2: if(wink)
277 4 { disptime.min = 60;}
278 4 else
279 4 {
280 5 write_char(5,10);
281 5 write_char(6,10);
282 5 }
283 4 break;
284 4 case 3: if(wink)
285 4 { disptime.sec = 60;}
286 4 else
287 4 {
288 5 write_char(7,10);
289 5 write_char(8,10);
290 5 }
291 4 break;
292 4 default:break;
293 4 }
294 3 }
295 2 if(!delayNs)
296 2 {
297 3 stat = 0;
298 3 disptime.hour = 24;//为了退出调节时间时刷新显示
299 3 disptime.min = 60;
300 3 disptime.sec = 60;
301 3 }
302 2 }
303 1 while(1);
C51 COMPILER V7.50 MAIN 01/23/2007 22:31:40 PAGE 6
304 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 683 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 3
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -