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

📄 display.lis

📁 已经上传的YF-320240-3.5寸彩屏(可由单片机控制)的测试程序。主CPU为MEGA128
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .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 + -