📄 erase_card.lis
字号:
.module Erase_Card.c
.area data(ram, con, rel)
0000 _Erase_IC_FLAG::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Erase_Card.c
0001 .dbsym e Erase_IC_FLAG _Erase_IC_FLAG c
.area text(rom, con, rel)
0000 .dbfile D:\PROGRA~1\ICC\Pro(AVR)\环保型IC卡门禁系统\Erase_Card.c
0000 .dbfunc e Erase_bit _Erase_bit fV
0000 ; i -> R20
0000 ; Erase_flag -> R22
.even
0000 _Erase_bit::
0000 00D0 rcall push_gset2
0002 602F mov R22,R16
0004 .dbline -1
0004 .dbline 14
0004 ; /*******************************************************************************
0004 ;
0004 ; 擦除高字节 函数
0004 ;
0004 ; *******************************************************************************/
0004 ;
0004 ; #include <iom8v.h>
0004 ; #include <macros.h>
0004 ; #include "lcd1602.h"
0004 ;
0004 ; unsigned char Erase_IC_FLAG=0 ; // 擦除高位标志
0004 ;
0004 ; void Erase_bit(unsigned char Erase_flag) // 擦除位函数
0004 ; {
0004 .dbline 15
0004 ; unsigned char i=0 ;
0004 4427 clr R20
0006 .dbline 17
0006 ;
0006 ; Reset_0 ;
0006 88B3 in R24,0x18
0008 8F7B andi R24,191
000A 88BB out 0x18,R24
000C .dbline 18
000C ; CLK_0 ; // IC_Card 卡复位
000C 88B3 in R24,0x18
000E 8F77 andi R24,127
0010 88BB out 0x18,R24
0012 .dbline 19
0012 ; delay_nms(10);
0012 0AE0 ldi R16,10
0014 10E0 ldi R17,0
0016 00D0 rcall _delay_nms
0018 .dbline 21
0018 ;
0018 ; Reset_1 ; // 把
0018 C69A sbi 0x18,6
001A .dbline 22
001A ; delay_nus(8) ;
001A 08E0 ldi R16,8
001C 10E0 ldi R17,0
001E 00D0 rcall _delay_nus
0020 .dbline 23
0020 ; CLK_1 ; // 地
0020 C79A sbi 0x18,7
0022 .dbline 24
0022 ; delay_nus(44) ;
0022 0CE2 ldi R16,44
0024 10E0 ldi R17,0
0026 00D0 rcall _delay_nus
0028 .dbline 25
0028 ; CLK_0 ; // 址
0028 88B3 in R24,0x18
002A 8F77 andi R24,127
002C 88BB out 0x18,R24
002E .dbline 26
002E ; delay_nus(8) ;
002E 08E0 ldi R16,8
0030 10E0 ldi R17,0
0032 00D0 rcall _delay_nus
0034 .dbline 27
0034 ; Reset_0 ; // 加
0034 88B3 in R24,0x18
0036 8F7B andi R24,191
0038 88BB out 0x18,R24
003A .dbline 28
003A ; delay_nus(10) ;
003A 0AE0 ldi R16,10
003C 10E0 ldi R17,0
003E 00D0 rcall _delay_nus
0040 .dbline 29
0040 ; delay_nus(27) ; // 到
0040 0BE1 ldi R16,27
0042 10E0 ldi R17,0
0044 00D0 rcall _delay_nus
0046 .dbline 31
0046 ;
0046 ; for (i=0;i<Erase_flag;i++) // 要
0046 0EC0 rjmp L5
0048 L2:
0048 .dbline 32
0048 .dbline 33
0048 C79A sbi 0x18,7
004A .dbline 34
004A 08E2 ldi R16,40
004C 10E0 ldi R17,0
004E 00D0 rcall _delay_nus
0050 .dbline 35
0050 88B3 in R24,0x18
0052 8F77 andi R24,127
0054 88BB out 0x18,R24
0056 .dbline 36
0056 09E1 ldi R16,25
0058 10E0 ldi R17,0
005A 00D0 rcall _delay_nus
005C .dbline 37
005C 04E1 ldi R16,20
005E 10E0 ldi R17,0
0060 00D0 rcall _delay_nus
0062 .dbline 38
0062 L3:
0062 .dbline 31
0062 4395 inc R20
0064 L5:
0064 .dbline 31
0064 4617 cp R20,R22
0066 80F3 brlo L2
0068 .dbline 40
0068 ; {
0068 ; CLK_1 ; // 擦
0068 ; delay_nus(40) ;
0068 ; CLK_0 ; // 的
0068 ; delay_nus(25) ;
0068 ; delay_nus(20) ; // 位
0068 ; }
0068 ;
0068 ; Reset_1 ; // 擦
0068 C69A sbi 0x18,6
006A .dbline 41
006A ; delay_nus(50) ;
006A 02E3 ldi R16,50
006C 10E0 ldi R17,0
006E 00D0 rcall _delay_nus
0070 .dbline 42
0070 ; Reset_0 ; // 除
0070 88B3 in R24,0x18
0072 8F7B andi R24,191
0074 88BB out 0x18,R24
0076 .dbline 43
0076 ; delay_nus(10) ;
0076 0AE0 ldi R16,10
0078 10E0 ldi R17,0
007A 00D0 rcall _delay_nus
007C .dbline 44
007C ; CLK_1 ; // 字
007C C79A sbi 0x18,7
007E .dbline 45
007E ; delay_nus(15000) ;
007E 08E9 ldi R16,15000
0080 1AE3 ldi R17,58
0082 00D0 rcall _delay_nus
0084 .dbline 46
0084 ; CLK_0 ; // 节
0084 88B3 in R24,0x18
0086 8F77 andi R24,127
0088 88BB out 0x18,R24
008A .dbline 47
008A ; delay_nus(50) ;
008A 02E3 ldi R16,50
008C 10E0 ldi R17,0
008E 00D0 rcall _delay_nus
0090 .dbline 48
0090 ; Reset_1 ; //
0090 C69A sbi 0x18,6
0092 .dbline 49
0092 ; delay_nus(50) ;
0092 02E3 ldi R16,50
0094 10E0 ldi R17,0
0096 00D0 rcall _delay_nus
0098 .dbline 50
0098 ; Reset_0 ; // 时
0098 88B3 in R24,0x18
009A 8F7B andi R24,191
009C 88BB out 0x18,R24
009E .dbline 51
009E ; delay_nus(100) ;
009E 04E6 ldi R16,100
00A0 10E0 ldi R17,0
00A2 00D0 rcall _delay_nus
00A4 .dbline 52
00A4 ; CLK_1 ; //
00A4 C79A sbi 0x18,7
00A6 .dbline 53
00A6 ; delay_nus(50000) ;
00A6 00E5 ldi R16,50000
00A8 13EC ldi R17,195
00AA 00D0 rcall _delay_nus
00AC .dbline 54
00AC ; CLK_0 ; // 序
00AC 88B3 in R24,0x18
00AE 8F77 andi R24,127
00B0 88BB out 0x18,R24
00B2 .dbline 56
00B2 ;
00B2 ; Read_Card();
00B2 00D0 rcall _Read_Card
00B4 .dbline -2
00B4 L1:
00B4 00D0 rcall pop_gset2
00B6 .dbline 0 ; func end
00B6 0895 ret
00B8 .dbsym r i 20 c
00B8 .dbsym r Erase_flag 22 c
00B8 .dbend
00B8 .dbfunc e Erase_Card _Erase_Card fV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -