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

📄 menus.lis

📁 环保型IC卡门禁系统的C程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module Menus.C
                        .area data(ram, con, rel)
 0000           _Menu_flag::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
 0001                   .dbsym e Menu_flag _Menu_flag c
 0001           _Exist_flag::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
 0002                   .dbsym e Exist_flag _Exist_flag c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Menus.C
 0000                   .dbfunc e Menu_Add _Menu_Add fV
 0000           ;          Total -> R14
 0000           ;              i -> R20
 0000           ;            tem -> R22
 0000           ;              j -> R10
 0000           ;              k -> R12
                        .even
 0000           _Menu_Add::
 0000 00D0              rcall push_gset5
 0002 2297              sbiw R28,2
 0004                   .dbline -1
 0004                   .dbline 9
 0004           ; 
 0004           ; #include <iom8v.h>
 0004           ; #include <macros.h>
 0004           ; #include "lcd1602.h"
 0004           ; 
 0004           ; unsigned char Menu_flag = 0 , Exist_flag = 0 ;
 0004           ; 
 0004           ; void Menu_Add(void)
 0004           ; {
 0004                   .dbline 10
 0004           ;   unsigned char Total = 0 , i = 0 , j = 0 , k = 0 , tem = 0 ;
 0004 EE24              clr R14
 0006                   .dbline 10
 0006 4427              clr R20
 0008                   .dbline 10
 0008 AA24              clr R10
 000A                   .dbline 10
 000A CC24              clr R12
 000C                   .dbline 10
 000C 6627              clr R22
 000E                   .dbline 12
 000E           ; 
 000E           ;   LCD_write_char(0x01,0);  //清屏
 000E 2227              clr R18
 0010 3327              clr R19
 0012 01E0              ldi R16,1
 0014 10E0              ldi R17,0
 0016 00D0              rcall _LCD_write_char
 0018                   .dbline 13
 0018           ;   delay_nms(2);
 0018 02E0              ldi R16,2
 001A 10E0              ldi R17,0
 001C 00D0              rcall _delay_nms
 001E                   .dbline 15
 001E           ;   
 001E           ;   Total = EEPROM_read(511) ;
 001E 0FEF              ldi R16,511
 0020 11E0              ldi R17,1
 0022 00D0              rcall _EEPROM_read
 0024 E02E              mov R14,R16
 0026                   .dbline 16
 0026           ;   if(Total==83)
 0026 0335              cpi R16,83
 0028 91F4              brne L2
 002A                   .dbline 17
 002A           ;   {
 002A                   .dbline 18
 002A           ;     LCD_write_string(0,0,"83 Cards Existed");
 002A 80E0              ldi R24,<L4
 002C 90E0              ldi R25,>L4
 002E 9983              std y+1,R25
 0030 8883              std y+0,R24
 0032 2227              clr R18
 0034 0027              clr R16
 0036 00D0              rcall _LCD_write_string
 0038                   .dbline 19
 0038           ;       LCD_write_string(3,1,"Is Full !!");
 0038 80E0              ldi R24,<L5
 003A 90E0              ldi R25,>L5
 003C 9983              std y+1,R25
 003E 8883              std y+0,R24
 0040 21E0              ldi R18,1
 0042 03E0              ldi R16,3
 0044 00D0              rcall _LCD_write_string
 0046                   .dbline 20
 0046           ;       delay_nms(2000);
 0046 00ED              ldi R16,2000
 0048 17E0              ldi R17,7
 004A 00D0              rcall _delay_nms
 004C                   .dbline 21
 004C           ;       Menu_0() ;
 004C C0D1              rcall _Menu_0
 004E                   .dbline 22
 004E           ;   }
 004E           L2:
 004E                   .dbline 24
 004E           ;   
 004E           ;   LCD_write_string(0,0,"Menu1 : Add Card");
 004E 80E0              ldi R24,<L6
 0050 90E0              ldi R25,>L6
 0052 9983              std y+1,R25
 0054 8883              std y+0,R24
 0056 2227              clr R18
 0058 0027              clr R16
 005A 00D0              rcall _LCD_write_string
 005C                   .dbline 25
 005C           ;   LCD_write_string(2,1,"Insert  Card");
 005C 80E0              ldi R24,<L7
 005E 90E0              ldi R25,>L7
 0060 9983              std y+1,R25
 0062 8883              std y+0,R24
 0064 21E0              ldi R18,1
 0066 02E0              ldi R16,2
 0068 00D0              rcall _LCD_write_string
 006A 5EC0              rjmp L9
 006C           L8:
 006C                   .dbline 28
 006C           ;   
 006C           ;   while(1)
 006C           ;   {
 006C                   .dbline 29
 006C           ;     if(IC_SW==0)
 006C 80B3              in R24,0x10
 006E 8870              andi R24,8
 0070 80BB              out 0x10,R24
 0072 8823              tst R24
 0074 09F0              breq X2
 0076 58C0              rjmp L11
 0078           X2:
 0078                   .dbline 30
 0078           ;     {
 0078                   .dbline 31
 0078           ;       delay_nms(50);               //   检测是否有卡插入
 0078 02E3              ldi R16,50
 007A 10E0              ldi R17,0
 007C 00D0              rcall _delay_nms
 007E                   .dbline 32
 007E           ;         if(IC_SW==0)
 007E 80B3              in R24,0x10
 0080 8870              andi R24,8
 0082 80BB              out 0x10,R24
 0084 8823              tst R24
 0086 09F0              breq X3
 0088 4FC0              rjmp L13
 008A           X3:
 008A                   .dbline 33
 008A           ;         {
 008A                   .dbline 34
 008A           ;           Menu_flag = 1 ;
 008A 81E0              ldi R24,1
 008C 80930000          sts _Menu_flag,R24
 0090                   .dbline 35
 0090           ;               Exist_flag = 1 ;
 0090 80930100          sts _Exist_flag,R24
 0094                   .dbline 36
 0094           ;         Read_Card();      //  读IC-Card 函数
 0094 00D0              rcall _Read_Card
 0096                   .dbline 37
 0096           ;               Card_Verify();
 0096 00D0              rcall _Card_Verify
 0098                   .dbline 39
 0098           ;         
 0098           ;           for(i=0;i<83;i++)
 0098 4427              clr R20
 009A 43C0              rjmp L18
 009C           L15:
 009C                   .dbline 40
 009C           ;           {
 009C                   .dbline 41
 009C           ;             tem = EEPROM_read(j);
 009C 0A2D              mov R16,R10
 009E 1127              clr R17
 00A0 00D0              rcall _EEPROM_read
 00A2 602F              mov R22,R16
 00A4                   .dbline 43
 00A4           ;               
 00A4           ;             if(tem==0)
 00A4 0023              tst R16
 00A6 09F0              breq X4
 00A8 38C0              rjmp L19
 00AA           X4:
 00AA                   .dbline 44
 00AA           ;                 {
 00AA                   .dbline 45
 00AA           ;                   for(k=0;k<6;k++)
 00AA CC24              clr R12
 00AC 32C0              rjmp L24
 00AE           L21:
 00AE                   .dbline 46
 00AE           ;                   {
 00AE                   .dbline 47
 00AE           ;                     EEPROM_write(j+k, IC_Codes_8[2+k]);
 00AE 80E0              ldi R24,<_IC_Codes_8+2
 00B0 90E0              ldi R25,>_IC_Codes_8+2
 00B2 EC2D              mov R30,R12
 00B4 FF27              clr R31
 00B6 E80F              add R30,R24
 00B8 F91F              adc R31,R25
 00BA 2081              ldd R18,z+0
 00BC 2C2C              mov R2,R12
 00BE 3324              clr R3
 00C0 0A2D              mov R16,R10
 00C2 1127              clr R17
 00C4 020D              add R16,R2
 00C6 131D              adc R17,R3
 00C8 00D0              rcall _EEPROM_write
 00CA                   .dbline 48
 00CA           ;                         if(k==5)
 00CA 8C2D              mov R24,R12
 00CC 8530              cpi R24,5
 00CE 01F5              brne L26
 00D0                   .dbline 49
 00D0           ;                         {
 00D0                   .dbline 50
 00D0           ;                           tem =  EEPROM_read(511) + 1 ;
 00D0 0FEF              ldi R16,511
 00D2 11E0              ldi R17,1
 00D4 00D0              rcall _EEPROM_read
 00D6 602F              mov R22,R16
 00D8 6F5F              subi R22,255    ; addi 1
 00DA                   .dbline 51
 00DA           ;                               EEPROM_write(511, tem);
 00DA 262F              mov R18,R22
 00DC 0FEF              ldi R16,511
 00DE 11E0              ldi R17,1
 00E0 00D0              rcall _EEPROM_write
 00E2                   .dbline 53
 00E2           ;                         
 00E2           ;                           LCD_write_string(0,1,"Add Successfully");
 00E2 80E0              ldi R24,<L28
 00E4 90E0              ldi R25,>L28
 00E6 9983              std y+1,R25
 00E8 8883              std y+0,R24
 00EA 21E0              ldi R18,1
 00EC 0027              clr R16
 00EE 00D0              rcall _LCD_write_string
 00F0 0EC0              rjmp L30
 00F2           L29:
 00F2                   .dbline 56
 00F2           ;                         
 00F2           ;                           while(1)
 00F2           ;                           {
 00F2                   .dbline 57
 00F2           ;                             if(IC_SW!=0)
 00F2 80B3              in R24,0x10
 00F4 8870              andi R24,8
 00F6 80BB              out 0x10,R24
 00F8 8823              tst R24
 00FA 49F0              breq L32
 00FC                   .dbline 58
 00FC           ;                     {
 00FC                   .dbline 59
 00FC           ;                     delay_nms(50);               //   检测是否有卡插入
 00FC 02E3              ldi R16,50
 00FE 10E0              ldi R17,0
 0100 00D0              rcall _delay_nms
 0102                   .dbline 60
 0102           ;                       if(IC_SW!=0)
 0102 80B3              in R24,0x10
 0104 8870              andi R24,8
 0106 80BB              out 0x10,R24
 0108 8823              tst R24
 010A 09F0              breq L34
 010C                   .dbline 61
 010C           ;                       {
 010C                   .dbline 62
 010C           ;                       Menu_0();
 010C 60D1              rcall _Menu_0
 010E                   .dbline 63
 010E           ;                     }
 010E           L34:
 010E                   .dbline 64
 010E           ;                     }
 010E           L32:
 010E                   .dbline 65
 010E           L30:
 010E                   .dbline 55
 010E F1CF              rjmp L29
 0110           X0:
 0110                   .dbline 66
 0110           ;                           }
 0110           ;                         }
 0110           L26:
 0110                   .dbline 67
 0110           L22:
 0110                   .dbline 45
 0110 C394              inc R12
 0112           L24:
 0112                   .dbline 45
 0112 8C2D              mov R24,R12
 0114 8630              cpi R24,6
 0116 08F4              brsh X5
 0118 CACF              rjmp L21
 011A           X5:
 011A                   .dbline 68
 011A           ;                   }
 011A           ;                 }
 011A           L19:
 011A                   .dbline 70
 011A 8A2D              mov R24,R10
 011C 8A5F              subi R24,250    ; addi 6
 011E A82E              mov R10,R24
 0120                   .dbline 71
 0120           L16:
 0120                   .dbline 39
 0120 4395              inc R20
 0122           L18:
 0122                   .dbline 39
 0122 4335              cpi R20,83
 0124 08F4              brsh X6
 0126 BACF              rjmp L15
 0128           X6:
 0128                   .dbline 72
 0128           ;               
 0128           ;                 j = j + 6 ;
 0128           ;           }   
 0128           ;         }
 0128           L13:
 0128                   .dbline 73
 0128           ;       }
 0128           L11:
 0128                   .dbline 74
 0128           L9:
 0128                   .dbline 27
 0128 A1CF              rjmp L8
 012A           X1:
 012A                   .dbline -2
 012A           L1:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -