📄 pcf8591-da-lcd1602-asm.lst
字号:
454 ;---------------------------------------------------------
02DF 455 SIN_TAB:
02DF 80838689 456 DB 80H,83H,86H,89H,8DH,90H,93H,96H,99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH
02E3 8D909396
02E7 999C9FA2
02EB A5A8ABAE
02EF B1B4B7BA 457 DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H,0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H
02F3 BCBFC2C5
02F7 C7CACCCF
02FB D1D4D6D8
02FF DADDDFE1 458 DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H,0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
0303 E3E5E7E9
0307 EAECEEEF
030B F1F2F4F5
030F F6F7F8F9 459 DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH,0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
0313 FAFBFCFD
0317 FDFEFFFF
031B FFFFFFFF
031F FFFFFFFF 460 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH,0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H
0323 FFFFFEFD
0327 FDFCFBFA
032B F9F8F7F6
032F F5F4F2F1 461 DB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH,0E9H,0E7H,0E5H,0E3H,0E1H,0DFH,0DDH,0DAH
0333 EFEEECEA
0337 E9E7E5E3
033B E1DFDDDA
033F D8D6D4D1 462 DB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H,0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H
A51 MACRO ASSEMBLER PCF8591_DA_LCD1602_ASM 12/20/2006 22:57:40 PAGE 9
0343 CFCCCAC7
0347 C5C2BFBC
034B BAB7B4B1
034F AEABA8A5 463 DB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H,96H,93H,90H,8DH,89H,86H,83H,80H
0353 A29F9C99
0357 9693908D
035B 89868380
035F 807C7976 464 DB 80H,7CH,79H,76H,72H,6FH,6CH,69H,66H,63H,60H,5DH,5AH,57H,55H,51H
0363 726F6C69
0367 6663605D
036B 5A575551
036F 4E4C4845 465 DB 4EH,4CH,48H,45H,43H,40H,3DH,3AH,38H,35H,33H,30H,2EH,2BH,29H,27H
0373 43403D3A
0377 38353330
037B 2E2B2927
037F 2522201E 466 DB 25H,22H,20H,1EH,1CH,1AH,18H,16H,15H,13H,11H,10H,0EH,0DH,0BH,0AH
0383 1C1A1816
0387 15131110
038B 0E0D0B0A
038F 09080706 467 DB 09H,08H,07H,06H,05H,04H,03H,02H,02H,01H,00H,00H,00H,00H,00H,00H
0393 05040302
0397 02010000
039B 00000000
039F 00000000 468 DB 00H,00H,00H,00H,00H,00H,01H,02H,02H,03H,04H,05H,06H,07H,08H,09H
03A3 00000102
03A7 02030405
03AB 06070809
03AF 0A0B0D0E 469 DB 0AH,0BH,0DH,0EH,10H,11H,13H,15H,16H,18H,1AH,1CH,1EH,20H,22H,25H
03B3 10111315
03B7 16181A1C
03BB 1E202225
03BF 27292B2E 470 DB 27H,29H,2BH,2EH,30H,33H,35H,38H,3AH,3DH,40H,43H,45H,48H,4CH,4EH
03C3 30333538
03C7 3A3D4043
03CB 45484C4E
03CF 5155575A 471 DB 51H,55H,57H,5AH,5DH,60H,63H,66H,69H,6CH,6FH,72H,76H,79H,7CH,7EH
03D3 5D606366
03D7 696C6F72
03DB 76797C7E
472
473 ;==========================================================
474
475 ;DAC输出方波子程序:用示波器观察输出的信号。
476
477 ;==========================================================
03DF 478 Square:
03DF 7400 479 MOV A,#00H
03E1 F5F0 480 MOV B,A
03E3 12029B 481 LCALL PCF_DA ;启动DA转换
03E6 482 SQU1:
03E6 30970E 483 JNB K4,SQU2 ;退出
03E9 F7 484 MOV @R1,A
03EA 1202B6 485 LCALL PCF_DA1 ;DA转换
03ED 120292 486 LCALL DELAY
03F0 E5F0 487 MOV A,B
03F2 F4 488 CPL A
03F3 F5F0 489 MOV B,A
03F5 61E6 490 AJMP SQU1
03F7 491 SQU2:
03F7 12052E 492 LCALL STOP
03FA D201 493 SETB 20H.1
03FC 120276 494 LCALL BEEP_BL
03FF 22 495 RET
496 ;===================================================
497 ;DAC输出三角波子程序
498 ;单片机从数字量0开始,逐次加1直到255,然后从输出
A51 MACRO ASSEMBLER PCF8591_DA_LCD1602_ASM 12/20/2006 22:57:40 PAGE 10
499 ;255逐次减1直至为0,即可输出连续三角波。
500 ;===================================================
0400 501 Triangle:
0400 7400 502 MOV A,#00H
0402 F5F0 503 MOV B,A
0404 12029B 504 LCALL PCF_DA ;启动DA转换
505
0407 506 SJ_UP:
0407 F7 507 MOV @R1,A
0408 1202B6 508 LCALL PCF_DA1 ;启动DA转换
040B 309717 509 JNB K4,SJ_END
040E 05F0 510 INC B ;上升沿
0410 E5F0 511 MOV A,B
0412 B4FFF2 512 CJNE A,#0FFH,SJ_UP
0415 513 SJ_DOWN:
0415 F7 514 MOV @R1,A
0416 1202B6 515 LCALL PCF_DA1 ;启动DA转换
0419 309709 516 JNB K4,SJ_END
041C 15F0 517 DEC B ;下降沿
041E E5F0 518 MOV A,B
0420 B400F2 519 CJNE A,#00H,SJ_DOWN
0423 8107 520 AJMP SJ_UP ;连续输出波型
0425 521 SJ_END:
0425 12052E 522 LCALL STOP
0428 D201 523 SETB 20H.1
042A 120276 524 LCALL BEEP_BL
042D 22 525 RET
526
527 ;=========================================================
528 ;DAC输出梯形波
529 ;单片机从数字量0开始,逐次加1直到255,保持255次,
530 ;然后从输出255逐次减1直至为0,如此重复,即可输出连续梯形波。
531 ;=========================================================
042E 532 Echelon:
042E 7400 533 MOV A,#00H
0430 F5F0 534 MOV B,A
0432 12029B 535 LCALL PCF_DA ;启动DA转换
0435 536 TX_UP:
0435 F7 537 MOV @R1,A
0436 1202B6 538 LCALL PCF_DA1 ;DA转换
0439 05F0 539 INC B ;上升沿
043B E5F0 540 MOV A,B
043D B4FFF5 541 CJNE A,#0FFH,TX_UP
0440 7CFF 542 MOV R4,#0FFH
0442 543 TX_BEEP:
0442 309717 544 JNB K4,TX_END
0445 E5F0 545 MOV A,B
0447 F7 546 MOV @R1,A ;保持高电平
0448 1202B6 547 LCALL PCF_DA1 ;DA转换
044B DCF5 548 DJNZ R4,TX_BEEP
044D E5F0 549 MOV A,B
044F 550 TX_DOWN:
044F F7 551 MOV @R1,A
0450 1202B6 552 LCALL PCF_DA1 ;DA转换
0453 15F0 553 DEC B ;下降沿
0455 E5F0 554 MOV A,B
0457 B400F5 555 CJNE A,#00H,TX_DOWN
045A 8135 556 AJMP TX_UP
045C 557 TX_END:
045C 12052E 558 LCALL STOP
045F D201 559 SETB 20H.1
0461 120276 560 LCALL BEEP_BL
0464 22 561 RET
562 ;====================================================
563 ;DAC输出锯齿波子程序:用示波器观察输出的信号。
564 ;====================================================
A51 MACRO ASSEMBLER PCF8591_DA_LCD1602_ASM 12/20/2006 22:57:40 PAGE 11
0465 565 Sawtooth:
0465 7400 566 MOV A,#0
0467 F5F0 567 MOV B,A
0469 12029B 568 LCALL PCF_DA ;启动DA转换
046C 569 JUCHI1:
046C 30970A 570 JNB K4,JUCHI_END
046F F7 571 MOV @R1,A
0470 1202B6 572 LCALL PCF_DA1 ;DA转换
0473 E5F0 573 MOV A,B
0475 05F0 574 INC B
0477 816C 575 AJMP JUCHI1
0479 576 JUCHI_END:
0479 12052E 577 LCALL STOP
047C D201 578 SETB 20H.1
047E 120276 579 LCALL BEEP_BL
0481 22 580 RET
581 ;**************************************************
582 ;* IIC 总线驱动程序 *
583 ;**************************************************
584
585 ;==================================================
586 ;总线启动子程序
587 ;==================================================
0482 588 STR:
0482 00 589 NOP
0483 D293 590 SETB SDA
0485 00 591 NOP
0486 D290 592 SETB SCL ;起始条件建立时间大于4.7us
0488 00 593 NOP
0489 00 594 NOP
048A 00 595 NOP
048B 00 596 NOP
048C 00 597 NOP
048D C293 598 CLR SDA
048F 00 599 NOP ;起始条件锁定时间大于4.7us
0490 00 600 NOP
0491 00 601 NOP
0492 00 602 NOP
0493 00 603 NOP
0494 C290 604 CLR SCL ;钳住总线,准备发数据
0496 00 605 NOP
0497 22 606 RET
607 ;==================================================
608 ;发送一个字节子程序
609 ;字节数据放入ACC
610 ;==================================================
0498 611 WR0:
0498 00 612 NOP
0499 7B08 613 MOV R3,#08H
049B C290 614 CLR SCL
049D C3 615 CLR C
049E 616 LL0:
049E 33 617 RLC A
049F 4006 618 JC LL1
04A1 0204B7 619 LJMP LL2
04A4 620 LL4:
04A4 DBF8 621 DJNZ R3,LL0
04A6 22 622 RET
04A7 623 LL1:
04A7 00 624 NOP
04A8 D293 625 SETB SDA
04AA 00 626 NOP
04AB D290 627 SETB SCL
04AD 00 628 NOP
04AE 00 629 NOP
04AF 00 630 NOP
A51 MACRO ASSEMBLER PCF8591_DA_LCD1602_ASM 12/20/2006 22:57:40 PAGE 12
04B0 00 631 NOP
04B1 00 632 NOP
04B2 C290 633 CLR SCL
634
635 ;CLR SDA
04B4 0204A4 636 LJMP LL4
04B7 637 LL2:
04B7 00 638 NOP
04B8 C293 639 CLR SDA
04BA 00 640 NOP
04BB 00 641 NOP
04BC D290 642 SETB SCL
04BE 00 643 NOP
04BF 00 644 NOP
04C0 00 645 NOP
04C1 00 646 NOP
04C2 00 647 NOP
04C3 C290 648 CLR SCL
04C5 0204A4 649 LJMP LL4
650 ;=======================================================
651 ;发送应答信号子程序
652 ;=======================================================
04C8 653 YIDA:
04C8 C293 654 CLR SDA
04CA 00 655 NOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -