?? main.lst
字號:
0180 E545 240 MOV A, DAY ;以下產生日期的低位
0182 540F 241 ANL A, #0FH
0184 93 242 MOVC A, @A+DPTR
0185 F534 243 MOV 34H, A
0187 E546 244 MOV A, HOLIDAY ;以下產生星期的高位
0189 54F0 245 ANL A, #0F0H
018B C4 246 SWAP A
018C 93 247 MOVC A, @A+DPTR
018D F536 248 MOV 36H, A
018F E546 249 MOV A, HOLIDAY ;以下產生星期的低位
0191 540F 250 ANL A, #0FH
0193 93 251 MOVC A, @A+DPTR
0194 F537 252 MOV 37H, A
253
254
A51 MACRO ASSEMBLER MAIN 11/22/2005 10:14:03 PAGE 5
0196 255 DATE_DIS_NO:
0196 9199 256 CALL KEYBO
0198 300306 257 JNB KEY_DIR,DATE_WAIT
019B C203 258 CLR KEY_DIR
019D 8007 259 SJMP DATE_RET
019F 8005 260 DATE_RET2:SJMP DATE_RET;中轉
01A1 261 DATE_WAIT:
01A1 E53B 262 MOV A, MS255 ;日期顯示時間超過4秒后退出
01A3 B40FA4 263 CJNE A, #0FH, DATE_DISP1
264
01A6 22 265 DATE_RET:RET
266 ;****************************************************************
267 ;
01A7 268 GET_DATE:
01A7 85A083 269 MOV DPH, P2
01AA 75820A 270 MOV DPL, #0AH
01AD E0 271 MOVX A, @DPTR
01AE 20E7E5 272 JB ACC.7, DATE_DIS_NO;直到UIP位為0時才能讀數據
01B1 758209 273 MOV DPL, #09H
01B4 E0 274 MOVX A, @DPTR
01B5 F543 275 MOV YEAR, A
01B7 758208 276 MOV DPL, #08H
01BA E0 277 MOVX A, @DPTR
01BB F544 278 MOV MONTH, A
01BD 758207 279 MOV DPL, #07H
01C0 E0 280 MOVX A, @DPTR
01C1 F545 281 MOV DAY, A
01C3 758206 282 MOV DPL, #06H
01C6 E0 283 MOVX A, @DPTR
01C7 F546 284 MOV HOLIDAY, A
285
286 ;****************************************************************
287 ;系統設置子程序
01C9 288 CHANGE_TIME:
01C9 200303 289 JB KEY_DIR, CHANGE1
01CC 02034E 290 CGE_RET1:LJMP CHANGE_RET
01CF 291 CHANGE1:
01CF E53C 292 MOV A, KEY_VOL
01D1 B481F8 293 CJNE A, #81H, CGE_RET1
01D4 C203 294 CLR KEY_DIR
01D6 C28C 295 CLR TR0 ;以下十行程序用于關閉DS12887的時鐘更新
01D8 C293 296 CLR CS
01DA C080 297 PUSH P0
01DC 85A083 298 MOV DPH, P2
01DF 75820B 299 MOV DPL, #0BH
01E2 7482 300 MOV A, #82H
01E4 F0 301 MOVX @DPTR, A
01E5 31A7 302 CALL GET_DATE
01E7 D080 303 POP P0
01E9 D293 304 SETB CS
01EB D28C 305 SETB TR0
306
01ED 90012C 307 MOV DPTR, #TIME_TAB ;拆字并送往顯存
01F0 753200 308 MOV 32H, #00H ;顯示"="
01F3 753500 309 MOV 35H, #00H
01F6 E543 310 MOV A, YEAR ;以下產生年的高位
01F8 54F0 311 ANL A, #0F0H
01FA C4 312 SWAP A
01FB 93 313 MOVC A, @A+DPTR
01FC F530 314 MOV 30H, A
01FE E543 315 MOV A, YEAR ;以下產生年的低位
0200 540F 316 ANL A, #0FH
0202 93 317 MOVC A, @A+DPTR
0203 F531 318 MOV 31H, A
0205 E544 319 MOV A, MONTH ;以下產生月份的高位
0207 54F0 320 ANL A, #0F0H
A51 MACRO ASSEMBLER MAIN 11/22/2005 10:14:03 PAGE 6
0209 C4 321 SWAP A
020A 93 322 MOVC A, @A+DPTR
020B F533 323 MOV 33H, A
020D E544 324 MOV A, MONTH ;以下產生月份的低位
020F 540F 325 ANL A, #0FH
0211 93 326 MOVC A, @A+DPTR
0212 F534 327 MOV 34H, A
0214 E545 328 MOV A, DAY ;以下產生日期的高位
0216 54F0 329 ANL A, #0F0H
0218 C4 330 SWAP A
0219 93 331 MOVC A, @A+DPTR
021A F536 332 MOV 36H, A
021C E545 333 MOV A, DAY ;以下產生日期的低位
021E 540F 334 ANL A, #0FH
0220 93 335 MOVC A, @A+DPTR
0221 F537 336 MOV 37H, A
337 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^關于年份的設置
338
0223 339 CHANGE_YEAR:
0223 7F03 340 MOV R7, #00000011B ;位閃
0225 91D3 341 CALL FLASH
0227 342 CHANGE_YEAR2:
343
0227 9199 344 CALL KEYBO
0229 30020D 345 JNB OVER3S, YEAR_NEXT
022C E53C 346 MOV A, KEY_VOL
022E B48208 347 CJNE A, #82H, YEAR_NEXT
348
0231 71B7 349 CALL INC_YEAR
0233 91F3 350 CALL DLY100MS
351
0235 7183 352 CALL SAVE_12887 ;更新DS12887的數據
0237 80EE 353 SJMP CHANGE_YEAR2
354
0239 355 YEAR_NEXT:
0239 3003E7 356 JNB KEY_DIR,CHANGE_YEAR
023C C203 357 CLR KEY_DIR
023E E53C 358 MOV A, KEY_VOL
0240 B40102 359 CJNE A, #01H, YEAR_KEY2 ;按功能鍵的處理
0243 800F 360 SJMP CHANGE_MONTH
0245 B40206 361 YEAR_KEY2:CJNE A, #02H, YEAR_KEY3 ;按調整鍵的處理
0248 71B7 362 CALL INC_YEAR
024A 7183 363 CALL SAVE_12887
024C 80D5 364 SJMP CHANGE_YEAR
024E B404D2 365 YEAR_KEY3:CJNE A, #04H, CHANGE_YEAR ;按返回鍵的處理
0251 9181 366 CALL UPDATA_ON
0253 22 367 RET
368
369 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^關于月份的調置
0254 370 CHANGE_MONTH:
0254 7F18 371 MOV R7, #00011000B
0256 91D3 372 CALL FLASH
373
0258 374 CHANGE_MONTH2:
375
0258 9199 376 CALL KEYBO
025A 30020D 377 JNB OVER3S, MONTH_NEXT
025D E53C 378 MOV A, KEY_VOL
025F B48208 379 CJNE A, #82H, MONTH_NEXT
380
0262 71D2 381 CALL INC_MONTH
0264 91F3 382 CALL DLY100MS
383
0266 7183 384 CALL SAVE_12887 ;更新DS12887的數據
0268 80EE 385 SJMP CHANGE_MONTH2
386
A51 MACRO ASSEMBLER MAIN 11/22/2005 10:14:03 PAGE 7
026A 387 MONTH_NEXT:
026A 3003E7 388 JNB KEY_DIR,CHANGE_MONTH
026D C203 389 CLR KEY_DIR
026F E53C 390 MOV A, KEY_VOL
0271 B40102 391 CJNE A, #01H, MONTH_KEY2 ;按功能鍵的處理
0274 800F 392 SJMP CHANGE_DAY
0276 B40206 393 MONTH_KEY2:CJNE A, #02H, MONTH_KEY3 ;按調整鍵的處理
0279 71D2 394 CALL INC_MONTH
027B 7183 395 CALL SAVE_12887
027D 80D5 396 SJMP CHANGE_MONTH
027F B404D2 397 MONTH_KEY3:CJNE A, #04H, CHANGE_MONTH ;按返回鍵的處理
0282 9181 398 CALL UPDATA_ON
0284 22 399 RET
400
401 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^關于天的設置
0285 402 CHANGE_DAY:
0285 7FC0 403 MOV R7, #11000000B
0287 91D3 404 CALL FLASH
405
0289 406 CHANGE_DAY2:
407
0289 9199 408 CALL KEYBO
028B 30020D 409 JNB OVER3S, DAY_NEXT
028E E53C 410 MOV A, KEY_VOL
0290 B48208 411 CJNE A, #82H, DAY_NEXT
412
0293 71F5 413 CALL INC_DAY
0295 91F3 414 CALL DLY100MS
415
0297 7183 416 CALL SAVE_12887 ;更新DS12887的數據
0299 80EE 417 SJMP CHANGE_DAY2
418
029B 419 DAY_NEXT:
029B 3003E7 420 JNB KEY_DIR,CHANGE_DAY
029E C203 421 CLR KEY_DIR
02A0 E53C 422 MOV A, KEY_VOL
02A2 B40102 423 CJNE A, #01H, DAY_KEY2 ;按功能鍵的處理
02A5 800F 424 SJMP CHANGE_HOUR_L
02A7 B40206 425 DAY_KEY2:CJNE A, #02H, DAY_KEY3 ;按調整鍵的處理
02AA 71F5 426 CALL INC_DAY
02AC 7183 427 CALL SAVE_12887
02AE 80D5 428 SJMP CHANGE_DAY
02B0 B404D2 429 DAY_KEY3:CJNE A, #04H, CHANGE_DAY ;按返回鍵的處理
02B3 9181 430 CALL UPDATA_ON
02B5 22 431 RET
432
433 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^關于小時的設置
02B6 434 CHANGE_HOUR_L:
02B6 11C5 435 CALL TIME_DISP
02B8 436 CHANGE_HOUR:
02B8 7F03 437 MOV R7, #00000011B
02BA 91D3 438 CALL FLASH
439
02BC 440 CHANGE_HOUR2:
441
02BC 9199 442 CALL KEYBO
02BE 30020D 443 JNB OVER3S, HOUR_NEXT
02C1 E53C 444 MOV A, KEY_VOL
02C3 B48208 445 CJNE A, #82H, HOUR_NEXT
446
02C6 9118 447 CALL INC_HOUR
02C8 91F3 448 CALL DLY100MS
449
02CA 7183 450 CALL SAVE_12887 ;更新DS12887的數據
02CC 80EE 451 SJMP CHANGE_HOUR2
452
A51 MACRO ASSEMBLER MAIN 11/22/2005 10:14:03 PAGE 8
02CE 453 HOUR_NEXT:
02CE 3003E7 454 JNB KEY_DIR,CHANGE_HOUR
02D1 C203 455 CLR KEY_DIR
02D3 E53C 456 MOV A, KEY_VOL
02D5 B40102 457 CJNE A, #01H, HOUR_KEY2 ;按功能鍵的處理
02D8 800F 458 SJMP CHANGE_MUNITE
02DA B40206 459 HOUR_KEY2:CJNE A, #02H, HOUR_KEY3 ;按調整鍵的處理
02DD 9118 460 CALL INC_HOUR
02DF 7183 461 CALL SAVE_12887
02E1 80D5 462 SJMP CHANGE_HOUR
02E3 B404D2 463 HOUR_KEY3:CJNE A, #04H, CHANGE_HOUR ;按返回鍵的處理
02E6 9181 464 CALL UPDATA_ON
02E8 22 465 RET
466
467 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^關于分鐘的設置
02E9 468 CHANGE_MUNITE:
02E9 7F18 469 MOV R7, #00011000B
02EB 91D3 470 CALL FLASH
471
02ED 472 CHANGE_MUNITE2:
473
02ED 9199 474 CALL KEYBO
02EF 30020D 475 JNB OVER3S, MUNITE_NEXT
02F2 E53C 476 MOV A, KEY_VOL
02F4 B48208 477 CJNE A, #82H, MUNITE_NEXT
478
02F7 913B 479 CALL INC_MUNITE
02F9 91F3 480 CALL DLY100MS
481
02FB 7183 482 CALL SAVE_12887 ;更新DS12887的數據
02FD 80EE 483 SJMP CHANGE_MUNITE2
484
02FF 485 MUNITE_NEXT:
02FF 3003E7 486 JNB KEY_DIR,CHANGE_MUNITE
0302 C203 487 CLR KEY_DIR
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -