📄 display.lis
字号:
.module display.c
.area text(rom, con, rel)
0000 .dbfile F:\Relations\sf6_system\measure\LCDtest\display.c
0000 .dbfunc e Dis_Int _Dis_Int fV
0000 ; flag -> y+6
0000 ; tt -> R20
0000 ; back -> R14
0000 ; front -> y+25
0000 ; point -> y+23
0000 ; temp -> y+21
0000 ; y -> y+19
0000 ; x -> y+17
.even
0000 _Dis_Int::
0000 0E940000 xcall push_arg4
0004 0E940000 xcall push_gset5
0008 2797 sbiw R28,7
000A EB8C ldd R14,y+27
000C .dbline -1
000C .dbline 56
000C ; #include <iom128v.h>
000C ; #include <macros.h>
000C ; #include <math.h>
000C ; #include "lcd.h"
000C ; #include "touch.h"
000C ; #include "display.h"
000C ; #include "stdio.h"
000C ; /*
000C ; 功能:轮换一个有符号的整数
000C ; 输入,目标数组,需要显示的数,小数点位数,
000C ; 输出:无
000C ; 编者:赫树开
000C ; 日期:二○○六年二月二十四日
000C ; */
000C ; /*void Convert_SignedInt(unsigned char *str,int temp, unsigned char point)
000C ; {
000C ; unsigned char tt[8];
000C ; unsigned char i;
000C ; sprintf(tt,"%6d",temp);//右-左,遇见" "证明字符串结束
000C ; for(i = 0;i< point;i++)
000C ; {
000C ; tt[6-i] = tt[5-i];
000C ; if(tt[6-i] == ' ')
000C ; {
000C ; tt[6-i] = '0';
000C ; }
000C ; }
000C ; if(point)
000C ; {
000C ; tt[6-point] = '.';
000C ; if(tt[6-point-1] == ' ')//如果前面为空格,证明没有只有小数,而没有整数
000C ; {
000C ; tt[5-point] = '0';
000C ; }
000C ; }
000C ; if(tt[6-point-1] == ' ')//如果不是小数,又全部为空格,所以该数只能是0
000C ; {
000C ; tt[5-point] = '0';
000C ; }
000C ; else if(tt[5 - point] =='-')
000C ; {
000C ; tt[4-point] = '-';
000C ; tt[5-point] = '0';
000C ; }
000C ; tt[7] = 0;
000C ; StringCat(str,tt,6);
000C ; }*/
000C ; /*
000C ; 功能:显示一个无符号的整数
000C ; 输入,显示坐标,需要显示的数,小数点位数,字和背景色
000C ; 输出:无
000C ; 编者:赫树开
000C ; 日期:二○○六年二月二十四日
000C ; */
000C ; void Dis_Int(unsigned int x,unsigned char y,unsigned int temp, unsigned char point,unsigned char front,unsigned char back)
000C ; {
000C .dbline 58
000C ; unsigned char tt;
000C ; unsigned char flag=0;
000C 0024 clr R0
000E 0E82 std y+6,R0
0010 .dbline 60
0010 ;
0010 ; if(point>4) point=4;
0010 84E0 ldi R24,4
0012 0F88 ldd R0,y+23
0014 8015 cp R24,R0
0016 08F4 brsh L2
0018 .dbline 60
0018 8F8B std y+23,R24
001A L2:
001A .dbline 61
001A ; tt=temp/10000;
001A 20E1 ldi R18,10000
001C 37E2 ldi R19,39
001E 0D89 ldd R16,y+21
0020 1E89 ldd R17,y+22
0022 0E940000 xcall div16u
0026 402F mov R20,R16
0028 .dbline 62
0028 ; temp%=10000;
0028 20E1 ldi R18,10000
002A 37E2 ldi R19,39
002C 0D89 ldd R16,y+21
002E 1E89 ldd R17,y+22
0030 0E940000 xcall mod16u
0034 1E8B std y+22,R17
0036 0D8B std y+21,R16
0038 .dbline 63
0038 ; if((tt==0)&(flag==0)&(point!=4))
0038 4423 tst R20
003A 21F4 brne L6
003C 81E0 ldi R24,1
003E 90E0 ldi R25,0
0040 6C01 movw R12,R24
0042 02C0 xjmp L7
0044 L6:
0044 CC24 clr R12
0046 DD24 clr R13
0048 L7:
0048 0E80 ldd R0,y+6
004A 0020 tst R0
004C 21F4 brne L8
004E 81E0 ldi R24,1
0050 90E0 ldi R25,0
0052 5C01 movw R10,R24
0054 02C0 xjmp L9
0056 L8:
0056 AA24 clr R10
0058 BB24 clr R11
005A L9:
005A 8F89 ldd R24,y+23
005C 8430 cpi R24,4
005E 19F0 breq L10
0060 61E0 ldi R22,1
0062 70E0 ldi R23,0
0064 02C0 xjmp L11
0066 L10:
0066 6627 clr R22
0068 7727 clr R23
006A L11:
006A 1601 movw R2,R12
006C 2A20 and R2,R10
006E 3B20 and R3,R11
0070 2622 and R2,R22
0072 3722 and R3,R23
0074 2220 tst R2
0076 11F4 brne X0
0078 3320 tst R3
007A 11F0 breq L4
007C X0:
007C .dbline 64
007C ; {
007C .dbline 65
007C ; tt=' ';
007C 40E2 ldi R20,32
007E .dbline 66
007E ; }
007E 04C0 xjmp L5
0080 L4:
0080 .dbline 68
0080 ; else
0080 ; {
0080 .dbline 69
0080 ; flag=1;
0080 0024 clr R0
0082 0394 inc R0
0084 0E82 std y+6,R0
0086 .dbline 70
0086 ; tt+=0x30;
0086 405D subi R20,208 ; addi 48
0088 .dbline 71
0088 ; }
0088 L5:
0088 .dbline 72
0088 ; Dis_Ascii(x,y,tt,front,back);
0088 2E2C mov R2,R14
008A 3324 clr R3
008C 3D82 std y+5,R3
008E 2C82 std y+4,R2
0090 098C ldd R0,y+25
0092 0A82 std y+2,R0
0094 4883 std y+0,R20
0096 2B89 ldd R18,y+19
0098 0989 ldd R16,y+17
009A 1A89 ldd R17,y+18
009C 0E940000 xcall _Dis_Ascii
00A0 .dbline 73
00A0 ; if(point==4)
00A0 8F89 ldd R24,y+23
00A2 8430 cpi R24,4
00A4 91F4 brne L12
00A6 .dbline 74
00A6 ; {
00A6 .dbline 75
00A6 ; x+=8;
00A6 8989 ldd R24,y+17
00A8 9A89 ldd R25,y+18
00AA 0896 adiw R24,8
00AC 9A8B std y+18,R25
00AE 898B std y+17,R24
00B0 .dbline 76
00B0 ; Dis_Ascii(x,y,'.',front,back);
00B0 2E2C mov R2,R14
00B2 3324 clr R3
00B4 3D82 std y+5,R3
00B6 2C82 std y+4,R2
00B8 098C ldd R0,y+25
00BA 0A82 std y+2,R0
00BC 8EE2 ldi R24,46
00BE 8883 std y+0,R24
00C0 2B89 ldd R18,y+19
00C2 0989 ldd R16,y+17
00C4 1A89 ldd R17,y+18
00C6 0E940000 xcall _Dis_Ascii
00CA .dbline 77
00CA ; }
00CA L12:
00CA .dbline 78
00CA ; tt=temp/1000;
00CA 28EE ldi R18,1000
00CC 33E0 ldi R19,3
00CE 0D89 ldd R16,y+21
00D0 1E89 ldd R17,y+22
00D2 0E940000 xcall div16u
00D6 402F mov R20,R16
00D8 .dbline 79
00D8 ; temp%=1000;
00D8 28EE ldi R18,1000
00DA 33E0 ldi R19,3
00DC 0D89 ldd R16,y+21
00DE 1E89 ldd R17,y+22
00E0 0E940000 xcall mod16u
00E4 1E8B std y+22,R17
00E6 0D8B std y+21,R16
00E8 .dbline 80
00E8 ; if((tt==0)&(flag==0)&(point!=3))
00E8 4423 tst R20
00EA 21F4 brne L16
00EC 81E0 ldi R24,1
00EE 90E0 ldi R25,0
00F0 6C01 movw R12,R24
00F2 02C0 xjmp L17
00F4 L16:
00F4 CC24 clr R12
00F6 DD24 clr R13
00F8 L17:
00F8 0E80 ldd R0,y+6
00FA 0020 tst R0
00FC 21F4 brne L18
00FE 81E0 ldi R24,1
0100 90E0 ldi R25,0
0102 5C01 movw R10,R24
0104 02C0 xjmp L19
0106 L18:
0106 AA24 clr R10
0108 BB24 clr R11
010A L19:
010A 8F89 ldd R24,y+23
010C 8330 cpi R24,3
010E 19F0 breq L20
0110 61E0 ldi R22,1
0112 70E0 ldi R23,0
0114 02C0 xjmp L21
0116 L20:
0116 6627 clr R22
0118 7727 clr R23
011A L21:
011A 1601 movw R2,R12
011C 2A20 and R2,R10
011E 3B20 and R3,R11
0120 2622 and R2,R22
0122 3722 and R3,R23
0124 2220 tst R2
0126 11F4 brne X1
0128 3320 tst R3
012A 11F0 breq L14
012C X1:
012C .dbline 81
012C ; {
012C .dbline 82
012C ; tt=' ';
012C 40E2 ldi R20,32
012E .dbline 83
012E ; }
012E 04C0 xjmp L15
0130 L14:
0130 .dbline 85
0130 ; else
0130 ; {
0130 .dbline 86
0130 ; flag=1;
0130 0024 clr R0
0132 0394 inc R0
0134 0E82 std y+6,R0
0136 .dbline 87
0136 ; tt+=0x30;
0136 405D subi R20,208 ; addi 48
0138 .dbline 88
0138 ; }
0138 L15:
0138 .dbline 89
0138 ; x+=8;
0138 8989 ldd R24,y+17
013A 9A89 ldd R25,y+18
013C 0896 adiw R24,8
013E 9A8B std y+18,R25
0140 898B std y+17,R24
0142 .dbline 90
0142 ; Dis_Ascii(x,y,tt,front,back);
0142 2E2C mov R2,R14
0144 3324 clr R3
0146 3D82 std y+5,R3
0148 2C82 std y+4,R2
014A 098C ldd R0,y+25
014C 0A82 std y+2,R0
014E 4883 std y+0,R20
0150 2B89 ldd R18,y+19
0152 8C01 movw R16,R24
0154 0E940000 xcall _Dis_Ascii
0158 .dbline 91
0158 ; if(point==3)
0158 8F89 ldd R24,y+23
015A 8330 cpi R24,3
015C 91F4 brne L22
015E .dbline 92
015E ; {
015E .dbline 93
015E ; x+=8;
015E 8989 ldd R24,y+17
0160 9A89 ldd R25,y+18
0162 0896 adiw R24,8
0164 9A8B std y+18,R25
0166 898B std y+17,R24
0168 .dbline 94
0168 ; Dis_Ascii(x,y,'.',front,back);
0168 2E2C mov R2,R14
016A 3324 clr R3
016C 3D82 std y+5,R3
016E 2C82 std y+4,R2
0170 098C ldd R0,y+25
0172 0A82 std y+2,R0
0174 8EE2 ldi R24,46
0176 8883 std y+0,R24
0178 2B89 ldd R18,y+19
017A 0989 ldd R16,y+17
017C 1A89 ldd R17,y+18
017E 0E940000 xcall _Dis_Ascii
0182 .dbline 95
0182 ; }
0182 L22:
0182 .dbline 96
0182 ; tt = temp/100;
0182 24E6 ldi R18,100
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -