📄 ccapature.lis
字号:
.module CCapature.c
.area data(ram, con, rel)
0000 _Flag::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0001 .dbsym e Flag _Flag c
0001 _Table::
0001 .blkb 2
.area idata
0001 3F06 .byte 63,6
.area data(ram, con, rel)
0003 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0003 .blkb 2
.area idata
0003 5B4F .byte 91,'O
.area data(ram, con, rel)
0005 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0005 .blkb 2
.area idata
0005 666D .byte 'f,'m
.area data(ram, con, rel)
0007 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0007 .blkb 2
.area idata
0007 7D07 .byte 125,7
.area data(ram, con, rel)
0009 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0009 .blkb 2
.area idata
0009 7F6F .byte 127,'o
.area data(ram, con, rel)
000B .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
000B .blkb 2
.area idata
000B 777C .byte 'w,124
.area data(ram, con, rel)
000D .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
000D .blkb 2
.area idata
000D 395E .byte 57,94
.area data(ram, con, rel)
000F .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
000F .blkb 2
.area idata
000F 7971 .byte 'y,'q
.area data(ram, con, rel)
0011 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0011 .blkb 4
.area idata
0011 00000000 .byte 0,0,0,0
.area data(ram, con, rel)
0015 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0015 .dbsym e Table _Table A[20:20]c
0015 _Data::
0015 .blkb 2
.area idata
0015 0000 .byte 0,0
.area data(ram, con, rel)
0017 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0017 .blkb 2
.area idata
0017 0000 .byte 0,0
.area data(ram, con, rel)
0019 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0019 .dbsym e Data _Data A[4:4]c
0019 _CNT::
0019 .blkb 2
.area idata
0019 6400 .word 100
.area data(ram, con, rel)
001B .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
001B .dbsym e CNT _CNT i
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\复件基~1\CCapature.c
0000 .dbfunc e DelayMs _DelayMs fV
0000 ; j -> R20,R21
0000 ; i -> R16,R17
.even
0000 _DelayMs::
0000 00D0 rcall push_gset1
0002 .dbline -1
0002 .dbline 21
0002 ; //***************FileName:Capature.C***************//
0002 ; //***************ICCAVR V6.30编译*****************//
0002 ;
0002 ; #include <io8535v.h>
0002 ; #include <macros.h>
0002 ; #define uchar unsigned char
0002 ; #define uint unsigned int
0002 ;
0002 ; #define CON 1000 //频率常数定义
0002 ; uchar Flag=0; //捕获次数定义
0002 ;
0002 ; //数码管字型表,对应0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F//
0002 ; uchar Table[20]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0002 ; 0x7f,0x6f,0x77,0x7c,0x39,0x5E,0x79,0x71};
0002 ; uchar Data[4]={0,0,0,0}; //显示初始值:0 0 0 0
0002 ; uint CNT1; //第一次捕获值
0002 ; uint CNT2; //第二此捕获值
0002 ; uint CNT=100; //捕获差值
0002 ;
0002 ; void DelayMs(uint i) //Ms级延时,参数i为延时时间
0002 ; {uint j;
0002 .dbline 22
0002 ; for(;i!=0;i--)
0002 0AC0 rjmp L5
0004 L2:
0004 .dbline 23
0004 .dbline 23
0004 40ED ldi R20,2000
0006 57E0 ldi R21,7
0008 02C0 rjmp L9
000A L6:
000A .dbline 23
000A .dbline 23
000A .dbline 23
000A L7:
000A .dbline 23
000A 4150 subi R20,1
000C 5040 sbci R21,0
000E L9:
000E .dbline 23
000E 4030 cpi R20,0
0010 4507 cpc R20,R21
0012 D9F7 brne L6
0014 X0:
0014 .dbline 23
0014 L3:
0014 .dbline 22
0014 0150 subi R16,1
0016 1040 sbci R17,0
0018 L5:
0018 .dbline 22
0018 0030 cpi R16,0
001A 0107 cpc R16,R17
001C 99F7 brne L2
001E X1:
001E .dbline -2
001E .dbline 24
001E ; {for(j=2000;j!=0;j--) {;}}
001E ; }
001E L1:
001E 00D0 rcall pop_gset1
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r j 20 i
0022 .dbsym r i 16 i
0022 .dbend
0022 .dbfunc e Pre_Display _Pre_Display fV
0022 ; i -> R20
.even
0022 _Pre_Display::
0022 00D0 rcall push_gset1
0024 .dbline -1
0024 .dbline 27
0024 ;
0024 ; void Pre_Display(void) //预显示函数,数码管显示检测
0024 ; {uchar i;
0024 .dbline 28
0024 ; for(i=0;i<16;i++)
0024 4427 clr R20
0026 0EC0 rjmp L14
0028 L11:
0028 .dbline 29
0028 .dbline 29
0028 2224 clr R2
002A 28BA out 0x18,R2
002C .dbline 30
002C 80E0 ldi R24,<_Table
002E 90E0 ldi R25,>_Table
0030 E42F mov R30,R20
0032 FF27 clr R31
0034 E80F add R30,R24
0036 F91F adc R31,R25
0038 2080 ldd R2,z+0
003A 2BBA out 0x1b,R2
003C .dbline 31
003C 04E6 ldi R16,100
003E 10E0 ldi R17,0
0040 DFDF rcall _DelayMs
0042 .dbline 32
0042 L12:
0042 .dbline 28
0042 4395 inc R20
0044 L14:
0044 .dbline 28
0044 4031 cpi R20,16
0046 80F3 brlo L11
0048 .dbline -2
0048 .dbline 33
0048 ; {PORTB=0x00;
0048 ; PORTA=Table[i];
0048 ; DelayMs(100);
0048 ; }
0048 ; }
0048 L10:
0048 00D0 rcall pop_gset1
004A .dbline 0 ; func end
004A 0895 ret
004C .dbsym r i 20 c
004C .dbend
004C .dbfunc e Display _Display fV
004C ; sel -> R20
004C ; i -> R22
004C ; p -> R10,R11
.even
004C _Display::
004C 00D0 rcall push_gset3
004E A02E mov R10,R16
0050 B12E mov R11,R17
0052 .dbline -1
0052 .dbline 36
0052 ;
0052 ; void Display(uchar *p) //动态显示函数,参数p为待显示的数组名
0052 ; {uchar i,sel=0x08;
0052 .dbline 36
0052 48E0 ldi R20,8
0054 .dbline 37
0054 ; for(i=0;i<4;i++)
0054 6627 clr R22
0056 14C0 rjmp L19
0058 L16:
0058 .dbline 38
0058 .dbline 38
0058 242E mov R2,R20
005A 2094 com R2
005C 25BA out 0x15,R2
005E .dbline 39
005E E62F mov R30,R22
0060 FF27 clr R31
0062 EA0D add R30,R10
0064 FB1D adc R31,R11
0066 E081 ldd R30,z+0
0068 FF27 clr R31
006A 80E0 ldi R24,<_Table
006C 90E0 ldi R25,>_Table
006E E80F add R30,R24
0070 F91F adc R31,R25
0072 2080 ldd R2,z+0
0074 2BBA out 0x1b,R2
0076 .dbline 40
0076 02E0 ldi R16,2
0078 10E0 ldi R17,0
007A C2DF rcall _DelayMs
007C .dbline 41
007C 4695 lsr R20
007E .dbline 42
007E L17:
007E .dbline 37
007E 6395 inc R22
0080 L19:
0080 .dbline 37
0080 6430 cpi R22,4
0082 50F3 brlo L16
0084 .dbline -2
0084 .dbline 43
0084 ; {PORTC=~sel; //选通最右边的数码管
0084 ; PORTA=Table[p[i]]; //送字型码
0084 ; DelayMs(2); //显示延时
0084 ; sel=sel>>1; //移位以显示前一位
0084 ; }
0084 ; }
0084 L15:
0084 00D0 rcall pop_gset3
0086 .dbline 0 ; func end
0086 0895 ret
0088 .dbsym r sel 20 c
0088 .dbsym r i 22 c
0088 .dbsym r p 10 pc
0088 .dbend
0088 .dbfunc e HZ _HZ fV
0088 ; TEM -> R22,R23
0088 ; p -> R20,R21
0088 ; i -> R10,R11
.even
0088 _HZ::
0088 00D0 rcall push_gset3
008A 422F mov R20,R18
008C 532F mov R21,R19
008E A02E mov R10,R16
0090 B12E mov R11,R17
0092 .dbline -1
0092 .dbline 46
0092 ;
0092 ; void HZ(uint i,uchar *p)
0092 ; {uint TEM;
0092 .dbline 47
0092 ; p[0]=CON/i;
0092 08EE ldi R16,1000
0094 13E0 ldi R17,3
0096 2A2D mov R18,R10
0098 3B2D mov R19,R11
009A 00D0 rcall div16u
009C E42F mov R30,R20
009E F52F mov R31,R21
00A0 0083 std z+0,R16
00A2 .dbline 48
00A2 ; TEM=CON%i;
00A2 08EE ldi R16,1000
00A4 13E0 ldi R17,3
00A6 2A2D mov R18,R10
00A8 3B2D mov R19,R11
00AA 00D0 rcall mod16u
00AC 602F mov R22,R16
00AE 712F mov R23,R17
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -