📄 v3k_framlcd_demo_sdcc.rst
字号:
845 ; genAssign
00B8 C2 82 846 clr _LCD_E
00BA 847 C$V2K_CHAR_LCD_P0_SDCC.h$239$1$1 ==.
848 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:239: LCDSlow(); //Slow down comm with LCD
849 ; genCall
00BA 12 00 08 850 lcall _LCDSlow
00BD 851 C$V2K_CHAR_LCD_P0_SDCC.h$240$1$1 ==.
852 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:240: LCDPORT = 0x60; // DISPLAY OFF
853 ; genAssign
00BD 75 80 60 854 mov _P0,#0x60
00C0 855 C$V2K_CHAR_LCD_P0_SDCC.h$245$1$1 ==.
856 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:245: LCDSlow(); //Slow down comm with LCD
857 ; genCall
00C0 12 00 08 858 lcall _LCDSlow
00C3 859 C$V2K_CHAR_LCD_P0_SDCC.h$246$1$1 ==.
860 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:246: LCD_E = 1; //Send E Pulse
861 ; genAssign
00C3 D2 82 862 setb _LCD_E
00C5 863 C$V2K_CHAR_LCD_P0_SDCC.h$247$1$1 ==.
864 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:247: LCDSlow(); //Slow down comm with LCD
865 ; genCall
00C5 12 00 08 866 lcall _LCDSlow
00C8 867 C$V2K_CHAR_LCD_P0_SDCC.h$248$1$1 ==.
868 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:248: LCD_E = 0;
869 ; genAssign
00C8 C2 82 870 clr _LCD_E
00CA 871 C$V2K_CHAR_LCD_P0_SDCC.h$249$1$1 ==.
872 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:249: lcdbusy();
873 ; genCall
00CA 12 03 A7 874 lcall _lcdbusy
00CD 875 C$V2K_CHAR_LCD_P0_SDCC.h$253$1$1 ==.
876 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:253: LCDPORT = 0x00; // ;D7 D6 D5 D4 E R/W RS NC
877 ; genAssign
00CD 75 80 00 878 mov _P0,#0x00
00D0 879 C$V2K_CHAR_LCD_P0_SDCC.h$257$1$1 ==.
880 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:257: LCDSlow(); //Slow down comm with LCD
881 ; genCall
00D0 12 00 08 882 lcall _LCDSlow
00D3 883 C$V2K_CHAR_LCD_P0_SDCC.h$258$1$1 ==.
884 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:258: LCD_E = 1; //Send E Pulse
885 ; genAssign
00D3 D2 82 886 setb _LCD_E
00D5 887 C$V2K_CHAR_LCD_P0_SDCC.h$259$1$1 ==.
888 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:259: LCDSlow(); //Slow down comm with LCD
889 ; genCall
00D5 12 00 08 890 lcall _LCDSlow
00D8 891 C$V2K_CHAR_LCD_P0_SDCC.h$260$1$1 ==.
892 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:260: LCD_E = 0;
893 ; genAssign
00D8 C2 82 894 clr _LCD_E
00DA 895 C$V2K_CHAR_LCD_P0_SDCC.h$262$1$1 ==.
896 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:262: LCDPORT = 0xC0; //DISPLAY ON, CURSOR OFF, BLINK OFF
897 ; genAssign
00DA 75 80 C0 898 mov _P0,#0xC0
00DD 899 C$V2K_CHAR_LCD_P0_SDCC.h$266$1$1 ==.
900 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:266: LCDSlow(); //Slow down comm with LCD
901 ; genCall
00DD 12 00 08 902 lcall _LCDSlow
00E0 903 C$V2K_CHAR_LCD_P0_SDCC.h$267$1$1 ==.
904 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:267: LCD_E = 1; //Send E Pulse
905 ; genAssign
00E0 D2 82 906 setb _LCD_E
00E2 907 C$V2K_CHAR_LCD_P0_SDCC.h$268$1$1 ==.
908 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:268: LCDSlow(); //Slow down comm with LCD
909 ; genCall
00E2 12 00 08 910 lcall _LCDSlow
00E5 911 C$V2K_CHAR_LCD_P0_SDCC.h$269$1$1 ==.
912 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:269: LCD_E = 0;
913 ; genAssign
00E5 C2 82 914 clr _LCD_E
00E7 915 C$V2K_CHAR_LCD_P0_SDCC.h$270$1$1 ==.
916 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:270: lcdbusy();
917 ; genCall
00E7 12 03 A7 918 lcall _lcdbusy
00EA 919 C$V2K_CHAR_LCD_P0_SDCC.h$271$1$1 ==.
920 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:271: sendlcdcmd(LCD_L1C1); //Place LCD cursor on Line 1, Column 1
921 ; genAssign
00EA 90 05 01 922 mov dptr,#_LCD_L1C1
00ED E4 923 clr a
00EE 93 924 movc a,@a+dptr
925 ; genCall
926 ; Peephole 244.c loading dpl from a instead of r2
00EF FA 927 mov r2,a
00F0 F5 82 928 mov dpl,a
00F2 929 C$V2K_CHAR_LCD_P0_SDCC.h$272$1$1 ==.
00F2 930 XG$initlcd$0$0 ==.
931 ; Peephole 253.b replaced lcall/ret with ljmp
00F2 02 03 62 932 ljmp _sendlcdcmd
933 ;------------------------------------------------------------
934 ;Allocation info for local variables in function 'int2lcd'
935 ;------------------------------------------------------------
936 ;number Allocated with name '_int2lcd_number_1_1'
937 ;x Allocated to registers r6 r7
938 ;zerodisplay Allocated to registers r4 r5
939 ;------------------------------------------------------------
00F5 940 G$int2lcd$0$0 ==.
00F5 941 C$V2K_CHAR_LCD_P0_SDCC.h$293$1$1 ==.
942 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:293: void int2lcd(unsigned int number){
943 ; -----------------------------------------
944 ; function int2lcd
945 ; -----------------------------------------
00F5 946 _int2lcd:
947 ; genReceive
00F5 85 82 08 948 mov _int2lcd_number_1_1,dpl
00F8 85 83 09 949 mov (_int2lcd_number_1_1 + 1),dph
00FB 950 C$V2K_CHAR_LCD_P0_SDCC.h$297$1$1 ==.
951 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:297: idata unsigned int zerodisplay = 0; //intialise startdisplay to 0 -> do not display if number is zero
952 ; genAssign
00FB 7C 00 953 mov r4,#0x00
00FD 7D 00 954 mov r5,#0x00
00FF 955 C$V2K_CHAR_LCD_P0_SDCC.h$299$1$1 ==.
956 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:299: x = (number/10000); // Define number of then's of thousands
957 ; genAssign
00FF 75 0D 10 958 mov __divuint_PARM_2,#0x10
0102 75 0E 27 959 mov (__divuint_PARM_2 + 1),#0x27
960 ; genCall
0105 85 08 82 961 mov dpl,_int2lcd_number_1_1
0108 85 09 83 962 mov dph,(_int2lcd_number_1_1 + 1)
010B C0 04 963 push ar4
010D C0 05 964 push ar5
010F 12 05 16 965 lcall __divuint
0112 AE 82 966 mov r6,dpl
0114 AF 83 967 mov r7,dph
0116 D0 05 968 pop ar5
0118 D0 04 969 pop ar4
011A 970 C$V2K_CHAR_LCD_P0_SDCC.h$300$1$1 ==.
971 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:300: if(x>0) // If number > 0 display it
972 ; genIfx
011A EE 973 mov a,r6
011B 4F 974 orl a,r7
975 ; genIfxJump
976 ; Peephole 110 removed ljmp by inverse jump logic
011C 60 44 977 jz 00102$
011E 978 00131$:
011E 979 C$V2K_CHAR_LCD_P0_SDCC.h$302$2$2 ==.
980 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:302: zerodisplay = 1; // number > 0 -> when zero is next encountered, display it
981 ; genAssign
011E 7C 01 982 mov r4,#0x01
0120 7D 00 983 mov r5,#0x00
0122 984 C$V2K_CHAR_LCD_P0_SDCC.h$303$1$1 ==.
985 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:303: number = number - (x*10000);
986 ; genAssign
0122 75 0D 10 987 mov __mulint_PARM_2,#0x10
0125 75 0E 27 988 mov (__mulint_PARM_2 + 1),#0x27
989 ; genCall
0128 8E 82 990 mov dpl,r6
012A 8F 83 991 mov dph,r7
012C C0 04 992 push ar4
012E C0 05 993 push ar5
0130 C0 06 994 push ar6
0132 C0 07 995 push ar7
0134 12 05 3F 996 lcall __mulint
0137 AA 82 997 mov r2,dpl
0139 AB 83 998 mov r3,dph
013B D0 07 999 pop ar7
013D D0 06 1000 pop ar6
013F D0 05 1001 pop ar5
0141 D0 04 1002 pop ar4
1003 ; genMinus
0143 E5 08 1004 mov a,_int2lcd_number_1_1
0145 C3 1005 clr c
1006 ; Peephole 236.l used r2 instead of ar2
0146 9A 1007 subb a,r2
0147 F5 08 1008 mov _int2lcd_number_1_1,a
0149 E5 09 1009 mov a,(_int2lcd_number_1_1 + 1)
1010 ; Peephole 236.l used r3 instead of ar3
014B 9B 1011 subb a,r3
014C F5 09 1012 mov (_int2lcd_number_1_1 + 1),a
014E 1013 C$V2K_CHAR_LCD_P0_SDCC.h$305$2$2 ==.
1014 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:305: sendlcdchar((x+'0'));
1015 ; genCast
014E 8E 02 1016 mov ar2,r6
1017 ; genPlus
0150 74 30 1018 mov a,#0x30
1019 ; Peephole 236.a used r2 instead of ar2
0152 2A 1020 add a,r2
0153 F5 82 1021 mov dpl,a
1022 ; genCall
0155 C0 04 1023 push ar4
0157 C0 05 1024 push ar5
0159 12 03 1C 1025 lcall _sendlcdchar
015C D0 05 1026 pop ar5
015E D0 04 1027 pop ar4
1028 ; Peephole 112.b changed ljmp to sjmp
0160 80 0E 1029 sjmp 00103$
0162 1030 00102$:
0162 1031 C$V2K_CHAR_LCD_P0_SDCC.h$308$1$1 ==.
1032 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:308: sendlcdchar(' '); //display a blank space instead
1033 ; genCall
0162 75 82 20 1034 mov dpl,#0x20
0165 C0 04 1035 push ar4
0167 C0 05 1036 push ar5
0169 12 03 1C 1037 lcall _sendlcdchar
016C D0 05 1038 pop ar5
016E D0 04 1039 pop ar4
0170 1040 00103$:
0170 1041 C$V2K_CHAR_LCD_P0_SDCC.h$310$1$1 ==.
1042 ;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:310: x = (number/1000); //Define the number of thousands
1043 ; genAssign
0170 75 0D E8 1044 mov __divuint_PARM_2,#0xE8
0173 75 0E 03 1045 mov (__divuint_PARM_2 + 1),#0x03
1046 ; genCall
0176 85 08 82 1047 mov dpl,_int2lcd_number_1_1
0179 85 09 83 1048 mov dph,(_int2lcd_number_1_1 + 1)
017C C0 04 1049 push ar4
017E C0 05 1050 push ar5
0180 12 05 16 1051 lcall __divuint
0183 AE 82
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -