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

📄 write_card.lis

📁 环保型IC卡门禁系统的C程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -