📄 main.lst
字号:
+1 668
+1 669 ;********************************************************************
+1 670 ; Send Data To ATT7022 For Calibrate
+1 671 ;--------------------------------------------------------------------
0213 +1 672 SEntrySendCalibrateData:
+1 673 ; Send register 0x01 to 0x21
0213 7880 +1 674 mov R0,#80h;
0215 7A80 +1 675 mov R2,#80h;
0217 +1 676 LEntrySendCalibrateDataLoop1:
0217 8A33 +1 677 mov vSPI_CM,R2;
0219 0A +1 678 inc R2;
021A 8634 +1 679 mov vSPI_DH,@R0;
021C 08 +1 680 inc R0;
021D 8635 +1 681 mov vSPI_DM,@R0;
021F 08 +1 682 inc R0;
0220 8636 +1 683 mov vSPI_DL,@R0;
0222 08 +1 684 inc R0;
0223 51A7 +1 685 call SEntryWriteSpi;
0225 BAA2EF +1 686 cjne R2,#0A2h,LEntrySendCalibrateDataLoop1;
+1 687 ; Send register 0x25
+1 688 ; mov vSPI_CM,#0A5h;
+1 689 ; mov vSPI_DH,@R0;
0228 08 +1 690 inc R0;
+1 691 ; mov vSPI_DM,@R0;
0229 08 +1 692 inc R0;
+1 693 ; mov vSPI_DL,@R0;
022A 08 +1 694 inc R0;
+1 695 ; call SEntryWriteSpi;
+1 696 ; Send register 0x01 to 0x21
022B 7AA6 +1 697 mov R2,#0A6h;
022D +1 698 LEntrySendCalibrateDataLoop2:
022D 8A33 +1 699 mov vSPI_CM,R2;
022F 0A +1 700 inc R2;
0230 8634 +1 701 mov vSPI_DH,@R0;
0232 08 +1 702 inc R0;
0233 8635 +1 703 mov vSPI_DM,@R0;
0235 08 +1 704 inc R0;
0236 8636 +1 705 mov vSPI_DL,@R0;
0238 08 +1 706 inc R0;
0239 51A7 +1 707 call SEntryWriteSpi;
023B BAA9EF +1 708 cjne R2,#0A9h,LEntrySendCalibrateDataLoop2;
023E +1 709 LEntrySendCalibrateDataEnd:
023E +1 710 LEntrySendCalibrateDataRts:
023E 22 +1 711 ret;
+1 712
713
714 ;$include (SpiOp.inc)
+1 715 ;********************************************************************
+1 716 ; Read Data From ATT7022
+1 717 ; input: vSPI_CM is Address
+1 718 ; output:
A51 MACRO ASSEMBLER MAIN 06/16/2003 09:39:59 PAGE 12
+1 719 ; vSPI_DH,vSPI_DM,vSPI_DL is Data
+1 720 ;--------------------------------------------------------------------
023F +1 721 SEntryReadSpi:
+1 722 ; Enable SPI
023F C290 +1 723 clr SPI_CK;
0241 C291 +1 724 clr SPI_CS;
+1 725 ; Send 8bits Command
0243 7F08 +1 726 mov R7,#08h;
0245 E533 +1 727 mov a,vSPI_CM;
0247 +1 728 LEntryReadSpiSendCommandLoop:
0247 33 +1 729 rlc a;
0248 4008 +1 730 jc LEntryReadSpiSendCommandBitHi;
024A +1 731 LEntryReadSpiSendCommandBitLo:
+1 732 MacroSpiDoutLo;
+1 736 ; nop;
0250 8006 +1 737 jmp LEntryReadSpiSendCommandBitEnd;
0252 +1 738 LEntryReadSpiSendCommandBitHi:
+1 739 MacroSpiDoutHi;
+1 743 ; nop;
0258 +1 744 LEntryReadSpiSendCommandBitEnd:
0258 DFED +1 745 djnz R7,LEntryReadSpiSendCommandLoop;
025A C292 +1 746 clr SPI_DO;
+1 747 ; waiting...
+1 748 ; Read 24bits Data
025C 7F08 +1 749 mov R7,#08h;
025E 7400 +1 750 mov a,#00h;
0260 +1 751 LEntryReadSpiReadDataHighLoop:
0260 23 +1 752 rl a;
0261 D290 +1 753 setb SPI_CK;
+1 754 ; nop;
0263 D293 +1 755 setb SPI_DI;
0265 309304 +1 756 jnb SPI_DI,LEntryReadSpiReadDataHighLoopBitLo;
0268 +1 757 LEntryReadSpiReadDataHighLoopBitHi:
0268 D2E0 +1 758 setb ACC.0;
026A 8002 +1 759 jmp LEntryReadSpiReadDataHighLoopBitEnd;
026C +1 760 LEntryReadSpiReadDataHighLoopBitLo:
026C C2E0 +1 761 clr ACC.0;
026E +1 762 LEntryReadSpiReadDataHighLoopBitEnd:
026E C290 +1 763 clr SPI_CK;
0270 DFEE +1 764 djnz R7,LEntryReadSpiReadDataHighLoop;
0272 F534 +1 765 mov vSPI_DH,a
+1 766
0274 7F08 +1 767 mov R7,#08h;
0276 7400 +1 768 mov a,#00h;
0278 +1 769 LEntryReadSpiReadDataMidLoop:
0278 23 +1 770 rl a;
0279 D290 +1 771 setb SPI_CK;
+1 772 ; nop;
027B D293 +1 773 setb SPI_DI;
027D 309304 +1 774 jnb SPI_DI,LEntryReadSpiReadDataMidLoopBitLo;
0280 +1 775 LEntryReadSpiReadDataMidLoopBitHi:
0280 D2E0 +1 776 setb ACC.0;
0282 8002 +1 777 jmp LEntryReadSpiReadDataMidLoopBitEnd;
0284 +1 778 LEntryReadSpiReadDataMidLoopBitLo:
0284 C2E0 +1 779 clr ACC.0;
0286 +1 780 LEntryReadSpiReadDataMidLoopBitEnd:
0286 C290 +1 781 clr SPI_CK;
0288 DFEE +1 782 djnz R7,LEntryReadSpiReadDataMidLoop;
028A F535 +1 783 mov vSPI_DM,a
+1 784
028C 7F08 +1 785 mov R7,#08h;
028E 7400 +1 786 mov a,#00h;
0290 +1 787 LEntryReadSpiReadDataLowLoop:
0290 23 +1 788 rl a;
0291 D290 +1 789 setb SPI_CK;
+1 790 ; nop;
A51 MACRO ASSEMBLER MAIN 06/16/2003 09:39:59 PAGE 13
0293 D293 +1 791 setb SPI_DI;
0295 309304 +1 792 jnb SPI_DI,LEntryReadSpiReadDataLowLoopBitLo;
0298 +1 793 LEntryReadSpiReadDataLowLoopBitHi:
0298 D2E0 +1 794 setb ACC.0;
029A 8002 +1 795 jmp LEntryReadSpiReadDataLowLoopBitEnd;
029C +1 796 LEntryReadSpiReadDataLowLoopBitLo:
029C C2E0 +1 797 clr ACC.0;
029E +1 798 LEntryReadSpiReadDataLowLoopBitEnd:
029E C290 +1 799 clr SPI_CK;
02A0 DFEE +1 800 djnz R7,LEntryReadSpiReadDataLowLoop;
02A2 F536 +1 801 mov vSPI_DL,a
+1 802
+1 803 ; Disable SPI
02A4 D291 +1 804 setb SPI_CS;
02A6 +1 805 LEntryReadSpiEnd:
02A6 +1 806 LEntryReadSpiRts:
02A6 22 +1 807 ret;
+1 808
+1 809 ;********************************************************************
+1 810 ; Write Data to ATT7022
+1 811 ; input: vSPI_CM is Address
+1 812 ; vSPI_DH,vSPI_DM,vSPI_DL is Data
+1 813 ;--------------------------------------------------------------------
02A7 +1 814 SEntryWriteSpi:
+1 815 ; Enable SPI
02A7 C290 +1 816 clr SPI_CK;
02A9 C291 +1 817 clr SPI_CS;
+1 818 ; Send 8bits Command
02AB 7908 +1 819 mov R1,#08h;
02AD E533 +1 820 mov a,vSPI_CM;
02AF +1 821 LEntryWriteSpiSendCommandLoop:
02AF 33 +1 822 rlc a;
02B0 4009 +1 823 jc LEntryWriteSpiSendCommandBitHi;
02B2 +1 824 LEntryWriteSpiSendCommandBitLo:
+1 825 MacroSpiDoutLo;
02B8 00 +1 829 nop;
02B9 8007 +1 830 jmp LEntryWriteSpiSendCommandBitEnd;
02BB +1 831 LEntryWriteSpiSendCommandBitHi:
+1 832 MacroSpiDoutHi;
02C1 00 +1 836 nop;
02C2 +1 837 LEntryWriteSpiSendCommandBitEnd:
02C2 D9EB +1 838 djnz R1,LEntryWriteSpiSendCommandLoop;
+1 839 ; Send 24Bits Data
02C4 7908 +1 840 mov R1,#08h;
02C6 E534 +1 841 mov a,vSPI_DH;
02C8 +1 842 LEntryWriteSpiSendDataHighLoop:
02C8 33 +1 843 rlc a;
02C9 4009 +1 844 jc LEntryWriteSpiSendDataHighBitHi;
02CB +1 845 LEntryWriteSpiSendDataHighBitLo:
+1 846 MacroSpiDoutLo;
02D1 00 +1 850 nop;
02D2 8007 +1 851 jmp LEntryWriteSpiSendDataHighBitEnd;
02D4 +1 852 LEntryWriteSpiSendDataHighBitHi:
+1 853 MacroSpiDoutHi;
02DA 00 +1 857 nop;
02DB +1 858 LEntryWriteSpiSendDataHighBitEnd:
02DB D9EB +1 859 djnz R1,LEntryWriteSpiSendDataHighLoop;
+1 860
02DD 7908 +1 861 mov R1,#08h;
02DF E535 +1 862 mov a,vSPI_DM;
02E1 +1 863 LEntryWriteSpiSendDataMidLoop:
02E1 33 +1 864 rlc a;
02E2 4009 +1 865 jc LEntryWriteSpiSendDataMidBitHi;
02E4 +1 866 LEntryWriteSpiSendDataMidBitLo:
+1 867 MacroSpiDoutLo;
02EA 00 +1 871 nop;
A51 MACRO ASSEMBLER MAIN 06/16/2003 09:39:59 PAGE 14
02EB 8007 +1 872 jmp LEntryWriteSpiSendDataMidBitEnd;
02ED +1 873 LEntryWriteSpiSendDataMidBitHi:
+1 874 MacroSpiDoutHi;
02F3 00 +1 878 nop;
02F4 +1 879 LEntryWriteSpiSendDataMidBitEnd:
02F4 D9EB +1 880 djnz R1,LEntryWriteSpiSendDataMidLoop;
+1 881
02F6 7908 +1 882 mov R1,#08h;
02F8 E536 +1 883 mov a,vSPI_DL;
02FA +1 884 LEntryWriteSpiSendDataLowLoop:
02FA 33 +1 885 rlc a;
02FB 4009 +1 886 jc LEntryWriteSpiSendDataLowBitHi;
02FD +1 887 LEntryWriteSpiSendDataLowBitLo:
+1 888 MacroSpiDoutLo;
0303 00 +1 892 nop;
0304 8007 +1 893 jmp LEntryWriteSpiSendDataLowBitEnd;
0306 +1 894 LEntryWriteSpiSendDataLowBitHi:
+1 895 MacroSpiDoutHi;
030C 00 +1 899 nop;
030D +1 900 LEntryWriteSpiSendDataLowBitEnd:
030D D9EB +1 901 djnz R1,LEntryWriteSpiSendDataLowLoop;
+1 902
+1 903 ; Disable SPI
030F C292 +1 904 clr SPI_DO;
0311 D291 +1 905 setb SPI_CS;
0313 +1 906 LEntryWriteSpiEnd:
0313 +1 907 LEntryWriteSpiRts:
0313 22 +1 908 ret;
+1 909
+1 910 ;********************************************************************
+1 911 ; Read Data From ATT7022 For LCD Display
+1 912 ; output:
+1 913 ; vSPI_DH,vSPI_DM,vSPI_DL is Data
+1 914 ;--------------------------------------------------------------------
0314 +1 915 SEntryReadSpiForDisplay:
0314 900330 +1 916 mov DPTR,#PTabDataAddress
0317 E537 +1 917 mov a,vKeyProc;
0319 6014 +1 918 jz SEntryReadSpiForDisplayEnd;
031B 23 +1 919 rl a;
031C C0E0 +1 920 push acc;
031E 93 +1 921 movc a,@a+DPTR;
031F F533 +1 922 mov vSPI_CM,a;
0321 D0E0 +1 923 pop acc;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -