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

📄 lcdtest.lst

📁 已经上传的YF-320240-3.5寸彩屏(可由单片机控制)的测试程序。主CPU为MEGA128
💻 LST
📖 第 1 页 / 共 5 页
字号:
__start:
__text_start:
    1B91 E800      LDI	R16,0x80
    1B92 E010      LDI	R17,0
    1B93 FF10      SBRS	R17,0
    1B94 6400      ORI	R16,0x40
    1B95 BF05      OUT	0x35,R16
    1B96 EFCF      LDI	R28,0xFF
    1B97 E1D0      LDI	R29,0x10
    1B98 BFCD      OUT	0x3D,R28
    1B99 BFDE      OUT	0x3E,R29
    1B9A 53C2      SUBI	R28,0x32
    1B9B 40D0      SBCI	R29,0
    1B9C EA0A      LDI	R16,0xAA
    1B9D 8308      STD	Y+0,R16
    1B9E 2400      CLR	R0
    1B9F EFE9      LDI	R30,0xF9
    1BA0 E1F1      LDI	R31,0x11
    1BA1 E112      LDI	R17,0x12
    1BA2 32E1      CPI	R30,0x21
    1BA3 07F1      CPC	R31,R17
    1BA4 F011      BEQ	0x1BA7
    1BA5 9201      ST	R0,Z+
    1BA6 CFFB      RJMP	0x1BA2
    1BA7 8300      STD	Z+0,R16
    1BA8 E2E9      LDI	R30,0x29
    1BA9 E3F6      LDI	R31,0x36
    1BAA E0A0      LDI	R26,0
    1BAB E1B1      LDI	R27,0x11
    1BAC E317      LDI	R17,0x37
    1BAD 32E2      CPI	R30,0x22
    1BAE 07F1      CPC	R31,R17
    1BAF F021      BEQ	0x1BB4
    1BB0 95C8      LPM
    1BB1 9631      ADIW	R30,1
    1BB2 920D      ST	R0,X+
    1BB3 CFF9      RJMP	0x1BAD
    1BB4 940E294C  CALL	_main
_exit:
    1BB6 CFFF      RJMP	_exit
_Dis_Int:
  flag                 --> Y+6
  tt                   --> R20
  back                 --> R14
  front                --> Y+25
  point                --> Y+23
  temp                 --> Y+21
  y                    --> Y+19
  x                    --> Y+17
    1BB7 940E301B  CALL	push_arg4
    1BB9 940E310D  CALL	push_gset5
    1BBB 9727      SBIW	R28,7
    1BBC 8CEB      LDD	R14,Y+27
FILE: F:\Relations\sf6_system\measure\LCDtest\display.c
(0001) #include <iom128v.h>
(0002) #include <macros.h>
(0003) #include <math.h>
(0004) #include "lcd.h"
(0005) #include "touch.h"
(0006) #include "display.h"
(0007) #include "stdio.h"
(0008) /*
(0009)      功能:轮换一个有符号的整数
(0010) 	 输入,目标数组,需要显示的数,小数点位数,
(0011) 	 输出:无
(0012) 	 编者:赫树开
(0013) 	 日期:二○○六年二月二十四日
(0014) */
(0015) /*void Convert_SignedInt(unsigned char *str,int temp, unsigned char point)
(0016) {
(0017)     unsigned char tt[8];
(0018)     unsigned char i;
(0019) 	sprintf(tt,"%6d",temp);//右-左,遇见" "证明字符串结束
(0020) 	for(i = 0;i< point;i++)
(0021) 	{
(0022) 	    tt[6-i] = tt[5-i];
(0023) 		if(tt[6-i] == ' ')
(0024) 		{
(0025) 		    tt[6-i] = '0';
(0026) 		}
(0027) 	}
(0028) 	if(point)
(0029) 	{
(0030) 	   tt[6-point] = '.';
(0031) 	   if(tt[6-point-1] == ' ')//如果前面为空格,证明没有只有小数,而没有整数
(0032) 	   {
(0033) 	       tt[5-point] = '0';
(0034) 	   }
(0035) 	}  
(0036) 	if(tt[6-point-1] == ' ')//如果不是小数,又全部为空格,所以该数只能是0
(0037) 	{
(0038) 	    tt[5-point] = '0';
(0039) 	} 
(0040) 	else if(tt[5 - point] =='-')
(0041) 	{
(0042) 	    tt[4-point] = '-';
(0043) 		tt[5-point] = '0';
(0044) 	}
(0045) 	tt[7] = 0;
(0046) 	StringCat(str,tt,6);
(0047) }*/
(0048) /*
(0049)      功能:显示一个无符号的整数
(0050) 	 输入,显示坐标,需要显示的数,小数点位数,字和背景色
(0051) 	 输出:无
(0052) 	 编者:赫树开
(0053) 	 日期:二○○六年二月二十四日
(0054) */
(0055) void Dis_Int(unsigned int x,unsigned char y,unsigned int temp, unsigned char point,unsigned char front,unsigned char back)
(0056) {
(0057)     unsigned char tt;
(0058)     unsigned char flag=0;
    1BBD 2400      CLR	R0
    1BBE 820E      STD	Y+6,R0
(0059) 	
(0060)     if(point>4) point=4;
    1BBF E084      LDI	R24,4
    1BC0 880F      LDD	R0,Y+23
    1BC1 1580      CP	R24,R0
    1BC2 F408      BCC	0x1BC4
    1BC3 8B8F      STD	Y+23,R24
(0061)     tt=temp/10000;
    1BC4 E120      LDI	R18,0x10
    1BC5 E237      LDI	R19,0x27
    1BC6 890D      LDD	R16,Y+21
    1BC7 891E      LDD	R17,Y+22
    1BC8 940E3022  CALL	div16u
    1BCA 2F40      MOV	R20,R16
(0062)     temp%=10000;
    1BCB E120      LDI	R18,0x10
    1BCC E237      LDI	R19,0x27
    1BCD 890D      LDD	R16,Y+21
    1BCE 891E      LDD	R17,Y+22
    1BCF 940E3020  CALL	mod16u
    1BD1 8B1E      STD	Y+22,R17
    1BD2 8B0D      STD	Y+21,R16
(0063)     if((tt==0)&(flag==0)&(point!=4))
    1BD3 2344      TST	R20
    1BD4 F421      BNE	0x1BD9
    1BD5 E081      LDI	R24,1
    1BD6 E090      LDI	R25,0
    1BD7 016C      MOVW	R12,R24
    1BD8 C002      RJMP	0x1BDB
    1BD9 24CC      CLR	R12
    1BDA 24DD      CLR	R13
    1BDB 800E      LDD	R0,Y+6
    1BDC 2000      TST	R0
    1BDD F421      BNE	0x1BE2
    1BDE E081      LDI	R24,1
    1BDF E090      LDI	R25,0
    1BE0 015C      MOVW	R10,R24
    1BE1 C002      RJMP	0x1BE4
    1BE2 24AA      CLR	R10
    1BE3 24BB      CLR	R11
    1BE4 898F      LDD	R24,Y+23
    1BE5 3084      CPI	R24,4
    1BE6 F019      BEQ	0x1BEA
    1BE7 E061      LDI	R22,1
    1BE8 E070      LDI	R23,0
    1BE9 C002      RJMP	0x1BEC
    1BEA 2766      CLR	R22
    1BEB 2777      CLR	R23
    1BEC 0116      MOVW	R2,R12
    1BED 202A      AND	R2,R10
    1BEE 203B      AND	R3,R11
    1BEF 2226      AND	R2,R22
    1BF0 2237      AND	R3,R23
    1BF1 2022      TST	R2
    1BF2 F411      BNE	0x1BF5
    1BF3 2033      TST	R3
    1BF4 F011      BEQ	0x1BF7
(0064)     {
(0065)        tt=' ';
    1BF5 E240      LDI	R20,0x20
(0066)     }
    1BF6 C004      RJMP	0x1BFB
(0067)     else
(0068)     {
(0069)        flag=1;
    1BF7 2400      CLR	R0
    1BF8 9403      INC	R0
    1BF9 820E      STD	Y+6,R0
(0070)        tt+=0x30;
    1BFA 5D40      SUBI	R20,0xD0
(0071)     }
(0072)     Dis_Ascii(x,y,tt,front,back);
    1BFB 2C2E      MOV	R2,R14
    1BFC 2433      CLR	R3
    1BFD 823D      STD	Y+5,R3
    1BFE 822C      STD	Y+4,R2
    1BFF 8C09      LDD	R0,Y+25
    1C00 820A      STD	Y+2,R0
    1C01 8348      STD	Y+0,R20
    1C02 892B      LDD	R18,Y+19
    1C03 8909      LDD	R16,Y+17
    1C04 891A      LDD	R17,Y+18
    1C05 940E24CF  CALL	_Dis_Ascii
(0073)     if(point==4)
    1C07 898F      LDD	R24,Y+23
    1C08 3084      CPI	R24,4
    1C09 F491      BNE	0x1C1C
(0074)     {
(0075)        x+=8;
    1C0A 8989      LDD	R24,Y+17
    1C0B 899A      LDD	R25,Y+18
    1C0C 9608      ADIW	R24,0x8
    1C0D 8B9A      STD	Y+18,R25
    1C0E 8B89      STD	Y+17,R24
(0076)        Dis_Ascii(x,y,'.',front,back);
    1C0F 2C2E      MOV	R2,R14
    1C10 2433      CLR	R3
    1C11 823D      STD	Y+5,R3
    1C12 822C      STD	Y+4,R2
    1C13 8C09      LDD	R0,Y+25
    1C14 820A      STD	Y+2,R0
    1C15 E28E      LDI	R24,0x2E
    1C16 8388      STD	Y+0,R24
    1C17 892B      LDD	R18,Y+19
    1C18 8909      LDD	R16,Y+17
    1C19 891A      LDD	R17,Y+18
    1C1A 940E24CF  CALL	_Dis_Ascii
(0077)     }
(0078)     tt=temp/1000;
    1C1C EE28      LDI	R18,0xE8
    1C1D E033      LDI	R19,3
    1C1E 890D      LDD	R16,Y+21
    1C1F 891E      LDD	R17,Y+22
    1C20 940E3022  CALL	div16u
    1C22 2F40      MOV	R20,R16
(0079)     temp%=1000;
    1C23 EE28      LDI	R18,0xE8
    1C24 E033      LDI	R19,3
    1C25 890D      LDD	R16,Y+21
    1C26 891E      LDD	R17,Y+22
    1C27 940E3020  CALL	mod16u
    1C29 8B1E      STD	Y+22,R17
    1C2A 8B0D      STD	Y+21,R16
(0080)     if((tt==0)&(flag==0)&(point!=3))
    1C2B 2344      TST	R20
    1C2C F421      BNE	0x1C31
    1C2D E081      LDI	R24,1
    1C2E E090      LDI	R25,0
    1C2F 016C      MOVW	R12,R24
    1C30 C002      RJMP	0x1C33
    1C31 24CC      CLR	R12
    1C32 24DD      CLR	R13
    1C33 800E      LDD	R0,Y+6
    1C34 2000      TST	R0
    1C35 F421      BNE	0x1C3A
    1C36 E081      LDI	R24,1
    1C37 E090      LDI	R25,0
    1C38 015C      MOVW	R10,R24
    1C39 C002      RJMP	0x1C3C
    1C3A 24AA      CLR	R10
    1C3B 24BB      CLR	R11
    1C3C 898F      LDD	R24,Y+23
    1C3D 3083      CPI	R24,3
    1C3E F019      BEQ	0x1C42
    1C3F E061      LDI	R22,1
    1C40 E070      LDI	R23,0
    1C41 C002      RJMP	0x1C44
    1C42 2766      CLR	R22
    1C43 2777      CLR	R23
    1C44 0116      MOVW	R2,R12
    1C45 202A      AND	R2,R10
    1C46 203B      AND	R3,R11
    1C47 2226      AND	R2,R22
    1C48 2237      AND	R3,R23
    1C49 2022      TST	R2
    1C4A F411      BNE	0x1C4D
    1C4B 2033      TST	R3
    1C4C F011      BEQ	0x1C4F
(0081)     {
(0082)         tt=' ';
    1C4D E240      LDI	R20,0x20
(0083)     }
    1C4E C004      RJMP	0x1C53
(0084)     else
(0085)     {
(0086)        flag=1;
    1C4F 2400      CLR	R0
    1C50 9403      INC	R0
    1C51 820E      STD	Y+6,R0
(0087)        tt+=0x30;
    1C52 5D40      SUBI	R20,0xD0
(0088)     }
(0089)     x+=8;
    1C53 8989      LDD	R24,Y+17
    1C54 899A      LDD	R25,Y+18
    1C55 9608      ADIW	R24,0x8
    1C56 8B9A      STD	Y+18,R25
    1C57 8B89      STD	Y+17,R24
(0090)     Dis_Ascii(x,y,tt,front,back);
    1C58 2C2E      MOV	R2,R14
    1C59 2433      CLR	R3
    1C5A 823D      STD	Y+5,R3
    1C5B 822C      STD	Y+4,R2
    1C5C 8C09      LDD	R0,Y+25
    1C5D 820A      STD	Y+2,R0
    1C5E 8348      STD	Y+0,R20
    1C5F 892B      LDD	R18,Y+19
    1C60 018C      MOVW	R16,R24
    1C61 940E24CF  CALL	_Dis_Ascii
(0091)     if(point==3)
    1C63 898F      LDD	R24,Y+23
    1C64 3083      CPI	R24,3
    1C65 F491      BNE	0x1C78
(0092)     {
(0093)        x+=8;
    1C66 8989      LDD	R24,Y+17
    1C67 899A      LDD	R25,Y+18
    1C68 9608      ADIW	R24,0x8
    1C69 8B9A      STD	Y+18,R25
    1C6A 8B89      STD	Y+17,R24
(0094)        Dis_Ascii(x,y,'.',front,back);
    1C6B 2C2E      MOV	R2,R14
    1C6C 2433      CLR	R3
    1C6D 823D      STD	Y+5,R3
    1C6E 822C      STD	Y+4,R2
    1C6F 8C09      LDD	R0,Y+25
    1C70 820A      STD	Y+2,R0
    1C71 E28E      LDI	R24,0x2E
    1C72 8388      STD	Y+0,R24
    1C73 892B      LDD	R18,Y+19
    1C74 8909      LDD	R16,Y+17
    1C75 891A      LDD	R17,Y+18
    1C76 940E24CF  CALL	_Dis_Ascii
(0095)     }
(0096)     tt = temp/100;
    1C78 E624      LDI	R18,0x64
    1C79 E030      LDI	R19,0
    1C7A 890D      LDD	R16,Y+21
    1C7B 891E      LDD	R17,Y+22
    1C7C 940E3022  CALL	div16u
    1C7E 2F40      MOV	R20,R16
(0097)     temp %= 100;
    1C7F E624      LDI	R18,0x64
    1C80 E030      LDI	R19,0
    1C81 890D      LDD	R16,Y+21
    1C82 891E      LDD	R17,Y+22
    1C83 940E3020  CALL	mod16u
    1C85 8B1E      STD	Y+22,R17
    1C86 8B0D      STD	Y+21,R16
(0098)     if((tt==0)&(flag==0)&(point!=2))
    1C87 2344      TST	R20
    1C88 F421      BNE	0x1C8D
    1C89 E081      LDI	R24,1
    1C8A E090      LDI	R25,0
    1C8B 016C      MOVW	R12,R24
    1C8C C002      RJMP	0x1C8F
    1C8D 24CC      CLR	R12
    1C8E 24DD      CLR	R13
    1C8F 800E      LDD	R0,Y+6
    1C90 2000      TST	R0
    1C91 F421      BNE	0x1C96
    1C92 E081      LDI	R24,1
    1C93 E090      LDI	R25,0
    1C94 015C      MOVW	R10,R24
    1C95 C002      RJMP	0x1C98

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -