📄 input.lis
字号:
0014 5802 .word `L122
0016 7F02 .word `L128
0018 CD02 .word `L141
001A F202 .word `L60
001C A602 .word `L135
.area text(rom, con, rel)
0060 .dbfile F:\Relations\sf6_system\measure\LCDtest\input.c
0060 ; temp -> R10
0060 ; i -> R20,R21
.even
0060 _Input_Data::
0060 0E940000 xcall push_gset3
0064 6897 sbiw R28,24
0066 .dbline -1
0066 .dbline 47
0066 ; }
0066 ;
0066 ;
0066 ; }
0066 ; //从显示屏输入口中得到一个数据
0066 ;
0066 ; void Input_Data(void)
0066 ; {
0066 .dbline 50
0066 ; unsigned int i;
0066 ; unsigned char temp;
0066 ; for(i=0;i<9;i++)
0066 4427 clr R20
0068 5527 clr R21
006A 09C0 xjmp L38
006C L35:
006C .dbline 51
006C .dbline 52
006C 80E0 ldi R24,<_input_buffer
006E 90E0 ldi R25,>_input_buffer
0070 FA01 movw R30,R20
0072 E80F add R30,R24
0074 F91F adc R31,R25
0076 80E2 ldi R24,32
0078 8083 std z+0,R24
007A .dbline 53
007A L36:
007A .dbline 50
007A 4F5F subi R20,255 ; offset = 1
007C 5F4F sbci R21,255
007E L38:
007E .dbline 50
007E 4930 cpi R20,9
0080 E0E0 ldi R30,0
0082 5E07 cpc R21,R30
0084 98F3 brlo L35
0086 .dbline 54
0086 ; {
0086 ; input_buffer[i]= ' ';
0086 ; }
0086 ; input_buffer[9]= 0;
0086 2224 clr R2
0088 20920900 sts _input_buffer+9,R2
008C .dbline 55
008C ; Dis_Rect(20,20,280,200,BLUE);//画一个外框
008C 83E0 ldi R24,3
008E 8C83 std y+4,R24
0090 88EC ldi R24,200
0092 8A83 std y+2,R24
0094 88E1 ldi R24,280
0096 91E0 ldi R25,1
0098 9983 std y+1,R25
009A 8883 std y+0,R24
009C 24E1 ldi R18,20
009E 04E1 ldi R16,20
00A0 10E0 ldi R17,0
00A2 0E940000 xcall _Dis_Rect
00A6 .dbline 56
00A6 ; Dis_Rect(80,50,150,26,WHITE);//画一个输入框
00A6 8FEF ldi R24,255
00A8 8C83 std y+4,R24
00AA 8AE1 ldi R24,26
00AC 8A83 std y+2,R24
00AE 86E9 ldi R24,150
00B0 90E0 ldi R25,0
00B2 9983 std y+1,R25
00B4 8883 std y+0,R24
00B6 22E3 ldi R18,50
00B8 00E5 ldi R16,80
00BA 10E0 ldi R17,0
00BC 0E940000 xcall _Dis_Rect
00C0 .dbline 57
00C0 ; Dis_Menu(Key_Data,Key_Data_size);
00C0 2FE0 ldi R18,15
00C2 00E0 ldi R16,<_Key_Data
00C4 10E0 ldi R17,>_Key_Data
00C6 0E940000 xcall _Dis_Menu
00CA .dbline 58
00CA ; cursor.x = cursor.y = 0;
00CA 2224 clr R2
00CC 20920200 sts _cursor+2,R2
00D0 3324 clr R3
00D2 30920100 sts _cursor+1,R3
00D6 20920000 sts _cursor,R2
00DA .dbline 59
00DA ; cursor.flag = 0;
00DA 20920600 sts _cursor+6,R2
00DE .dbline 60
00DE ; Display(80,50,input_buffer,BIG,RED,WHITE);
00DE 8FEF ldi R24,255
00E0 8E83 std y+6,R24
00E2 80EE ldi R24,224
00E4 8C83 std y+4,R24
00E6 81E0 ldi R24,1
00E8 8A83 std y+2,R24
00EA 80E0 ldi R24,<_input_buffer
00EC 90E0 ldi R25,>_input_buffer
00EE 9983 std y+1,R25
00F0 8883 std y+0,R24
00F2 22E3 ldi R18,50
00F4 00E5 ldi R16,80
00F6 10E0 ldi R17,0
00F8 0E940000 xcall _Display
00FC 73C2 xjmp L43
00FE L42:
00FE .dbline 62
00FE ; while(1)
00FE ; {
00FE .dbline 63
00FE ; if(cursor.flag == 1)
00FE 80910600 lds R24,_cursor+6
0102 8130 cpi R24,1
0104 09F0 breq X3
0106 6EC2 xjmp L45
0108 X3:
0108 .dbline 64
0108 ; {
0108 .dbline 65
0108 ; cursor.flag = 0;
0108 2224 clr R2
010A 20920600 sts _cursor+6,R2
010E .dbline 66
010E ; for(i = 0;i<Key_Data_size;i++)
010E 4427 clr R20
0110 5527 clr R21
0112 1EC0 xjmp L52
0114 L49:
0114 .dbline 67
0114 ; {
0114 .dbline 68
0114 ; if(GetCursor(Key_Data[i]))
0114 01E1 ldi R16,17
0116 10E0 ldi R17,0
0118 9A01 movw R18,R20
011A 0E940000 xcall empy16s
011E 1801 movw R2,R16
0120 80E0 ldi R24,<_Key_Data
0122 90E0 ldi R25,>_Key_Data
0124 280E add R2,R24
0126 391E adc R3,R25
0128 CE01 movw R24,R28
012A 0796 adiw R24,7
012C 01E1 ldi R16,17
012E 10E0 ldi R17,0
0130 9A93 st -y,R25
0132 8A93 st -y,R24
0134 3A92 st -y,R3
0136 2A92 st -y,R2
0138 0E940000 xcall asgncblk
013C 8E01 movw R16,R28
013E 095F subi R16,249 ; offset = 7
0140 1F4F sbci R17,255
0142 5EDF xcall _GetCursor
0144 0023 tst R16
0146 11F0 breq L53
0148 .dbline 69
0148 ; {
0148 .dbline 70
0148 ; temp=i;
0148 A42E mov R10,R20
014A .dbline 71
014A ; break;
014A 06C0 xjmp L51
014C L53:
014C .dbline 73
014C L50:
014C .dbline 66
014C 4F5F subi R20,255 ; offset = 1
014E 5F4F sbci R21,255
0150 L52:
0150 .dbline 66
0150 4F30 cpi R20,15
0152 E0E0 ldi R30,0
0154 5E07 cpc R21,R30
0156 F0F2 brlo L49
0158 L51:
0158 .dbline 74
0158 ; }
0158 ; }
0158 ; if(i!=temp)
0158 2A2C mov R2,R10
015A 3324 clr R3
015C 4215 cp R20,R2
015E 5305 cpc R21,R3
0160 09F0 breq L55
0162 .dbline 75
0162 ; {
0162 .dbline 76
0162 ; continue;
0162 40C2 xjmp L43
0164 L55:
0164 .dbline 78
0164 ; }
0164 ; if(i == 13)
0164 4D30 cpi R20,13
0166 E0E0 ldi R30,0
0168 5E07 cpc R21,R30
016A 09F4 brne L57
016C .dbline 79
016C ; {
016C .dbline 81
016C ;
016C ; break;
016C 3CC2 xjmp L44
016E L57:
016E .dbline 84
016E ; }
016E ; //if(temp==12) temp=15;
016E ; switch (temp)
016E 6A2D mov R22,R10
0170 7727 clr R23
0172 6030 cpi R22,0
0174 E0E0 ldi R30,0
0176 7E07 cpc R23,R30
0178 0CF4 brge X4
017A 34C2 xjmp L60
017C X4:
017C 8EE0 ldi R24,14
017E 90E0 ldi R25,0
0180 8617 cp R24,R22
0182 9707 cpc R25,R23
0184 0CF4 brge X5
0186 2EC2 xjmp L60
0188 X5:
0188 02E0 ldi R16,2
018A 10E0 ldi R17,0
018C 9B01 movw R18,R22
018E 0E940000 xcall empy16s
0192 F801 movw R30,R16
0194 80E0 ldi R24,<L146
0196 90E0 ldi R25,>L146
0198 E80F add R30,R24
019A F91F adc R31,R25
019C 0790 elpm R0,Z+
019E 1690 elpm R1,Z
01A0 F001 movw R30,R0
01A2 0994 ijmp
01A4 X0:
01A4 .dbline 85
01A4 ; {
01A4 L62:
01A4 .dbline 86
01A4 ; case 0: for(i = 0;i<8;i++)
01A4 4427 clr R20
01A6 5527 clr R21
01A8 0DC0 xjmp L66
01AA L63:
01AA .dbline 87
01AA .dbline 88
01AA 80E0 ldi R24,<_input_buffer
01AC 90E0 ldi R25,>_input_buffer
01AE FA01 movw R30,R20
01B0 3196 adiw R30,1
01B2 E80F add R30,R24
01B4 F91F adc R31,R25
01B6 2080 ldd R2,z+0
01B8 FA01 movw R30,R20
01BA E80F add R30,R24
01BC F91F adc R31,R25
01BE 2082 std z+0,R2
01C0 .dbline 89
01C0 L64:
01C0 .dbline 86
01C0 4F5F subi R20,255 ; offset = 1
01C2 5F4F sbci R21,255
01C4 L66:
01C4 .dbline 86
01C4 4830 cpi R20,8
01C6 E0E0 ldi R30,0
01C8 5E07 cpc R21,R30
01CA 78F3 brlo L63
01CC .dbline 90
01CC ; {
01CC ; input_buffer[i] = input_buffer[i+1];
01CC ; }
01CC ; input_buffer[8] = '1';
01CC 81E3 ldi R24,49
01CE 80930800 sts _input_buffer+8,R24
01D2 .dbline 91
01D2 ; Display(80,50,input_buffer,BIG,RED,WHITE);
01D2 8FEF ldi R24,255
01D4 8E83 std y+6,R24
01D6 80EE ldi R24,224
01D8 8C83 std y+4,R24
01DA 81E0 ldi R24,1
01DC 8A83 std y+2,R24
01DE 80E0 ldi R24,<_input_buffer
01E0 90E0 ldi R25,>_input_buffer
01E2 9983 std y+1,R25
01E4 8883 std y+0,R24
01E6 22E3 ldi R18,50
01E8 00E5 ldi R16,80
01EA 10E0 ldi R17,0
01EC 0E940000 xcall _Display
01F0 .dbline 92
01F0 ; break;
01F0 F9C1 xjmp L60
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -