⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v3k_framlcd_demo_sdcc.rst

📁 DEMO程序 单周期8051内核 8K铁电FRAM 56IO 4KRAM 40MIPS
💻 RST
📖 第 1 页 / 共 5 页
字号:
                            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 + -