📄 write_card.lis
字号:
00C4 8A2D mov R24,R10
00C6 8830 cpi R24,8
00C8 98F3 brlo L14
00CA .dbline 69
00CA ; flag=flag<<1;
00CA ; }
00CA ; }
00CA 04C0 rjmp L12
00CC L11:
00CC .dbline 72
00CC ;
00CC ; else
00CC ; {
00CC .dbline 73
00CC ; Erase_IC_FLAG=1 ; // 检测个位是否为0,为0则先擦除高字节数据再写位
00CC 81E0 ldi R24,1
00CE 80930000 sts _Erase_IC_FLAG,R24
00D2 .dbline 74
00D2 ; Erase_Card();
00D2 00D0 rcall _Erase_Card
00D4 .dbline 75
00D4 ; }
00D4 L12:
00D4 .dbline 76
00D4 L8:
00D4 .dbline 54
00D4 4395 inc R20
00D6 L10:
00D6 .dbline 54
00D6 4E15 cp R20,R14
00D8 18F3 brlo L7
00DA .dbline 78
00DA ; }
00DA ;
00DA ; Write_Card_Value();
00DA 02D0 rcall _Write_Card_Value
00DC .dbline -2
00DC L6:
00DC 00D0 rcall pop_gset5
00DE .dbline 0 ; func end
00DE 0895 ret
00E0 .dbsym r j 20 c
00E0 .dbsym r Write_flag 22 c
00E0 .dbsym r i 10 c
00E0 .dbsym r flag 12 c
00E0 .dbsym r Write_Value 14 c
00E0 .dbend
00E0 .dbfunc e Write_Card_Value _Write_Card_Value fV
00E0 ; Write_Value -> R20
00E0 ; Key -> R22
.even
00E0 _Write_Card_Value::
00E0 00D0 rcall push_gset2
00E2 2297 sbiw R28,2
00E4 .dbline -1
00E4 .dbline 82
00E4 ; }
00E4 ;
00E4 ; void Write_Card_Value(void)
00E4 ; {
00E4 .dbline 83
00E4 ; unsigned char Key = 0 , Write_Value = 0 ;
00E4 6627 clr R22
00E6 .dbline 83
00E6 4427 clr R20
00E8 .dbline 85
00E8 ;
00E8 ; LCD_write_char(0x01,0); //清屏
00E8 2227 clr R18
00EA 3327 clr R19
00EC 01E0 ldi R16,1
00EE 10E0 ldi R17,0
00F0 00D0 rcall _LCD_write_char
00F2 .dbline 86
00F2 ; delay_nms(2);
00F2 02E0 ldi R16,2
00F4 10E0 ldi R17,0
00F6 00D0 rcall _delay_nms
00F8 .dbline 88
00F8 ;
00F8 ; LCD_write_string(0,1,"Balance $: . ");
00F8 80E0 ldi R24,<L22
00FA 90E0 ldi R25,>L22
00FC 9983 std y+1,R25
00FE 8883 std y+0,R24
0100 21E0 ldi R18,1
0102 0027 clr R16
0104 00D0 rcall _LCD_write_string
0106 .dbline 89
0106 ; Balance_dis();
0106 00D0 rcall _Balance_dis
0108 .dbline 90
0108 ; LCD_write_char(0x0f,0); // 显示光标
0108 2227 clr R18
010A 3327 clr R19
010C 0FE0 ldi R16,15
010E 10E0 ldi R17,0
0110 00D0 rcall _LCD_write_char
0112 .dbline 91
0112 ; LCD_write_string(0,0,"Subtract $ : 0.");
0112 80E0 ldi R24,<L23
0114 90E0 ldi R25,>L23
0116 9983 std y+1,R25
0118 8883 std y+0,R24
011A 2227 clr R18
011C 0027 clr R16
011E 00D0 rcall _LCD_write_string
0120 28C0 rjmp L25
0122 L24:
0122 .dbline 94
0122 ;
0122 ; while(1)
0122 ; {
0122 .dbline 95
0122 ; Key = Key_Scan() ;
0122 00D0 rcall _Key_Scan
0124 602F mov R22,R16
0126 .dbline 97
0126 ;
0126 ; if(Key!=0)
0126 0023 tst R16
0128 B1F0 breq L27
012A .dbline 98
012A ; {
012A .dbline 99
012A ; if(Key<10)
012A 0A30 cpi R16,10
012C 18F4 brsh L29
012E .dbline 100
012E ; {
012E .dbline 101
012E ; Write_Value = Key ;
012E 462F mov R20,R22
0130 .dbline 102
0130 ; display(Key , 15);
0130 2FE0 ldi R18,15
0132 00D0 rcall _display
0134 .dbline 103
0134 ; }
0134 L29:
0134 .dbline 105
0134 ;
0134 ; if(Key==11)
0134 6B30 cpi R22,11
0136 31F4 brne L31
0138 .dbline 106
0138 ; {
0138 .dbline 107
0138 ; LCD_write_char(0x0c,0); // 关闭光标
0138 2227 clr R18
013A 3327 clr R19
013C 0CE0 ldi R16,12
013E 10E0 ldi R17,0
0140 00D0 rcall _LCD_write_char
0142 .dbline 108
0142 ; menu_Init() ;
0142 00D0 rcall _menu_Init
0144 .dbline 109
0144 ; }
0144 L31:
0144 .dbline 111
0144 ;
0144 ; if(Key==12)
0144 6C30 cpi R22,12
0146 39F4 brne L33
0148 .dbline 112
0148 ; {
0148 .dbline 113
0148 ; LCD_write_char(0x0c,0); // 关闭光标
0148 2227 clr R18
014A 3327 clr R19
014C 0CE0 ldi R16,12
014E 10E0 ldi R17,0
0150 00D0 rcall _LCD_write_char
0152 .dbline 114
0152 ; Write_Card(Write_Value);
0152 042F mov R16,R20
0154 9EDF rcall _Write_Card
0156 .dbline 115
0156 ; }
0156 L33:
0156 .dbline 116
0156 ; }
0156 L27:
0156 .dbline 118
0156 ;
0156 ; if(IC_SW!=0)
0156 80B3 in R24,0x10
0158 8870 andi R24,8
015A 80BB out 0x10,R24
015C 8823 tst R24
015E 49F0 breq L35
0160 .dbline 119
0160 ; {
0160 .dbline 120
0160 ; delay_nms(50); // 检测是否有卡插入
0160 02E3 ldi R16,50
0162 10E0 ldi R17,0
0164 00D0 rcall _delay_nms
0166 .dbline 121
0166 ; if(IC_SW!=0)
0166 80B3 in R24,0x10
0168 8870 andi R24,8
016A 80BB out 0x10,R24
016C 8823 tst R24
016E 09F0 breq L37
0170 .dbline 122
0170 ; {
0170 .dbline 123
0170 ; menu_Init();
0170 00D0 rcall _menu_Init
0172 .dbline 124
0172 ; }
0172 L37:
0172 .dbline 125
0172 ; }
0172 L35:
0172 .dbline 126
0172 L25:
0172 .dbline 93
0172 D7CF rjmp L24
0174 X0:
0174 .dbline -2
0174 L21:
0174 2296 adiw R28,2
0176 00D0 rcall pop_gset2
0178 .dbline 0 ; func end
0178 0895 ret
017A .dbsym r Write_Value 20 c
017A .dbsym r Key 22 c
017A .dbend
.area data(ram, con, rel)
0000 .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Write_Card.c
0000 L23:
0000 .blkb 16
.area idata
0000 53756274726163742024203A20302E00 .byte 'S,'u,'b,'t,'r,'a,'c,'t,32,36,32,58,32,48,46,0
.area data(ram, con, rel)
0010 .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Write_Card.c
0010 L22:
0010 .blkb 17
.area idata
0010 42616C616E636520243A202020202E20 .byte 'B,'a,'l,'a,'n,'c,'e,32,36,58,32,32,32,32,46,32
0020 00 .byte 0
.area data(ram, con, rel)
0021 .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Write_Card.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -